Марк Шаттлворт недавно написал в блоге о решении включить библиотеки Qt в выпуск 11.10 с последующим от Джоно Бэкона. Марк утверждает, что самой большой проблемой для интеграции приложений, написанных на Qt, в большую систему Ubuntu является текущая несовместимость Qt с dconf.
Что такое dconf и какую роль он играет в Ubuntu?
Поскольку другие ответы на этом сайте обсуждают gconf
и dconf
вместе, я просто сконцентрируюсь на обсуждении таких инструментов командной строки, как gsettings
и gui dconf-редактор
, которые используются для доступа к базе данных dconf
. На официальном сайте GNOME отмечается, что
dconf представляет собой низкоуровневую конфигурационную систему. Ее основной целью является предоставление бэкэнда GSettings на платформах, которые еще не имеют систем хранения конфигураций.
dconf - это простая система конфигурирования, основанная на ключах. Ключи существуют в неструктурированной базе данных (но предполагается, что ключи, которые логически принадлежат друг другу, сгруппированы вместе).
Наличие всех ключей в одном компактном двоичном формате также позволяет избежать интенсивных проблем фрагментации, с которыми в настоящее время сталкивается подход tree-of-directories-of-xml-files.
dconf оптимизирован для чтения. Обычно чтение ключа из dconf включает нулевые системные вызовы и нулевые переключатели контекста. Запись менее оптимизирована -- она проходит по шине и обрабатывается "записывающим устройством" -- службой DBus -- обычным способом.
gsettings
для просмотра и изменения настроек Как только человек узнает gsettings
, это может быть так же просто, как и gsettingsdconf-редактор gui
-редактор
. Опции можно перечислить, введя gsettings
man или перейдя на страницу Ubuntu manpages online.
NOTE: Так как в системе каждого человека установлены разные программы, вам, возможно, придётся заменить выбранные мною конкретные пункты на разные при экспериментах, так как я использую 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
.
Графическая программа GUI, dconf-редактор
устанавливается с пакетом dconf-инструментов нажатием здесь или запуском
sudo apt-get install dconf-tools
Затем запустите его, войдя в терминал или в меню быстрого запуска, dconf-редактор
.
Как видно на снимке экрана, с левой стороны можно развернуть все различные схемы и выбрать соответствующую клавишу. Навигация к нужному значению очень проста (в данном случае предпочтения gnome-mplayer
). Вы можете установить флажок для активации значения или добавить числовое значение в одно из других полей. Вы также можете выполнять поиск в dconf-редакторе с помощью сочетания клавиш Ctrl+F.
Вы также можете добавить другой лог-файл в logviewer
, добавив путь в форме ['/var/log/auth.log', var....'] на скриншоте ниже.
Есть много других полезных способов подстройки настроек как с помощью gsettings
, так и с помощью dconf-редактора
, и они просты в использовании. Стоит просмотреть их, чтобы увидеть, есть ли там опции, которые не входят в предпочтения программ, так как вы можете быть в состоянии настроить вашу программу именно так, как вы хотите. Как недавно показала свобода ямки в этом вопросе
Знание того, как использовать gsettings
или dconf-редактор
, чрезвычайно ценно. См. также:
dconf не является специфичным для Ubuntu, это технология GNOME, используемая для хранения настроек приложений. Для получения более подробной информации, пожалуйста, прочтите http://live.gnome. org/dconf
Для тех, кто приходит из Windows и хочет получить простой ответ, dconf - это gnome, эквивалентный реестру Windows ... большое двоичное дерево, в котором любая программа может хранить и делиться своей конфигурацией.
Сначала они перешли от традиционных конфигураций unix (по одному текстовому файлу для каждого приложения, каждое со своим собственным форматом) к стандартному дереву файлов XML, управляемому gconf. В последнее время, поскольку почти никто не редактировал эти XML-файлы напрямую и возникли проблемы с производительностью чтения и анализа МНОГИХ файлов, они перешли в двоичный формат, перейдя с gconf на dconf.
В отличие от реестра Windows, dconf должен иметь все записи конфигурации в списке, даже если для них установлены значения по умолчанию. Таким образом, нет никаких скрытых записей, вы можете легко их изменить или сбросить до значений по умолчанию.