「Qt と GTK アプリケーションの外観の統合」の版間の差分
(→Kvantum に移植された GTK テーマ: 未翻訳の部分を翻訳) |
|||
(4人の利用者による、間の25版が非表示) | |||
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 のアプリケーションの外観を似たようにする方法を説明しています。 |
== 概要 == |
== 概要 == |
||
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}} を使います。 |
||
− | === |
+ | ==== 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}} |
+ | {{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 |
+ | {{Warning|GTK 2 のテーマによっては、フォントが透過してしまったりウィジェットがうまく調和しないなどのレンダリング問題が発生することがあります。}} |
− | この Qt スタイルは GTK |
+ | この Qt スタイルは GTK 2 を使って全てのコンポーネントをレンダリングすることで、[[GNOME]] やそれと似たような GTK ベースの環境とブレンドします。Qt 4.5 から、このスタイルは Qt に含まれています。{{Pkg|gtk2}} をインストール・設定する必要があります。 |
− | QGtkStyle は Cinnamon |
+ | QGtkStyle は Cinnamon、GNOME、そして Xfce におけるデフォルトの Qt4 スタイルです。また Cinnamon、GNOME、MATE、LXDE、そして Xfce におけるデフォルトの Qt5 スタイルでもあります。他の環境では: |
− | * Qt4 の場合、''Qt Configuration'' ({{ic|qtconfig-qt4}}) で有効にすることができます。''Appearance > GUI Style'' から ''GTK |
+ | * 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}} をインストールし、次の[[環境変数#グラフィ |
+ | * 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 のアイコンテーマを使う === |
||
+ | |||
+ | [[Plasma]] を使っている場合は、{{Pkg|kde-gtk-config}} を実行して、''KDE システム設定 > アプリケーションスタイル > GTK'' でアイコンテーマを選択してください。 |
||
+ | |||
+ | [[GNOME]] を使っている場合は、{{Pkg|dconf-editor}} を実行して、''org > gnome > desktop > interface'' にある {{ic|icon-theme}} キーをあなたの好みのアイコンテーマに変更してください。 |
||
+ | [[デスクトップ環境]] を使っていない場合、例えば {{Pkg|i3-wm}} で最小限のシステムを動かしているのなら、{{Pkg|dconf-editor}} を[[インストール]]して、上記の説明に従ってアイコンテーマを設定してください。 |
||
− | 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. |
||
+ | また、プロファイルの {{ic|DESKTOP_SESSION}} の値も設定する必要があるかもしれません。望ましい結果を得るために可能な方法については [[環境変数#変数の定義]] を参照してください。 |
||
− | 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. |
||
+ | {{Note|アイコンテーマが適用されない場合、入力したテーマ名が正しい形式であったかどうかを確認したい場合があります。例えば、現在アクティブなアイコンテーマを QT アプリケーションに適用したい場合、コマンドでその名前の正しい形式を調べることができます: |
||
− | {{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: |
||
{{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. |
||
− | + | {{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. |
||
− | + | 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 |
+ | [[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}} です。 |
− | === システムをアップグレードすると SVG (Breeze) アイコンが GTK |
+ | === システムをアップグレードすると SVG (Breeze) アイコンが GTK アプリで使用されない === |
− | 次のコマンドを実行 |
+ | 次のコマンドを実行してみてください: |
# gdk-pixbuf-query-loaders --update-cache |
# gdk-pixbuf-query-loaders --update-cache |
||
− | === |
+ | === GTK アプリが KDE システム設定を完全には使用しない === |
+ | GTK アプリで [[Plasma]] 設定をさらに統合するには、{{Pkg|gnome-settings-daemon}}、{{Pkg|gsettings-desktop-schemas}}、および {{Pkg|gsettings-qt}} を[[インストール]]する必要があるかもしれません。これにより、GTK に適切な Qt バインディングが提供されます。 |
||
− | テーマを Adwaita に切り替えた場合 -dark および FlatpakQt アプリケーションは引き続き light バージョンを使用する場合は、必要な KStyle をインストールします。 |
||
+ | === kde-gtk-config の "システム設定 > アプリケーションスタイル > GTK" メニューが無い === |
||
− | # flatpak install flathub org.kde.KStyle.Adwaita |
||
+ | {{pkg|kde-gtk-config}} が壊れてシステム設定から "アプリケーションスタイル > GTK" メニューが無くなった場合、{{pkg|lxappearance}} や {{Pkg|nwg-look}} のような [[GTK#設定ツール|GTK 設定ツール]]を選ぶと GTK 2 と GTK 3 のスタイルを構成できるようになります。 |
||
− | === GNOME Wayland で実行される Qt アプリケーションが、Qt テーマを設定した後でも、ウィンドウ装飾の外観が一致しない === |
||
+ | {{pkg|lxappearance}} は LXDE プロジェクト由来ですが、デスクトップに依存していません (つまり、LXDE デスクトップの他のパーツを必要としません)。{{Pkg|nwg-look}} は GTK3 設定エディタであり、wlroots ベースの Wayland 環境で適切に動作するように設計されています。nwg-look のルックアンドフィールは LXAppearance による影響を強く受けていますが、いくつかの不便さからユーザを開放することを意図しています。 |
||
+ | === Dolphin のテーマが Nautilus と良くマッチしない === |
||
− | ウィンドウ装飾の一致した外観を得るには、{{AUR|qgnomeplatform}} をインストールし、次の [[環境変数#グラフィック環境変数|環境変数]] を設定する必要があります:{{ic|1=QT_QPA_PLATFORMTHEME='gnome'}} |
||
− | この修正は、Adwaita または Adwaita-dark で動作することが保証されています。 |
||
+ | [[Dolphin#フォルダビューの背景色がシステムのテーマと合わない|フォルダビューの背景色がシステムのテーマと合わない]] のセクションで、変な色使いの対処法を確認してください。 |
||
− | === GTK アプリが KDE システム設定を完全には使用しない === |
||
+ | |||
+ | === KDE Plasma の XDG Desktop Portal が使用されない === |
||
+ | [[XDG デスクトップ ポータル#デスクトップ環境を強制する]] 章に書かれてあることに従い、{{ic|1=XDG_CURRENT_DESKTOP=KDE}} 環境変数を設定してください。 |
||
− | GTK アプリで [[Plasma]] 設定をさらに統合するには、 [[インストール]] {{Pkg|gnome-settings-daemon}}、{{Pkg|gsettings-desktop-schemas}}、および {{Pkg|gsettings-qt}} が必要になる場合があります。これにより、GTK に適切な Qt バインディングが提供されます。 |
||
+ | === Qt5: kvantum is not available as a style in the Qt settings app === |
||
− | === kde-gtk-config "システム設定>アプリケーションスタイル>GTK" メニューがありません === |
||
+ | {{pkg|kvantum-qt5}} がインストールされていることを確認してください。 |
||
− | {{pkg|kde-gtk-config}} が壊れてシステム設定から "Application Style > GTK" メニューが無くなった場合、 {{pkg|lxappearance}} のような [[GTK#設定ツール|設定ツール]] を選ぶと GTK 2 と GTK 3 スタイルを構成できるようになります。 |
||
− | LXDE プロジェクトに由来するものであっても、デスクトップには依存しません (LXDE デスクトップの他の部分を必要としません。) |
||
+ | {{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時点における最新版
Qt と GTK ベースのプログラムは異なるウィジェットツールキットを使ってグラフィカルユーザーインターフェースを表示しています。それぞれにデフォルトで異なるテーマ・スタイル・アイコンセットが存在するため、"ルックアンドフィール"は著しく乖離してしまいます。この記事ではデスクトップエクスペリエンスを統合するために Qt と GTK のアプリケーションの外観を似たようにする方法を説明しています。
目次
- 1 概要
- 2 Qt と GTK 両方のためのスタイル
- 3 テーマエンジン
- 4 ヒントとテクニック
- 5 トラブルシューティング
- 5.1 GTK アプリでテーマが使えない
- 5.2 システムをアップグレードすると SVG (Breeze) アイコンが GTK アプリで使用されない
- 5.3 GTK アプリが KDE システム設定を完全には使用しない
- 5.4 kde-gtk-config の "システム設定 > アプリケーションスタイル > GTK" メニューが無い
- 5.5 Dolphin のテーマが Nautilus と良くマッチしない
- 5.6 KDE Plasma の XDG Desktop Portal が使用されない
- 5.7 Qt5: kvantum is not available as a style in the Qt settings app
概要
2つのツールキットで同じような見た目を表示するには以下を修正する必要が出てきます:
- テーマ: アプリケーションやウィジェットセットなどの外観のカスタマイズ。テーマは通常、スタイル・アイコンテーマ・カラーテーマから成ります。
- スタイル: ウィジェットセットのグラフィカルレイアウトと外観。
- アイコンテーマ: グローバルアイコンのセット。
- カーソルテーマ: スタイルと合わせて使われるグローバルカラーのセット。
外観の統一のために取れる方法は様々です:
- 下で説明しているツールを使って GTK と Qt のスタイルを別個に修正し、同じような見た目のテーマ (スタイル・カラー・アイコン・カーソル・フォント) を選択する。
- 特殊なテーマエンジンを使って、他のグラフィカルツールキットの見た目をメインのツールキットに合うように仲介させる。
Qt と GTK 両方のためのスタイル
統合のために、Qt と 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 はデフォルトの 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-qt4AUR、adwaita-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 Style で adwaita を選択してください。あるいは、/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
この 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 をインストールして qt6ct で qt6gtk2 を選択するか、あるいは 次の環境変数を設定することで有効化できます:
QT_QPA_PLATFORMTHEME=gtk2
完全な統合のために、設定された GTK テーマが GTK 2 と GTK 3 の両方をサポートしていることを確認してください。GTK2 を使用するように Qt を設定したあとにテーマのレンダリングの一貫性が失われてしまった場合、gtk-theme-switch2AUR をインストールしテーマを選択してください。優先テーマが /usr/share/themes
にインストールされていることも確認するべきでしょう。アクティブな GTK 2 テーマは $XDG_DATA_HOME/themes
ディレクトリからスキャンされないからです。
QGnomePlatform
この Qt 5 プラットフォームテーマでは、GNOME での外観の設定が Qt アプリケーションに適用されます。qgnomeplatform-qt5-gitAUR と qgnomeplatform-qt6-gitAUR でインストールできます。これは Qt スタイル自体は提供せず、代わりに Qt と GTK の両方をサポートするスタイルを必要とします。
バージョン 3.20 以降の GNOME では、このプラットフォームテーマは自動的に有効化されます。他のシステムでは、次の環境変数を設定することで有効化できます: QT_QPA_PLATFORMTHEME=gnome
。
QAdwaitaDecorations
QAdwaitaDecorations は、Wayland に対して Adwaita ライクなクライアントサイド装飾を実装する Qt の装飾プラグインです。これは qadwaitadecorations-qt5AUR と qadwaitadecorations-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
の値も設定する必要があるかもしれません。望ましい結果を得るために可能な方法については 環境変数#変数の定義 を参照してください。
KDE Plasma で GTK3 アプリケーションにタイトルバーとフレームを追加する
GNOME/GTK アプリケーションを KDE/Plasma タイトルバーとフレームで表示するには、GTK#クライアントサイドデコレーションで説明されているようにクライアントサイドの装飾を無効にします。
KDE Plasma での GTK アプリのサブピクセルレンダリングを改善
こちらを参照 フォント設定#LCD フィルター
KDE Plasma での一貫性のあるファイルダイアログ
同じファイルダイアログを表示させるために、XDG デスクトップ ポータル を使うことができます。
xdg-desktop-portal と xdg-desktop-portal-kde をインストールし、環境変数 GTK_USE_PORTAL=1
を設定してください。
現在、全ての GTK アプリケーションが KDE ファイルダイアログを正しくサポートしているわけではないことに注意してください。
Electron を使用するアプリケーションは、最低でも Electron 14 を使用していて (#19159 を参照)、この機能を適切に実装している必要があります。
VSCode には問題を修正するためのプルリクエストがあります。#126113 を参照してください。
GIMP は portal の使用をまだ実装していません。バグレポートを参照してください。
アプリケーション固有の設定
環境変数による方法に加えて、一部の 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-daemon、gsettings-desktop-schemas、および gsettings-qt をインストールする必要があるかもしれません。これにより、GTK に適切な Qt バインディングが提供されます。
kde-gtk-config の "システム設定 > アプリケーションスタイル > GTK" メニューが無い
kde-gtk-config が壊れてシステム設定から "アプリケーションスタイル > GTK" メニューが無くなった場合、lxappearance や nwg-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 がインストールされていることを確認してください。