问题描述
Mark Shuttleworth recently blogged关于决定在11.10版本中包含Qt库,以及followup from Jono Bacon。 Mark表示,将用Qt编写的应用程序集成到更大的Ubuntu系统中的最大挑战是Qt目前使用dconf的non-compatibility。
什么是dconf,它在Ubuntu中扮演的角色是什么?
最佳解决方案
介绍
由于本网站上的其他答案一起讨论了gconf
和dconf
,我将集中讨论用于访问dconf
数据库的命令行工具,如gsettings
和gui dconf-editor
。
dconf is a low-level configuration system. Its main purpose is to provide a backend to GSettings on platforms that don’t already have configuration storage systems.
dconf is a simple key-based configuration system. Keys exist in an unstructured database (but it is intended that keys that logically belong together are grouped together).
Having all of the keys in a single compact binary format also avoids the intense fragmentation problems currently experienced by the tree-of-directories-of-xml-files approach.
dconf is optimised for reads. Typically, reading a key from dconf involves zero system calls and zero context switches. Writes are less optimised — they traverse the bus and are handled by a “writer” — a DBus service — in the ordinary way.
使用gsettings
查看和更改设置
一旦了解了gsettings
,就可以像gui dconf-editor
一样简单。可以通过输入man gsettings
或转到Ubuntu manpages online来列出选项。
注意:由于每个人的系统都安装了不同的程序,因此我在使用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更改设置
通过单击以下命令安装gui程序dconf-editor
(12.04):
或者通过跑步
sudo apt-get install dconf-tools
然后通过进入终端或快速启动菜单dconf-editor
来运行它。
正如您在屏幕截图中看到的,可以在左侧展开所有各种模式,并选择相应的密钥。导航到所需的值非常简单(在本例中为gnome-mplayer
首选项)。您可以单击复选框以激活值,或将数值添加到其他一个框中。您还可以使用Ctrl
+ F
键盘快捷键在dconf编辑器中搜索。
您还可以通过在下面的屏幕截图中添加[‘/var/log/auth.log’,var ….’]形式的路径,向log-viewer
添加另一个日志。
结论
您可以使用gsettings
和dconf-editor
调整设置,还有许多其他有用的方法,它们很容易使用。值得仔细查看它们是否存在不在程序首选项中的选项,因为您可以按照自己的方式自定义程序。正如最近在这个问题上展示的化石自由
知道如何使用gsettings
或dconf-editor
非常有价值。也可以看看:
次佳解决方案
对于那些来自需要简单回复的窗口的人来说,dconf是相当于windows注册表的gnome …一个大的二叉树,任何程序都可以存储和共享他们的配置。
他们首先从传统的unix配置(每个应用程序的一个文本文件,每个都有自己的格式)迁移到由gconf管理的标准XML文件树。最近,由于几乎没有人直接编辑这些XML文件以及读取和解析MANY文件的性能问题,他们通过从gconf迁移到dconf迁移到二进制格式。
与Windows注册表不同,dconf应该列出所有配置条目,即使它们被设置为默认值。因此没有隐藏的条目,您可以更改然后重置然后轻松默认。
第三种解决方案
dconf不是Ubuntu特有的,它是用于存储应用程序设置的GNOME技术。有关详细信息,请阅读http://live.gnome.org/dconf
参考资料