「Qt と GTK アプリケーションの外観の統合」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(move section.)
(→‎Kvantum に移植された GTK テーマ: 未翻訳の部分を翻訳)
 
(4人の利用者による、間の29版が非表示)
2行目: 2行目:
 
[[Category:視覚効果]]
 
[[Category:視覚効果]]
 
[[en:Uniform look for Qt and GTK applications]]
 
[[en:Uniform look for Qt and GTK applications]]
[[es:Uniform look for Qt and GTK applications]]
 
[[it:Uniform look for Qt and GTK applications]]
 
 
[[ru:Uniform look for Qt and GTK applications]]
 
[[ru:Uniform look for Qt and GTK applications]]
[[uk:Uniform look for Qt and GTK applications]]
 
 
[[zh-hans:Uniform look for Qt and GTK applications]]
 
[[zh-hans:Uniform look for Qt and GTK applications]]
 
{{Related articles start}}
 
{{Related articles start}}
{{Related|GTK+}}
+
{{Related|GTK}}
 
{{Related|Qt}}
 
{{Related|Qt}}
 
{{Related articles end}}
 
{{Related articles end}}
[[Qt]] と [[GTK+]] ベースのプログラムは異なるウィジェットツールキットを使ってグラフィカルユーザーインターフェースを表示しています。それぞれにデフォルトで異なるテーマ・スタイル・アイコンセットが存在するため、"ルックアンドフィール"は著しく乖離してしまいます。この記事ではデスクトップエクスペリエンスを統合するために Qt と GTK+ のアプリケーションの外観を似たようにする方法を説明しています。
+
[[Qt]] と [[GTK]] ベースのプログラムは異なるウィジェットツールキットを使ってグラフィカルユーザーインターフェースを表示しています。それぞれにデフォルトで異なるテーマ・スタイル・アイコンセットが存在するため、"ルックアンドフィール"は著しく乖離してしまいます。この記事ではデスクトップエクスペリエンスを統合するために Qt と GTK のアプリケーションの外観を似たようにする方法を説明しています。
   
 
== 概要 ==
 
== 概要 ==
22行目: 19行目:
   
 
外観の統一のために取れる方法は様々です:
 
外観の統一のために取れる方法は様々です:
  +
