Как я могу записать настройки, сделанные gnome-tweak-tool?

15

Мне нравится иметь возможность настраивать вещи из командной строки, чтобы при переустановке ОС я мог просто запустить сценарий и вернуть свою предпочтительную конфигурацию.

После «обновления» до Ubuntu 17.10 я обнаружил, что мне пришлось использовать gnome-tweak-tool, чтобы получить некоторые настройки так, как я хочу.

Как только я найду настройку в графическом интерфейсе gnome-tweak-tool, как я могу выяснить ее перевод в сценарии?

Например, следующие строки gsettings соответствуют соответствующим записям на снимке экрана gnome-tweak-tool ниже ...

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"

снимок экрана из инструмента gnome-tweak ... но как можно было догадаться об этом? И как бы я, например, выяснить, где взять соответствующие настройки для хинтинга и сглаживания?

ST01
источник
1
TBH Я всегда прибегал к разгадке клавиш, например gsettings list-recursively | grep -e alias -e hint- хотел бы знать, есть ли лучший способ
Steeldriver
Кроме просмотра исходного кода или dconf-редактора (или непосредственно gsettings, например, @steeldriver), мало кто может сделать.
Муру

Ответы:

23

Легко узнать, что устанавливается

Вместо поиска по всему каталогу опций:

  1. Откройте окно терминала
  2. Запустите команду:

    dconf watch /
  3. Внесите изменения и посмотрите, что показывает терминал:

    введите описание изображения здесь

    ... и вот вы здесь.

Dconf & gsettings

В примере вы видите результат от 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базы данных.

Смотрите также здесь и здесь .

Якоб Влейм
источник
Это великолепно, спасибо. Маленькие вопросы: (1) как мне узнать, "существует ли ключ gsettings"? (2) Какой смысл двух интерфейсов командной строки, которые для всех намерений и целей идентичны пользователю? (3) в чем разница между первым и третьим вашего "здесь"? Они похожи на одну и ту же страницу для меня.
st01
@ st01 Для (1) вы можете либо просто выполнить команду gsettings, посмотреть, выполняет ли она работу, либо проверить в редакторе dconf (не установлен по умолчанию, но отличный инструмент), если ключ gsettings существует (также). (2) gsettings - это клиентская среда для редактирования базы данных dconf. Gsettings также проверяет целостность базы данных, и поэтому предпочтительнее прямого редактирования базы данных dconf. Поскольку gsettings более высокий уровень, он медленнее. (3) Ах, это глупо :), вы правы. Будет ли редактировать
Jacob Vlijm
@JacobVlijm большое спасибо! Вы спасли мою жизнь!!
Марсло
8

Для большинства настроек вы можете использовать этот подход:

  • Экспортируем список gsettingsво временный файл:

    gsettings list-recursively > /tmp/gsettings.before
  • Внесите свои изменения gnome-tweak-tool(или unity-control-center);

  • Экспортируем список gsettingsв другой временный файл:

    gsettings list-recursively > /tmp/gsettings.after
  • Сравните эти два файла ( .До и .after ) и получить разницу:

    diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'

    Или сравните и получите только новые значения ( источник ):

    diff /tmp/gsettings.before /tmp/gsettings.after | grep -Po '> \K.*'

    Или сравните и получите только новые значения, но замените начало строк на, gsettings setчтобы подготовить список команд, которые должны храниться непосредственно в вашем файле сценария ( источник ):

    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:

введите описание изображения здесь

pa4080
источник
1
Очень полезно, спасибо, я не знал, что вы можете сбросить все настройки, как это.
st01
1
Это превосходно, спасибо большое! Теперь я могу восстановить свой старый конфиг, когда я возиться в gsettings.
Николас