「Qt と GTK アプリケーションの外観の統合」の版間の差分
(→ヒントとテクニック: 同期) |
(→トラブルシューティング: 同期) |
||
163行目: | 163行目: | ||
$ 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 |
||
− | === |
+ | === Flatpak の Qt アプリに Gnome Adwaita ダークテーマが適用されない === |
− | テーマを Adwaita に切り替えた |
+ | テーマを Adwaita-dark に切り替えたが、Flatpak Qt アプリケーションが依然としてライトバージョンのテーマを使用してしまう場合は、必要な KStyle をインストールしてください: |
# flatpak install flathub org.kde.KStyle.Adwaita |
# flatpak install flathub org.kde.KStyle.Adwaita |
||
178行目: | 178行目: | ||
=== GNOME Wayland で実行される Qt アプリケーションが、Qt テーマを設定した後でも、ウィンドウ装飾の外観が一致しない === |
=== GNOME Wayland で実行される Qt アプリケーションが、Qt テーマを設定した後でも、ウィンドウ装飾の外観が一致しない === |
||
− | ウィンドウ装飾の一致した外観を得るには、{{ |
+ | ウィンドウ装飾の一致した外観を得るには、{{Pkg|qgnomeplatform-qt5}} をインストールし、次の[[環境変数#グラフィック環境|環境変数]]を設定する必要があります: {{ic|1=QT_QPA_PLATFORMTHEME='gnome'}} |
この修正は、Adwaita または Adwaita-dark で動作することが保証されています。 |
この修正は、Adwaita または Adwaita-dark で動作することが保証されています。 |
||
=== GTK アプリが KDE システム設定を完全には使用しない === |
=== GTK アプリが KDE システム設定を完全には使用しない === |
||
− | GTK アプリで [[Plasma]] 設定をさらに統合するには、 |
+ | GTK アプリで [[Plasma]] 設定をさらに統合するには、{{Pkg|gnome-settings-daemon}}、{{Pkg|gsettings-desktop-schemas}}、および {{Pkg|gsettings-qt}} を[[インストール]]する必要があるかもしれません。これにより、GTK に適切な Qt バインディングが提供されます。 |
− | === kde-gtk-config "システム設定>アプリケーションスタイル>GTK" メニューが |
+ | === kde-gtk-config の "システム設定 > アプリケーションスタイル > GTK" メニューが無い === |
− | {{pkg|kde-gtk-config}} が壊れてシステム設定から " |
+ | {{pkg|kde-gtk-config}} が壊れてシステム設定から "アプリケーションスタイル > GTK" メニューが無くなった場合、{{pkg|lxappearance}} のような [[GTK#設定ツール|GTK 設定ツール]]を選ぶと GTK 2 と GTK 3 のスタイルを構成できるようになります。 |
LXDE プロジェクトに由来するものであっても、デスクトップには依存しません (LXDE デスクトップの他の部分を必要としません。) |
LXDE プロジェクトに由来するものであっても、デスクトップには依存しません (LXDE デスクトップの他の部分を必要としません。) |
||
− | === Dolphin のテーマが Nautilus |
+ | === Dolphin のテーマが Nautilus と良くマッチしない === |
− | [[Dolphin# |
+ | [[Dolphin#フォルダビューの背景色がシステムのテーマと合わない|フォルダビューの背景色がシステムのテーマと合わない]] のセクションで、変な色使いの対処法を確認してください。 |
2023年5月28日 (日) 18:43時点における版
Qt と GTK ベースのプログラムは異なるウィジェットツールキットを使ってグラフィカルユーザーインターフェースを表示しています。それぞれにデフォルトで異なるテーマ・スタイル・アイコンセットが存在するため、"ルックアンドフィール"は著しく乖離してしまいます。この記事ではデスクトップエクスペリエンスを統合するために Qt と GTK のアプリケーションの外観を似たようにする方法を説明しています。
目次
- 1 概要
- 2 Qt と GTK 両方のためのスタイル
- 3 テーマエンジン
- 4 ヒントとテクニック
- 5 トラブルシューティング
- 5.1 GTK アプリでテーマが使えない
- 5.2 システムをアップグレードすると SVG (Breeze) アイコンが GTK アプリで使用されない
- 5.3 Flatpak の Qt アプリに Gnome Adwaita ダークテーマが適用されない
- 5.4 GNOME Wayland で実行される Qt アプリケーションが、Qt テーマを設定した後でも、ウィンドウ装飾の外観が一致しない
- 5.5 GTK アプリが KDE システム設定を完全には使用しない
- 5.6 kde-gtk-config の "システム設定 > アプリケーションスタイル > GTK" メニューが無い
- 5.7 Dolphin のテーマが Nautilus と良くマッチしない
概要
2つのツールキットで同じような見た目を表示するには以下を修正する必要が出てきます:
- テーマ: アプリケーションやウィジェットセットなどの外観のカスタマイズ。テーマは通常、スタイル・アイコンテーマ・カラーテーマから成ります。
- スタイル: ウィジェットセットのグラフィカルレイアウトと外観。
- アイコンテーマ: グローバルアイコンのセット。
- カーソルテーマ: スタイルと合わせて使われるグローバルカラーのセット。
外観の統一のために取れる方法は様々です:
- 下で説明しているツールを使って GTK と Qt のスタイルを別個に修正し、同じような見た目のテーマ (スタイル・カラー・アイコン・カーソル・フォント) を選択する。
- 特殊なテーマエンジンを使って、他のグラフィカルツールキットの見た目をメインのツールキットに合うように仲介させる。
Qt と GTK 両方のためのスタイル
統合のために、Qt と GTK 両方で記述・提供されているウィジェットスタイルのセットが存在し、全ての主要なバージョンが含まれています。このようなスタイルを使うことで、アプリケーションが使っているツールキットに関係なく全てのアプリケーションの見た目を一つにすることが可能です。
Breeze
Breeze は KDE Plasma のデフォルトの Qt スタイルです。Qt5 のスタイルは breeze パッケージで、Qt4 のスタイルは breeze-kde4AUR パッケージでインストールできます。Breeze と似ている GTK 2 と GTK 3 のテーマは breeze-gtk パッケージでインストールできます。
パッケージをインストールしたら、GTK の設定ツールを使って GTK のテーマを変更してください。
KDE Plasma を使用している場合、kde-gtk-config をインストールし、それをコマンドラインから実行するか、ログインし直して KDE システム設定 > 外観 > アプリケーションスタイル > GNOME/GTK のアプリケーションスタイルを設定… を開いてください。KDE システム設定におけるフォント、アイコン、カーソル、そしてウィジェットのスタイルセットは、自動的に GTK の設定に適用されます。GTK テーマだけは、前述のモジュールを使って手動で設定する必要があります。
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、そして adwaita-qt6 でインストールできます。
Qt スタイルをデフォルトとして設定するには:
- Qt 4 の場合、Qt Configuration (
qtconfig-qt4
) で有効化できます。Appearance > GUI Style で adwaita を選択してください。あるいは、/etc/xdg/Trolltech.conf
(システム全体) か~/.config/Trolltech.conf
(ユーザ固有) を編集してください:
~/.config/Trolltech.conf
... [Qt] style=adwaita ...
- Qt 5 の場合、環境変数
QT_STYLE_OVERRIDE=adwaita
を設定することで有効化できます。あるいは、qt5ct パッケージを使用してください。より詳細な手順は、Qt#KDE Plasma 以外の環境での Qt 5 アプリケーションの設定 を参照してください。
テーマエンジン
テーマエンジンは、1つあるいは複数のツールキット間でテーマ (アイコンは除く) を翻訳する薄いレイヤー API と考えることができます。これらのエンジンはプロセスに余分なコードを追加するため、この種の解決方法がネイティブのスタイルを使うのと比べ最適なのかどうかは議論の余地があります。
Kvantum
Kvantum (kvantum) は、Adapta、Arc、Ambiance、Libadwaita、そして Materia などいくつかの人気な GTK テーマのバージョンを含む、様々な組み込みスタイルが同梱されている Qt5 用のカスタマイズ可能な SVG ベースのテーマエンジンです。その他のテーマは KDE Store で入手可能です。
Kvantum はプラットフォームテーマではなくスタイルとして扱われます。環境変数を使って Kvantum を全 qt アプリケーションに対して設定するには、QT_STYLE_OVERRIDE=kvantum
を設定してください。
テーマ設定
(KvLibadwaita などの) Kvantum のテーマバリアントを設定するには、設定ファイルを編集してください:
/etc/xdg/Kvantum/kvantum.kvconfig (あるいは ~/.config/Kvantum/kvantum.kvconfig)
... theme=KvLibadwaita ...
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 をインストールしテーマを選択してください。
QGnomePlatform
この Qt 5 プラットフォームテーマでは、GNOME での外観の設定が Qt アプリケーションに適用されます。qgnomeplatform-qt5 か qgnomeplatform-qt6 でインストールできます。開発版は qgnomeplatform-qt5-gitAUR と qgnomeplatform-qt6-gitAUR でインストールできます。これは Qt スタイル自体は提供せず、代わりに Qt と GTK の両方をサポートするスタイルを必要とします。
バージョン 3.20 以降の GNOME では、このプラットフォームテーマは自動的に有効化されます。他のシステムでは、次の環境変数を設定することで有効化できます: QT_QPA_PLATFORMTHEME=gnome
。
ヒントとテクニック
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 のタイトルバーとフレームで表示するには、gtk3-nocsd-gitAUR をインストールしてからウィンドウマネージャを再起動し、新しいライブラリパスをロードしてください。
また、GTK アプリケーションをラッパーで実行することもできます:
$ gtk3-nocsd gedit
KDE Plasma での GTK アプリのサブピクセルレンダリングを改善
こちらを参照 フォント設定#LCD フィルター
KDE Plasma での一貫性のあるファイルダイアログ
同じファイルダイアログを表示させるために、XDG Portals を使うことができます。
xdg-desktop-portal と xdg-desktop-portal-kde をインストールし、環境変数 GTK_USE_PORTAL=1
を設定してください。
現在、全ての GTK アプリケーションが KDE ファイルダイアログを正しくサポートしているわけではないことに注意してください。
Electron を使用するアプリケーションは、最低でも Electron 14 を使用していて (#19159 を参照)、この機能を適切に実装している必要があります。
VSCode には問題を修正するためのプルリクエストがあります。#126113 を参照してください。
GIMP は portal の使用をまだ実装していません。バグレポートを参照してください。
トラブルシューティング
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
Flatpak の Qt アプリに Gnome Adwaita ダークテーマが適用されない
テーマを Adwaita-dark に切り替えたが、Flatpak Qt アプリケーションが依然としてライトバージョンのテーマを使用してしまう場合は、必要な KStyle をインストールしてください:
# flatpak install flathub org.kde.KStyle.Adwaita
GNOME Wayland で実行される Qt アプリケーションが、Qt テーマを設定した後でも、ウィンドウ装飾の外観が一致しない
ウィンドウ装飾の一致した外観を得るには、qgnomeplatform-qt5 をインストールし、次の環境変数を設定する必要があります: QT_QPA_PLATFORMTHEME='gnome'
この修正は、Adwaita または Adwaita-dark で動作することが保証されています。
GTK アプリが KDE システム設定を完全には使用しない
GTK アプリで Plasma 設定をさらに統合するには、gnome-settings-daemon、gsettings-desktop-schemas、および gsettings-qt をインストールする必要があるかもしれません。これにより、GTK に適切な Qt バインディングが提供されます。
kde-gtk-config の "システム設定 > アプリケーションスタイル > GTK" メニューが無い
kde-gtk-config が壊れてシステム設定から "アプリケーションスタイル > GTK" メニューが無くなった場合、lxappearance のような GTK 設定ツールを選ぶと GTK 2 と GTK 3 のスタイルを構成できるようになります。 LXDE プロジェクトに由来するものであっても、デスクトップには依存しません (LXDE デスクトップの他の部分を必要としません。)
Dolphin のテーマが Nautilus と良くマッチしない
フォルダビューの背景色がシステムのテーマと合わない のセクションで、変な色使いの対処法を確認してください。