如何使用dconf或gsettings读取默认键值?
我想知道dconf / gsettings键的默认值。
我的问题是以下问题的后续问题: 我在哪里可以获得与gsettings一起使用的SCHEMA / PATH / KEY列表?
我正在尝试做什么,所以创建一个脚本来读取我所有的个人偏好,以便我可以备份它们并恢复它们。 我计划迭代所有键,如上面的脚本,看看哪些键已从默认值更改,并记下这些键,可以在以后恢复。
我看到dconf-editor显示了键的默认值,但我非常想编写这个脚本。 另外,我没有看到如何解析模式/usr/share/glib-2.0/schemas/可以自动化。 也许有人可以帮忙?
gsettings get-default | list-defaults会很好=)
(Geesh,在过去你更容易将你的〜/ .somethingrc保存在颠覆中… = \
基于下面给出的答案,我更新了脚本以打印模式,密钥,密钥的数据类型, 默认值和实际值:
#!/bin/bash for schema in $(gsettings list-schemas | sort); do for key in $(gsettings list-keys $schema | sort); do type="$(gsettings range $schema $key | tr "\n" " ")" default="$(XDG_CONFIG_HOME=/tmp/ gsettings get $schema $key | tr "\n" " ")" value="$(gsettings get $schema $key | tr "\n" " ")" echo "$schema :: $key :: $type :: $default :: $value" done done
这种解决方法基本上涵盖了我的需求。 我将从这里开始继续处理备份脚本。
似乎没有一种直接获取默认值的好方法,但是由于客户端检查环境中的XDG_CONFIG_HOME,从新配置获取值的一个不错的解决方法可能是:
XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY
如果您有兴趣备份和恢复设置(在这种情况下,您应该更改问题的标题)。
备用
您可以使用备份设置
gsettings list-recursively > backup
这会将所有密钥写入主文件夹中的文件备份 。
恢复
据我所知,没有任何直接选项可以将文件导回dconf。 也许你可以编写一个逐行读取备份文件的例程,并执行gsettings set
来恢复你的设置。