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

Zta*_*Zta 13 default gconf gsettings restore

我想知道 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
Run Code Online (Sandbox Code Playgroud)

这个解决方法基本上涵盖了我需要的东西。我将从这里继续处理备份脚本。

Jas*_*nti 11

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

XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY
Run Code Online (Sandbox Code Playgroud)