2025-12-27

【備忘録】PySide6 のダークモード

Fedora Linux は Red Hat 社が支援するコミュニティ Fedora Project で開発されている Linux ディストロです。このディストロは、最新の技術を積極的に取り込むことで知られています。Fedora Linux の開発成果は CentOS Stream に取り込まれます。ここでテストを経て最終的に Red Hat Enterprise Linux, RHEL へ反映されます。Fedora Linux は、おおむね春と秋の年二回の頻度で新しい版がリリースされています。

メインの PC には Fedora Linux Workstaion(以下 Fedora と呼びます)をインストールしています。そのためデスクトップ環境は GNOME で、ダークモード(暗いスタイル)にして利用しています。

GUI アプリを作るときには、もっぱら Qt for Python (PySide6) を利用しているのですが、デスクトップがダークモードでも Qt のウィジェットには反映されません。Ubuntu で同じことをするとダークモードが反映されるのに Fedora ではできません。謎でした。

Fedora Linux 43 Workstation Ubuntu 25.10

PySide6 のウィジェットにデスクトップのダークモードが反映されないことは、それほど深刻な問題ではなかったので放置していました。それでも、マルチプラットフォーム対応のアプリを作っていると、見映えの違いはやっぱり気になるので、いまごろになって生成 AI (Microsoft Copilot) に尋ねてみました。

Microsoft Copilot とのやり取りを抜粋してまとめました。

📌 1. Fedora 公式:「No custom Qt theming for Fedora Workstation」

Fedora 40 以降、QGnomePlatform と adwaita-qt をデフォルトから外すと公式に決定されました(Fedora 39 では非推奨 → Fedora 40 で正式削除)。

理由は Fedora 公式ページに明記されています:

  • これらのプロジェクトは 「outdated and semi-occasionally broken」
  • Fedora Workstation では Qt upstream の標準テーマに戻す方が良い
  • メンテナンスコストが高く、安定性が確保できない

【情報源】

📌 2. GitHub(FedoraQt/adwaita-qt):プロジェクトが非メンテ状態

adwaita-qt の GitHub リポジトリには、はっきりとこう書かれています:

“Adwaita-qt project is unmaintained and no longer actively developed.”

つまり、開発者側が 開発終了を宣言しています。

【情報源】

【補足】

Fedora 39 以前は下記のようなやり方で、デスクトップのモードに追従できたようです。知りませんでした。

sudo dnf install adwaita-qt6

環境変数を設定:

export QT_QPA_PLATFORMTHEME=gnome

📌 3. 開発者 Jan Grulich 氏のブログ

QGnomePlatform と adwaita-qt の主要開発者である Jan Grulich 氏が、これらのプロジェクトの背景と課題を詳しく説明しています。

ポイント:

  • Qt と GNOME の統合は非常に複雑
  • GNOME の UI 変更に追従するのが困難
  • Qt upstream の仕様変更で壊れやすい
  • Fedora でデフォルトにするには負担が大きい

【情報源】

📌 まとめ:なぜ adwaita-qt6 は廃止されたのか?

理由 説明
メンテナンス不能 開発者がプロジェクトを維持できなくなった(GitHub で明言)
壊れやすい GNOME や Qt の更新で頻繁に壊れる(Fedora 公式が指摘)
Fedora の方針変更 GNOME との統合をやめ、Qt upstream の標準テーマに戻す方針へ
開発者の負担 Qt と GNOME の橋渡しは技術的に非常に難しく、継続が困難

自分なりの結論

デスクトップを KDE Plasma に変更すれば、このような問題は解消されます。

ブログの内容の確認を Microsoft Copilot にお願いしたら、いくつもダメ出しがありましたが、そのうちの一つを追記します。

🔍 KDE Plasma に切り替えた場合のメリット

  • KDE Plasma は Qt のネイティブ環境
  • Qt6 が KDE のテーマ API を直接参照
  • GNOME のような “テーマブリッジ” が不要
  • PySide6 の外観が最も安定する

しかし GNOME のミニマリズムな使い方にすっかり慣れてしまって、これが快適だと思っています。そんなわけで、メインのデスクトップ環境を Windows ライクなものに戻せそうにはありません。

Qt の外観については、今まで通り割り切って利用することにします。

最後に落ち穂拾いです。

🌙 Ubuntu で PySide6 がダークモードを拾う理由

Ubuntu は GNOME ですが、Qt アプリの統合を強化しているため:

  • adwaita-qt6 が標準で入っている
  • GNOME のダークモード設定を Qt に橋渡しする仕組みが有効

そのため PySide6 も自然にダークモードになります。

【補足】

ここは論拠が薄かったので Microsoft Copilot と議論を重ねました。結局 Fedora は upstream-first で独自パッチを極力持たない方針であるのに対し、Ubuntu は ユーザー体験のためなら upstream に依存しない文化があるという違いに帰結してしまいました。これが本題ではないのでこのぐらいにしておきます。

参考サイト

  1. Fedora Linux | The Fedora Project
  2. Qt と GTK アプリケーションの外観の統合 - ArchWiki

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

0 件のコメント: