Dconf 是 GNOME 桌面环境使用的低级配置系统。它基本上是一个数据库,其中各种配置与它们的值一起存储为 key。可以使用 dconf 实用程序或使用 dconf-editor 图形工具检查、更改或转储数据库中的键。
在本教程中,我们将了解如何管理 dconf 密钥,如何备份和恢复它们,以及如何使数据库状态与配置文件保持同步。
在本教程中,您将学习:
- 如何列出 dconf 数据库中的键
- 如何读取 key 的值
- 如何更改键的值
- 如何备份和恢复 dconf 密钥
- 如何使用 dconf-editor GUI 管理 dconf
dconf 配置系统介绍
类别 | 要求、约定或使用的软件版本 |
---|---|
系统 | 与分销无关 |
软件 | dconf 数据库、dconf 或 dconf-editor 实用程序 |
其他 | 没有 |
约定 | # – 要求以 root 权限直接以 root 用户身份或通过使用命令执行给定的 linux 命令 $ – 要求以常规非特权用户身份执行给定的 linux 命令sudo |
列出数据库中的键
在 dconf 数据库中,键以 “树” 结构进行组织。从用户的角度来看,键被组织在目录中,根目录是 /。要列出某个目录的内容,我们可以将 dconf 实用程序与命令一起使用,该命令将目录作为参数。要列出目录的内容,我们将运行:list
/
$ dconf list /
该命令在我的计算机上返回以下输出:
org/
同样,要列出 /org/ 目录的内容,我们可以运行:
$ dconf list /org/
gnome/
gtk/
正如您在上面的示例中所注意到的,作为参数传递给 “list” 命令的目录路径包括一个尾部斜杠。输出中返回的第一个目录 , 包含与 GNOME 桌面环境相关的键,而包含与 GTK 工具包(GNOME 使用的图形工具包)相关的键:
gnome/
gtk/
$ dconf list /org/gnome/
TextEditor/
calculator/
control-center/
desktop/
evolution-data-server/
login-screen/
nautilus/
nm-applet/
settings-daemon/
shell/
system/
terminal/
检索键的值
要检索存储在 dconf 数据库中的密钥的值,我们可以使用 dconf 实用程序的命令。让我们举个例子。用作 GNOME 桌面环境壁纸的图片存储在 dconf 的 key 中。要读取键的值,我们将 its 路径(不带尾部斜杠)作为参数传递给 “read” 命令:read
/org/gnome/desktop/background/picture-uri
$ dconf read /org/gnome/desktop/background/picture-uri
该命令返回键的值,在本例中为:
'file:///home/egdoc/.local/share/backgrounds/2022-08-20-14-48-58-1.jpg'
更改键的值
要更改存储在 dconf 数据库中的密钥的值,我们使用命令,并将密钥路径作为第一个参数传递,将我们要分配给它的值作为第二个参数传递。假设我们想更改 GNOME 桌面使用的壁纸,使用具有以下 URI 的文件:。以下是我们将运行的命令:write
'file:///mnt/data/system/wallpapers/3.jpg'
$ dconf write /org/gnome/desktop/background/picture-uri "'file:///mnt/data/system/wallpapers/3.jpg'"
您可能已经注意到,在上面的示例中,我们对字符串使用了额外的引号,该字符串指示要用作壁纸的图像的路径。这是因为 dconf 密钥的值必须以 GVariant 格式提供。
备份和恢复 dconf 数据库
dconf 实用程序提供了某些命令,这些命令可用于创建和恢复 dconf 数据库中某个目录中包含的所有键的状态备份。这些命令分别是 和 。dump
load
“dump” 命令允许我们转储目录作为其参数传递的内容。默认情况下,命令的输出会发送到 stdout,但可以使用 shell 重定向轻松将其写入文件。假设我们想要备份整个数据库的内容,并将其存储在文件中,我们将运行:dconf_backup.txt
$ dconf dump / > dconf_backup.txt
以下是转储的组织方式示例:
[org/gnome/TextEditor]
indent-style='space'
last-save-directory='file:///home/egdoc/Downloads'
show-line-numbers=true
spellcheck=false
tab-width=uint32 2
wrap-text=false
[...]
“load” 命令执行相反的作,让我们用从标准输入中读取的值填充 dconf 数据库。它接受要还原的目录的路径作为其唯一参数。要恢复我们存储在上一个示例中文件中的配置,我们将运行:dconf_backup.txt
$ dconf load / < dconf_backup.txt
使 dconf 设置与配置文件保持同步
我们在前面的例子中用于创建 dconf 备份的策略不是很方便:每次我们对配置执行修改时,都必须再次重新创建转储,以使 “备份” 保持最新。另一种策略是使 dconf 配置与文本文件保持同步。以下是我们如何实现它。
首先要在文件开头添加一行,修改后应如下所示:
service-db:keyfile/user
/etc/dconf/profile/user
service-db:keyfile/user
user-db:user
system-db:local
system-db:site
system-db:distro
第二件事,就是把包含我们之前创建的 dconf 备份的文件放在 ,或者直接把 dump 放在这个位置:~/.config/dconf/user.txt
$ dconf dump / > ~/.config/dconf/user.txt
使用此策略,一旦我们关闭并打开新会话(通常通过注销并执行新登录),该策略将生效,将从上述文件中读取 dconf 设置,并且我们对数据库中的密钥所做的修改将自动写入其中。如果我们想将 dconf 配置保持在版本控制之下,例如,就像我们对 dotfile 所做的那样
,这种设置特别有用。
使用 dconf-editor GUI 管理 dconf
到目前为止,我们了解了如何使用 dconf 命令行实用程序管理存储在 dconf 数据库中的密钥。如果我们更喜欢使用图形工具来执行相同的作,我们可以使用 dconf-editor,它包含在所有主要 Linux 发行版的存储库中。要在 Fedora 上安装它,我们运行:
$ sudo dnf install dconf-editor
在基于 Debian 和 Debian 的发行版上,改为:
$ sudo apt install dconf-editor
该软件包包含在 Archlinux 的 “extra” 仓库中。在滚动发行版上,我们可以使用以下命令进行安装:
$ sudo pacman -Sy dconf-editor
首次启动应用程序时,系统会警告我们要小心使用:
使用 dconf-editor 时要小心!
从应用程序界面中,如您在下面的屏幕截图中所观察到的那样,我们可以轻松导航各种目录、更改键值,甚至通过单击“星号”按钮为最常用的位置添加书签,以便更快地访问它们:
使用 dconf-editor 管理 dconf 密钥。
结论
在本文中,我们了解了如何管理存储在 GNOME 桌面环境使用的 dconf 数据库中的设置和选项。我们了解了如何使用 dconf 命令行实用程序列出现有键、检索和更改其值以及创建/恢复 dconf 数据库的备份。我们还了解了如何使 dconf 状态与文本配置文件保持同步。最后,我们了解了如何通过 dconf-editor 图形应用程序管理 dconf 数据库。