Мне нравится мочь настроить вещи из командной строки, так, чтобы, когда я переустанавливаю ОС, я мог просто запустить скрипт и вернуть мою предпочтительную конфигурацию.
Начиная с "обновления" до Ubuntu 17.10 я нашел, что должен был использовать инструмент тонкой настройки гнома для получения некоторых настроек путем, я хочу их.
После того как я нахожу установку в инструменте тонкой настройки гнома GUI, как я могу выяснить его scriptable перевод?
Например, следующие строки gsettings соответствуют соответствующим записям в снимке экрана инструмента тонкой настройки гнома ниже...
gsettings set org.gnome.desktop.wm.preferences titlebar-font "Tahoma Bold 8"
gsettings set org.gnome.desktop.interface font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface document-font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface monospace-font-name "FixedSC 10"
... но как кто-либо мог предположить это? И как был бы, я, например, выясняю, где получить соответствующие настройки для вывода подсказок и сглаживания?
Вместо поиска по всему каталогу параметров:
Выполните команду:
dconf watch /
Внесите изменения и посмотрите, что показывает терминал:
... и вот вы где.
В этом примере вы видите вывод из dconf
. Gsettings - это клиентский интерфейс для dconf. Часто вы можете использовать как команду dconf
, так и команду gsettings
. В этом случае либо:
dconf write /org/gnome/desktop/background/show-desktop-icons false
, либо:
gsettings set org.gnome.desktop.background show-desktop-icons false
Однако, если ключ gsettings существует, последний считается лучшей практикой для защиты целостности вашей базы данных dconf
.
Для большинства настроек вы можете использовать этот подход:
Экспортируйте список gsettings
во временный файл:
gsettings list-recursively> /tmp/gsettings.before
Внесите изменения с помощью gnome-tweak-tool
(или unity-control-center
);
Экспортируйте список gsettings
в другой временный файл:
список настроек gsettings рекурсивно> /tmp/gsettings.after
Сравните два файла ( .before и .after ) и получите различия:
diff /tmp/gsettings.before /tmp/gsettings.after | grep '[> | <]'
Или сравните и получите только новые значения ( источник ):
diff /tmp/gsettings.before /tmp/gsettings.after | grep -Po '> \ K. *'
Или сравните и получите только новые значения, но замените начало строк на gsettings set
, чтобы подготовить список команд, которые можно сохранить непосредственно в файле сценария ( source ):
diff /tmp/gsettings.before /tmp/gsettings.after | sed 's /> / gsettings set /; tx; d;: x'
Вы можете запускать все эти команды из одной строки (или можете создать сценарий для автоматизации процесса):
gsettings list-recursively > /tmp/gsettings.before; gnome-tweak-tool; gsettings list-recursively > /tmp/gsettings.after; diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'
Следующая демонстрация создается в Ubuntu 16.04. Я думаю, что этот подход будет работать и в 17.10:
Обновление: Я только что нашел простой способ в Ubuntu 17.10: