我想知道 dconf/gsettings 键的默认值。
我的问题是以下问题的后续: 在哪里可以获得与 gsettings 一起使用的 SCHEMA / PATH / KEY 列表?
我想做的是创建一个脚本来读取我的所有个人偏好设置,以便我可以备份和恢复它们。我计划遍历所有键,就像上面的脚本一样,查看哪些键已从其默认值更改,并记下这些键,以便以后恢复。
我看到 dconf-editor 显示键的默认值,但我非常想编写脚本。另外,我不知道如何自动解析架构 /usr/share/glib-2.0/schemas/。也许有人可以帮忙?
gsettings get-default|list-defaults 就很好了 =)
(天哪,以前只要把 ~/.somethingrc 保存在 subversion 中就简单多了... =\
根据以下答案,我已经更新了脚本来打印架构、密钥、密钥的数据类型,默认值,以及实际值:
#!/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
这个解决方法基本上满足了我的需求。我会从这里继续处理备份脚本。
答案1
似乎没有一个好的方法来直接获取默认值,但由于客户端在环境中检查 XDG_CONFIG_HOME,因此从新配置中获取值的一个不错的解决方法可能是:
XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY
答案2
如果您有兴趣备份和恢复您的设置(在这种情况下您应该更改问题的标题)。
备份
您可以使用以下方式备份您的设置
gsettings list-recursively > backup
这会将所有键写入文件备份在您的主文件夹中。
恢复
据我所知,没有任何直接选项可以将文件导入回 dconf。也许您可以编写一个例程,逐行读取备份文件并执行gsettings set <input line from backup>
以恢复您的设置。