Посмотреть, какие команды оболочки соответствуют изменениям настроек.

Вопрос или проблема

Я пытаюсь создать автоматизированные процедуры для переключения между светлым и темным режимами для моего рабочего стола, как описано здесь. Единственная проблема в том, что я не знаю, какие команды gsettings соответствуют различным настройкам, которые я хочу изменить. Настройки, которые я хочу изменить, следующие:

  • Переключить мой GNOME терминал с моей “светлой” пользовательской темы на мою “темную” пользовательскую тему (или наоборот).
  • В разделе “Внешний вид” GNOME функций изменить тему “Приложения” с Adwaita на Adwaita-dark (или наоборот).
  • В моем выбранном текстовом редакторе (gedit) сменить тему “Kate” на тему “Oblivion” (или наоборот).

Но опять же, я не знаю, какие команды соответствуют этим изменениям.

Заранее спасибо за помощь.

РЕДАКТИРОВАТЬ: Я использую Rocky 9 с GNOME.

Используйте dconf watch /, если GSettings использует dconf backend (как это происходит в обычных средах). Пути dconf обычно соответствуют 1:1 именам схем GSettings, за исключением разделителя, и dconf-editor принимает оба варианта.

(Есть некоторые исключения, такие как профили gnome-terminal, которые используют “переносимую” схему. Для них dconf-editor подскажет вам имя схемы, которое должно быть указано в gsettings в формате schema.name:/path, хотя вы можете обойти все это, используя более низкоуровневую команду dconf write.)

В качестве альтернативы запустите gsettings list-recursively до и после изменения, чтобы иметь возможность сравнить результаты.

Приложения в песочнице Flatpak не имеют доступа к глобальному dconf backend; вместо этого GSettings использует $XDG_CONFIG_HOME/glib-2.0/settings/keyfile (который вне песочницы Flatpak находится в ~/.var/app/$id/config).

Обратите внимание, что не все настройки относятся к GSettings. Например, опция глобального “темного режима” может напрямую редактировать ~/.config/gtk*/settings.ini, так как ранее это была внутренняя опция GTK до того, как стала полноценной опцией GSettings.

Ответ или решение

Для решения задачи автоматизации переключения между светлым и темным режимами на вашем рабочем столе GNOME, необходимо использовать команды gsettings, которые взаимодействуют с системными настройками. Ваши требования охватывают изменения тем в GNOME Terminal, GNOME Tweaks и текстовом редакторе Gedit. Далее я подробно расскажу, как определить необходимые команды и применить их для автоматизации.

Теория

В GNOME настройками управляет система GSettings, которая взаимодействует с базой данных dconf. Основное преимущество GSettings заключается в его гибкости и поддержке различных бекендов настроек. Команды GSettings позволяют менять пользовательские предпочтения в приложениях, подобных GNOME Terminal и Gedit, непосредственно из консоли.

Пример

1. GNOME Terminal

GNOME Terminal использует "перемещаемые" схемы для управления профилями терминала. Чтобы переключаться между светлой и темной темами, вам потребуется знать идентификаторы (UUID) профилей терминала. Для этого:

  1. Найдите UUID текущего профиля. Введите в терминале:

    gsettings get org.gnome.Terminal.ProfilesList default

    Это вернет идентификатор, который используется по умолчанию.

  2. Чтобы увидеть все доступные профили:

    gsettings get org.gnome.Terminal.ProfilesList list
  3. Смена темы в профиле может быть выполнена посредством изменения ключа visible-name или путем установки параметров цвета напрямую. Например, меняя ключи background-color или foreground-color.

2. Переключение темы "Applications" в GNOME Tweaks

Темы приложений GNOME управляются через следующее:

gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"

Чтобы переключиться обратно на стандартную тему Adwaita, выполните:

gsettings set org.gnome.desktop.interface gtk-theme "Adwaita"

Эти команды изменят общий стиль приложений, устанавливая или снимая тёмную тему.

3. Переключение тем в Gedit

Gedit позволяет переключаться между разными темами подсветки кода:

  1. Откройте настройки Gedit, используя:
    gsettings list-recursively org.gnome.gedit.preferences.editor
  2. Затем установите тему через:
    gsettings set org.gnome.gedit.preferences.editor scheme 'Kate'

    Чтобы изменить тему обратно на Oblivion:

    gsettings set org.gnome.gedit.preferences.editor scheme 'Oblivion'

Применение

  1. Наблюдение за изменениями: Используйте dconf watch / для наблюдения за изменениями, которые вы вносите через графический интерфейс. Это позволит вам выявить точные команды или пути в GSettings/Dconf, отвечает за изменения.

  2. Проверка изменений: Команда gsettings list-recursively позволяет вывести все текущие настройки на экран. Сравнивая вывод этой команды до и после изменений, можно выявить, какие параметры были изменены.

  3. Изменения в Flatpak приложениях: Если вы используете Flatpak-приложения, учитывайте, что они используют изолированные файлы настроек, доступные по пути ~/.var/app/$id/config.

  4. Дополнительные настройки GTK: Файл ~/.config/gtk*/settings.ini также может участвовать в управлении темами. В нем можно найти параметры, влияющие на глобальные настройки интерфейса GTK.

Создав bash-скрипт или cron-задание для запуска команд, вы можете автоматизировать процесс переключения тем в зависимости от вашего расписания или личных предпочтений. Важно протестировать каждую команду отдельно, чтобы избежать непредвиденных ошибок и убедиться, что вся процедура проходит гладко.

Заключение: автоматизация изменения тем и стилей в GNOME возможна с использованием набора команд GSettings и Dconf. Это требует внимательного наблюдения за изменениями и использования корректных идентификаторов и путей для применения нужных настроек.

Оцените материал
Добавить комментарий

Капча загружается...