「GTK」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(GTK+ => GTK)
95行目: 95行目:
 
== 設定 ==
 
== 設定 ==
   
設定ファイルで GTK+ の設定を手動で指定することもできます。ただしデスクトップ環境やアプリケーションは手動設定を上書きしてしまうことがあります。GTK+ のバージョンによって、設定ファイルの場所は異なっています:
+
設定ファイルで GTK の設定を手動で指定することもできます。ただしデスクトップ環境やアプリケーションは手動設定を上書きしてしまうことがあります。GTK のバージョンによって、設定ファイルの場所は異なっています:
* GTK+ 2 ユーザー個別: {{ic|~/.gtkrc-2.0}}
+
* GTK 2 ユーザー個別: {{ic|~/.gtkrc-2.0}}
* GTK+ 2 システム全体: {{ic|/etc/gtk-2.0/gtkrc}}
+
* GTK 2 システム全体: {{ic|/etc/gtk-2.0/gtkrc}}
* GTK+ 3 ユーザー個別: {{ic|$XDG_CONFIG_HOME/gtk-3.0/settings.ini}} ({{ic|$XDG_CONFIG_HOME}} が設定されていない場合は {{ic|$HOME/.config/gtk-3.0/settings.ini}})
+
* GTK 3 ユーザー個別: {{ic|$XDG_CONFIG_HOME/gtk-3.0/settings.ini}} ({{ic|$XDG_CONFIG_HOME}} が設定されていない場合は {{ic|$HOME/.config/gtk-3.0/settings.ini}})
* GTK+ 3 システム全体: {{ic|/etc/gtk-3.0/settings.ini}}
+
* GTK 3 システム全体: {{ic|/etc/gtk-3.0/settings.ini}}
   
 
{{Note|
 
{{Note|
* GTK の設定オプションの完全なリストは GTK+ プログラミングリファレンスマニュアルの [http://library.gnome.org/devel/gtk3/stable/GtkSettings.html#GtkSettings.properties GTK+ 3 ''GtkSettings'' properties] (と [http://library.gnome.org/devel/gtk2/stable/GtkSettings.html#GtkSettings.properties GTK+ 2 properties]) を見て下さい。
+
* GTK の設定オプションの完全なリストは GTK プログラミングリファレンスマニュアルの [http://library.gnome.org/devel/gtk3/stable/GtkSettings.html#GtkSettings.properties GTK 3 ''GtkSettings'' properties] (と [http://library.gnome.org/devel/gtk2/stable/GtkSettings.html#GtkSettings.properties GTK 2 properties]) を見て下さい。
*以下の設定の中には非推奨となっているものもあり ({{ic|gtk-icon-sizes}} など)、GTK+ 3.10 では無視されることがあります。
+
*以下の設定の中には非推奨となっているものもあり ({{ic|gtk-icon-sizes}} など)、GTK 3.10 では無視されることがあります。
*GTK+ の設定ファイルを編集した場合、変更が適用されるのは新しく起動したアプリケーションからです。}}
+
*GTK の設定ファイルを編集した場合、変更が適用されるのは新しく起動したアプリケーションからです。}}
   
 
=== テーマの基本設定 ===
 
=== テーマの基本設定 ===
   
GTK+ テーマやアイコン、フォントやフォントサイズを手動で変更するには、以下のように設定ファイルに追加します:
+
GTK テーマやアイコン、フォントやフォントサイズを手動で変更するには、以下のように設定ファイルに追加します:
   
'''GTK+ 2:'''
+
'''GTK 2:'''
 
{{hc|~/.gtkrc-2.0|2=
 
{{hc|~/.gtkrc-2.0|2=
 
gtk-icon-theme-name = "Adwaita"
 
gtk-icon-theme-name = "Adwaita"
117行目: 117行目:
 
}}
 
}}
   
'''GTK+ 3:'''
+
'''GTK 3:'''
 
{{hc|$XDG_CONFIG_HOME/gtk-3.0/settings.ini|2=
 
{{hc|$XDG_CONFIG_HOME/gtk-3.0/settings.ini|2=
 
[Settings]
 
[Settings]
129行目: 129行目:
 
=== ダークテーマ ===
 
=== ダークテーマ ===
   
GTK+ 3 テーマの中には派生のダークテーマが存在することがありますが、アプリケーションによって明示的に使うように設定されない限り、デフォルトで使われることはありません。全ての GTK+ 3 アプリケーションでダークテーマを使うには、以下を設定:
+
GTK 3 テーマの中には派生のダークテーマが存在することがありますが、アプリケーションによって明示的に使うように設定されない限り、デフォルトで使われることはありません。全ての GTK 3 アプリケーションでダークテーマを使うには、以下を設定:
   
 
gtk-application-prefer-dark-theme = true
 
gtk-application-prefer-dark-theme = true
135行目: 135行目:
 
=== キーボードショートカットのカスタマイズを有効にする ===
 
=== キーボードショートカットのカスタマイズを有効にする ===
   
マウスをメニューアイテムの上に乗せて設定したいキーボードのコンビネーションを押すことで GTK+ アプリケーションのキーボードショートカットをカスタマイズすることができます
+
マウスをメニューアイテムの上に乗せて設定したいキーボードのコンビネーションを押すことで GTK アプリケーションのキーボードショートカットをカスタマイズすることができます
 
ただし、この機能はデフォルトでは無効になっています。この機能を有効にするには、次を設定してください:
 
ただし、この機能はデフォルトでは無効になっています。この機能を有効にするには、次を設定してください:
 
gtk-can-change-accels = 1
 
gtk-can-change-accels = 1
197行目: 197行目:
 
最近使われたフォルダではなく ''current-working-directory'' でファイル選択ダイアログを開くようにします。通常、''current-working-directory'' は''ホームディレクトリ''です。
 
最近使われたフォルダではなく ''current-working-directory'' でファイル選択ダイアログを開くようにします。通常、''current-working-directory'' は''ホームディレクトリ''です。
   
'''GTK+ 3'''
+
'''GTK 3'''
   
 
''gsettings'' で DConf を変更してください、設定ファイルは存在しません:
 
''gsettings'' で DConf を変更してください、設定ファイルは存在しません:
203行目: 203行目:
 
$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd
 
$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd
   
'''GTK+ 2'''
+
'''GTK 2'''
   
 
{{ic|~/.config/gtk-2.0/gtkfilechooser.ini}} 設定ファイルを編集してください:
 
{{ic|~/.config/gtk-2.0/gtkfilechooser.ini}} 設定ファイルを編集してください:
212行目: 212行目:
 
=== スクロールの旧式の挙動 ===
 
=== スクロールの旧式の挙動 ===
   
{{Note|この設定が適用されない GTK+ アプリケーションもあります。}}
+
{{Note|この設定が適用されない GTK アプリケーションもあります。}}
 
{{Tip|左クリックではなく右クリックを使うことでも昔のようなスクロールの挙動をさせることができます。}}
 
{{Tip|左クリックではなく右クリックを使うことでも昔のようなスクロールの挙動をさせることができます。}}
   
GTK+ 3.6 以前では、スクロールバーのスライダーの両側をクリックすると、クリックした方向にスクロールバーが丁度一ページ分だけ移動するようになっていました。GTK+ 3.6 から、スライダーはクリックした位置に直接移動するようになっています。以下の内容のファイルを作成することで、アプリケーションによっては前の挙動に戻すことが可能です:
+
GTK 3.6 以前では、スクロールバーのスライダーの両側をクリックすると、クリックした方向にスクロールバーが丁度一ページ分だけ移動するようになっていました。GTK 3.6 から、スライダーはクリックした位置に直接移動するようになっています。以下の内容のファイルを作成することで、アプリケーションによっては前の挙動に戻すことが可能です:
   
 
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki>
 
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki>
224行目: 224行目:
 
=== オーバーレイスクロールバーを無効化 ===
 
=== オーバーレイスクロールバーを無効化 ===
   
GTK+ 3.15 から、オーバーレイスクロールバーがデフォルトで有効になっており、GTK+ 3 アプリケーションではマウスを乗せたときだけしかスクロールバーが表示されないようになっています。次の環境変数を設定することで元のスクロールバーに戻せます: {{ic|1=GTK_OVERLAY_SCROLLING=0}}。
+
GTK 3.15 から、オーバーレイスクロールバーがデフォルトで有効になっており、GTK 3 アプリケーションではマウスを乗せたときだけしかスクロールバーが表示されないようになっています。次の環境変数を設定することで元のスクロールバーに戻せます: {{ic|1=GTK_OVERLAY_SCROLLING=0}}。
   
 
[[環境変数#グラフィカルアプリケーション]]を参照。
 
[[環境変数#グラフィカルアプリケーション]]を参照。
233行目: 233行目:
   
 
{{hc|~/.config/gtk-3.0/gtk.css|
 
{{hc|~/.config/gtk-3.0/gtk.css|
/* Remove dotted lines from GTK+ 3 applications */
+
/* Remove dotted lines from GTK 3 applications */
 
.undershoot.top, .undershoot.right, .undershoot.bottom, .undershoot.left { background-image: none; }
 
.undershoot.top, .undershoot.right, .undershoot.bottom, .undershoot.left { background-image: none; }
 
}}
 
}}
282行目: 282行目:
 
== GDK バックエンド ==
 
== GDK バックエンド ==
   
GDK (GTK+ の抽象レイヤー) は GTK+ アプリケーションを表示するための複数のバックエンドをサポートしています。
+
GDK (GTK の抽象レイヤー) は GTK アプリケーションを表示するための複数のバックエンドをサポートしています。
   
 
=== Wayland バックエンド ===
 
=== Wayland バックエンド ===
297行目: 297行目:
   
 
=== Broadway バックエンド ===
 
=== Broadway バックエンド ===
GDK Broadway バックエンドは HTML5 とウェブソケットを使って、ウェブブラウザに GTK+ アプリケーションを表示することをサポートしています [https://developer.gnome.org/gtk3/3.8/gtk-broadway.html]。
+
GDK Broadway バックエンドは HTML5 とウェブソケットを使って、ウェブブラウザに GTK アプリケーションを表示することをサポートしています [https://developer.gnome.org/gtk3/3.8/gtk-broadway.html]。
   
 
broadwayd を使うときには、X と同じようにコロンを前に付けて、使用するディスプレイ番号を指定してください。デフォルトのディスプレイ番号は 1 です。
 
broadwayd を使うときには、X と同じようにコロンを前に付けて、使用するディスプレイ番号を指定してください。デフォルトのディスプレイ番号は 1 です。
321行目: 321行目:
 
== トラブルシューティング ==
 
== トラブルシューティング ==
   
=== GTK+ 2 と GTK+ 3 アプリケーションでテーマが異なる ===
+
=== GTK 2 と GTK 3 アプリケーションでテーマが異なる ===
   
通常、選択したテーマが GTK+ 2.x と GTK+ 3.x の両方をサポートしている場合、GTK+ 2 と GTK+ 3 アプリケーションの両方にテーマが適用されます。選択したテーマが GTK+ 2.x しかサポートしてない場合、GTK+ 2.x アプリケーションにはそのテーマが使われ、GTK+ 3.x アプリケーションにはデフォルトの GTK+ テーマが使われます。選択したテーマが GTK+ 3.x しかサポートしていない場合、GTK+ 3.x アプリケーションにはそのテーマが使われ、GTK+ 2.x アプリケーションにはデフォルトの GTK+ テーマが使われます。UI の外観を統一するために GTK+ 2.x と GTK+ 3.x 両方をサポートしているテーマを使うと一番良い結果が得られます。
+
通常、選択したテーマが GTK 2.x と GTK 3.x の両方をサポートしている場合、GTK 2 と GTK 3 アプリケーションの両方にテーマが適用されます。選択したテーマが GTK 2.x しかサポートしてない場合、GTK 2.x アプリケーションにはそのテーマが使われ、GTK 3.x アプリケーションにはデフォルトの GTK テーマが使われます。選択したテーマが GTK 3.x しかサポートしていない場合、GTK 3.x アプリケーションにはそのテーマが使われ、GTK 2.x アプリケーションにはデフォルトの GTK テーマが使われます。UI の外観を統一するために GTK 2.x と GTK 3.x 両方をサポートしているテーマを使うと一番良い結果が得られます。
   
インストールしたテーマでどれが GTK+ 2.x と GTK+ 3.x 両方のバージョンを持っているか調べるには次のコマンドを使って下さい (空白が含まれている名前はひっかかりません):
+
インストールしたテーマでどれが GTK 2.x と GTK 3.x 両方のバージョンを持っているか調べるには次のコマンドを使って下さい (空白が含まれている名前はひっかかりません):
 
find $(find ~/.themes /usr/share/themes/ -wholename "*/gtk-3.0" | sed -e "s/^\(.*\)\/gtk-3.0$/\1/") -wholename "*/gtk-2.0" | sed -e "s/.*\/\(.*\)\/gtk-2.0/\1"/
 
find $(find ~/.themes /usr/share/themes/ -wholename "*/gtk-3.0" | sed -e "s/^\(.*\)\/gtk-3.0$/\1/") -wholename "*/gtk-2.0" | sed -e "s/.*\/\(.*\)\/gtk-2.0/\1"/
   
335行目: 335行目:
 
# ln -s /home/[username]/.gtkrc-2.0 /etc/gtk-2.0/gtkrc
 
# ln -s /home/[username]/.gtkrc-2.0 /etc/gtk-2.0/gtkrc
 
# ln -s /home/[username]/.config/gtk-3.0/settings.ini /etc/gtk-3.0/settings.ini
 
# ln -s /home/[username]/.config/gtk-3.0/settings.ini /etc/gtk-3.0/settings.ini
* システム全体にテーマファイルを設定: {{ic|/etc/gtk-3.0/settings.ini}} (GTK+ 3) または {{ic|/etc/gtk-2.0/gtkrc}} (GTK+ 2)
+
* システム全体にテーマファイルを設定: {{ic|/etc/gtk-3.0/settings.ini}} (GTK 3) または {{ic|/etc/gtk-2.0/gtkrc}} (GTK 2)
 
* テーマを root で設定:
 
* テーマを root で設定:
 
# gksu lxappearance
 
# gksu lxappearance
384行目: 384行目:
 
===accessibility bus に関する警告を表示させない===
 
===accessibility bus に関する警告を表示させない===
   
GTK+ 3 プログラムの実行時に、ターミナルに以下のような警告が表示される場合:
+
GTK 3 プログラムの実行時に、ターミナルに以下のような警告が表示される場合:
   
 
WARNING **: Couldn't connect to accessibility bus:
 
WARNING **: Couldn't connect to accessibility bus:
396行目: 396行目:
 
=== タイトルバーの背景色がおかしい ===
 
=== タイトルバーの背景色がおかしい ===
   
GTK+ テーマの背景色に擬態するウィンドウデコレーションテーマを使用する[[ウィンドウマネージャ]]を使っている場合、GTK+ 3 アプリケーションでタイトルバーの色がアプリケーションの色と完全に食い違って表示されることがあります。対応策としては、以下のファイルを作成してください:
+
GTK テーマの背景色に擬態するウィンドウデコレーションテーマを使用する[[ウィンドウマネージャ]]を使っている場合、GTK 3 アプリケーションでタイトルバーの色がアプリケーションの色と完全に食い違って表示されることがあります。対応策としては、以下のファイルを作成してください:
 
{{hc|~/.config/gtk-3.0/gtk.css|
 
{{hc|~/.config/gtk-3.0/gtk.css|
 
/* Always use background color */
 
/* Always use background color */
424行目: 424行目:
 
{{ic|1=GDK_CORE_DEVICE_EVENTS=1}} を[[環境変数#変数の定義|定義]]して xinput2 の代わりに GTK2 のスタイル入力を使うようにしてください [https://bugzilla.gnome.org/show_bug.cgi?id=677329#c10]。
 
{{ic|1=GDK_CORE_DEVICE_EVENTS=1}} を[[環境変数#変数の定義|定義]]して xinput2 の代わりに GTK2 のスタイル入力を使うようにしてください [https://bugzilla.gnome.org/show_bug.cgi?id=677329#c10]。
   
=== GTK+ 2 のファイルダイアログのサムネイル ===
+
=== GTK 2 のファイルダイアログのサムネイル ===
   
{{AUR|gtk2-patched-filechooser-icon-view}} をインストールすることで GTK+ のファイル選択ダイアログで、リストの代わりにサムネイルでファイルを閲覧するオプションが作られます。
+
{{AUR|gtk2-patched-filechooser-icon-view}} をインストールすることで GTK のファイル選択ダイアログで、リストの代わりにサムネイルでファイルを閲覧するオプションが作られます。
   
 
=== GNOME Wayland セッションで一部のアプリのボタン/メニューアイコンが表示されない ===
 
=== GNOME Wayland セッションで一部のアプリのボタン/メニューアイコンが表示されない ===
   
{{ic|~/.config/gtk-3.0/settings.ini}} ファイルの設定が間違っています。他の GTK+ ベースのデスクトップ環境を試しに使ってみた場合に発生することがあります。以下の値に問題があります:
+
{{ic|~/.config/gtk-3.0/settings.ini}} ファイルの設定が間違っています。他の GTK ベースのデスクトップ環境を試しに使ってみた場合に発生することがあります。以下の値に問題があります:
   
 
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki>[Settings]
 
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki>[Settings]
438行目: 438行目:
 
上記を 0 に設定するか、全てのファイルを削除して GNOME のデフォルト設定に戻してください。
 
上記を 0 に設定するか、全てのファイルを削除して GNOME のデフォルト設定に戻してください。
   
=== GTK+3 で polkit を使用しない ===
+
=== GTK 3 で polkit を使用しない ===
   
GTK+3 は印刷に必要な colord で polkit に依存しています。ただし印刷自体は polkit をインストールしていなくても可能です。
+
GTK 3 は印刷に必要な colord で polkit に依存しています。ただし印刷自体は polkit をインストールしていなくても可能です。
   
=== 一部の GTK+ 2 テーマで UI のカラーパレットしか変化しない ===
+
=== 一部の GTK 2 テーマで UI のカラーパレットしか変化しない ===
   
GTK+ 2 のテーマによっては、UI のコントロールがデフォルトの Raleigh のままで、カラーパレットしか変わらないことがあります。原因はテーマが GTK+ 2 の Murrine エンジンを必要としているためです (GTK+ 2 プログラムは標準エラー出力にそのことを吐き出します)。{{Pkg|gtk-engine-murrine}} パッケージをインストールしてください。
+
GTK 2 のテーマによっては、UI のコントロールがデフォルトの Raleigh のままで、カラーパレットしか変わらないことがあります。原因はテーマが GTK 2 の Murrine エンジンを必要としているためです (GTK 2 プログラムは標準エラー出力にそのことを吐き出します)。{{Pkg|gtk-engine-murrine}} パッケージをインストールしてください。
   
 
=== GTK file chooser にパッチを適用して通常のタイプを先に使用する ===
 
=== GTK file chooser にパッチを適用して通常のタイプを先に使用する ===

2022年12月23日 (金) 23:41時点における版

関連記事

GTK ウェブサイト より:

GTK もしくは GIMP ツールキットはグラフィカルユーザーインターフェースを作成するためのマルチプラットフォームのツールキットです。ウィジェットの完全なセットを提供することで、GTK はちょっとしたツールから完全なアプリケーションスイートまで幅広いプロジェクトに適しています。

当初 GTK (GIMP Toolkit) は GNU プロジェクトによって GIMP のために作成されました、しかしながら現在ではさまざまな言語のバインディングの存在する人気のあるツールキットになっています。この記事では GTK テーマ・スタイル・アイコン・フォント・フォントサイズを設定するのに使うツールと手動設定の方法を説明します。

目次

インストール

複数の GTK バージョンが現在利用可能です。以下のパッケージによってそれらはインストールできます:

  • GTK 4.xgtk4 パッケージでインストールできます。
  • GTK 3.xgtk3 パッケージでインストールできます。
  • GTK 2.xgtk2 パッケージでインストールできます。
  • GTK 1.xgtkAUR パッケージでインストールできます。

テーマ

GTK 3 と GTK 4 では、デフォルトテーマは Adwaita ですが、HighContrast と HighContrastInverse テーマも含まれています。 GTK 2 のデフォルトテーマは Raleigh ですが、Arch Linux にはカスタムの設定ファイル /usr/share/gtk-2.0/gtkrc が存在しており、これによりデフォルトテーマが Adwaita に設定されています。

特定のテーマを強制するには、以下の環境変数を設定してください:

  • GTK 3 と GTK 4 に対しては、GTK_THEME を使用してください。例えば、GNOME Calculator を Adwaita のダークテーマで起動するには:
$ GTK_THEME=Adwaita:dark gnome-calculator
ノート:
  • これをデスクトップショートカット (あるいはランチャー) に対して適用させる方法については、デスクトップエントリ#環境変数の変更 を見てください。
  • Adwaita や Adwaita-dark 以外の任意の GTK テーマを使用する場合、libadwaita を使用するアプリケーションは特殊なサポートを必要とし、GTK_THEME 環境変数を設定する必要があります
  • GTK 2 に対しては、GTK2_RC_FILES を使用してください。例えば、Raleigh テーマで GIMP を起動するには:
$ GTK2_RC_FILES=/usr/share/themes/Raleigh/gtk-2.0/gtkrc gimp
ヒント: gtkrc は、任意の#設定ツールで作成されたホームディレクトリ内のカスタムファイルにすることもできます。#例 を見てください。

公式リポジトリや AUR からさらにテーマをインストールすることができます。手動で展開されたテーマは ~/.themes/~/.local/share/themes/ ディレクトリに配置されます。

GTK 2 と GTK 3 をサポートしているテーマ:

  • Adapta — マテリアルデザインガイドラインに基づいている GTK テーマ。次のテーマが含まれています: Adapta, Adapta-Eta, Adapta-Nokto, Adapta-Nokto-Eta
https://github.com/tista500/Adapta || adapta-gtk-theme
  • Arc — モダンで透過するエレメントを備えたフラットテーマ。次のテーマが含まれています: Arc, Arc-Dark, Arc-Darker
https://github.com/jnsh/arc-theme || 透過あり: arc-gtk-theme, 透過なし: arc-solid-gtk-theme
  • Bluebird — Xfce 用の Blue Desktop Suite。
https://github.com/shimmerproject/Bluebird || xfce-theme-bluebirdAUR
  • Breeze — KDE のデフォルトウィジェットテーマの GTK バージョン。次のテーマが含まれています: Breeze, Breeze-Dark
https://invent.kde.org/plasma/breeze-gtk || breeze-gtk
  • Deepin — Deepin デスクトップのデフォルトテーマ。次のテーマが含まれています: deepin, deepin-dark
https://github.com/linuxdeepin/deepin-gtk-theme || deepin-gtk-theme
  • GNOME Extra Themes — GNOME デスクトップの追加テーマ。次のテーマが含まれています: Adwaita, Adwaita-dark, HighContrast
https://gitlab.gnome.org/GNOME/gnome-themes-extra || gnome-themes-extra
  • Greybird — グレーとブルーの Xfce テーマ。Xubuntu 12.04 のデフォルト。
https://github.com/shimmerproject/Greybird || xfce-theme-greybirdAUR
  • Materia — GTK3, GTK2, GNOME-Shell に対応しているマテリアルデザインライクなフラットテーマ。
https://github.com/nana-4/materia-theme || materia-gtk-theme
  • MATE Themes — MATE デスクトップのデフォルトテーマ。次のテーマが含まれています: BlackMATE, Blue-Submarine, BlueMenta, ContrastHighInverse, Green-Submarine, GreenLaguna, Menta, TraditionalGreen, TraditionalOk
https://github.com/mate-desktop/mate-themes || mate-themes
  • Numix — 近代的な外観をしているフラットで明るいテーマ (GNOME, Openbox, Unity, Xfce)。次のテーマが含まれています: Numix
https://github.com/numixproject/numix-gtk-theme || numix-gtk-theme-gitAUR
  • Vertex — GTK 3, GTK 2, Gnome-Shell, Cinnamon のためのテーマ。
https://github.com/horst3180/vertex-theme || vertex-themesAUR
  • Zuki — GTK, gnome-shell などのためのテーマ。
https://github.com/lassekongo83/zuki-themes || zuki-themesAUR

AUR にもいくつか GTK テーマが存在します。例えば、gtk-theme で検索

GTK と Qt

デスクトップで GTK と Qt (KDE) アプリケーションを使っているならば、それらの見た目が上手く調和しないことに気づくでしょう。GTK スタイルと Qt スタイルを調和させたい場合は Qt と GTK アプリケーションの外観の統合を読んで下さい。

設定ツール

主流のデスクトップ環境の多くは GTK テーマやアイコン、フォントやフォントサイズを設定するためのツールを提供しており、XSettings で設定を管理しています:

  • Cinnamon を使っている場合、Themes ツールを使って下さい (cinnamon-settings themes): System Settings > Themes を開いて下さい。
  • Enlightenment を使っている場合: Settings > All > Look > Application Theme を開いて下さい。
  • GNOME を使っている場合、GNOME Tweaks (gnome-tweaks): gnome-tweaks をインストールして下さい。
  • MATE を使っている場合、Appearance Preferences ツールを使って下さい (mate-appearance-properties): System > Settings > Appearance を開いて下さい。
  • Xfce を使っている場合、Appearance ツールを使って下さい: Settings > Appearance を開いて下さい。

通常、他の GUI ツールは設定ファイルを上書きします。

GTK 2 と GTK 3 の両方をサポートしているツール:

  • KDE GTK Configurator — GTK 2 と GTK 3 アプリケーションのスタイルやフォントを変更することができるアプリケーション。
https://invent.kde.org/plasma/kde-gtk-config || kde-gtk-config
インストール後、kde-gtk-configSystem Settings > Appearance > Application Style > Configure GNOME/GTK Application Style から使用できます。
  • LXAppearance — LXDE プロジェクトによる、デスクトップに依存しない GTK 2 と GTK 3 のスタイル設定ツール (LXDE デスクトップの他のパーツを必要としません)。
https://github.com/lxde/lxappearance || lxappearance-gtk3
  • Oo-mox — Numix と Flat-Plat テーマ (GTK 2, GTK 3) や Archdroid と Gnome-Colors アイコンテーマの様々なカラーバリエーションを生成するためのグラフィカルアプリケーション。HiDPI ディスプレイ用にスケールした GTK 2 テーマも生成できます。
https://github.com/actionless/oomox || themix-full-gitAUR

GTK 2 だけをサポートしているツール:

  • GTK Change Theme — GTK 2.0 のテーマを変更するためのプログラム (switch2 より優れた代替ツールと見なされています)。
http://plasmasturm.org/code/gtk-chtheme/ || gtk-chtheme
  • GTK Preference Tool — GTK テーマの選択とフォントの切り替えプログラム。
https://gtk-win.sourceforge.io/home/index.php/Main/GTKPreferenceTool || gtk2_prefsAUR
  • GTK Theme Switch — シンプルな GTK テーマスイッチャ。
http://muhri.net/nav.php3?node=gts || gtk-theme-switch2AUR

設定

設定ファイルで GTK の設定を手動で指定することもできます。ただしデスクトップ環境やアプリケーションは手動設定を上書きしてしまうことがあります。GTK のバージョンによって、設定ファイルの場所は異なっています:

  • GTK 2 ユーザー個別: ~/.gtkrc-2.0
  • GTK 2 システム全体: /etc/gtk-2.0/gtkrc
  • GTK 3 ユーザー個別: $XDG_CONFIG_HOME/gtk-3.0/settings.ini ($XDG_CONFIG_HOME が設定されていない場合は $HOME/.config/gtk-3.0/settings.ini)
  • GTK 3 システム全体: /etc/gtk-3.0/settings.ini
ノート:
  • GTK の設定オプションの完全なリストは GTK プログラミングリファレンスマニュアルの GTK 3 GtkSettings properties (と GTK 2 properties) を見て下さい。
  • 以下の設定の中には非推奨となっているものもあり (gtk-icon-sizes など)、GTK 3.10 では無視されることがあります。
  • GTK の設定ファイルを編集した場合、変更が適用されるのは新しく起動したアプリケーションからです。

テーマの基本設定

GTK テーマやアイコン、フォントやフォントサイズを手動で変更するには、以下のように設定ファイルに追加します:

GTK 2:

~/.gtkrc-2.0
gtk-icon-theme-name = "Adwaita"
gtk-theme-name = "Adwaita"
gtk-font-name = "DejaVu Sans 11"

GTK 3:

$XDG_CONFIG_HOME/gtk-3.0/settings.ini
[Settings]
gtk-icon-theme-name = Adwaita
gtk-theme-name = Adwaita
gtk-font-name = DejaVu Sans 11
ノート: アイコンテーマの名前はテーマのインデックスファイルに定義されています。ディレクトリの名前を指定しても適用されません。

ダークテーマ

GTK 3 テーマの中には派生のダークテーマが存在することがありますが、アプリケーションによって明示的に使うように設定されない限り、デフォルトで使われることはありません。全ての GTK 3 アプリケーションでダークテーマを使うには、以下を設定:

gtk-application-prefer-dark-theme = true

キーボードショートカットのカスタマイズを有効にする

マウスをメニューアイテムの上に乗せて設定したいキーボードのコンビネーションを押すことで GTK アプリケーションのキーボードショートカットをカスタマイズすることができます ただし、この機能はデフォルトでは無効になっています。この機能を有効にするには、次を設定してください:

gtk-can-change-accels = 1

Emacs キーバインド

GTK アプリで Emacs ライクなキーバインドを使うには以下を追加します。

~/.gtkrc-2.0
gtk-key-theme-name = "Emacs"
~/.config/gtk-3.0/settings.ini
[Settings]
gtk-key-theme-name = Emacs

GTK3 は以下を実行してください:

$ gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"

Xfce にも同じような設定が存在します:

$ xfconf-query -c xsettings -p /Gtk/KeyThemeName -s Emacs

Emacs のキーバインドは /usr/share/themes/Emacs/ の設定ファイルで定義・変更できます。ユーザーの ~/.gtkrc-2.0 ファイルにセクションをコピーすることで、ユーザー個別に編集が可能です。

GNOME メニューの高速化

この設定は GNOME でマウスをメニューに置いた時にメニューが開くまでの待ち時間を決めます。あなたの好きなように設定を変更してください。数字はミリ秒です、例えば 250 は1/4秒になります。

gtk-menu-popup-delay = 0

ウィジェットのサイズを小さくする

小さな画面を使っていて大きなアイコンやウィジェットを表示したくない場合、簡単にサイズを変えることができます。 ツールバーのアイコンに文章を表示しないようにするには、次を使って下さい:

gtk-toolbar-style = GTK_TOOLBAR_ICONS

小さいアイコンを使うには、次のような行を使って下さい:

gtk-icon-sizes = "panel-menu=16,16:panel=16,16:gtk-menu=16,16:gtk-large-toolbar=16,16\
:gtk-small-toolbar=16,16:gtk-button=16,16"

ボタンからアイコンを完全に削除するには:

gtk-button-images = 0

メニューからアイコンを削除することもできます:

gtk-menu-images = 0

ここ で説明されているようにテーマの gtkrc で設定をすることもでき、小さくする設定が全て行う テーマ もあります。

最大化最小化ボタンを隠す

ウィンドウから最大化ボタンおよび最小化ボタンを取り除き、閉じるボタンのみにするには、gtk-decoration-layout プロパティを次のように設定します:

gtk-decoration-layout=menu:close

https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings--gtk-decoration-layout を参照してください。

マウス中ボタンでのペーストを無効化

マウスの中ボタンによるプライマリ X セレクションからの貼り付け機能を無効にするには[1]:

gtk-enable-primary-paste=false
ノート: X におけるセレクションとクリップボードの挙動については freedesktop.org Clipboards に記されています。

ファイル選択ダイアログのデフォルトフォルダ

最近使われたフォルダではなく current-working-directory でファイル選択ダイアログを開くようにします。通常、current-working-directoryホームディレクトリです。

GTK 3

gsettings で DConf を変更してください、設定ファイルは存在しません:

$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd

GTK 2

~/.config/gtk-2.0/gtkfilechooser.ini 設定ファイルを編集してください:

~/.config/gtk-2.0/gtkfilechooser.ini
StartupMode=cwd

スクロールの旧式の挙動

ノート: この設定が適用されない GTK アプリケーションもあります。
ヒント: 左クリックではなく右クリックを使うことでも昔のようなスクロールの挙動をさせることができます。

GTK 3.6 以前では、スクロールバーのスライダーの両側をクリックすると、クリックした方向にスクロールバーが丁度一ページ分だけ移動するようになっていました。GTK 3.6 から、スライダーはクリックした位置に直接移動するようになっています。以下の内容のファイルを作成することで、アプリケーションによっては前の挙動に戻すことが可能です:

~/.config/gtk-3.0/settings.ini
[Settings]
gtk-primary-button-warps-slider = false

オーバーレイスクロールバーを無効化

GTK 3.15 から、オーバーレイスクロールバーがデフォルトで有効になっており、GTK 3 アプリケーションではマウスを乗せたときだけしかスクロールバーが表示されないようになっています。次の環境変数を設定することで元のスクロールバーに戻せます: GTK_OVERLAY_SCROLLING=0

環境変数#グラフィカルアプリケーションを参照。

オーバーレイスクロールのインジケータを削除

オーバーレイスクロールバーの位置はアプリケーションウィンドウの破線で示されます。たとえ上述の環境変数を使ってオーバーレイスクールを無効化しても破線は消えません。インジケータの線を消すには、以下のファイルを作成してください:

~/.config/gtk-3.0/gtk.css
/* Remove dotted lines from GTK 3 applications */
.undershoot.top, .undershoot.right, .undershoot.bottom, .undershoot.left { background-image: none; }

ノート: 一部の デスクトップ環境 (例えば GNOME) では無視される場合があります。
~/.gtkrc-2.0
gtk-theme-name="Arc-Dark"
gtk-icon-theme-name="breeze-dark"
gtk-font-name="Sans 11"
gtk-cursor-theme-name="Breeze_Amber"
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=0
gtk-enable-input-feedback-sounds=0
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintslight"
gtk-xft-rgba="rgb"
~/.config/gtk-3.0/settings.ini
[Settings]
gtk-theme-name=Arc-Dark
gtk-icon-theme-name=breeze-dark
gtk-font-name=Sans 11
gtk-cursor-theme-name=Breeze_Amber
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=0
gtk-enable-input-feedback-sounds=0
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb
# gtk-decoration-layout=menu:close
# gtk-application-prefer-dark-theme=1

GDK バックエンド

GDK (GTK の抽象レイヤー) は GTK アプリケーションを表示するための複数のバックエンドをサポートしています。

Wayland バックエンド

GDK Wayland バックエンドは gtk3 のみでサポートされており、Wayland ディスプレイサーバを使用する際のデフォルトバックエンドとなっています。

gtk3 より前のバージョンの GTK を使っているアプリケーションは wayland をサポートしておらず、X11 バックエンドを使って wayland セッションで実行するためには Xwayland を使う必要があります。

Xorg バックエンド

Xorg ディスプレイサーバが使用されている場合、バックエンドのデフォルトは自動的に x11 になります。

環境変数 GDK_BACKEND=x11 を設定することで、wayland セッション上で動作する GTK3 アプリケーションに Xwayland を通して X11 バックエンドを使用するように強制することが可能です。

Broadway バックエンド

GDK Broadway バックエンドは HTML5 とウェブソケットを使って、ウェブブラウザに GTK アプリケーションを表示することをサポートしています [2]

broadwayd を使うときには、X と同じようにコロンを前に付けて、使用するディスプレイ番号を指定してください。デフォルトのディスプレイ番号は 1 です。

$ display_number=:5

次のコマンドで起動します。

$ broadwayd $display_number 

デフォルトで使われるポートは:

port = 8080 + $display_number

ブラウザで http://127.0.0.1:port を開いて下さい。

アプリを起動するには:

$ GDK_BACKEND=broadway BROADWAY_DISPLAY=$display_number <<app>>

また、アドレスやポートを設定することも可能です:

$ broadwayd --port $port_number --address $address $display_number

トラブルシューティング

GTK 2 と GTK 3 アプリケーションでテーマが異なる

通常、選択したテーマが GTK 2.x と GTK 3.x の両方をサポートしている場合、GTK 2 と GTK 3 アプリケーションの両方にテーマが適用されます。選択したテーマが GTK 2.x しかサポートしてない場合、GTK 2.x アプリケーションにはそのテーマが使われ、GTK 3.x アプリケーションにはデフォルトの GTK テーマが使われます。選択したテーマが GTK 3.x しかサポートしていない場合、GTK 3.x アプリケーションにはそのテーマが使われ、GTK 2.x アプリケーションにはデフォルトの GTK テーマが使われます。UI の外観を統一するために GTK 2.x と GTK 3.x 両方をサポートしているテーマを使うと一番良い結果が得られます。

インストールしたテーマでどれが GTK 2.x と GTK 3.x 両方のバージョンを持っているか調べるには次のコマンドを使って下さい (空白が含まれている名前はひっかかりません):

find $(find ~/.themes /usr/share/themes/ -wholename "*/gtk-3.0" | sed -e "s/^\(.*\)\/gtk-3.0$/\1/") -wholename "*/gtk-2.0" | sed -e "s/.*\/\(.*\)\/gtk-2.0/\1"/

root アプリケーションにテーマが適用されない

ユーザーテーマファイル ($XDG_CONFIG_HOME/gtk-3.0/settings.ini, ~/.gtkrc-2.0) は他のアカウントからは読み込まれないため、選択したテーマは root で動かしている X アプリケーションには適用されません。以下のような解決方法があります:

  • シンボリックリンクを作成、例:
# ln -s /home/[username]/.gtkrc-2.0 /etc/gtk-2.0/gtkrc
# ln -s /home/[username]/.config/gtk-3.0/settings.ini /etc/gtk-3.0/settings.ini
  • システム全体にテーマファイルを設定: /etc/gtk-3.0/settings.ini (GTK 3) または /etc/gtk-2.0/gtkrc (GTK 2)
  • テーマを root で設定:
# gksu lxappearance
  • 設定デーモンを使用 (ほとんどのデスクトップ環境では設定デーモンが使われています)。デスクトップに依存しない XSettings を使うデーモンは AURxsettingsd-gitAUR でインストールできます。

クライアントサイドデコレーション

GTK 3.12 から クライアントサイドデコレーション が導入されており、タイトルバーはウィンドウマネージャから取り去られています。これによって タイトルバーが二重になる、タイトルバーが全く表示されない、コンポジットを有効にした場合に 影が二重に表示される などの問題が発生することがあります。

(タイル型ウィンドウマネージャを使っている場合などに発生する) ウィンドウの周りの影と枠を消すには、以下のファイルを作成してください:

~/.config/gtk-3.0/gtk.css
.window-frame, .window-frame:backdrop {
 box-shadow: 0 0 0 black;
 border-style: none;
 margin: 0;
 border-radius: 0;
}

.titlebar {
 border-radius: 0;
}

.window-frame.csd.popup {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.13);
}

.header-bar {
  background-image: none;
  background-color: #ededed;
  box-shadow: none;
}
/* You may want to use this if you don't like the double title.
GtkLabel.title {
    opacity: 0;
}*/

ヘッダーバーのボタンを調整するには、gtk-decoration-layout の設定を使います [3]。以下の例では全てのボタンを削除します:

~/.config/gtk-3.0/settings.ini
gtk-decoration-layout=menu:

セディーユ ć/Ć ではなく ç/Ç が使われる

Xcompose を使用した解決方法が [4][5] に載っています (US 国際レイアウト)。

accessibility bus に関する警告を表示させない

GTK 3 プログラムの実行時に、ターミナルに以下のような警告が表示される場合:

WARNING **: Couldn't connect to accessibility bus:

以下のように環境変数を付けて実行することで警告を消すことができます:

$ NO_AT_BRIDGE=1 theprogram

もしくは ~/.bashrc/etc/environmentNO_AT_BRIDGE=1 を追加してください。

タイトルバーの背景色がおかしい

GTK テーマの背景色に擬態するウィンドウデコレーションテーマを使用するウィンドウマネージャを使っている場合、GTK 3 アプリケーションでタイトルバーの色がアプリケーションの色と完全に食い違って表示されることがあります。対応策としては、以下のファイルを作成してください:

~/.config/gtk-3.0/gtk.css
/* Always use background color */
GtkWindow {
    background-color: @theme_bg_color;
}

/* Fix tooltip background override */
.tooltip {
    background-color: rgba(0, 0, 0, 0.8);
}

.tooltip * {
    background-color: transparent;
}

/* Fix Nautilus desktop window background override */
NautilusWindow {
     background-color: transparent; 
}

タイル型ウィンドウマネージャでフォーカスイベントがおかしい

ノート: 以下の設定は GTK3 アプリケーションのタッチスクリーンのサポートを無効化します [6]

GDK_CORE_DEVICE_EVENTS=1定義して xinput2 の代わりに GTK2 のスタイル入力を使うようにしてください [7]

GTK 2 のファイルダイアログのサムネイル

gtk2-patched-filechooser-icon-viewAUR をインストールすることで GTK のファイル選択ダイアログで、リストの代わりにサムネイルでファイルを閲覧するオプションが作られます。

GNOME Wayland セッションで一部のアプリのボタン/メニューアイコンが表示されない

~/.config/gtk-3.0/settings.ini ファイルの設定が間違っています。他の GTK ベースのデスクトップ環境を試しに使ってみた場合に発生することがあります。以下の値に問題があります:

~/.config/gtk-3.0/settings.ini
[Settings]
gtk-button-images=1
gtk-menu-images=1

上記を 0 に設定するか、全てのファイルを削除して GNOME のデフォルト設定に戻してください。

GTK 3 で polkit を使用しない

GTK 3 は印刷に必要な colord で polkit に依存しています。ただし印刷自体は polkit をインストールしていなくても可能です。

一部の GTK 2 テーマで UI のカラーパレットしか変化しない

GTK 2 のテーマによっては、UI のコントロールがデフォルトの Raleigh のままで、カラーパレットしか変わらないことがあります。原因はテーマが GTK 2 の Murrine エンジンを必要としているためです (GTK 2 プログラムは標準エラー出力にそのことを吐き出します)。gtk-engine-murrine パッケージをインストールしてください。

GTK file chooser にパッチを適用して通常のタイプを先に使用する

GTK file chooserは、 GNOME_Files と同じ先行検索機能を使用します。これは非常に煩わしくなる可能性があり、他のデスクトップ環境とうまく適合しません。 一部のアプリケーションはXDG-desktop-portalをサポートしているため、アプリケーションで Native file chooser を使用できます。それが機能しない場合は、たとえば gtk3-mushroomsAUR などのパッチされたGTKを使用して先行入力機能を復元できます。

GTK 4 アプリケーションの文字がぼやける、または正しく表示されない

GTK 4 は、フォントのレンダリング時にヒントを出さずにグレースケールのアンチエイリアシングを行うように変更しました。以前の動作に戻す機能はありません。gtk4-without-subpixel-hintingAUR を使って GTK 3 のフォントレンダリングを元に戻すことができます。GTK 4.6 参照 では、GTK 3 の動作の一部を復元する設定が利用できるようになります。サブピクセル・アンチエイリアシングは、この変更では利用可能になる予定はありません。

参照