如何使用dconf或gsettings读取默认键值?


13

我想知道dconf / gsettings键的默认值。

我的问题是以下问题的跟进: 在哪里可以找到与gsettings一起使用的SCHEMA / PATH / KEY列表?

我要尝试执行的操作,因此创建一个脚本来读取我的所有个人偏好,以便我可以备份并还原它们。我计划遍历所有键(如上面的脚本),查看哪些键已更改为默认值,并记下这些键,以便以后恢复。

我看到dconf编辑器显示了键的默认值,但是我非常想编写脚本。另外,我看不到如何自动解析模式/usr/share/glib-2.0/schemas/。也许有人可以帮忙?

gsettings get-default | list-defaults将是不错的=)

(Geesh,在过去,将〜/ .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

该解决方法基本上可以满足我的需求。我将从此处继续处理备份脚本。


如果还有其他人在这里寻找如何将密钥重置为其默认值gsettings reset KEY的方法,那么这就是方法。
Andreas Storvik Strauman

Answers:


11

似乎没有一种直接获取默认值的好方法,但是由于客户端在环境中检查XDG_CONFIG_HOME,一种从新配置获取值的不错的解决方法可能是:

XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY

1

如果您有兴趣备份和还原设置(在这种情况下,您应该更改问题的标题)。

后备

您可以使用

gsettings list-recursively > backup

这会将所有密钥写入到Home-Folder中的文件备份中。

恢复

据我所知,没有任何直接选项可以将文件导入回dconf。也许您可以编写一个例程来逐行读取备份文件并执行gsettings set <input line from backup>以恢复您的设置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.