Fedora 37에서 39로 업그레이드한 후 Qt 애플리케이션(예: vlc)은 다크 모드용으로 구성된 gnome 셸 세션에서 실행될 때 더 이상 다크 모드에서 렌더링되지 않습니다.
분명히 Qt 애플리케이션은 Fedora 39에서 기본적으로 다크 모드로 렌더링되어야 합니다.https://jgrulich.cz/2023/08/22/qt-theming-in-fedora-workstation/- 하지만 내 시스템에서는 그렇지 않습니다.
Gtk 애플리케이션(예: Gnome 셸 설정)은 어두운 모드로 표시되며 Gnome 셸 구성은 다음과 같습니다.
$ gsettings get org.gnome.desktop.interface color-scheme
'prefer-dark'
Fedora 업그레이드, 자동 제거 등을 수행한 후에는 다음 adwaita 패키지가 설치됩니다:
$ rpm -qa | grep adwaita
adwaita-cursor-theme-45.0-1.fc39.noarch
adwaita-icon-theme-45.0-1.fc39.noarch
qadwaitadecorations-qt6-0.1.3-2.fc39.x86_64
qadwaitadecorations-qt5-0.1.3-2.fc39.x86_64
libadwaita-1.4.2-2.fc39.x86_64
adwaita-gtk2-theme-3.28-17.fc39.x86_64
어떻게 더 디버깅할 수 있나요?
Qt 애플리케이션에 대한 Gnome 쉘 다크 모드 통합을 수정하는 방법은 무엇입니까?
아니면 모든 Qt 애플리케이션에 대해 기본적으로 다크 모드를 구성하는 방법은 무엇입니까?
답변1
Fedora 39에는 Qt 애플리케이션에 Gnome 쉘 스타일을 제공하는 데 사용할 수 있는 adwaita-qt6/adwaita-qt5 패키지도 있습니다. 그러나 adwaita-qt 프로젝트는유지되지 않음QT_STYLE_OVERRIDE=Adwaita-Dark
이는 어두운 adwaita 테마를 강제하기 위해 뭔가가 작동하지만 어두운 모드가 불완전하다는 것을 의미합니다. 예를 들어 메뉴 표시줄은 여전히 밝습니다.
해결책은 kvantum
기본 테마가 어두운 모드 스타일인 "엔진" 테마를 설치하는 것입니다.
따라서 다음은 어두운 모드에서 vlc를 실행하기에 충분합니다.
$ export QT_STYLE_OVERRIDE=kvantum
$ vlc
또는
$ QT_STYLE_OVERRIDE=kvantum vlc
참고: Qt4와 달리 Qt5 이상 $HOME
에서는 특정 포인트 파일을 통해 스타일을 구성할 수 없습니다.일하다그리고 환경변하기 쉬운.
불행히도 kvantum의 기본 설정도 완벽하지 않습니다. 예를 들어, vlc 및 okular의 일반 패널 라벨은 재생 시간 및 남은 시간과 같이 회색 배경에 검은색 글꼴로 표시되므로 읽기가 어렵습니다.
qt5ct
또 다른 부분적인 해결책은 사용자 정의 팔레트, 즉 "더 어두운" 색상 구성표를 사용하여 Qt Fusion 스타일을 설치하고 구성하는 것입니다 .
$ QT_QPA_PLATFORMTHEME=qt5ct qt5ct
그래서:
$ head -n 6 ~/.config/qt5ct/qt5ct.conf
[Appearance]
color_scheme_path=/usr/share/qt5ct/colors/darker.conf
custom_palette=true
standard_dialogs=default
style=Fusion
다시 말하지만, Qt 프로그램이 실제로 이 모든 것을 사용하려면 환경 변수를 설정해야 합니다. QT_QPA_PLATFORMTHEME
하지만 이번에는 그렇습니다.
예:
$ QT_QPA_PLATFORMTHEME=qt5ct vlc
이는 vlc에 더 나은 어두운 모드 스타일을 제공합니다. 즉, 이제 재생 시간/남은 시간 레이블도 어두운 회색 배경에 흰색 텍스트로 표시되며 더 이상 결함이 없습니다.
그러나 okular와 같은 KDE 프로그램에서는 이 해결 방법이 작동하지 않습니다. 이는 okular가 기본 조명 모드 스타일을 사용하고 아무 것도 변경되지 않음을 의미합니다.