Вопрос или проблема
Я пытаюсь автоматизировать процесс темирования программ QT5, когда нет окружения рабочего стола, такого как KDE, написав скрипт, который это делает. Я знаю, что у GTK есть множество конфигурационных файлов, которые могут задать все аспекты темы, но каково аналогичное решение для QT5?
Пока я узнал, что могу установить QT_THEME_OVERRIDE
для задания темы и XCURSOR_THEME
для задания темы курсора (QT5, похоже, это учитывает). Но что насчет темы значков и всего остального?
Я также видел эту секцию в Arch Wiki по похожей проблеме и несколько других вопросов, предлагающих использовать графический конфигуратор qt5ct
, но я действительно пытаюсь написать что-то, что вносит это изменение, а не полагаться на конфигуратор, чтобы не повторять этот процесс при установке системы в другом месте.
(Это нужно, чтобы я мог написать выражение .nix для home-manager, которое может обрабатывать темирование qt5 декларативно, но это не столь важно.)
Если вам это все еще интересно, посмотрите мою конфигурацию. Я тоже использую nix и home-manager, так что это может быть полезным. (Хотя это не совсем работает для nixos-unstable сейчас, потому что чистые приложения QT не используют правильную тему значков. Я не знаю, что делать). Вам следует сделать что-то вроде xdg.configFile."kdeglobals".text = kde;
, где kde определяется выше.
Ответ или решение
Конечно! Чтобы установить тему иконок, а также другие элементы темизации QT5 из командной строки, вы можете использовать несколько переменных окружения и конфигурационных файлов, которые позволяют настроить внешний вид приложений без необходимости в графическом интерфейсе.
-
Установка переменных окружения: Вы уже начали с использования
QT_THEME_OVERRIDE
для установки темы иXCURSOR_THEME
для установки темы курсора. Чтобы установить тему иконок, используйте переменнуюXDG_CURRENT_DESKTOP
илиQT_QPA_PLATFORMTHEME
для указания платформы темы. Например:export QT_THEME_OVERRIDE="your_theme_name" export XCURSOR_THEME="your_cursor_theme" export XDG_CURRENT_DESKTOP="your_desktop_environment"
-
Конфигурационный файл: Чтобы настроить более специфические параметры, такие как темы иконок, можно создать или отредактировать файл конфигурации KDE, который QT также использует. Вам нужно создать файл
kdeglobals
в директории~/.config/
. Пример содержимого для установки темы и иконок может выглядеть следующим образом:[General] # Установите желаемую тему colorScheme=MyColorScheme # Установите желаемую тему иконок widgetStyle=your_widget_style iconTheme=your_icon_theme
-
Применение изменений: После изменения конфигурационного файла или установки переменных окружения не забудьте перезапустить QT-приложения или, в некоторых случаях, перезагрузить систему, чтобы изменения вступили в силу.
Пример выполнения из командной строки:
echo -e "[General]\ncolorScheme=MyColorScheme\nwidgetStyle=your_widget_style\niconTheme=your_icon_theme" > ~/.config/kdeglobals
export QT_THEME_OVERRIDE="your_theme_name"
export XCURSOR_THEME="your_cursor_theme"
export XDG_CURRENT_DESKTOP="your_desktop_environment"
-
Использование
qt5ct
: Вы упомянули, что хотите избежать использования графических инструментов, но имейте в виду, чтоqt5ct
также может быть использован для сохранения конфигураций, что может упростить настройку. После первого запуска и настройки черезqt5ct
вы можете пересоздать файл конфигурации, чтобы использовать его в своих скриптах. -
Автоматизация через Nix: Если вы используете Nix и Home Manager, как вы упомянули, то можете добавить конфигурацию в свой
.nix
файл следующим образом:xdg.configFile."kdeglobals".text = '' [General] colorScheme=MyColorScheme widgetStyle=your_widget_style iconTheme=your_icon_theme '';
Эти шаги помогут вам настроить тему QT5 программного обеспечения с использованием командной строки, что особенно полезно в средах, где нет полноценного окружения рабочего стола, такого как KDE.