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

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

После "обновления" до 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"

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

2 ответа

Решение

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

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

  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 база данных.

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

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

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

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

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

    gsettings list-recursively > /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 подготовить список команд, которые должны храниться непосредственно в вашем файле скрипта ( источник):

    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:

Другие вопросы по тегам