Есть ли способ установить тему значков QT и другие элементы темы из командной строки?

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

Я пытаюсь автоматизировать процесс темирования программ 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 из командной строки, вы можете использовать несколько переменных окружения и конфигурационных файлов, которые позволяют настроить внешний вид приложений без необходимости в графическом интерфейсе.

  1. Установка переменных окружения: Вы уже начали с использования 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"
  2. Конфигурационный файл: Чтобы настроить более специфические параметры, такие как темы иконок, можно создать или отредактировать файл конфигурации KDE, который QT также использует. Вам нужно создать файл kdeglobals в директории ~/.config/. Пример содержимого для установки темы и иконок может выглядеть следующим образом:

    [General]
    # Установите желаемую тему
    colorScheme=MyColorScheme
    # Установите желаемую тему иконок
    widgetStyle=your_widget_style
    iconTheme=your_icon_theme
  3. Применение изменений: После изменения конфигурационного файла или установки переменных окружения не забудьте перезапустить 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"
  1. Использование qt5ct: Вы упомянули, что хотите избежать использования графических инструментов, но имейте в виду, что qt5ct также может быть использован для сохранения конфигураций, что может упростить настройку. После первого запуска и настройки через qt5ct вы можете пересоздать файл конфигурации, чтобы использовать его в своих скриптах.

  2. Автоматизация через Nix: Если вы используете Nix и Home Manager, как вы упомянули, то можете добавить конфигурацию в свой .nix файл следующим образом:

    xdg.configFile."kdeglobals".text = ''
     [General]
     colorScheme=MyColorScheme
     widgetStyle=your_widget_style
     iconTheme=your_icon_theme
    '';

Эти шаги помогут вам настроить тему QT5 программного обеспечения с использованием командной строки, что особенно полезно в средах, где нет полноценного окружения рабочего стола, такого как KDE.

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

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