默认情况下,dconf
以二进制格式存储其配置,不方便与版本控制一起使用。
dconf
注意到 dconf 有一个配置设置,可以启用“双向”纯文本模式,该模式可以使用纯文本文件有效地镜像二进制数据库。
不幸的是,它对如何使用这个听起来很有前途的功能提供了很少的指导。
实现这一点最直接的方法是什么?
答案1
一切都在那里(除了将当前设置保存到该文本文件的部分):
启动时,
dconf
查询DCONF_PROFILE
环境变量。如果设置,dconf
将尝试打开指定的配置文件,如果失败则中止。如果未设置环境变量,它将尝试打开名为“的配置文件用户如果失败,它将回退到内部硬连线配置。dconf
将其配置文件存储在文本文件中。DCONF_PROFILE
可以指定 中文件的相对路径/etc/dconf/profile/
,或绝对路径(例如在用户的主目录中)。
和
“
service-db
”行指示 dconf 将用户数据库的二进制数据库文件放置在XDG_RUNTIME_DIR
.由于此位置不是持久的,因此该行的其余部分指示dconf
如何持久存储数据库。典型的一行是service-db:keyfile/user
,它告诉dconf
将二进制数据库与 中的纯文本密钥文件同步$XDG_CONFIG_HOME/dconf/user.txt
。同步是双向的。
因此,所讨论的文本文件$XDG_CONFIG_HOME/dconf/user.txt
通常对应于~/.config/dconf/user.txt
.
首先,将当前设置保存到该文件(显然,新用户不需要这样做):
dconf dump / > ~/.config/dconf/user.txt
然后将该service-db
行附加到配置文件(作为根):
mkdir -p /etc/dconf/profile
printf '%s\n' 'service-db:keyfile/user' >> /etc/dconf/profile/user
现在,重新启动会话,两个文件将同步。