Вы здесь

Как сделать так, чтобы Qt-приложения подхватывали системную тему в Ubuntu?

Опубликовано: ср, 11/10/2023 - 00:45
системная тема

В Ubuntu есть возможность выбрать светлую или темную тему. Однако, к сожалению, приложения на базе фреймворка Qt не подхватывают автоматически системную тему: у них меняется только цвет заголовка окна, но не само окно. Из-за этого они выглядят не очень органично в интерфейсе Ubuntu.

Среди наиболее популярных Qt-приложений можно назвать VirtualBox, Skype, qBittorrent, keepassxc. И благодаря сегодняшнему руководству можно сделать, чтобы они подхватывали системную тему. Однако есть нюанс: поддерживаются только Qt5-приложения, то есть на тот же видеоплейер VLC, использующий Qt4, метод не окажет воздействия.

Вот, к примеру, как выглядит VirtualBox по умолчанию в Ubuntu с темной темой (как говорится, ни к селу, ни к городу):

VirtualBox в темной теме

А вот он после добавления поддержки темизации:

VirtualBox с темной темой

Он же, со светлой темой:

VirtualBox со светлой темой

Установка поддержки тем для Qt-приложений

Для добавления поддержки тем понадобится установить пакет QGnomePlatform. Для Ubuntu 22.04 сначала надо добавить репозиторий от UbuntuHandbook (для 23.04 и 23.10 это не требуется - сразу переходите к установке пакета):

sudo add-apt-repository ppa:ubuntuhandbook1/qgnomeplatform

После чего установить пакет:

sudo apt install qgnomeplatform-qt5

Если не сработало

Тема подхватится Qt5-приложением сразу после установки. Если это по каким-то причинам не произошло для какой-то программы, зайдите в настройки этого приложения и установите там использование системной темы. 

Если даже это не помогает, автор рекомендует открыть скрытый файл .profile в домашней папке пользователя (для его отображения надо нажать Ctrl+H в файловом менеджере) и добавить туда строку в конец:

export QT_QPA_PLATFORMTHEME='gnome'

После чего понадобится перелогиниться.

редактирование файла .profile

Удаление

Для удаления PPA воспользуйтесь командой:

sudo add-apt-repository --remove ppa:ubuntuhandbook1/qgnomeplatform

Далее удалим сам пакет:

sudo apt remove --autoremove qgnomeplatform-qt5

И не забудьте восстановить файл .profile, если вы его редактировали.


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