* 下で説明しているツールを使って [[#Qt と GTK 両方のためのスタイル|GTK と Qt のスタイル]]を別個に修正し、同じような見た目のテーマ (スタイル・カラー・アイコン・カーソル・フォント) を選択する。
 
 
* 特殊な[[#テーマエンジン|テーマエンジン]]を使って、他のグラフィカルツールキットの見た目をメインのツールキットに合うように仲介させる。
 
* 特殊な[[#テーマエンジン|テーマエンジン]]を使って、他のグラフィカルツールキットの見た目をメインのツールキットに合うように仲介させる。
* 下で説明しているツールを使って [[#Qt と GTK+ 両方のためのスタイル|GTK+ と Qt のスタイル]]を別個に修正し、同じような見た目のテーマ (スタイル・カラー・アイコン・カーソル・フォント) を選択する。
 
   
== Qt と GTK+ 両方のためのスタイル ==
+
== Qt と GTK 両方のためのスタイル ==
   
統合のために、Qt と GTK+ 両方で提供されているウィジェットスタイルのセットが存在し、全ての主要なバージョンが含まれています。このようなスタイルを使うことで、アプリケーションが使っているツールキットに関係なく全てのアプリケーションの見た目を一つにすることが可能です。
+
統合のために、Qt と GTK 両方で記述・提供されているウィジェットスタイルのセットが存在し、全ての主要なバージョンが含まれています。このようなスタイルを使うことで、アプリケーションが使っているツールキットに関係なく全てのアプリケーションの見た目を一つにすることが可能です。
   
  +
{{Tip|root アプリケーションに対してユーザ定義のスタイルを適用したい場合もあるでしょう。[[GTK#root アプリケーションにテーマが適用されない]] と [[Qt#root アプリケーションにテーマが適用されない]] を参照してください。}}
{{Note|1=バージョン 3.16 から、GTK+ 3 は CSS を使用しないテーマを [https://bbs.archlinux.org/viewtopic.php?pid=1518404#p1518404 サポートしなくなりました] 。そのため Oxygen-Gtk などのスタイルはもはや [https://bugs.kde.org/show_bug.cgi?id=340288 使うことができなくなっています] 。}}
 
  +
{{Note|1=バージョン 3.16 から、GTK 3 は CSS を使用しないテーマを [https://bbs.archlinux.org/viewtopic.php?pid=1518404#p1518404 サポートしなくなりました]。そのため Oxygen-Gtk などのスタイルはもはや [https://bugs.kde.org/show_bug.cgi?id=340288 使うことができなくなっています]。}}
   
  +
=== GTK プログラム向けの元は Qt ベースだったテーマ ===
=== Breeze ===
 
   
  +
もともと Qt 環境用に作られたテーマだったが、後に GTK に移植されたテーマがあります。
Breeze は Plasma 5 のデフォルトの Qt スタイルです。Qt5 のスタイルは {{Pkg|breeze}} パッケージで、Qt4 のスタイルは {{AUR|breeze-kde4}} パッケージでインストールできます。Breeze と似ている GTK+ 2 と GTK+ 3 のテーマは {{Pkg|breeze-gtk}} パッケージでインストールできます。
 
   
  +
==== Breeze ====
パッケージをインストールしたら、[[GTK+#設定ツール|GTK+ の設定ツール]]を使って GTK+ のテーマを変更してください。
 
   
  +
Breeze は KDE Plasma のデフォルトの Qt スタイルであり、{{Pkg|breeze}} パッケージでインストールできます。GTK 2 と GTK 3 のテーマは {{Pkg|breeze-gtk}} パッケージでインストールできます。
KDE Plasma を利用している場合は、KDE システム設定の ''System Settings > Application Style > Configure GNOME/GTK Application Style…'' にて GTK の設定が反映されるようにしてください。
 
もしくは、{{Pkg|kde-gtk-config}} をインストールしてコマンドラインから実行して設定することもできます。
 
   
  +
パッケージをインストールしたら、[[GTK#設定ツール|GTK の設定ツール]]を使って GTK のテーマを変更してください。
=== Adwaita ===
 
   
  +
KDE Plasma を使用している場合、{{pkg|kde-gtk-config}} をインストールし、ログインし直して ''KDE システム設定 > 外観 > アプリケーションスタイル > GNOME/GTK のアプリケーションスタイルを設定…'' を開いてください。KDE システム設定におけるフォント、アイコン、カーソル、そしてウィジェットのスタイルセットは、自動的に GTK の設定に適用されます。GTK テーマだけは、前述のモジュールを使って手動で設定する必要があります。
Adwaita はデフォルトの GNOME のテーマです。GTK+ 3 のテーマは標準で含まれており、GTK+ 2 のテーマは {{Pkg|gnome-themes-extra}} に含まれています。デフォルトでは、Qt アプリケーションには GTK+ 2 のテーマが使われます ([[#QGtkStyle]] を使用)。
 
   
  +
=== Qt プログラム向けの元は GTK ベースだったテーマ ===
ネイティブの Qt テーマを GTK+ 3 の Adwaita のようにしたいときは [https://github.com/MartinBriza/adwaita-qt adwaita-qt] を見て下さい。Qt 5 バージョンは {{Aur|adwaita}}{{Broken package link|パッケージが存在しません}} パッケージで、Qt 4 バージョンは {{Aur|adwaita-qt4}} パッケージで[[インストール]]できます。
 
   
  +
もともと GTK 環境用に作られたテーマだったが、後に Qt に移植されたテーマがあります。
デフォルトに設定するときは、Qt 5 では {{Pkg|qt5ct}} パッケージか、{{ic|1=QT_STYLE_OVERRIDE=adwaita}} [[環境変数]]を使います。
 
Qt 4 では ({{AUR|qt4}} パッケージに含まれている) {{ic|qtconfig-qt4}} を使います。
 
   
=== Kvantum ===
+
==== Adwaita ====
  +
Kvantum {{Pkg|kvantum-qt5}} は SVG ベースの Qt5 テーマです。Adapta, Arc, Ambiance, Materia GTK テーマと同様の Qt テーマが含まれています。
 
  +
{{Out of date|Adwaita-qt プロジェクトはメンテナンスされておらず、もはや活発に開発されていません。[https://github.com/FedoraQt/adwaita-qt#readme]}}
  +
  +
Adwaita はデフォルトの GNOME テーマです。GTK 3 バージョンは {{Pkg|gtk3}} パッケージに含まれています。一方、GTK 2 バージョンは {{Pkg|gnome-themes-extra}} にあります。[https://github.com/MartinBriza/adwaita-qt adwaita-qt] は Adwaita テーマの Qt 移植です。GTK 2 テーマを模倣する [[#QGtkStyle]] とは異なり、adwaita-qt は GTK 3 Adwaita に見えるように作られたネイティブな Qt スタイルを提供します。Qt 4、5、そして 6 のバージョンはそれぞれパッケージ {{AUR|adwaita-qt4}}、{{AUR|adwaita-qt5-git}}、そして {{AUR|adwaita-qt6-git}} で[[インストール]]できます。
  +
  +
Qt スタイルをデフォルトとして設定するには:
  +
  +
* Qt 5 の場合、[[環境変数#グラフィック環境|環境変数]] {{ic|1=QT_STYLE_OVERRIDE=adwaita}} を設定することで有効化できます。あるいは、{{Pkg|qt5ct}} パッケージを使用してください。より詳細な手順は、[[Qt#KDE Plasma 以外の環境での Qt 5/6 アプリケーションの設定]] を参照してください。
  +
* Qt 4 の場合、''Qt Configuration'' ({{ic|qtconfig-qt4}}) で有効化できます。''Appearance > GUI Style'' で ''adwaita'' を選択してください。あるいは、{{ic|/etc/xdg/Trolltech.conf}} (システム全体) か {{ic|~/.config/Trolltech.conf}} (ユーザ固有) を編集してください:
  +
  +
{{hc|~/.config/Trolltech.conf|2=
  +
...
  +
[Qt]
  +
style=adwaita
  +
...
  +
}}
  +
  +
==== Kvantum に移植された GTK テーマ ====
  +
  +
Kvantum ({{Pkg|kvantum}}) は、Adapta、Arc、Ambiance、Libadwaita、そして Materia などいくつかの人気な GTK テーマのバージョンを含む、様々な組み込みスタイルが同梱されている Qt6 用の SVG ベースのスタイルカスタマイザーです。その他のテーマは [https://store.kde.org/browse?cat=123 KDE Store で]入手可能です。Qt5 に関しては、さらに {{Pkg|kvantum-qt5}} パッケージも必要です。
  +
  +
Kvantum は、Qt プラットフォームのテーマとしてではなく、Qt スタイルとして機能します。Kvantum をすべての Qt アプリケーションに対して設定するには、Qt6 に対しては {{pkg|qt6ct}} で、Qt5 に対しては {{pkg|qt5ct}} で設定してください。あるいは、環境変数 {{ic|1=QT_STYLE_OVERRIDE=kvantum}} を使うこともできます。
  +
  +
===== テーマ設定 =====
  +
  +
([https://github.com/GabePoel/KvLibadwaita KvLibadwaita] などの) Kvantum の[https://github.com/tsujan/Kvantum/blob/master/Kvantum/doc/Theme-Config.pdf テーマバリアントを設定する]には、設定ファイルを編集してください:
  +
  +
{{hc|/etc/xdg/Kvantum/kvantum.kvconfig (あるいは ~/.config/Kvantum/kvantum.kvconfig)|2=
  +
...
  +
theme=KvLibadwaita
  +
...
  +
}}
  +
  +
または、''kvantummanager'' GUI を使用してください。
   
 
== テーマエンジン ==
 
== テーマエンジン ==
  +
テーマエンジンは複数のツールキット間でテーマ (アイコンは除く) を翻訳する薄いレイヤー API として考えることができます。これらのエンジンはプロセスに余分なコードを追加するため、この種の解決方法がネイティブのスタイルを使うのと比べ最適なのかどうかは議論の余地があります。
 
  +
''テーマエンジン''は、1つあるいは複数のツールキット間でテーマ (アイコンは除く) を翻訳する薄いレイヤー API と考えることができます。これらのエンジンはプロセスに余分なコードを追加するため、この種の解決方法がネイティブのスタイルを使うのと比べ最適なのかどうかは議論の余地があります。
   
 
=== QGtkStyle ===
 
=== QGtkStyle ===
   
{{Note|QGtkStyle は {{Pkg|qt5-base}} Qt 5.7.0 [https://github.com/qtproject/qtbase/commit/899a815414e95da8d9429a4a4f4d7094e49cfc55] から除去され、 {{AUR|qt5-styleplugins}} [https://github.com/qtproject/qtstyleplugins/commit/102da7d50231fc5723dba6e72340bef3d29471aa] に追加されました。}}
+
{{Note|QGtkStyle は {{Pkg|qt5-base}} 5.7.0 [https://github.com/qtproject/qtbase/commit/899a815414e95da8d9429a4a4f4d7094e49cfc55] から除去され、{{AUR|qt5-styleplugins}} [https://github.com/qtproject/qtstyleplugins/commit/102da7d50231fc5723dba6e72340bef3d29471aa] に追加されました。}}
   
{{Warning|GTK+ 2 のテーマによっては、フォントが透過してしまったりウィジェットがうまく調和しないなどのレンダリング問題が発生することがあります。}}
+
{{Warning|GTK 2 のテーマによっては、フォントが透過してしまったりウィジェットがうまく調和しないなどのレンダリング問題が発生することがあります。}}
   
この Qt スタイルは GTK+ 2 を使って全てのコンポーネントを表示することで [[GNOME]] などの GTK+ ベースの環境とブレンドします。Qt 4.5 から、このスタイルは Qt に含まれているようになっています。{{Pkg|gtk2}} をインストール・設定してください
+
この Qt スタイルは GTK 2 を使って全てのコンポーネントをレンダリングすることで[[GNOME]] やそれと似たような GTK ベースの環境とブレンドします。Qt 4.5 から、このスタイルは Qt に含まれています。{{Pkg|gtk2}} をインストール・設定する必要があります
   
QGtkStyle は Cinnamon, GNOME, Xfce におけるデフォルトの Qt4 スタイルです。また Cinnamon, GNOME, MATE, LXDE, Xfce におけるデフォルトの Qt5 スタイルでもあります。他の環境では:
+
QGtkStyle は CinnamonGNOME、そして Xfce におけるデフォルトの Qt4 スタイルです。また CinnamonGNOMEMATELXDE、そして Xfce におけるデフォルトの Qt5 スタイルでもあります。他の環境では:
   
* Qt4 の場合、''Qt Configuration'' ({{ic|qtconfig-qt4}}) で有効にすることができます。''Appearance > GUI Style'' から ''GTK+'' を選択してください。もしくは、{{ic|/etc/xdg/Trolltech.conf}} (システム全体) あるいは {{ic|~/.config/Trolltech.conf}} (ユーザー個別) ファイルを編集してください:
+
* Qt4 の場合、''Qt Configuration'' ({{ic|qtconfig-qt4}}) で有効にすることができます。''Appearance > GUI Style'' から ''GTK'' を選択してください。もしくは、{{ic|/etc/xdg/Trolltech.conf}} (システム全体) あるいは {{ic|~/.config/Trolltech.conf}} (ユーザー個別) ファイルを編集してください:
   
 
{{hc|~/.config/Trolltech.conf|2=
 
{{hc|~/.config/Trolltech.conf|2=
75行目: 104行目:
 
}}
 
}}
   
* Qt 5 の場合、{{AUR|qt5-styleplugins}} をインストールし、次の[[環境変数#グラフィカルアプリケーション|環境変数]]を設定することで有効にできます: {{ic|1=QT_QPA_PLATFORMTHEME='gtk2'}}
+
* Qt 5 の場合、{{AUR|qt5-styleplugins}} をインストールし、次の[[環境変数#グラフィック環境|環境変数]]を設定することで有効にできます: {{ic|1=QT_QPA_PLATFORMTHEME=gtk2}}
   
  +
* Qt 6 の場合、{{AUR|qt6gtk2}} をインストールして {{Pkg|qt6ct}} で ''qt6gtk2'' を選択するか、あるいは 次の環境変数を設定することで有効化できます: {{ic|1=QT_QPA_PLATFORMTHEME=gtk2}}
完全な統合をするには、GTK+ 2 と GTK+ 3 の両方をサポートしている [[GTK+#テーマ|GTK+ テーマ]]を設定する必要があります。上の設定を有効にすると描画に不具合が生じる場合、GTK+ テーマを変更してください。
 
   
  +
完全な統合のために、設定された [[GTK#テーマ|GTK テーマ]]が GTK 2 と GTK 3 の両方をサポートしていることを確認してください。GTK2 を使用するように Qt を設定したあとにテーマのレンダリングの一貫性が失われてしまった場合、{{AUR|gtk-theme-switch2}} をインストールしテーマを選択してください。優先テーマが {{ic|/usr/share/themes}} にインストールされていることも確認するべきでしょう。アクティブな GTK 2 テーマは {{ic|$XDG_DATA_HOME/themes}} ディレクトリからスキャンされないからです。
=== QGnomePlatform ===
 
   
  +
=== QGnomePlatform ===
この Qt 5 プラットフォームテーマでは、GNOME での外観の設定が Qt アプリケーションに適用されます。{{AUR|qgnomeplatform}} か {{AUR|qgnomeplatform-git}} を[[インストール]]した上で、別途スタイルを[[Qt と GTK アプリケーションの外観の統合#Qt と GTK+ 両方のためのスタイル]]を参考にインストールしてください。
 
   
  +
{{Out of date|QGnomePlatform プロジェクトはメンテナンスされておらず、もはや活発に開発されていません。[https://github.com/FedoraQt/QGnomePlatform#readme]}}
GNOME 3.20 以降では自動的に有効化されます。それ以前では {{ic|1=QT_QPA_PLATFORMTHEME=gnome}} と設定すると有効になります。
 
   
  +
この Qt 5 プラットフォームテーマでは、GNOME での外観の設定が Qt アプリケーションに適用されます。{{AUR|qgnomeplatform-qt5-git}} と {{AUR|qgnomeplatform-qt6-git}} でインストールできます。これは Qt スタイル自体は提供せず、代わりに [[#Qt と GTK 両方のためのスタイル|Qt と GTK の両方をサポートするスタイル]]を必要とします。
== ヒントとテクニック ==
 
   
  +
バージョン 3.20 以降の GNOME では、このプラットフォームテーマは自動的に有効化されます。他のシステムでは、次の[[環境変数#グラフィック環境|環境変数]]を設定することで有効化できます: {{ic|1=QT_QPA_PLATFORMTHEME=gnome}}。
=== Qt アプリで GTK+ のアイコンテーマを使う ===
 
   
  +
=== QAdwaitaDecorations ===
   
  +
QAdwaitaDecorations は、[[Wayland]] に対して Adwaita ライクなクライアントサイド装飾を実装する Qt の装飾プラグインです。これは {{AUR|qadwaitadecorations-qt5}} と {{AUR|qadwaitadecorations-qt6}} でインストールできます。インストール後、{{ic|1=QT_WAYLAND_DECORATION=adwaita}} 環境変数を設定してください。
If you are running [[Plasma]], run {{Pkg|kde-gtk-config}} and select the icon-theme under ''System Settings > Application Style > GTK''.
 
   
  +
== ヒントとテクニック ==
If you are using [[GNOME]], run {{Pkg|dconf-editor}} and change the {{ic|icon-theme}} key under ''org > gnome > desktop > interface'' to your preferred icon theme.
 
   
  +
=== Qt アプリで GTK のアイコンテーマを使う ===
If you are not using a [[Desktop environment]], for example if you are running a minimal system with {{Pkg|i3-wm}}, [[install]] {{Pkg|dconf-editor}} and set the icon-theme as explained above.
 
You might also have to set the value of {{ic|DESKTOP_SESSION}} in your profile. See [[Environment variables#Defining variables]] for the possible ways to obtain the desired result.
 
   
  +
[[Plasma]] を使っている場合は、{{Pkg|kde-gtk-config}} を実行して、''KDE システム設定 > アプリケーションスタイル > GTK'' でアイコンテーマを選択してください。
{{Note| If the icon theme was not applied, you might want to check if the name that you entered of your preferred theme, was in the correct format. For example, if you want to apply the currently active icon theme to your QT applications, you can find the correct format of its name with the command:
 
  +
  +
[[GNOME]] を使っている場合は、{{Pkg|dconf-editor}} を実行して、''org > gnome > desktop > interface'' にある {{ic|icon-theme}} キーをあなたの好みのアイコンテーマに変更してください。
  +
  +
[[デスクトップ環境]] を使っていない場合、例えば {{Pkg|i3-wm}} で最小限のシステムを動かしているのなら、{{Pkg|dconf-editor}} を[[インストール]]して、上記の説明に従ってアイコンテーマを設定してください。
  +
また、プロファイルの {{ic|DESKTOP_SESSION}} の値も設定する必要があるかもしれません。望ましい結果を得るために可能な方法については [[環境変数#変数の定義]] を参照してください。
  +
  +
{{Note|アイコンテーマが適用されない場合、入力したテーマ名が正しい形式であったかどうかを確認したい場合があります。例えば、現在アクティブなアイコンテーマを QT アプリケーションに適用したい場合、コマンドでその名前の正しい形式を調べることができます:
   
 
{{bc|1=$ awk -F= '/icon-theme/ {print $2}' ~/.gtkrc-2.0}}
 
{{bc|1=$ awk -F= '/icon-theme/ {print $2}' ~/.gtkrc-2.0}}
103行目: 139行目:
 
}}
 
}}
   
  +
=== KDE Plasma で GTK3 アプリケーションにタイトルバーとフレームを追加する ===
=== Add Title bar and frame to GTK3 applications under KDE Plasma ===
 
   
  +
GNOME/GTK アプリケーションを KDE/Plasma タイトルバーとフレームで表示するには、[[GTK#クライアントサイドデコレーション]]で説明されているようにクライアントサイドの装飾を無効にします。
To have Gnome/GTK applications display with a KDE/Plasma title bar and frame, install {{AUR|gtk3-nocsd-git}} and restart your window manager to load the updated library path.
 
   
  +
=== KDE Plasma での GTK アプリのサブピクセルレンダリングを改善 ===
You can also run Gtk application with the wrapper:
 
$ gtk3-nocsd gedit
 
   
  +
こちらを参照 [[フォント設定#LCD フィルター]]
=== Improve subpixel rendering of GTK apps under KDE Plasma ===
 
   
  +
=== KDE Plasma での一貫性のあるファイルダイアログ ===
See [[Font configuration#LCD filter]].
 
   
  +
{{Accuracy|GTK は {{ic|1=GTK_USE_PORTAL=1}} を {{ic|1=GDK_DEBUG=portals}} に置き換えたようです。 https://gitlab.gnome.org/GNOME/gtk/-/blob/636827800525770715bba96671edb2fc0234ccc2/NEWS#L34}}
=== Consistent file dialog ===
 
   
  +
同じファイルダイアログを表示させるために、[[XDG デスクトップ ポータル]] を使うことができます。
In order to have the same file dialog, one can use XDG Portals.
 
   
[[Install]] {{Pkg|xdg-desktop-portal}} and {{Pkg|xdg-desktop-portal-kde}} and set {{ic|1=GTK_USE_PORTAL=1}} [[environment variable]] in /etc/environment.
+
{{Pkg|xdg-desktop-portal}} {{Pkg|xdg-desktop-portal-kde}} を[[インストール]]し、[[環境変数]] {{ic|1=GTK_USE_PORTAL=1}} を設定してください。
   
  +
現在、全ての GTK アプリケーションが KDE ファイルダイアログを正しくサポートしているわけではないことに注意してください。
Note that currently not all gtk applications support kde file dialogs correctly. For example, [[Thunderbird]] supports it normally.
 
   
Applications using electron should use at least electron 14 (see [https://github.com/electron/electron/pull/19159 #19159]) and properly implement this function.<br>
+
Electron を使用するアプリケーションは、最低でも Electron 14 を使用していて ([https://github.com/electron/electron/pull/19159 #19159] を参照)、この機能を適切に実装している必要があります。
vscode has a pull request for fixing a problem, see [https://github.com/microsoft/vscode/pull/126113 #126113].
 
   
  +
[[VSCode]] には問題を修正するためのプルリクエストがあります。[https://github.com/microsoft/vscode/pull/126113 #126113] を参照してください。
Meld application from official repository version 3.20.3-1 still opens gtk file picker; version 3.21.1 from {{AUR|meld-git}} opens kde file picker, but fails to open directories, see [https://gitlab.gnome.org/GNOME/meld/-/issues/525 bug report] for more info.
 
   
GIMP has not implemented use of the portal yet, see [https://gitlab.gnome.org/GNOME/gimp/-/issues/1830 bug report].
+
[[GIMP]] portal の使用をまだ実装していません。[https://gitlab.gnome.org/GNOME/gimp/-/issues/1830 バグレポート]を参照してください。
   
  +
{{Note|依然として多くの GTK アプリケーションが portal を正しく実装していません (放棄されたアプリケーション、あるいは作者が他のタスクに集中している)。少なくとも Dolphin から nautilus へブックマークを同期させることで、そのようなアプリケーションからのファイル選択を単純化させることができます。以下のコマンドを使用してください:
{{Note| There are still lots of gtk applications that do not implement portal properly (abandoned applications, or authors are focused on other tasks). To simplify file picking from such applications, you can at least synchronize bookmarks from dolphin to nautilus. Use this command:
 
  +
{{bc|1=awk -F\" '/<bookmark href=\"file/ {print $2}' < $HOME/.local/share/user-places.xbel > $HOME/.config/gtk-3.0/bookmarks}}
 
  +
{{bc|1=$ awk -F\" '/<bookmark href="file/ {print $2}' < $HOME/.local/share/user-places.xbel > $HOME/.config/gtk-3.0/bookmarks}}
Alternatively, use {{AUR|bookmarksync-git}} for that purpose. There you can manually edit and sync bookmarks to both sides.
 
  +
  +
あるいは、{{AUR|bookmarksync-git}} をそのような目的で使用することができます。これを使用すると、ブックマークを編集したり、両方向へ同期させたりできます。
 
}}
 
}}
  +
  +
==== アプリケーション固有の設定 ====
  +
  +
環境変数による方法に加えて、一部の GTK アプリケーションには XDG ポータルを強制的に使用させるための独自の設定が存在します:
  +
  +
* [[Firefox]] — [[Firefox#XDG Desktop Portal との統合]] を参照
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
   
=== GTK+ アプリでテーマが使えない ===
+
=== GTK アプリでテーマが使えない ===
   
設定したスタイルやテーマエンジンが GTK アプリケーションで表示されない場合は、おそらく GTK+ の設定ファイルが何らかの理由でロードされていません。次を実行することでシステムが設定ファイルをどこにあると期待しているか確認できます:
+
設定したスタイルやテーマエンジンが GTK アプリケーションで表示されない場合は、おそらく GTK の設定ファイルが何らかの理由でロードされていません。次を実行することでシステムが設定ファイルをどこにあると期待しているか確認できます:
 
$ export | grep gtk
 
$ export | grep gtk
   
通常期待されるファイルは GTK1 は {{ic|~/.gtkrc}}、GTK+ 2.x は {{ic|~/.gtkrc2.0}} または {{ic|~/.gtkrc2.0-kde}} です。
+
通常期待されるファイルは GTK1 は {{ic|~/.gtkrc}}、GTK 2.x は {{ic|~/.gtkrc2.0}} または {{ic|~/.gtkrc2.0-kde}} です。
   
=== システムをアップグレードすると SVG (Breeze) アイコンが GTK+ アプリで使用されない ===
+
=== システムをアップグレードすると SVG (Breeze) アイコンが GTK アプリで使用されない ===
   
次のコマンドを実行して、gdk-pixbuf のキャッシュ情報を更新してみてください [https://developer.gnome.org/gdk-pixbuf/stable/gdk-pixbuf-query-loaders.html]:
+
次のコマンドを実行してみてください:
 
# gdk-pixbuf-query-loaders --update-cache
 
# gdk-pixbuf-query-loaders --update-cache
   
  +
=== GTK アプリが KDE システム設定を完全には使用しない ===
=== Flatpak Qt apps do not use Gnome Adwaita dark theme ===
 
  +
  +
GTK アプリで [[Plasma]] 設定をさらに統合するには、{{Pkg|gnome-settings-daemon}}、{{Pkg|gsettings-desktop-schemas}}、および {{Pkg|gsettings-qt}} を[[インストール]]する必要があるかもしれません。これにより、GTK に適切な Qt バインディングが提供されます。
   
  +
=== kde-gtk-config の "システム設定 > アプリケーションスタイル > GTK" メニューが無い ===
If you switched your theme to Adwaita-dark and Flatpak Qt applications still use the light version, install the required KStyle:
 
   
  +
{{pkg|kde-gtk-config}} が壊れてシステム設定から "アプリケーションスタイル > GTK" メニューが無くなった場合、{{pkg|lxappearance}} や {{Pkg|nwg-look}} のような [[GTK#設定ツール|GTK 設定ツール]]を選ぶと GTK 2 と GTK 3 のスタイルを構成できるようになります。
# flatpak install flathub org.kde.KStyle.Adwaita
 
  +
{{pkg|lxappearance}} は LXDE プロジェクト由来ですが、デスクトップに依存していません (つまり、LXDE デスクトップの他のパーツを必要としません)。{{Pkg|nwg-look}} は GTK3 設定エディタであり、wlroots ベースの Wayland 環境で適切に動作するように設計されています。nwg-look のルックアンドフィールは LXAppearance による影響を強く受けていますが、いくつかの不便さからユーザを開放することを意図しています。
   
  +
=== Dolphin のテーマが Nautilus と良くマッチしない ===
=== Qt apps run on GNOME Wayland have a non-matching window decoration look, even after setting a Qt theme ===
 
   
  +
[[Dolphin#フォルダビューの背景色がシステムのテーマと合わない|フォルダビューの背景色がシステムのテーマと合わない]] のセクションで、変な色使いの対処法を確認してください。
In order to have a matching window decoration look, you have to install {{AUR|qgnomeplatform}}, and set the following [[Environment variables#Graphical environment|environment variable]]: {{ic|1=QT_QPA_PLATFORMTHEME='gnome'}}
 
This fix is guaranteed to work with Adwaita or Adwaita-dark.
 
   
=== GTK apps do not fully use KDE system settings ===
+
=== KDE Plasma XDG Desktop Portal が使用されない ===
   
  +
[[XDG デスクトップ ポータル#デスクトップ環境を強制する]] 章に書かれてあることに従い、{{ic|1=XDG_CURRENT_DESKTOP=KDE}} 環境変数を設定してください。
To further integrate [[Plasma]] settings on GTK apps, one may want to [[install]] {{Pkg|gnome-settings-daemon}}, {{Pkg|gsettings-desktop-schemas}} and {{Pkg|gsettings-qt}}. This will offer proper Qt bindings for GTK.
 
   
  +
=== Qt5: kvantum is not available as a style in the Qt settings app ===
=== kde-gtk-config "System Settings > Application Style > GTK" menu missing ===
 
   
  +
{{pkg|kvantum-qt5}} がインストールされていることを確認してください。
When {{pkg|kde-gtk-config}} breaks and the "Application Style > GTK" menu is missing from System Settings, it is possible to choose [[GTK#Configuration tools|GTK configuration tools]] like {{pkg|lxappearance}} to be able to configure GTK 2 and GTK 3 styles.
 
It is desktop independent even if it comes from the LXDE project (it does not require other parts of the LXDE desktop).
 
   
  +
{{TranslationStatus|Uniform look for Qt and GTK applications|2024-07-21|812029}}
=== Dolphin theming does not match Nautilus well ===
 
Check the section [[Dolphin#Mismatched_folder_view_background_colors|Mismatched folder view background colors]] for how to deal with weird coloring.
 

2024年8月24日 (土) 21:44時点における最新版

関連記事

QtGTK ベースのプログラムは異なるウィジェットツールキットを使ってグラフィカルユーザーインターフェースを表示しています。それぞれにデフォルトで異なるテーマ・スタイル・アイコンセットが存在するため、"ルックアンドフィール"は著しく乖離してしまいます。この記事ではデスクトップエクスペリエンスを統合するために Qt と GTK のアプリケーションの外観を似たようにする方法を説明しています。

概要

2つのツールキットで同じような見た目を表示するには以下を修正する必要が出てきます:

  • テーマ: アプリケーションやウィジェットセットなどの外観のカスタマイズ。テーマは通常、スタイル・アイコンテーマ・カラーテーマから成ります。
  • スタイル: ウィジェットセットのグラフィカルレイアウトと外観。
  • アイコンテーマ: グローバルアイコンのセット。
  • カーソルテーマ: スタイルと合わせて使われるグローバルカラーのセット。

外観の統一のために取れる方法は様々です:

  • 下で説明しているツールを使って GTK と Qt のスタイルを別個に修正し、同じような見た目のテーマ (スタイル・カラー・アイコン・カーソル・フォント) を選択する。
  • 特殊なテーマエンジンを使って、他のグラフィカルツールキットの見た目をメインのツールキットに合うように仲介させる。

Qt と GTK 両方のためのスタイル

統合のために、Qt と GTK 両方で記述・提供されているウィジェットスタイルのセットが存在し、全ての主要なバージョンが含まれています。このようなスタイルを使うことで、アプリケーションが使っているツールキットに関係なく全てのアプリケーションの見た目を一つにすることが可能です。

ヒント: root アプリケーションに対してユーザ定義のスタイルを適用したい場合もあるでしょう。GTK#root アプリケーションにテーマが適用されないQt#root アプリケーションにテーマが適用されない を参照してください。
ノート: バージョン 3.16 から、GTK 3 は CSS を使用しないテーマを サポートしなくなりました。そのため Oxygen-Gtk などのスタイルはもはや 使うことができなくなっています

GTK プログラム向けの元は Qt ベースだったテーマ

もともと Qt 環境用に作られたテーマだったが、後に GTK に移植されたテーマがあります。

Breeze

Breeze は KDE Plasma のデフォルトの Qt スタイルであり、breeze パッケージでインストールできます。GTK 2 と GTK 3 のテーマは breeze-gtk パッケージでインストールできます。

パッケージをインストールしたら、GTK の設定ツールを使って GTK のテーマを変更してください。

KDE Plasma を使用している場合、kde-gtk-config をインストールし、ログインし直して KDE システム設定 > 外観 > アプリケーションスタイル > GNOME/GTK のアプリケーションスタイルを設定… を開いてください。KDE システム設定におけるフォント、アイコン、カーソル、そしてウィジェットのスタイルセットは、自動的に GTK の設定に適用されます。GTK テーマだけは、前述のモジュールを使って手動で設定する必要があります。

Qt プログラム向けの元は GTK ベースだったテーマ

もともと GTK 環境用に作られたテーマだったが、後に Qt に移植されたテーマがあります。

Adwaita

この記事またはセクションは情報が古くなっています。
理由: Adwaita-qt プロジェクトはメンテナンスされておらず、もはや活発に開発されていません。[1] (Discuss)

Adwaita はデフォルトの GNOME テーマです。GTK 3 バージョンは gtk3 パッケージに含まれています。一方、GTK 2 バージョンは gnome-themes-extra にあります。adwaita-qt は Adwaita テーマの Qt 移植です。GTK 2 テーマを模倣する #QGtkStyle とは異なり、adwaita-qt は GTK 3 Adwaita に見えるように作られたネイティブな Qt スタイルを提供します。Qt 4、5、そして 6 のバージョンはそれぞれパッケージ adwaita-qt4AURadwaita-qt5-gitAUR、そして adwaita-qt6-gitAURインストールできます。

Qt スタイルをデフォルトとして設定するには:

  • Qt 5 の場合、環境変数 QT_STYLE_OVERRIDE=adwaita を設定することで有効化できます。あるいは、qt5ct パッケージを使用してください。より詳細な手順は、Qt#KDE Plasma 以外の環境での Qt 5/6 アプリケーションの設定 を参照してください。
  • Qt 4 の場合、Qt Configuration (qtconfig-qt4) で有効化できます。Appearance > GUI Styleadwaita を選択してください。あるいは、/etc/xdg/Trolltech.conf (システム全体) か ~/.config/Trolltech.conf (ユーザ固有) を編集してください:
~/.config/Trolltech.conf
...
[Qt]
style=adwaita
...

Kvantum に移植された GTK テーマ

Kvantum (kvantum) は、Adapta、Arc、Ambiance、Libadwaita、そして Materia などいくつかの人気な GTK テーマのバージョンを含む、様々な組み込みスタイルが同梱されている Qt6 用の SVG ベースのスタイルカスタマイザーです。その他のテーマは KDE Store で入手可能です。Qt5 に関しては、さらに kvantum-qt5 パッケージも必要です。

Kvantum は、Qt プラットフォームのテーマとしてではなく、Qt スタイルとして機能します。Kvantum をすべての Qt アプリケーションに対して設定するには、Qt6 に対しては qt6ct で、Qt5 に対しては qt5ct で設定してください。あるいは、環境変数 QT_STYLE_OVERRIDE=kvantum を使うこともできます。

テーマ設定

(KvLibadwaita などの) Kvantum のテーマバリアントを設定するには、設定ファイルを編集してください:

/etc/xdg/Kvantum/kvantum.kvconfig (あるいは ~/.config/Kvantum/kvantum.kvconfig)
...
theme=KvLibadwaita
...

または、kvantummanager GUI を使用してください。

テーマエンジン

テーマエンジンは、1つあるいは複数のツールキット間でテーマ (アイコンは除く) を翻訳する薄いレイヤー API と考えることができます。これらのエンジンはプロセスに余分なコードを追加するため、この種の解決方法がネイティブのスタイルを使うのと比べ最適なのかどうかは議論の余地があります。

QGtkStyle

ノート: QGtkStyle は qt5-base 5.7.0 [2] から除去され、qt5-stylepluginsAUR [3] に追加されました。
警告: GTK 2 のテーマによっては、フォントが透過してしまったりウィジェットがうまく調和しないなどのレンダリング問題が発生することがあります。

この Qt スタイルは GTK 2 を使って全てのコンポーネントをレンダリングすることで、GNOME やそれと似たような GTK ベースの環境とブレンドします。Qt 4.5 から、このスタイルは Qt に含まれています。gtk2 をインストール・設定する必要があります。

QGtkStyle は Cinnamon、GNOME、そして Xfce におけるデフォルトの Qt4 スタイルです。また Cinnamon、GNOME、MATE、LXDE、そして Xfce におけるデフォルトの Qt5 スタイルでもあります。他の環境では:

  • Qt4 の場合、Qt Configuration (qtconfig-qt4) で有効にすることができます。Appearance > GUI Style から GTK を選択してください。もしくは、/etc/xdg/Trolltech.conf (システム全体) あるいは ~/.config/Trolltech.conf (ユーザー個別) ファイルを編集してください:
~/.config/Trolltech.conf
...
[Qt]
style=GTK+
...
  • Qt 5 の場合、qt5-stylepluginsAUR をインストールし、次の環境変数を設定することで有効にできます: QT_QPA_PLATFORMTHEME=gtk2
  • Qt 6 の場合、qt6gtk2AUR をインストールして qt6ctqt6gtk2 を選択するか、あるいは 次の環境変数を設定することで有効化できます: QT_QPA_PLATFORMTHEME=gtk2

完全な統合のために、設定された GTK テーマが GTK 2 と GTK 3 の両方をサポートしていることを確認してください。GTK2 を使用するように Qt を設定したあとにテーマのレンダリングの一貫性が失われてしまった場合、gtk-theme-switch2AUR をインストールしテーマを選択してください。優先テーマが /usr/share/themes にインストールされていることも確認するべきでしょう。アクティブな GTK 2 テーマは $XDG_DATA_HOME/themes ディレクトリからスキャンされないからです。

QGnomePlatform

この記事またはセクションは情報が古くなっています。
理由: QGnomePlatform プロジェクトはメンテナンスされておらず、もはや活発に開発されていません。[4] (Discuss)

この Qt 5 プラットフォームテーマでは、GNOME での外観の設定が Qt アプリケーションに適用されます。qgnomeplatform-qt5-gitAURqgnomeplatform-qt6-gitAUR でインストールできます。これは Qt スタイル自体は提供せず、代わりに Qt と GTK の両方をサポートするスタイルを必要とします。

バージョン 3.20 以降の GNOME では、このプラットフォームテーマは自動的に有効化されます。他のシステムでは、次の環境変数を設定することで有効化できます: QT_QPA_PLATFORMTHEME=gnome

QAdwaitaDecorations

QAdwaitaDecorations は、Wayland に対して Adwaita ライクなクライアントサイド装飾を実装する Qt の装飾プラグインです。これは qadwaitadecorations-qt5AURqadwaitadecorations-qt6AUR でインストールできます。インストール後、QT_WAYLAND_DECORATION=adwaita 環境変数を設定してください。

ヒントとテクニック

Qt アプリで GTK のアイコンテーマを使う

Plasma を使っている場合は、kde-gtk-config を実行して、KDE システム設定 > アプリケーションスタイル > GTK でアイコンテーマを選択してください。

GNOME を使っている場合は、dconf-editor を実行して、org > gnome > desktop > interface にある icon-theme キーをあなたの好みのアイコンテーマに変更してください。

デスクトップ環境 を使っていない場合、例えば i3-wm で最小限のシステムを動かしているのなら、dconf-editorインストールして、上記の説明に従ってアイコンテーマを設定してください。 また、プロファイルの DESKTOP_SESSION の値も設定する必要があるかもしれません。望ましい結果を得るために可能な方法については 環境変数#変数の定義 を参照してください。

ノート: アイコンテーマが適用されない場合、入力したテーマ名が正しい形式であったかどうかを確認したい場合があります。例えば、現在アクティブなアイコンテーマを QT アプリケーションに適用したい場合、コマンドでその名前の正しい形式を調べることができます:
$ awk -F= '/icon-theme/ {print $2}' ~/.gtkrc-2.0

KDE Plasma で GTK3 アプリケーションにタイトルバーとフレームを追加する

GNOME/GTK アプリケーションを KDE/Plasma タイトルバーとフレームで表示するには、GTK#クライアントサイドデコレーションで説明されているようにクライアントサイドの装飾を無効にします。

KDE Plasma での GTK アプリのサブピクセルレンダリングを改善

こちらを参照 フォント設定#LCD フィルター

KDE Plasma での一貫性のあるファイルダイアログ

この記事またはセクションの正確性には問題があります。

同じファイルダイアログを表示させるために、XDG デスクトップ ポータル を使うことができます。

xdg-desktop-portalxdg-desktop-portal-kdeインストールし、環境変数 GTK_USE_PORTAL=1 を設定してください。

現在、全ての GTK アプリケーションが KDE ファイルダイアログを正しくサポートしているわけではないことに注意してください。

Electron を使用するアプリケーションは、最低でも Electron 14 を使用していて (#19159 を参照)、この機能を適切に実装している必要があります。

VSCode には問題を修正するためのプルリクエストがあります。#126113 を参照してください。

GIMP は portal の使用をまだ実装していません。バグレポートを参照してください。

ノート: 依然として多くの GTK アプリケーションが portal を正しく実装していません (放棄されたアプリケーション、あるいは作者が他のタスクに集中している)。少なくとも Dolphin から nautilus へブックマークを同期させることで、そのようなアプリケーションからのファイル選択を単純化させることができます。以下のコマンドを使用してください:
$ awk -F\" '/<bookmark href="file/ {print $2}' < $HOME/.local/share/user-places.xbel > $HOME/.config/gtk-3.0/bookmarks

あるいは、bookmarksync-gitAUR をそのような目的で使用することができます。これを使用すると、ブックマークを編集したり、両方向へ同期させたりできます。

アプリケーション固有の設定

環境変数による方法に加えて、一部の GTK アプリケーションには XDG ポータルを強制的に使用させるための独自の設定が存在します:

トラブルシューティング

GTK アプリでテーマが使えない

設定したスタイルやテーマエンジンが GTK アプリケーションで表示されない場合は、おそらく GTK の設定ファイルが何らかの理由でロードされていません。次を実行することでシステムが設定ファイルをどこにあると期待しているか確認できます:

$ export | grep gtk

通常、期待されるファイルは GTK1 は ~/.gtkrc、GTK 2.x は ~/.gtkrc2.0 または ~/.gtkrc2.0-kde です。

システムをアップグレードすると SVG (Breeze) アイコンが GTK アプリで使用されない

次のコマンドを実行してみてください:

# gdk-pixbuf-query-loaders --update-cache

GTK アプリが KDE システム設定を完全には使用しない

GTK アプリで Plasma 設定をさらに統合するには、gnome-settings-daemongsettings-desktop-schemas、および gsettings-qtインストールする必要があるかもしれません。これにより、GTK に適切な Qt バインディングが提供されます。

kde-gtk-config の "システム設定 > アプリケーションスタイル > GTK" メニューが無い

kde-gtk-config が壊れてシステム設定から "アプリケーションスタイル > GTK" メニューが無くなった場合、lxappearancenwg-look のような GTK 設定ツールを選ぶと GTK 2 と GTK 3 のスタイルを構成できるようになります。 lxappearance は LXDE プロジェクト由来ですが、デスクトップに依存していません (つまり、LXDE デスクトップの他のパーツを必要としません)。nwg-look は GTK3 設定エディタであり、wlroots ベースの Wayland 環境で適切に動作するように設計されています。nwg-look のルックアンドフィールは LXAppearance による影響を強く受けていますが、いくつかの不便さからユーザを開放することを意図しています。

Dolphin のテーマが Nautilus と良くマッチしない

フォルダビューの背景色がシステムのテーマと合わない のセクションで、変な色使いの対処法を確認してください。

KDE Plasma の XDG Desktop Portal が使用されない

XDG デスクトップ ポータル#デスクトップ環境を強制する 章に書かれてあることに従い、XDG_CURRENT_DESKTOP=KDE 環境変数を設定してください。

Qt5: kvantum is not available as a style in the Qt settings app

kvantum-qt5 がインストールされていることを確認してください。

翻訳ステータス: このページは en:Uniform look for Qt and GTK applications の翻訳バージョンです。最後の翻訳日は 2024-07-21 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。