什么是dconf,其功能是什么,如何使用它?


Answers:


87

介绍

在该网站其他答案讨论gconfdconf在一起,我只会集中讨论命令行工具,如gsettings和GUI dconf-editor被用来访问dconf数据库。

GNOME官方网站上指出

dconf是一个低级配置系统。其主要目的是在尚未具有配置存储系统的平台上为GSettings提供后端。

dconf是一个简单的基于密钥的配置系统。密钥存在于非结构化数据库中(但旨在将逻辑上属于一起的密钥分组在一起)。

将所有密钥都具有单个紧凑的二进制格式也可以避免xml文件目录树方法当前遇到的严重碎片问题。

dconf针对读取进行了优化。通常,从dconf读取密钥涉及零个系统调用和零个上下文切换。写入的优化程度较低-它们遍历总线,并以普通方式由“写入器”(DBus服务)处理。

使用gsettings查看和更改设置

一旦知道,gsettings它就可以像gui一样容易dconf-editor。可以通过在线进入man gsettings或进入Ubuntu手册页列出这些选项。

注意:由于每个人的系统都安装了不同的程序,因此在进行实验时,您可能必须用我选择的特定项目代替不同的项目,因为我将XUbuntu XFce与很多GNOME程序一起使用。

要列出所有可用的模式,请输入

gsettings list-schemas

要同时包含所有键,请输入

gsettings list-recursively

但是,通常更容易指定所需的内容,例如,

gsettings list-schemas | grep -i shotwell

这将返回一个长列表;我将其缩短为:

org.yorba.shotwell
org.yorba.shotwell.preferences.ui
org.yorba.shotwell.preferences.slideshow
org.yorba.shotwell.plugins.enable-state
org.yorba.shotwell.printing
org.yorba.shotwell.preferences.editing
org.yorba.shotwell.preferences.files

现在,当您找到所需的架构时,请使用

gsettings list-keys org.yorba.shotwell.preferences.ui

这将返回一个列表(再次将其缩短):

background-color
display-basic-properties
display-extended-properties
display-photo-ratings
display-photo-tags
display-photo-titles
event-photos-sort-ascending
event-photos-sort-by

选择一个,看看当前值是多少

gsettings get org.yorba.shotwell.preferences.ui display-photo-tags

这会返回true值,因此要反转它,请使用

gsettings set org.yorba.shotwell.preferences.ui display-photo-tags false

这些是简单的示例,但基本上显示了如何使用键识别和更改键和值gsettings

使用dconf-editor更改设置

通过单击此处或通过运行dconf-tools软件包dconf-editor安装GUI程序。

sudo apt-get install dconf-tools

然后通过输入终端或快速启动菜单中的来运行它dconf-editor

如您在屏幕快照中所见,所有各种模式都可以在左侧展开,并选择适当的键。导航至所需值(在本例中gnome-mplayer为首选项)非常简单。您可以单击复选框以激活值,也可以将数值添加到其他框之一。您也可以使用Ctrl+ F键盘快捷键在dconf编辑器中搜索。

在此处输入图片说明

您还可以log-viewer通过在以下屏幕截图中以['/var/log/auth.log',var ....']格式添加路径来添加另一个要说的日志。

在此处输入图片说明

结论

有迹象表明,你可以用这两个调整设置许多其他有用的方法gsettingsdconf-editor他们是直接使用。值得一看,以查看是否有一些不在程序首选项中的选项,因为您可以按照自己的方式自定义程序。正如fossfreedom最近在这个问题中所显示的

知道如何使用gsettingsdconf-editor极有价值。也可以看看:


5
由于程序gsettings和程序dconf-editor都在dconf数据库上工作,为什么它们不显示相同的信息?gsetting12.04上的代码显示了架构com.canonical.Unity.Launcher和密钥的值,favoritesdconf-editor甚至没有提供com.canonical.Unity完整的架构或密钥。
2012年

@AH:好问题。我在这里问它:askubuntu.com/q/243409/2355
Flimm

@AH很抱歉,我忘了回答您的评论:因为我在Xubuntu上,所以我无法对Unity进行评论,但是Flimm提出了一个单独的问题,应该会得到一些好的答案。

4
但是到底是什么使dconf与GUI工具包Qt不兼容?
Salman von Abbas

在RHEL / CentOS上使用yum install dconf-editor来安装GUI工具。
Mark Edington

26

对于那些想要简单答复的来自Windows的人,dconf是等效于Windows注册表的gnome,这是一个大的二进制树,任何程序都可以在其中存储和共享其配置。

他们首先从传统的unix配置(每个应用程序一个文本文件,每个都有自己的格式)迁移到由gconf管理的标准XML文件树。近年来,由于几乎没有人直接编辑这些XML文件以及读取和解析MANY文件的性能问题,它们通过从gconf迁移到dconf而迁移为二进制格式。

与Windows注册表不同,dconf应该列出所有配置项,即使将它们设置为默认值也是如此。因此,没有隐藏的条目,您可以轻松地更改然后重置或重置为默认值。


10

dconf不是特定于Ubuntu的,它是用于存储应用程序设置的GNOME技术。有关更多详细信息,请阅读 http://live.gnome.org/dconf


dconf和gconf有什么关系?
psusi 2011年

10
dconf是gconf的GNOME3替代品,已经有一段时间没有维护了。预计dconf也将带来比gconf(与应用程序启动有关)的性能改进。
若奥·平托

1
在这个问题psusi的评论上面的问题的答案‘部分回答了为什么对dconf和GConf信息?争论 ’。我确信psusi已经对问题发表了评论,但如果有人想知道更多信息,那就可以了。
Firefeather
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.