Я сохраняю свою конфигурацию в Git-репозитории, чтобы потом легко ее восстановить.
Недавно я наткнулся на проблему , где необходимо было изменить настройки GNOME с помощью команды gsettings
.
Есть ли способ сохранить эти настройки в файле, который может быть символической ссылкой или скопирован в предопределенном месте, ожидаемом GNOME? Я бы предпочел метод, в котором мне не нужно писать скрипт для вызова gsettings
.
Настройки GNOME обычно хранятся через API GSettings, который является реализацией спецификации DConf. Это сохраняет настройки в двоичной базе данных, которую нельзя заменять при входе в систему.
Вместо этого настройки необходимо экспортировать, а затем снова загрузить.
Вы можете использовать dconf dump / > dconf-settings.ini
для выгрузки настроек в INI-файл, а затем использовать cat dconf-settings.ini > dconf load /
для загрузки этих настроек обратно. Вы можете заменить /
определенным путем, чтобы ограничить, какие настройки сбрасываются и загружаются , См. man dconf
для более подробной информации.
Если вы хотите просто установить один ключ, а не целые пути, для этого было бы лучше использовать gsettings
с gsettings get
и gsettings set
в скрипте.
Вот небольшое исправление для команд «Добей»:
Можно сохранить все настройки donf, например, так:
dconf dump / > dconf-settings.ini
Но вы должны восстановить их вот так! :
dconf load / < dconf-settings.ini
См. man 7 dconf
:
KEY FILES
To facilitate system configuration with a text editor, dconf can
populate databases from plain text keyfiles. For any given system
database, keyfiles can be placed into the /etc/dconf/db/database.d/
directory. The keyfiles contain groups of settings as follows:
# Some useful default settings for our site
[system/proxy/http]
host='172.16.0.1'
enabled=true
[org/gnome/desktop/background]
picture-uri='file:///usr/local/rupert-corp/company-wallpaper.jpeg'
After changing keyfiles, the database needs to be updated with the
dconf(1) tool.
Если вам просто нужно, чтобы GNOME выбирал настройки из файла без сценариев, это может быть самый простой способ, но для этого нужен администратор доступ к созданию файла ключа.
Другой вариант - сохранить саму двоичную базу данных dconf, но это не очень хороший вариант для использования с Git в качестве контроля версий. База данных обычно находится в $XDG_CONFIG_HOME/dconf
(т.е. по умолчанию ~/.config/dconf
). См. Раздел PROFILES
на странице руководства.
На странице руководства также написано:
The binary database format that dconf uses by default is not suitable
for use on NFS, where mmap does not work well. To handle this common
use case, dconf can be configured to place its binary database in
XDG_RUNTIME_DIR (which is guaranteed to be local, but non-persistent)
and synchronize it with a plain text keyfile in the users home
directory.
Но не совсем понятно, как это сделать без сценариев.