Qtダークモードの設定

Qtダークモードの設定

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がデフォルトの照明モードスタイルを使用し、何も変更されないことを意味します。

関連情報