「Qt と GTK アプリケーションの外観の統合」の版間の差分
imported>Alad (→aMSN で GTK+ や KDE のダイアログを使う: rm section referring deprecated application) |
(→Kvantum に移植された GTK テーマ: 未翻訳の部分を翻訳) |
||
(9人の利用者による、間の54版が非表示) | |||
1行目: | 1行目: | ||
[[Category:ウィジェットツールキット]] |
[[Category:ウィジェットツールキット]] |
||
[[Category:視覚効果]] |
[[Category:視覚効果]] |
||
− | [[en:Uniform |
+ | [[en:Uniform look for Qt and GTK applications]] |
− | [[ |
+ | [[ru:Uniform look for Qt and GTK applications]] |
− | [[ |
+ | [[zh-hans:Uniform look for Qt and GTK applications]] |
− | [[ru:Uniform Look for Qt and GTK Applications]] |
||
− | [[uk:Uniform Look for Qt and GTK Applications]] |
||
− | [[zh-CN:Uniform Look for Qt and GTK Applications]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
− | {{ |
+ | {{Related|GTK}} |
− | {{ |
+ | {{Related|Qt}} |
{{Related articles end}} |
{{Related articles end}} |
||
− | [[ |
+ | [[Qt]] と [[GTK]] ベースのプログラムは異なるウィジェットツールキットを使ってグラフィカルユーザーインターフェースを表示しています。それぞれにデフォルトで異なるテーマ・スタイル・アイコンセットが存在するため、"ルックアンドフィール"は著しく乖離してしまいます。この記事ではデスクトップエクスペリエンスを統合するために Qt と GTK のアプリケーションの外観を似たようにする方法を説明しています。 |
+ | |||
+ | == 概要 == |
||
2つのツールキットで同じような見た目を表示するには以下を修正する必要が出てきます: |
2つのツールキットで同じような見た目を表示するには以下を修正する必要が出てきます: |
||
20行目: | 19行目: | ||
外観の統一のために取れる方法は様々です: |
外観の統一のために取れる方法は様々です: |
||
+ | * 下で説明しているツールを使って [[#Qt と GTK 両方のためのスタイル|GTK と Qt のスタイル]]を別個に修正し、同じような見た目のテーマ (スタイル・カラー・アイコン・カーソル・フォント) を選択する。 |
||
+ | * 特殊な[[#テーマエンジン|テーマエンジン]]を使って、他のグラフィカルツールキットの見た目をメインのツールキットに合うように仲介させる。 |
||
+ | == Qt と GTK 両方のためのスタイル == |
||
− | * 下で説明しているツールを使って [[#Qt と GTK+ 両方のためのスタイル|GTK+ と Qt のスタイル]]を別個に修正し、同じような見た目のテーマ (スタイル・カラー・アイコン・カーソル・フォント) を選択する。 |
||
− | * 特殊な[[#テーマエンジン|テーマエンジン]]を使って、他のグラフィカルツールキットの見た目をメインのツールキットに合うように仲介させる: |
||
− | ** KDE 4 デスクトップ環境を使っている場合、GTK-Qt エンジンが利用可能です。GTK+ の設定ファイルが自動的に更新され GTK+ の外観が Qt に類するようになります。 |
||
− | ** 同じく [[Trinity]] デスクトップ環境を使っている場合、GTK-Qt と GTK3-Qt エンジンが利用可能です。 |
||
− | ** 他のデスクトップ環境を使っている場合、(Qt で作られた) QGtkStyle エンジンを選ぶことができます。Qt アプリに強制的に GTK+ 2.x テーマを使わせます。 |
||
+ | 統合のために、Qt と GTK 両方で記述・提供されているウィジェットスタイルのセットが存在し、全ての主要なバージョンが含まれています。このようなスタイルを使うことで、アプリケーションが使っているツールキットに関係なく全てのアプリケーションの見た目を一つにすることが可能です。 |
||
− | GTK+ 3.x ツールキットも使っているときは、[[GTK+#GTK+ 3.x|GTK+ 3.x]] の wiki 記事にある GTK3 を GTK+ 2.x テーマのように見せる方法を調べて下さい。 |
||
− | {{ |
+ | {{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 使うことができなくなっています]。}} |
||
+ | === GTK プログラム向けの元は Qt ベースだったテーマ === |
||
− | == Qt と GTK+ 両方のためのスタイル == |
||
+ | もともと Qt 環境用に作られたテーマだったが、後に GTK に移植されたテーマがあります。 |
||
− | 統合のために、Qt と GTK+ 両方で提供されているウィジェットスタイルのセットが存在し、全ての主要なバージョンが含まれています。このようなスタイルを使うことで、アプリケーションが使っているツールキットに関係なく全てのアプリケーションの見た目を一つにすることが可能です。 |
||
− | === |
+ | ==== Breeze ==== |
+ | Breeze は KDE Plasma のデフォルトの Qt スタイルであり、{{Pkg|breeze}} パッケージでインストールできます。GTK 2 と GTK 3 のテーマは {{Pkg|breeze-gtk}} パッケージでインストールできます。 |
||
− | [http://www.oxygen-icons.org/ Oxygen] は KDE4 にデフォルトで入っている Qt のスタイルです。以下で説明しているように外観を似させる方法が様々に存在します。 |
||
+ | パッケージをインストールしたら、[[GTK#設定ツール|GTK の設定ツール]]を使って GTK のテーマを変更してください。 |
||
− | ==== oxygen-gtk ==== |
||
+ | KDE Plasma を使用している場合、{{pkg|kde-gtk-config}} をインストールし、ログインし直して ''KDE システム設定 > 外観 > アプリケーションスタイル > GNOME/GTK のアプリケーションスタイルを設定…'' を開いてください。KDE システム設定におけるフォント、アイコン、カーソル、そしてウィジェットのスタイルセットは、自動的に GTK の設定に適用されます。GTK テーマだけは、前述のモジュールを使って手動で設定する必要があります。 |
||
− | [http://kde-look.org/content/show.php/?content=136216 oxygen-gtk] は Oxygen の開発者による Oxygen Qt スタイルの GTK+ ポートです。他とは異なり、ネイティブの GTK+ スタイルなので Qt には依存しておらず (Qt から GTK+ に変換するエンジンを使っています) ハードコードされたピクセルマップを使ってウィジェットの外観をレンダリングしません。このスタイルは KDE で動作している GTK+ 2.x/3.x と Qt ベースのアプリケーションで外観を統一することを主たる目的としており、他のデスクトップ環境でも上手く動くスタンドアロンの、見た目が良い GTK+ テーマを作ることを第二の目的としています。 |
||
+ | === Qt プログラム向けの元は GTK ベースだったテーマ === |
||
− | oxygen-gtk は GTK+ 2.x と GTK+ 3.x で別れており、[[official Repositories|公式リポジトリ]]から {{Pkg|oxygen-gtk2}} もしくは {{Pkg|oxygen-gtk3}} で[[Pacman|インストール]]が可能です。 |
||
+ | もともと GTK 環境用に作られたテーマだったが、後に Qt に移植されたテーマがあります。 |
||
− | {{Note|Before KDE 4.10, you needed to create the file {{ic|~/.kde4/share/config/gtkrc-2.0}}, or let it automatically create like described below. But that is actually counter-productive with KDE 4.10’s oxygen-gtk, and you should delete this file after upgrading to prevent it from messing with your colors. Cleanup-removal of {{ic|~/.kde4/share/config/gtkrc}} might be necessary, too.}} |
||
− | + | ==== Adwaita ==== |
|
+ | {{Out of date|Adwaita-qt プロジェクトはメンテナンスされておらず、もはや活発に開発されていません。[https://github.com/FedoraQt/adwaita-qt#readme]}} |
||
− | GTK+ テーマを変更することができる[[#それぞれのツールキットのスタイルを変更する|専用のアプリケーション]]が公式リポジトリからインストールできます。 |
||
+ | 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}} で[[インストール]]できます。 |
||
− | {{Pkg|kde-gtk-config}} をインストールしても良いでしょう。インストールした後、''システム設定 > アプリケーションの外観 > GTK の設定'' から設定できます。これを使うことで GTK+ 2.x と GTK+ 3.x 両方のアプリケーションのルックアンドフィールを設定でき、KDE のアドオンインストーラ (Get Hot New Stuff) と統合され、他の GTK+ テーマをダウンロード・インストールすることもできます。 |
||
+ | Qt スタイルをデフォルトとして設定するには: |
||
− | ===== 手動設定 ===== |
||
+ | * Qt 5 の場合、[[環境変数#グラフィック環境|環境変数]] {{ic|1=QT_STYLE_OVERRIDE=adwaita}} を設定することで有効化できます。あるいは、{{Pkg|qt5ct}} パッケージを使用してください。より詳細な手順は、[[Qt#KDE Plasma 以外の環境での Qt 5/6 アプリケーションの設定]] を参照してください。 |
||
− | GTK+ のテーマを手動で '''oxygen-gtk''' に変更するには、以下の内容でファイル {{ic|~/.kde4/share/config/gtkrc-2.0}} を作成する必要があります: |
||
+ | * Qt 4 の場合、''Qt Configuration'' ({{ic|qtconfig-qt4}}) で有効化できます。''Appearance > GUI Style'' で ''adwaita'' を選択してください。あるいは、{{ic|/etc/xdg/Trolltech.conf}} (システム全体) か {{ic|~/.config/Trolltech.conf}} (ユーザ固有) を編集してください: |
||
− | {{hc|~/.kde4/share/config/gtkrc-2.0|<nowiki> |
||
− | include "/usr/share/themes/oxygen-gtk/gtk-2.0/gtkrc" |
||
+ | {{hc|~/.config/Trolltech.conf|2= |
||
− | style "user" |
||
+ | ... |
||
− | { |
||
+ | [Qt] |
||
− | fg[NORMAL] = "#1b1918" |
||
+ | style=adwaita |
||
− | bg[NORMAL] = "#d5d1cf" |
||
+ | ... |
||
− | text[NORMAL] = "#181615" |
||
− | base[NORMAL] = "#ffffff" |
||
− | fg[ACTIVE] = "#1b1918" |
||
− | bg[ACTIVE] = "#d5d1cf" |
||
− | text[ACTIVE] = "#181615" |
||
− | base[ACTIVE] = "#ffffff" |
||
− | fg[PRELIGHT] = "#1b1918" |
||
− | bg[PRELIGHT] = "#d5d1cf" |
||
− | text[PRELIGHT] = "#ffffff" |
||
− | base[PRELIGHT] = "#43ace8" |
||
− | fg[SELECTED] = "#1b1918" |
||
− | bg[SELECTED] = "#d5d1cf" |
||
− | text[SELECTED] = "#ffffff" |
||
− | base[SELECTED] = "#43ace8" |
||
− | fg[INSENSITIVE] = "#8d8a88" |
||
− | bg[INSENSITIVE] = "#ccc7c5" |
||
− | text[INSENSITIVE] = "#a6a5a5" |
||
− | base[INSENSITIVE] = "#f4f4f4" |
||
− | GtkTreeView::odd_row_color="#ffffff" |
||
− | GtkTreeView::even_row_color="#f8f7f6" |
||
− | } |
||
− | |||
− | widget_class "*" style "user" |
||
− | |||
− | style "tooltips" |
||
− | { |
||
− | bg[NORMAL] = "#bedfff" |
||
− | fg[NORMAL] = "#252321" |
||
− | } |
||
− | |||
− | widget "gtk-tooltips" style "tooltips" |
||
− | #gtk-theme-name="qt4" |
||
− | gtk-font-name="Sans Serif 9" |
||
− | gtk-icon-theme-name="gk4ico" |
||
− | gtk-icon-sizes = "panel-menu=16,16:panel=16,16:gtk-button=22,22:gtk-large-toolbar=22,22" |
||
− | </nowiki> |
||
}} |
}} |
||
+ | ==== Kvantum に移植された GTK テーマ ==== |
||
− | そしてシンボリックリンク {{ic|~/.kde4/share/config/gtkrc}} を作成してください: |
||
− | $ ln -s ~/.kde4/share/config/gtkrc-2.0 ~/.kde4/share/config/gtkrc |
||
+ | Kvantum ({{Pkg|kvantum}}) は、Adapta、Arc、Ambiance、Libadwaita、そして Materia などいくつかの人気な GTK テーマのバージョンを含む、様々な組み込みスタイルが同梱されている Qt6 用の SVG ベースのスタイルカスタマイザーです。その他のテーマは [https://store.kde.org/browse?cat=123 KDE Store で]入手可能です。Qt5 に関しては、さらに {{Pkg|kvantum-qt5}} パッケージも必要です。 |
||
− | ==== Oxygen アイコン ==== |
||
+ | Kvantum は、Qt プラットフォームのテーマとしてではなく、Qt スタイルとして機能します。Kvantum をすべての Qt アプリケーションに対して設定するには、Qt6 に対しては {{pkg|qt6ct}} で、Qt5 に対しては {{pkg|qt5ct}} で設定してください。あるいは、環境変数 {{ic|1=QT_STYLE_OVERRIDE=kvantum}} を使うこともできます。 |
||
− | Oxygen アイコンを使っていて、GTK+ のダイアログでも同じような見た目にしたい場合、[[Arch User Repository|AUR]] から {{AUR|oxygenrefit2-icon-theme}} して GTK+ のアイコンテーマに設定することが可能です。このテーマを適用するには {{ic|lxappearance}} (または類似のプログラム) を使うか、次の行を {{ic|~/.kde4/share/config/gtkrc-2.0}} に追加して手動で設定してください: |
||
− | gtk-icon-theme-name="OxygenRefit2" |
||
+ | ===== テーマ設定 ===== |
||
− | GTK+ アプリケーションのための Oxygen アイコンテーマの他のバージョンは [[Arch User Repository|AUR]] の {{AUR|oxygen-gtk-icons}} パッケージでインストールできます。 |
||
+ | ([https://github.com/GabePoel/KvLibadwaita KvLibadwaita] などの) Kvantum の[https://github.com/tsujan/Kvantum/blob/master/Kvantum/doc/Theme-Config.pdf テーマバリアントを設定する]には、設定ファイルを編集してください: |
||
− | === QtCurve === |
||
+ | {{hc|/etc/xdg/Kvantum/kvantum.kvconfig (あるいは ~/.config/Kvantum/kvantum.kvconfig)|2= |
||
− | QtCurve は高い人気を誇り設定が可能な GTK+ 2.x, Qt4, Qt5, KDE4 のためのウィジェットスタイルのセットです。QtCurve は[[official Repositories|公式リポジトリ]]から利用できる {{Grp|qtcurve}} グループのパッケージでインストールできます。ボタンの外観からスライダーの形まで、様々なオプションの多数のコントロールが存在します。 |
||
+ | ... |
||
+ | theme=KvLibadwaita |
||
+ | ... |
||
+ | }} |
||
+ | または、''kvantummanager'' GUI を使用してください。 |
||
− | GTK+ テーマを手動で '''QtCurve''' に変更するには、以下の内容でファイル {{ic|~/.gtkrc-2.0-kde4}} を作成する必要があります: |
||
− | include "/usr/share/themes/QtCurve/gtk-2.0/gtkrc" |
||
− | include "/etc/gtk-2.0/gtkrc" |
||
− | |||
− | style "user-font" |
||
− | { |
||
− | font_name="Sans Serif" |
||
− | } |
||
− | widget_class "*" style "user-font" |
||
− | gtk-theme-name="QtCurve" |
||
+ | == テーマエンジン == |
||
− | それからシンボリックリンク {{ic|~/.gtkrc-2.0}} を作成してください: |
||
− | ln -s .gtkrc-2.0-kde4 .gtkrc-2.0 |
||
− | フォントも指定したい場合は、ファイルに次の行を追加(編集)してください: |
||
− | gtk-font-name="Sans Serif 9" |
||
+ | ''テーマエンジン''は、1つあるいは複数のツールキット間でテーマ (アイコンは除く) を翻訳する薄いレイヤー API と考えることができます。これらのエンジンはプロセスに余分なコードを追加するため、この種の解決方法がネイティブのスタイルを使うのと比べ最適なのかどうかは議論の余地があります。 |
||
− | === その他 === |
||
+ | === QGtkStyle === |
||
− | 類似のスタイルセットは互いに見た目が似ています - Qt と GTK+ の両方で提供されています - ただし開発者は異なっている可能性があります。同じ見た目にするために細かい修正が必要な場合も存在します (例: Qt4/KDE4 の {{AUR|kdestyle-klearlook}} と Clearlooks GTK+ テーマ)。 |
||
+ | {{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 のテーマによっては、フォントが透過してしまったりウィジェットがうまく調和しないなどのレンダリング問題が発生することがあります。}} |
||
− | 以下の方法を使うことでそれぞれの環境で使用されるテーマを変更することができます。 |
||
+ | この Qt スタイルは GTK 2 を使って全てのコンポーネントをレンダリングすることで、[[GNOME]] やそれと似たような GTK ベースの環境とブレンドします。Qt 4.5 から、このスタイルは Qt に含まれています。{{Pkg|gtk2}} をインストール・設定する必要があります。 |
||
− | === Qt5 スタイル === |
||
+ | QGtkStyle は Cinnamon、GNOME、そして Xfce におけるデフォルトの Qt4 スタイルです。また Cinnamon、GNOME、MATE、LXDE、そして Xfce におけるデフォルトの Qt5 スタイルでもあります。他の環境では: |
||
− | Qt5 は使われているデスクトップ環境に基づいて使用するスタイルを決定します。デスクトップ環境を認識できないときは、通常のスタイルが使用されます。特定のスタイルを強制するには、{{ic|QT_STYLE_OVERRIDE}} 環境変数を設定してください。つまり、gtk テーマを使用したい場合は {{ic|gtk}} に設定してください。Qt5 アプリケーションは {{ic|-style}} フラグもサポートしており、特定のスタイルを使って Qt5 アプリケーションを起動することが可能です。 |
||
+ | * Qt4 の場合、''Qt Configuration'' ({{ic|qtconfig-qt4}}) で有効にすることができます。''Appearance > GUI Style'' から ''GTK'' を選択してください。もしくは、{{ic|/etc/xdg/Trolltech.conf}} (システム全体) あるいは {{ic|~/.config/Trolltech.conf}} (ユーザー個別) ファイルを編集してください: |
||
− | === Qt4 スタイル === |
||
+ | {{hc|~/.config/Trolltech.conf|2= |
||
− | Qt4 のスタイルも同様に変更できます: |
||
+ | ... |
||
− | * ''KDE4 システム設定'' (systemsettings) を使う。設定は ''Common Appearance and Behavior > Application Appearance > Style > Widget Style'' にあります。 |
||
+ | [Qt] |
||
− | * コマンドラインツールを使う {{ic|$ kwriteconfig --file kdeglobals --group General --key widgetStyle [name of style]}}。 |
||
+ | style=GTK+ |
||
− | * ''Qt 設定'' ('''qtconfig-qt4''') アプリケーションを使う。設定は ''Appearance > Select GUI Style'' にあります。 |
||
+ | ... |
||
+ | }} |
||
+ | * Qt 5 の場合、{{AUR|qt5-styleplugins}} をインストールし、次の[[環境変数#グラフィック環境|環境変数]]を設定することで有効にできます: {{ic|1=QT_QPA_PLATFORMTHEME=gtk2}} |
||
− | Qt 設定では Qt アプリのテーマやフォントなどを選ぶことができますが、KDE4 システム設定ではさらに多くの設定を変更することが可能です (例: フォントアンチエイリアス、ヒンティングなど)。また、[[Font Configuration|フォント設定]]の記事に書いてあるようにすれば {{ic|~/.config/fontconfig/fonts.conf}} でアンチエイリアスやヒンティングを手動で設定できます。 |
||
+ | * Qt 6 の場合、{{AUR|qt6gtk2}} をインストールして {{Pkg|qt6ct}} で ''qt6gtk2'' を選択するか、あるいは 次の環境変数を設定することで有効化できます: {{ic|1=QT_QPA_PLATFORMTHEME=gtk2}} |
||
− | === Qt3 スタイル === |
||
+ | 完全な統合のために、設定された [[GTK#テーマ|GTK テーマ]]が GTK 2 と GTK 3 の両方をサポートしていることを確認してください。GTK2 を使用するように Qt を設定したあとにテーマのレンダリングの一貫性が失われてしまった場合、{{AUR|gtk-theme-switch2}} をインストールしテーマを選択してください。優先テーマが {{ic|/usr/share/themes}} にインストールされていることも確認するべきでしょう。アクティブな GTK 2 テーマは {{ic|$XDG_DATA_HOME/themes}} ディレクトリからスキャンされないからです。 |
||
− | Qt3 のスタイルは以下の方法で変更できます: |
||
− | * ''KDE3 コントロールセンター'' ('''kcontrol''') を使う。設定は ''Appearance & Themes > Style > Widget Style'' にあります。 |
||
− | * コマンドラインツールを使う {{ic|kde-config --style [name of style]}}。 |
||
− | * デフォルトの ''Qt 設定'' ('''qt3config''') アプリケーションを使う。設定は ''Appearance > Select GUI Style'' にあります。 |
||
− | === |
+ | === QGnomePlatform === |
+ | {{Out of date|QGnomePlatform プロジェクトはメンテナンスされておらず、もはや活発に開発されていません。[https://github.com/FedoraQt/QGnomePlatform#readme]}} |
||
− | GTK+ 3.x のスタイルを変更するアプリケーションが存在します: |
||
− | * {{App|kde-gtk-config|GTK+2 や Gtk+3 アプリケーションのスタイルとフォントを変更できるアプリケーション。|https://projects.kde.org/kde-gtk-config|{{Pkg|kde-gtk-config}}}} |
||
− | :インストールした後、{{ic|kde-gtk-config}} が ''System Settings > Application Appearance > GTK'' に出来ます。 |
||
− | * {{App|LXAppearance|LXDE プロジェクトによる、デスクトップとは独立した GTK+2 や GTK+3 のスタイル設定ツール (LXDE デスクトップの他のパーツを必要としません)。|http://wiki.lxde.org/en/LXAppearance|{{Pkg|lxappearance}}}} |
||
− | * 手動で設定する方法は [[GTK+#GTK.2B_3.x|GTK+]] のページを見て下さい。 |
||
+ | この Qt 5 プラットフォームテーマでは、GNOME での外観の設定が Qt アプリケーションに適用されます。{{AUR|qgnomeplatform-qt5-git}} と {{AUR|qgnomeplatform-qt6-git}} でインストールできます。これは Qt スタイル自体は提供せず、代わりに [[#Qt と GTK 両方のためのスタイル|Qt と GTK の両方をサポートするスタイル]]を必要とします。 |
||
− | === GTK+2 スタイル === |
||
+ | バージョン 3.20 以降の GNOME では、このプラットフォームテーマは自動的に有効化されます。他のシステムでは、次の[[環境変数#グラフィック環境|環境変数]]を設定することで有効化できます: {{ic|1=QT_QPA_PLATFORMTHEME=gnome}}。 |
||
− | GTK+ 2.x のスタイルを変更するアプリケーションは多数存在します: |
||
− | (詳しくは上の GTK+3 セクションを見て下さい。) |
||
− | * {{App|gtk-kde4|KDE4 での GTK+2 アプリケーションのスタイルとフォントを変更できるアプリケーション。|http://kde-look.org/content/show.php?content=74689|{{AUR|gtk-kde4}}}} |
||
− | :インストールした後、{{ic|gtk-kde4}} が ''System Settings > Lost and Found > GTK style'' に出来ます。 |
||
− | * {{App|GTK+ Change Theme|GTK+ 2.0 テーマを変更できる小さなプログラム (''switch2'' の代替)。|http://plasmasturm.org/code/gtk-chtheme/|{{Pkg|gtk-chtheme}}}} |
||
− | * {{App|GTK+ Preference Tool|GTK+ のテーマセレクター・フォントスイッチャー。|http://gtk-win.sourceforge.net/home/index.php/Main/GTKPreferenceTool|{{Pkg|gtk2_prefs}}}} |
||
− | * {{App|GTK+ Theme Switch|シンプルな GTK+ テーマスイッチャー。|http://muhri.net/nav.php3?node=gts|{{Pkg|gtk-theme-switch2}}}} |
||
− | * 手動設定は [[GTK%2B#GTK.2B_2.x|GTK+]] のページを見て下さい。 |
||
− | === |
+ | === QAdwaitaDecorations === |
+ | QAdwaitaDecorations は、[[Wayland]] に対して Adwaita ライクなクライアントサイド装飾を実装する Qt の装飾プラグインです。これは {{AUR|qadwaitadecorations-qt5}} と {{AUR|qadwaitadecorations-qt6}} でインストールできます。インストール後、{{ic|1=QT_WAYLAND_DECORATION=adwaita}} 環境変数を設定してください。 |
||
− | GTK1 のスタイルを変更するために [[Arch User Repository|AUR]] から {{AUR|gtk-theme-switch}} パッケージをインストールできます。 |
||
− | == テ |
+ | == ヒントとテクニック == |
− | テーマエンジンは複数のツールキット間でテーマ (アイコンは除く) を翻訳する薄いレイヤー API として考えることができます。これらのエンジンはプロセスに余分なコードを追加するため、この種の解決方法がネイティブのスタイルを使うのと比べ最適なのかどうかは議論の余地があります。 |
||
− | === |
+ | === Qt アプリで GTK のアイコンテーマを使う === |
+ | [[Plasma]] を使っている場合は、{{Pkg|kde-gtk-config}} を実行して、''KDE システム設定 > アプリケーションスタイル > GTK'' でアイコンテーマを選択してください。 |
||
− | KDE で動作する GTK+ アプリケーションによって使用されます、基本的には他のデスクトップ環境では動作しません。全ての Qt 設定 (スタイル・フォント、アイコンは除く) を GTK+ アプリケーションに適用しスタイルプラグインを直接使用します。このエンジンは AUR から {{AUR|gtk-qt-engine}} パッケージでインストールできます。 |
||
+ | [[GNOME]] を使っている場合は、{{Pkg|dconf-editor}} を実行して、''org > gnome > desktop > interface'' にある {{ic|icon-theme}} キーをあなたの好みのアイコンテーマに変更してください。 |
||
− | {{Note|Qt スタイルによってはレンダリングに問題が生じます。}} |
||
+ | [[デスクトップ環境]] を使っていない場合、例えば {{Pkg|i3-wm}} で最小限のシステムを動かしているのなら、{{Pkg|dconf-editor}} を[[インストール]]して、上記の説明に従ってアイコンテーマを設定してください。 |
||
− | ''KDE System Settings'' の ''Lost and Found > GTK Styles and Fonts'' からこのエンジンにアクセス可能です。 |
||
+ | また、プロファイルの {{ic|DESKTOP_SESSION}} の値も設定する必要があるかもしれません。望ましい結果を得るために可能な方法については [[環境変数#変数の定義]] を参照してください。 |
||
+ | {{Note|アイコンテーマが適用されない場合、入力したテーマ名が正しい形式であったかどうかを確認したい場合があります。例えば、現在アクティブなアイコンテーマを QT アプリケーションに適用したい場合、コマンドでその名前の正しい形式を調べることができます: |
||
− | エンジンを完全に削除したいときはエンジンをアンインストールするだけでなく以下のファイルも削除してください: |
||
− | $ rm ~/.gtkrc2.0-kde |
||
− | $ rm ~/.kde4/env/gtk-qt-engine.rc.sh |
||
− | $ rm ~/gtk-qt-engine.rc |
||
+ | {{bc|1=$ awk -F= '/icon-theme/ {print $2}' ~/.gtkrc-2.0}} |
||
− | === QGtkStyle === |
||
+ | }} |
||
− | これは GTK+ を使って全てのコンポーネントをレンダリングすることでアプリケーションを GNOME デスクトップ環境に完全に調和させる Qt スタイルです。このスタイルを使うには最低でも GTK+ 2.0 と Qt 4.3 が必要ですが、できれば Qt 4.4 以上が推奨です。このスタイルを有効にするには: |
||
− | * ''Qt Configuration'': ''Appearance > GUI Style'' で "GTK+" を選択してください。 |
||
− | * ''KDE4 System Settings'': ''Application Appearance > Style > Applications'' で "GTK+ Style" を選択してください。 |
||
− | * コマンドライン: {{ic|~/.config/Trolltech.conf}} ファイルを編集して以下を加えて下さい: |
||
+ | === KDE Plasma で GTK3 アプリケーションにタイトルバーとフレームを追加する === |
||
− | {{hc|~/.config/Trolltech.conf|<nowiki> |
||
− | ... |
||
− | [Qt] |
||
− | style=GTK+ |
||
− | ...</nowiki>}} |
||
+ | GNOME/GTK アプリケーションを KDE/Plasma タイトルバーとフレームで表示するには、[[GTK#クライアントサイドデコレーション]]で説明されているようにクライアントサイドの装飾を無効にします。 |
||
− | {{Note|Beginning with version 4.5 this style is included in Qt and does not require a separate package anymore.}} |
||
+ | === KDE Plasma での GTK アプリのサブピクセルレンダリングを改善 === |
||
− | == Tips and tricks == |
||
+ | こちらを参照 [[フォント設定#LCD フィルター]] |
||
− | === GTK+ アプリケーションで KDE ファイルダイアログ === |
||
+ | === KDE Plasma での一貫性のあるファイルダイアログ === |
||
− | [http://kde-apps.org/content/show.php?content=36077 KGtk] は LD_PRELOAD を使って GTK+ 2.x のアプリで KDE のファイルダイアログ (開く、保存など) を強制するラッパースクリプトです。KDE を使用していてそのファイルダイアログが GTK+ よりも好ましいときは [[Arch User Repository|AUR]] から {{AUR|kgtk}} をインストールできます。インストールした後、2つの方法で {{ic|kgtk-wrapper}} を使って GTK+ 2.x アプリケーションを実行することが可能です (例として [[GIMP|Gimp]] を使います): |
||
− | * {{ic|kgtk-wrapper}} を直接呼び出し、引数として GTK+ 2.x バイナリを指定する: |
||
− | :{{bc|$ /usr/bin/kgtk-wrapper gimp}} |
||
− | * {{ic|/usr/share/applications/}} にある KDE の .desktop ショートカットを修正して {{ic|Exec}} に kgtk-wrapper を前に付ける。 |
||
− | :例えば [[GIMP|GIMP]] なら、{{ic|/usr/share/applications/gimp.desktop}} ショートカットファイルを編集して {{ic|1=Exec=gimp-2.8 %U}} を {{ic|1=Exec=kgtk-wrapper gimp-2.8 %U}} に置き換えて下さい。 |
||
− | {{Note|GTK+ アプリケーションには KGtk ラッパーと互換性がないものがあります (例: [[Chromium|Chromium]])。場合によってはラッパーによってアプリケーションがクラッシュします (例: [[Firefox|Firefox]])。さらに [[KDM|KDM]] など他のアプリケーションに影響を与えることもあります ([[Thunderbird|Thunderbird]] などと一緒に使っている場合)。}} |
||
+ | {{Accuracy|GTK は {{ic|1=GTK_USE_PORTAL=1}} を {{ic|1=GDK_DEBUG=portals}} に置き換えたようです。 https://gitlab.gnome.org/GNOME/gtk/-/blob/636827800525770715bba96671edb2fc0234ccc2/NEWS#L34}} |
||
− | === 指定のテーマでアプリケーションを起動する === |
||
+ | 同じファイルダイアログを表示させるために、[[XDG デスクトップ ポータル]] を使うことができます。 |
||
− | カスタムスタイルを特定の GTK+ 2.x アプリケーションで使用することができます。アプリケーションを指定したテーマで起動するには: |
||
− | GTK2_RC_FILES=/usr/share/themes/QtCurve/gtk-2.0/gtkrc firefox |
||
+ | {{Pkg|xdg-desktop-portal}} と {{Pkg|xdg-desktop-portal-kde}} を[[インストール]]し、[[環境変数]] {{ic|1=GTK_USE_PORTAL=1}} を設定してください。 |
||
− | このコマンドでは QtCurve テーマで Firefox が起動します。 |
||
+ | 現在、全ての GTK アプリケーションが KDE ファイルダイアログを正しくサポートしているわけではないことに注意してください。 |
||
− | === Qt アプリで GTK+ のアイコンテーマを使う === |
||
+ | Electron を使用するアプリケーションは、最低でも Electron 14 を使用していて ([https://github.com/electron/electron/pull/19159 #19159] を参照)、この機能を適切に実装している必要があります。 |
||
− | GNOME を使っていない場合は、{{ic|gconf-editor}} を実行して ''desktop > gnome > interface'' から {{ic|icon_theme}} キーを設定にあわせて変更してください。GNOME を使っていないなら {{ic|~/.xinitrc}} で {{ic|1=export DESKTOP_SESSION=gnome}} を設定する必要があることもあります。 |
||
+ | [[VSCode]] には問題を修正するためのプルリクエストがあります。[https://github.com/microsoft/vscode/pull/126113 #126113] を参照してください。 |
||
− | === KDE における GTK アプリのサブピクセルレンダリングの改善 === |
||
+ | [[GIMP]] は portal の使用をまだ実装していません。[https://gitlab.gnome.org/GNOME/gimp/-/issues/1830 バグレポート]を参照してください。 |
||
− | GTK アプリのサブピクセルレンダリングがネイティブの KDE Qt アプリケーションよりもはっきりとしない場合、以下の行を {{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}} に追加してみて下さい ({{ic|<fontconfig>}} タグの間): |
||
+ | {{Note|依然として多くの GTK アプリケーションが portal を正しく実装していません (放棄されたアプリケーション、あるいは作者が他のタスクに集中している)。少なくとも Dolphin から nautilus へブックマークを同期させることで、そのようなアプリケーションからのファイル選択を単純化させることができます。以下のコマンドを使用してください: |
||
− | {{bc|<nowiki> |
||
− | <match target="font"> |
||
− | <edit mode="assign" name="lcdfilter"> |
||
− | <const>lcddefault</const> |
||
− | </edit> |
||
− | </match> |
||
− | </nowiki>}} |
||
+ | {{bc|1=$ awk -F\" '/<bookmark href="file/ {print $2}' < $HOME/.local/share/user-places.xbel > $HOME/.config/gtk-3.0/bookmarks}} |
||
− | == トラブルシューティング == |
||
+ | あるいは、{{AUR|bookmarksync-git}} をそのような目的で使用することができます。これを使用すると、ブックマークを編集したり、両方向へ同期させたりできます。 |
||
− | === gtk-qt-engine が OpenOffice で動かない === |
||
+ | }} |
||
+ | ==== アプリケーション固有の設定 ==== |
||
− | OpenOffice に GTK+-Qt エンジンで選択した Qt テーマを使わせるには次の行を {{ic|/etc/profile}} に (root で) 追加する必要があります: |
||
− | export SAL_GTK_USE_PIXMAPPAINT=1 |
||
+ | 環境変数による方法に加えて、一部の GTK アプリケーションには XDG ポータルを強制的に使用させるための独自の設定が存在します: |
||
− | また、''KDE4 System Settings'' の ''Lost and Found > GTK Styles and Fonts'' で "Use my KDE style in GTK applications" を選択してください。 |
||
+ | * [[Firefox]] — [[Firefox#XDG Desktop Portal との統合]] を参照 |
||
− | === Qt アプリケーションが QGtkStyle を使わない === |
||
+ | == トラブルシューティング == |
||
− | GTK+ が [[#GTK+-Qt エンジン|GTK+-Qt エンジン]]を使っている場合、Qt は QGtkStyle を正しく適用しません。環境変数 {{ic|GTK2_RC_FILES}} に記載された GTK+ 設定ファイルを読み込むことで Qt は GTK+-Qt エンジンが使われるかどうか判定します。環境変数が正しく設定されていないときは、Qt はエンジンを使っているとして仮定し、GTK+ スタイルの ''Clearlooks'' を使うように QGtkStyle を設定し、エラーメッセージを出力します: |
||
+ | === GTK アプリでテーマが使えない === |
||
− | QGtkStyle cannot be used together with the GTK_Qt engine. |
||
+ | 設定したスタイルやテーマエンジンが GTK アプリケーションで表示されない場合は、おそらく GTK の設定ファイルが何らかの理由でロードされていません。次を実行することでシステムが設定ファイルをどこにあると期待しているか確認できます: |
||
− | 他にも、シェルから {{ic|qtconfig}} を起動して GTK+ スタイルを選択するとエラーが表示されることがあります: |
||
+ | $ export | grep gtk |
||
+ | 通常、期待されるファイルは GTK1 は {{ic|~/.gtkrc}}、GTK 2.x は {{ic|~/.gtkrc2.0}} または {{ic|~/.gtkrc2.0-kde}} です。 |
||
− | QGtkStyle was unable to detect the current GTK+ theme. |
||
+ | === システムをアップグレードすると SVG (Breeze) アイコンが GTK アプリで使用されない === |
||
− | [https://bbs.archlinux.org/viewtopic.php?id=99175&p=1 このスレッド]によれば、この問題を解決するには {{Pkg|libgnomeui}} をインストールする必要があります。xfce と同じように、これにはグラフィカルツールでテーマを変更する度にファイルを編集する必要がないという利点もあります。 |
||
+ | 次のコマンドを実行してみてください: |
||
− | [[Openbox|Openbox]] や GNOME 以外の環境を使っているユーザーもこの問題に出くわす可能性があります。問題を解決するには、まず {{ic|.xinitrc}} ファイルに以下を追加してください: |
||
+ | # gdk-pixbuf-query-loaders --update-cache |
||
− | {{hc|.xinitrc|<nowiki> |
||
− | ... |
||
− | export GTK2_RC_FILES="$HOME/.gtkrc-2.0" |
||
− | ... |
||
− | </nowiki>}} |
||
+ | === GTK アプリが KDE システム設定を完全には使用しない === |
||
− | {{Note| |
||
− | * この行を追加するのはウィンドウマネージャを起動する行の前にしてください。 |
||
− | * コロンで分割して複数のパスを追加することも可能です。 |
||
− | * {{ic|~}} ではなく {{ic|$HOME}} を使うようにしてください。前者では正しくユーザーのホームディレクトリにならないためです。 |
||
− | }} |
||
+ | GTK アプリで [[Plasma]] 設定をさらに統合するには、{{Pkg|gnome-settings-daemon}}、{{Pkg|gsettings-desktop-schemas}}、および {{Pkg|gsettings-qt}} を[[インストール]]する必要があるかもしれません。これにより、GTK に適切な Qt バインディングが提供されます。 |
||
− | それから[[#GTK2 スタイル|特定のアプリケーション]]を使うか手動で {{ic|~/.gtkrc-2.0}} を編集して使いたいテーマを指定してください、以下を追加します: |
||
− | {{hc|.gtkrc-2.0|<nowiki> |
||
− | ... |
||
− | gtk-theme-name="[name of theme]" |
||
− | ... |
||
− | </nowiki>}} |
||
+ | === kde-gtk-config の "システム設定 > アプリケーションスタイル > GTK" メニューが無い === |
||
− | ツールによっては {{ic|~/.gtkrc-2.0}} に以下のような include ディレクティブしか挿入しないことがあります: |
||
− | {{hc|.gtkrc-2.0| |
||
− | ... |
||
− | include "/usr/share/themes/SomeTheme/gtk-2.0/gtkrc" |
||
− | ... |
||
− | }} |
||
+ | {{pkg|kde-gtk-config}} が壊れてシステム設定から "アプリケーションスタイル > GTK" メニューが無くなった場合、{{pkg|lxappearance}} や {{Pkg|nwg-look}} のような [[GTK#設定ツール|GTK 設定ツール]]を選ぶと GTK 2 と GTK 3 のスタイルを構成できるようになります。 |
||
− | これでは QGtkStyle の全てのバージョンで認識されません。この問題は {{ic|~/.gtkrc-2.0}} ファイルに上の例のように {{ic|gtk-theme-name}} を手動で挿入することで解決できます。 |
||
+ | {{pkg|lxappearance}} は LXDE プロジェクト由来ですが、デスクトップに依存していません (つまり、LXDE デスクトップの他のパーツを必要としません)。{{Pkg|nwg-look}} は GTK3 設定エディタであり、wlroots ベースの Wayland 環境で適切に動作するように設計されています。nwg-look のルックアンドフィールは LXAppearance による影響を強く受けていますが、いくつかの不便さからユーザを開放することを意図しています。 |
||
+ | === Dolphin のテーマが Nautilus と良くマッチしない === |
||
− | {{Note|Style-changing applications will most probably rewrite the {{ic|~/.gtkrc-2.0}} file the next time you change themes.}} |
||
+ | [[Dolphin#フォルダビューの背景色がシステムのテーマと合わない|フォルダビューの背景色がシステムのテーマと合わない]] のセクションで、変な色使いの対処法を確認してください。 |
||
− | 以上の手順が上手く行かないときは、{{Pkg|gconf}} をインストールして次のコマンドを実行してください: |
||
+ | === KDE Plasma の XDG Desktop Portal が使用されない === |
||
− | gconftool-2 --set --type string /desktop/gnome/interface/gtk_theme [name of theme] |
||
+ | [[XDG デスクトップ ポータル#デスクトップ環境を強制する]] 章に書かれてあることに従い、{{ic|1=XDG_CURRENT_DESKTOP=KDE}} 環境変数を設定してください。 |
||
− | さらに、同じアイコンやカーソルを設定したい場合、それらも指定してください。 |
||
+ | === Qt5: kvantum is not available as a style in the Qt settings app === |
||
− | gconftool-2 --set --type string /desktop/gnome/interface/icon_theme Faenza-Dark |
||
− | |||
− | 上のコマンドはアイコンテーマを {{ic|/usr/share/icons/Faenza-Dark}} にある Faenza-Dark に設定します。カーソルテーマを設定するには最初に gconf の値を設定してください。 |
||
− | |||
− | gconftool-2 --set --type string /desktop/gnome/peripherals/mouse/cursor_theme Adwaita |
||
− | |||
− | それから以下の内容で {{ic|/usr/share/icons/default/index.theme}} ファイルを作成してください: |
||
− | |||
− | [Icon Theme] |
||
− | Inherits=Adwaita |
||
− | |||
− | === GTK+ アプリでテーマが使えない === |
||
− | |||
− | 設定したスタイルやテーマエンジンが GTK アプリケーションで表示されない場合は、おそらく GTK+ の設定ファイルが何らかの理由でロードされていません。次を実行することでシステムが設定ファイルをどこにあると期待しているか確認できます: |
||
− | $ export | grep gtk |
||
+ | {{pkg|kvantum-qt5}} がインストールされていることを確認してください。 |
||
− | 通常は期待されるファイルは GTK1 は {{ic|~/.gtkrc}}、GTK+ 2.x は {{ic|~/.gtkrc2.0}} または {{ic|~/.gtkrc2.0-kde}} です。 |
||
+ | {{TranslationStatus|Uniform look for Qt and GTK applications|2024-07-21|812029}} |
||
− | 新しいバージョンの {{AUR|gtk-qt-engine}} は {{ic|~/.gtkrc2.0-kde}} を使って {{ic|~/.kde/env/gtk-qt-engine.rc.sh}} で export する変数を設定しています。最近 ''gtk-qt-engine'' を削除していて GTK+ テーマを設定しようとしているのであれば {{ic|~/.kde/env/gtk-qt-engine.rc.sh}} も削除して再起動して下さい。これによって GTK+ の外観の設定が {{ic|~/.gtkrc2.0-kde}} ファイルではなく標準的な {{ic|~/.gtkrc2.0}} になります。 |
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 がインストールされていることを確認してください。