Як я можу скриптувати налаштування, зроблені інструментом gnome-tweak?


15

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

Починаючи з "оновлення" до Ubuntu 17.10, я виявив, що мені потрібно використовувати інструмент gnome-tweak, щоб отримати деякі налаштування так, як вони хочу.

Як тільки я знаходжу налаштування в графічному інтерфейсі інструменту gnome-tweak-tool, як я можу розібратися в його перекладі сценарію?

Наприклад, наступні рядки геттінга відповідають відповідним записам на екрані інструменту gnome-tweak-інструменту, знятому нижче ...

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 ... але як це хтось міг здогадатися? І як я, наприклад, розібратися, де взяти відповідні налаштування для натяку та антиаліазії?


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) як я можу знати, "якщо ключ ключів існує"? (2) Яка суть двох інтерфейсів командного рядка, які за всіма намірами та цілями однакові користувачеві? (3) яка різниця між першим і третім вашим "тут"? Вони схожі на мене на одній сторінці.
st01

@ st01 Для (1) ви можете або помилково запустити команду gsettings, подивіться, чи виконує це завдання, або завітаєте в редактор dconf (не встановлений за замовчуванням, але чудовий інструмент), якщо ключ gsettings (також) існує. (2) gsettings - це фронтальний кліп для редагування бази даних dconf. Gsettings також перевіряє цілісність бази даних, тому бажано безпосередньо редагувати базу даних dconf. Оскільки геттінг вищого рівня, він проходить повільніше. (3), Ах, це нерозумно :), ти маєш рацію. Відредагує
Яків Влійм

@JacobVlijm дуже дякую! Ти врятував мені життя!!
Марсло

8

Для більшості налаштувань ви можете використовувати такий підхід:

  • Експорт списку gsettingsу тимчасовий файл:

    gsettings list-recursively > /tmp/gsettings.before
  • Внесіть зміни до gnome-tweak-tool(або unity-control-center);

  • Експорт списку gsettingsв інший тимчасовий файл:

    gsettings list-recursively > /tmp/gsettings.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:

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


1
Дуже корисно, дякую, я не знав, що ви можете скинути всі такі налаштування.
st01

1
Це чудово, дуже дякую! Тепер я можу відновити свою стару конфігурацію, коли заплутаюсь у gsettings.
Ніколас Стоммель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.