如何使用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 来恢复你的设置。