「GTK」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
imported>Lahwaacz.bot
(update Pkg/AUR templates to reflect new package status)
 
(Pkg/AUR テンプレートの更新)
(7人の利用者による、間の28版が非表示)
4行目: 4行目:
 
[[es:Improve GTK Application Looks]]
 
[[es:Improve GTK Application Looks]]
 
[[it:GTK+]]
 
[[it:GTK+]]
[[uk:GTK+]]
+
[[ru:GTK+]]
[[zh-CN:GTK+]]
+
[[zh-hans:GTK+]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|Qt と GTK アプリケーションの外観の統合}}
 
{{Related|Qt と GTK アプリケーションの外観の統合}}
 
{{Related|Qt}}
 
{{Related|Qt}}
 
{{Related|GNU プロジェクト}}
 
{{Related|GNU プロジェクト}}
  +
{{Related|GTK+/開発}}
 
{{Related articles end}}
 
{{Related articles end}}
   
15行目: 16行目:
 
:''GTK+ もしくは GIMP ツールキットはグラフィカルユーザーインターフェースを作成するためのマルチプラットフォームのツールキットです。ウィジェットの完全なセットを提供することで、GTK+ はちょっとしたツールから完全なアプリケーションスイートまで幅広いプロジェクトに適しています。''
 
:''GTK+ もしくは GIMP ツールキットはグラフィカルユーザーインターフェースを作成するためのマルチプラットフォームのツールキットです。ウィジェットの完全なセットを提供することで、GTK+ はちょっとしたツールから完全なアプリケーションスイートまで幅広いプロジェクトに適しています。''
   
当初 GTK+ (GIMP Toolkit) は [[GNU Project]] によって [[アプリケーション一覧/マルチメディア#ラスタ画像|GIMP]] のために作成されました、しかしながら現在ではさまざまな言語のバインディングの存在する人気のあるツールキットになっています。この記事では GTK+ テーマ・スタイル・アイコン・フォント・フォントサイズを設定するのに使うツールと手動設定の方法を詳しく伝えます。
+
当初 GTK+ (GIMP Toolkit) は [[GNU プロジェクト]]によって [[アプリケーション一覧/マルチメディア#ラスタ画像|GIMP]] のために作成されました、しかしながら現在ではさまざまな言語のバインディングの存在する人気のあるツールキットになっています。この記事では GTK+ テーマ・スタイル・アイコン・フォント・フォントサイズを設定するのに使うツールと手動設定の方法を詳しく伝えます。
   
== 設定プログラム ==
+
== インストール ==
   
  +
GTK+ は[[公式リポジトリ]]から2つのバージョンがインストールできます。以下のパッケージでインストールできます:
以下の GUI プログラムによってテーマを選択したりフォントをカスタマイズできます。基本的に {{ic|~/.gtkrc-2.0}} ファイルを上書きします。
 
  +
* '''GTK+ 3.x''' は {{Pkg|gtk3}} パッケージでインストールできます。
  +
* '''GTK+ 2.x''' は {{Pkg|gtk2}} パッケージでインストールできます。
  +
* '''GTK+ 1.x''' は {{AUR|gtk}} パッケージでインストールできます。
   
  +
== テーマ ==
* {{Pkg|lxappearance}}: [[LXDE|LXDE]] プロジェクトの設定ツールで、LXDE や他のデスクトップ環境を必要としません。他のプログラムよりも柔軟なカスタマイズが可能です。
 
* {{Pkg|gtk-chtheme}}
 
* {{Pkg|gtk-theme-switch2}}
 
* {{Pkg|gtk2_prefs}}
 
   
  +
GTK+ 2 のデフォルトテーマは ''Raleigh'' ですが、Arch Linux では {{ic|/usr/share/gtk-2.0/gtkrc}} にカスタム設定ファイルを作成しており、デフォルトテーマは ''Adwaita'' に設定されています。GTK+ 3 のデフォルトテーマは ''Adwaita'' です。ただし ''HighContrast'', ''HighContrastInverse'', ''Raleigh'' テーマも含まれています。
[[Uniform Look for Qt and GTK Applications#それぞれのツールキットのスタイルを変更する]] も参照してください。
 
   
  +
特定のテーマを使うには、[[環境変数]]を設定します。
== テーマ ==
 
  +
* GTK+ 2 の場合、{{ic|GTK2_RC_FILES}} 環境変数を使います[https://developer.gnome.org/gtk2/stable/gtk-running.html]、例:
  +
$ GTK2_RC_FILES=/usr/share/themes/Industrial/gtk-2.0/gtkrc gimp
  +
:上記のコマンドを実行すると Industrial テーマで GIMP が起動します。
  +
  +
{{Tip|{{ic|gtkrc}} は[[#設定ツール]]で作成された設定ファイルのカスタマイズにも使えます。}}
  +
  +
* GTK+ 3 の場合、{{ic|GTK_THEME}} 環境変数を使います[https://developer.gnome.org/gtk3/stable/gtk-running.html]、例:
  +
$ GTK_THEME=Adwaita:dark gnome-calculator
  +
:上記のコマンドを実行すると Adwaita のダークテーマで GNOME Calculator が起動します。
  +
{{Note|デスクトップショートカットやデスクトップランチャーを使っても特定のテーマを使えます。[デスクトップエントリ#環境変数の修正]を参照してください。}}
  +
  +
公式リポジトリや [[AUR]] から多数のテーマをインストールすることができます。
  +
  +
{{Note|テーマを手動で展開するときは {{ic|~/.themes/}} や {{ic|~/.local/share/themes/}} ディレクトリに配置します。}}
  +
  +
'''GTK+ 2 と GTK+ 3.20 以上の両方をサポートしているテーマ:'''
  +
* {{App|Adapta|マテリアルデザインガイドラインに基づいている GTK+ テーマ。次のテーマが含まれています: ''Adapta'', ''Adapta-Eta'', ''Adapta-Nokto'', ''Adapta-Nokto-Eta''。|https://github.com/adapta-project/adapta-gtk-theme|{{Pkg|adapta-gtk-theme}}}}
  +
{{Note|[https://github.com/adapta-project/adapta-gtk-theme/blob/master/README.md#before-using-adapta Adapta README] にあるように、{{Pkg|noto-fonts}} と {{Pkg|noto-fonts-cjk}} や {{Pkg|ttf-roboto}} のインストールをおすすめします。}}
  +
* {{App|Arc|モダンで透過するエレメントを備えたフラットテーマ。次のテーマが含まれています: ''Arc'', ''Arc-Dark'', ''Arc-Darker''。|https://github.com/nicohood/arc-theme|{{Pkg|arc-gtk-theme}}、{{Pkg|arc-solid-gtk-theme}}}}
  +
* {{App|Blackbird|Xfce 用のダークなデスクトップスイート。|https://github.com/shimmerproject/Blackbird|{{AUR|xfce-theme-blackbird}}}}
  +
* {{App|Bluebird|Xfce 向けのデスクトップスイート。Shimmer Project の一環。|https://github.com/shimmerproject/Bluebird|{{AUR|xfce-theme-bluebird}}}}
  +
* {{App|Breeze|KDE のデフォルトウィジェットテーマの GTK+ バージョン。次のテーマが含まれています: ''Breeze'', ''Breeze-Dark''。|https://cgit.kde.org/breeze-gtk.git|{{Pkg|breeze-gtk}}}}
  +
* {{App|Deepin|Deepin デスクトップのデフォルトテーマ。次のテーマが含まれています: ''deepin'', ''deepin-dark''。|https://github.com/linuxdeepin/deepin-gtk-theme|{{Pkg|deepin-gtk-theme}}}}
  +
* {{App|GNOME Extra Themes|GNOME デスクトップの追加テーマ。次のテーマが含まれています: ''Adwaita'' (GTK+ 2用のみ), ''Adwaita-dark'', ''HighContrast''。|https://gitlab.gnome.org/GNOME/gnome-themes-extra|{{Pkg|gnome-themes-extra}}}}
  +
* {{App|Greybird|グレーとブルーの Xfce テーマ。Xubuntu 12.04 のデフォルト。Shimmer Project の一環。|https://github.com/shimmerproject/Greybird|{{AUR|xfce-theme-greybird}}}}
  +
* {{App|Materia Theme|GTK3, GTK2, GNOME-Shell に対応しているマテリアルデザインライクなフラットテーマ。|https://github.com/nana-4/materia-theme|{{Pkg|materia-gtk-theme}}}}
  +
* {{App|MATE Themes|MATE デスクトップのデフォルトテーマ。次のテーマが含まれています: ''BlackMATE'', ''Blue-Submarine'', ''BlueMenta'', ''ContrastHighInverse'', ''Green-Submarine'', ''GreenLaguna'', ''Menta'', ''TraditionalGreen'', ''TraditionalOk''。|https://github.com/mate-desktop/mate-themes|{{Pkg|mate-themes}}}}
  +
* {{App|Numix|近代的な外観をしているフラットで明るいテーマ (GNOME, Openbox, Unity, Xfce)。|https://github.com/shimmerproject/Numix|{{AUR|numix-gtk-theme}}}}
  +
* {{App|Vertex|GTK 3, GTK 2, Gnome-Shell, Cinnamon のためのテーマ。|ttps://github.com/horst3180/vertex-theme|{{AUR|vertex-themes}}}}
  +
* {{App|Zuki|GTK, gnome-shell などのためのテーマ。|https://github.com/lassekongo83/zuki-themes|{{AUR|zuki-themes-git}}}}
  +
  +
'''GTK+ 2 だけをサポートしているテーマ:'''
  +
* {{App|GTK+ Engines|GTK+ 2 のテーマエンジン。次のテーマが含まれています: ''Clearlooks'', ''Crux'', ''Industrial'', ''Mist'', ''Redmond'', ''ThinIce''|https://gitlab.gnome.org/Archive/gtk-engines|{{Pkg|gtk-engines}}}}
  +
* {{App|Xfce Gtk+ Engine|Xfce の Gtk+-2.0 エンジンとテーマ|http://git.xfce.org/xfce/gtk-xfce-engine/|{{Pkg|gtk-xfce-engine}}{{Broken package link|パッケージが存在しません}}}}
  +
* {{App|Oxygen-Gtk|KDE のデフォルトウィジェットテーマ (Oxygen) の GTK2 ポート|https://cgit.kde.org/oxygen-gtk.git|{{AUR|oxygen-gtk2}}}}
  +
* {{App|Aurora Gtk Engine|最新の Clearlooks ファミリー。|http://gnome-look.org/content/show.php/Aurora+Gtk+Engine?content=56438|{{AUR|gtk-engine-aurora}}}}
  +
* {{App|QtCurve|KDE と Gtk のウィジェットスタイルの設定セット|https://cgit.kde.org/qtcurve.git|{{Pkg|qtcurve-gtk2}}}}
  +
  +
[[AUR]] には他にも多くの GTK+ テーマが存在します: [https://aur.archlinux.org/packages.php?K=gtk-theme search for gtk-theme], [https://aur.archlinux.org/packages.php?K=gtk2-theme search for gtk2-theme]。
  +
  +
{{Note|GTK+ 3 は頻繁に変更されるため、GTK+ 3 のリリースがあった後は GTK+ 3 のテーマを修正する必要があることがしばしばあります。このため、全ての GTK+ 3 テーマが (最新バージョンの GTK+ 3 で) 期待通りの外観を表示するとは限りません。}}
  +
  +
=== GTK+ と Qt ===
  +
  +
デスクトップで GTK+ と Qt (KDE) アプリケーションを使っているならば、それらの見た目が上手く調和しないことに気づくでしょう。GTK+ スタイルと Qt スタイルを調和させたい場合は [[Qt と GTK アプリケーションの外観の統合]]を読んで下さい。
  +
  +
== 設定ツール ==
  +
  +
主流の[[デスクトップ環境]]の多くは GTK+ テーマやアイコン、フォントやフォントサイズを設定するためのツールを提供しており、[https://standards.freedesktop.org/xsettings-spec/xsettings-spec-0.5.html XSettings] で設定を管理しています:
  +
* [[Cinnamon]] を使っている場合、Themes ツールを使って下さい (''cinnamon-settings themes''): ''System Settings > Themes'' を開いて下さい。
  +
* [[Enlightenment]] を使っている場合: ''Settings > All > Look > Application Theme'' を開いて下さい。
  +
* [[GNOME]] を使っている場合、GNOME Tweaks (''gnome-tweaks''): {{Pkg|gnome-tweaks}} をインストールして下さい。
  +
* [[MATE]] を使っている場合、Appearance Preferences ツールを使って下さい (''mate-appearance-properties''): ''System > Settings > Appearance'' を開いて下さい。
  +
* [[Xfce]] を使っている場合、Appearance ツールを使って下さい: ''Settings > Appearance'' を開いて下さい。
   
  +
他の GUI ツールは[[#設定|設定ファイル]]を上書きします。
=== GTK+ 1.x ===
 
   
  +
'''GTK+ 2 と GTK+ 3 の両方をサポートしているツール:'''
[[Arch User Repository|AUR]] には GTK+ 1.x テーマがたくさん存在します: [https://aur.archlinux.org/packages.php?K=gtk-theme gtk-theme で検索してください]。{{AUR|gtk-smooth-engine}} が最初のテーマとして良いでしょう。
 
  +
* {{App|KDE GTK Configurator|GTK+2 と GTK+3 アプリケーションのスタイルやフォントを変更することができるアプリケーション。|https://cgit.kde.org/kde-gtk-config.git|{{Pkg|kde-gtk-config}}}}
  +
:インストール後、{{ic|kde-gtk-config}} は ''System Settings > Application Appearance > GTK'' からも設定できます。
  +
* {{App|LXAppearance|LXDE プロジェクトによる、デスクトップに依存しない GTK+2 と GTK+3 のスタイル設定ツール (LXDE デスクトップの他のソフトウェアを必要としません)。|https://wiki.lxde.org/en/LXAppearance|{{Pkg|lxappearance-gtk3}}}}
  +
* {{App|Oo-mox|Numix/Flat-Plat テーマ (GTK2, GTK3) や Archdroid/Gnome-Colors アイコンテーマの様々なカラーバリエーションを生成するためのグラフィカルアプリケーション。HiDPI ディスプレイ用にスケールした GTK+ 2 テーマも生成できます。|https://github.com/actionless/oomox|{{AUR|oomox}}}}
   
  +
'''GTK+ 2 だけをサポートしているツール:'''
ほとんどの[[Desktop Environment|デスクトップ環境]]は GTK+ テーマ・アイコン・フォント・フォントサイズを設定するためのツールを提供しています。
 
  +
* {{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|{{AUR|gtk2_prefs}}}}
  +
* {{App|GTK+ Theme Switch|シンプルな GTK+ テーマスイッチャ。|http://muhri.net/nav.php3?node=gts|{{AUR|gtk-theme-switch2}}}}
   
  +
== 設定 ==
もしくは、{{Pkg|gtk-theme-switch2}} を使って下さい。{{ic|switch}} コマンドで実行できます。
 
   
  +
設定ファイルで GTK+ の設定を手動で指定することもできます。ただしデスクトップ環境やアプリケーションは手動設定を上書きしてしまうことがあります。GTK+ のバージョンによって、設定ファイルの場所は異なっています:
=== GTK+ 2.x ===
 
  +
* GTK+ 2 ユーザー個別: {{ic|~/.gtkrc-2.0}}
  +
* 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|/etc/gtk-3.0/settings.ini}}
   
  +
{{Note|
[[Arch User Repository|AUR]] には GTK+ 2.x テーマがたくさん存在します: [https://aur.archlinux.org/packages.php?K=gtk2-theme gtk2-theme で検索してください]。初めにインストールするパッケージは {{Pkg|gtk-engines}} がふさわしいでしょう、人気の ''Clearlooks'' テーマが含まれています。
 
  +
* 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 では無視されることがあります。
  +
*GTK+ の設定ファイルを編集した場合、変更が適用されるのは新しく起動したアプリケーションからです。}}
   
  +
=== テーマの基本設定 ===
ほとんどの[[Desktop Environment|デスクトップ環境]]は GTK+ テーマ・アイコン・フォント・フォントサイズを設定するためのツールを提供しています。
 
   
もしくは、{{ic|~/.gtkrc-2.0}} を編集することで手動で GTK+ の設定をすることも可能です。GTK+ の設定の一覧は [http://library.gnome.org/devel/gtk/stable/GtkSettings.html GNOME library] にあります。手動で GTK+ テーマアイコンフォントフォントサイズを変更するには、以下を {{ic|~/.gtkrc-2.0}} に追加してください:
+
GTK+ テーマアイコンフォントフォントサイズを手動で変更するには、以下のように設定ファイルに追加します:
   
  +
'''GTK+ 2:'''
 
{{hc|~/.gtkrc-2.0|2=
 
{{hc|~/.gtkrc-2.0|2=
gtk-icon-theme-name = "[name-of-icon-theme]"
+
gtk-icon-theme-name = "Adwaita"
gtk-theme-name = "[name-of-theme]"
+
gtk-theme-name = "Adwaita"
gtk-font-name = "[font-name] [size]"
+
gtk-font-name = "DejaVu Sans 11"
 
}}
 
}}
   
  +
'''GTK+ 3:'''
例えば:
 
{{hc|~/.gtkrc-2.0|2=
+
{{hc|$XDG_CONFIG_HOME/gtk-3.0/settings.ini|2=
  +
[Settings]
gtk-icon-theme-name = "Tango"
 
gtk-theme-name = "Murrine-Gray"
+
gtk-icon-theme-name = Adwaita
gtk-font-name = "DejaVu Sans 8"
+
gtk-theme-name = Adwaita
  +
gtk-font-name = DejaVu Sans 11
 
}}
 
}}
   
  +
{{Note|アイコンテーマの名前はテーマのインデックスファイルに定義されています。ディレクトリの名前を指定しても適用されません。}}
{{Note|上の例を使うには[[Official Repositories|公式リポジトリ]]から {{Pkg|ttf-dejavu}}, {{Pkg|tangerine-icon-theme}}, {{Pkg|gtk-engine-murrine}} が、AUR から {{AUR|gtk-theme-murrine-collection}} が必要です。}}
 
   
=== GTK+ 3.x ===
+
=== ダークテーマ ===
   
  +
GTK+ 3 テーマの中には派生のダークテーマが存在することがありますが、アプリケーションによって明示的に使うように設定されない限り、デフォルトで使われることはありません。全ての GTK+ 3 アプリケーションでダークテーマを使うには、以下を設定:
初めにインストールするパッケージは {{Pkg|gnome-themes-standard}} がふさわしいでしょう、人気の ''Adwaita'' テーマが含まれています。
 
   
  +
gtk-application-prefer-dark-theme = true
選択したスタイルに GTK+ 2.x と GTK+ 3.x 両方のテーマが含まれている場合、それらが使われます。選択したスタイルに GTK+ 2.x テーマしかない場合、GTK+ 2.x アプリケーションにはそれが使われ、GTK+ 3.x アプリケーションには(醜い)デフォルトのテーマが使われます。選択したスタイルに GTK+ 3.x テーマしかない場合、GTK+ 3.x アプリケーションにはそれが使われ、GTK+ 2.x アプリケーションには(醜い)デフォルトのテーマが使われます。UI の外観を統一するために GTK+ 2.x と GTK+ 3.x 両方のテーマを持っているスタイルを使うと一番良い結果が得られます。
 
   
  +
=== キーボードショートカットのカスタマイズを有効にする ===
ほとんどの[[Desktop Environment|デスクトップ環境]]は GTK+ テーマ・アイコン・フォント・フォントサイズを設定するためのツールを提供しています。[[GNOME|GNOME]] を使っている場合、GNOME Tweak Tool ({{pkg|gnome-tweak-tool}}) を使って下さい。[[Xfce|Xfce]] を使っている場合、Appearance ツールを使って下さい: Settings-->Appearance から行けます。
 
   
  +
マウスをメニューアイテムの上に乗せて設定したいキーボードのコンビネーションを押すことで GTK+ アプリケーションのキーボードショートカットをカスタマイズすることができます
他にも依存パッケージが少ないツールとして {{pkg|lxappearance}} があります。
 
  +
ただし、この機能はデフォルトでは無効になっています。この機能を有効にするには、次を設定してください:
  +
gtk-can-change-accels = 1
   
  +
==== Emacs キーバインド ====
テーママネージャを全くインストールしたくないという場合は、手動で {{ic|$XDG_CONFIG_HOME/gtk-3.0/settings.ini}} (普通は {{ic|~/.config/gtk-3.0/settings.ini}}) にテーマを設定することができます。{{ic|settings.ini}} ファイルの例:
 
  +
GTK アプリで Emacs ライクなキーバインドを使うには:
{{hc|$XDG_CONFIG_HOME/gtk-3.0/settings.ini|2=
 
  +
  +
GTK+2 アプリの場合、{{ic|~/.gtkrc-2.0}} に {{ic|1=gtk-key-theme-name = "Emacs"}} を追加してください。
  +
  +
GTK+3 アプリの場合、以下を追加してください:
  +
  +
{{hc|1=~/.config/gtk-3.0/settings.ini|2=
 
[Settings]
 
[Settings]
gtk-application-prefer-dark-theme = false
+
gtk-key-theme-name = Emacs}}
gtk-theme-name = Zukitwo
 
gtk-fallback-icon-theme = gnome
 
gtk-icon-theme-name = [icon theme name]
 
gtk-font-name = [font name] [font size]
 
   
  +
そして以下のコマンドを実行してください:
}}
 
   
  +
$ gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"
手動設定が反映されないときは、{{ic|$XDG_CONFIG_HOME}} にある古い {{ic|gtk-3.0}} フォルダを削除して /path/to/theme から {{ic|$XDG_CONFIG_HOME}} に {{ic|gtk-3.0}} フォルダをコピーしてください。例えば:
 
   
  +
Xfce にも同じような設定が存在します:
$ rm -r ~/.config/gtk-3.0/
 
$ cp -r /usr/share/themes/Zukitwo/gtk-3.0/ ~/.config/
 
   
  +
$ xfconf-query -c xsettings -p /Gtk/KeyThemeName -s Emacs
この後、DE の外観設定ツールで同じテーマを設定する必要があります。GTK+ 3.x と GTK+ 2.x アプリケーションで同じ見た目を提供するテーマはわずかしかありません。そうしたテーマの例:
 
#Adwaita ({{pkg|gnome-themes-standard}} に含まれています)
 
#Clearlooks-Phenix (AUR: {{AUR|clearlooks-phenix-gtk-theme}})
 
#GTK+ 3 用の Newlooks と GTK+ 2 用の Clearlooks
 
#Zukitwo
 
#Elegant Brit
 
#Atolm
 
#Hope
 
#OMG
 
   
  +
Emacs のキーバインドは {{ic|/usr/share/themes/Emacs/}} の設定ファイルで定義・変更できます。ユーザーの {{ic|~/.gtkrc-2.0}} ファイルにセクションをコピーすることで、ユーザー個別に編集が可能です。
{{Note|テーマによっては正しく表示するために {{pkg|librsvg}} が必要になりますが、依存パッケージとして指定されていないことがあります。選んだテーマが壊れて見えるようでしたらインストールしてみて下さい。}}
 
   
  +
=== GNOME メニューの高速化 ===
{{Note|他にも両方兼ね備えたテーマがあるかもしれません。上のテーマの内いくつかは AUR で利用できます。また、テーマによっては GTK+ 2.x パネルを正しく表示することができないため、この [http://i.imgur.com/QmeyN.png パネルの背景] を使う必要があります。}}
 
   
  +
この設定は GNOME でマウスをメニューに置いた時にメニューが開くまでの待ち時間を決めます。あなたの好きなように設定を変更してください。数字はミリ秒です、例えば 250 は1/4秒になります。
インストールしたテーマでどれが GTK+ 2.x と GTK+ 3.x 両方のバージョンを持っているか調べるには次のコマンドを使って下さい (空白が含まれている名前はひっかかりません):
 
  +
gtk-menu-popup-delay = 0
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"/
 
   
  +
=== ウィジェットのサイズを小さくする ===
=== GTK+ と Qt ===
 
  +
  +
小さな画面を使っていて大きなアイコンやウィジェットを表示したくない場合、簡単にサイズを変えることができます。
  +
ツールバーのアイコンに文章を表示しないようにするには、次を使って下さい:
  +
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
  +
  +
[http://martin.ankerl.com/2008/10/10/how-to-make-a-compact-gnome-theme/ ここ] で説明されているようにテーマの gtkrc で設定をすることもでき、小さくする設定が全て行う [http://gnome-look.org/content/show.php/Simple+eGTK?content=119812 テーマ] もあります。
  +
  +
=== 最大化最小化ボタンを隠す ===
  +
  +
ウィンドウから最大化ボタンおよび最小化ボタンを取り除き、閉じるボタンのみにするには、{{ic|gtk-decoration-layout}} プロパティを次のように設定します:
  +
gtk-decoration-layout=menu:close
  +
  +
https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings--gtk-decoration-layout を参照してください。
  +
=== マウス中ボタンでのペーストを無効化 ===
  +
  +
マウスの中ボタンによるプライマリ X セレクションからの貼り付け機能を無効にするには[https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings--gtk-enable-primary-paste]:
  +
gtk-enable-primary-paste=false
  +
  +
{{Note|X におけるセレクションとクリップボードの挙動については [https://www.freedesktop.org/wiki/Specifications/ClipboardsWiki/ freedesktop.org Clipboards] に記されています。}}
  +
  +
=== ファイル選択ダイアログのデフォルトフォルダ ===
  +
  +
最近使われたフォルダではなく ''current-working-directory'' でファイル選択ダイアログを開くようにします。通常、''current-working-directory'' は''ホームディレクトリ''です。
  +
  +
'''GTK+ 3'''
  +
  +
''gsettings'' で DConf を変更してください、設定ファイルは存在しません:
  +
  +
$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd
  +
  +
'''GTK+ 2'''
  +
  +
{{ic|~/.config/gtk-2.0/gtkfilechooser.ini}} 設定ファイルを編集してください:
  +
  +
{{hc|~/.config/gtk-2.0/gtkfilechooser.ini|
  +
StartupMode=cwd}}
  +
  +
=== スクロールの旧式の挙動 ===
  +
  +
{{Note|この設定が適用されない GTK+ アプリケーションもあります。}}
  +
{{Tip|左クリックではなく右クリックを使うことでも昔のようなスクロールの挙動をさせることができます。}}
  +
  +
GTK+ 3.6 以前では、スクロールバーのスライダーの両側をクリックすると、クリックした方向にスクロールバーが丁度一ページ分だけ移動するようになっていました。GTK+ 3.6 から、スライダーはクリックした位置に直接移動するようになっています。以下の内容のファイルを作成することで、アプリケーションによっては前の挙動に戻すことが可能です:
  +
  +
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki>
  +
[Settings]
  +
gtk-primary-button-warps-slider = false
  +
</nowiki>}}
  +
  +
=== オーバーレイスクロールバーを無効化 ===
  +
  +
GTK+ 3.15 から、オーバーレイスクロールバーがデフォルトで有効になっており、GTK+ 3 アプリケーションではマウスを乗せたときだけしかスクロールバーが表示されないようになっています。次の環境変数を設定することで元のスクロールバーに戻せます: {{ic|1=GTK_OVERLAY_SCROLLING=0}}。
  +
  +
[[環境変数#グラフィカルアプリケーション]]を参照。
  +
  +
==== オーバーレイスクロールのインジケータを削除 ====
  +
  +
オーバーレイスクロールバーの位置はアプリケーションウィンドウの破線で示されます。たとえ上述の環境変数を使ってオーバーレイスクールを無効化しても破線は消えません。インジケータの線を消すには、以下のファイルを作成してください:
  +
  +
{{hc|~/.config/gtk-3.0/gtk.css|
  +
/* Remove dotted lines from GTK+ 3 applications */
  +
.undershoot.top, .undershoot.right, .undershoot.bottom, .undershoot.left { background-image: none; }
  +
}}
  +
  +
=== GTKの設定例 ===
  +
  +
{{Note|一部の [[デスクトップ環境]] (例えば [[GNOME]]) では無視される場合があります。}}
  +
  +
{{hc|~/.gtkrc-2.0|2=
  +
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"
  +
}}
  +
  +
{{hc|~/.config/gtk-3.0/settings.ini|2=
  +
[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+ アプリケーションを表示するための複数のバックエンドをサポートしています。デフォルトのバックエンドは ''x11'' です。
デスクトップで GTK+ と Qt (KDE) アプリケーションを使っているならば、それらの見た目が上手く調和しないことに気づくでしょう。GTK+ スタイルと Qt スタイルを調和させたい場合は [[Uniform Look for Qt and GTK Applications]] を読んで下さい。
 
   
=== Broadway による GTK+ と HTML ===
+
=== 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]。
   
120行目: 300行目:
   
 
デフォルトで使われるポートは:
 
デフォルトで使われるポートは:
port &#61; 8080 + ($display_number - 1)
+
port &#61; 8080 + $display_number
   
ブラウザで http://localhost:port を開いて下さい。
+
ブラウザで http://127.0.0.1:port を開いて下さい。
   
 
アプリを起動するには:
 
アプリを起動するには:
132行目: 312行目:
 
$ broadwayd --port $port_number --address $address $display_number
 
$ broadwayd --port $port_number --address $address $display_number
   
  +
=== Wayland バックエンド ===
== 設定ファイル ==
 
   
  +
GDK [[Wayland]] バックエンドは {{ic|GDK_BACKEND&#61;wayland}} 環境変数を設定することで有効にできます。
{{Note|GTK の設定オプションの完全なリストは GTK+ プログラミングリファレンスマニュアルの [http://library.gnome.org/devel/gtk/stable/GtkSettings.html#GtkSettings.properties ''GtkSettings'' properties] を見て下さい。}}
 
   
  +
{{Tip|Wayland で GTK のウィンドウ装飾を無効化するには {{AUR|gtk3-optional-csd}}{{Broken package link|パッケージが存在しません}} パッケージを[[インストール]]して {{ic|1=GTK_CSD=0}} 環境変数を設定してください。}}
このセクションでは GTK+ の設定ファイルなどで使うことができる GTK+ の設定をまとめて説明します。
 
   
  +
== トラブルシューティング ==
(ini フォーマットの) GTK+ の設定ファイルは配置される場所が2つあります: $XDG_CONFIG_HOME/gtk-3.0/ (普通は ~/.config/gtk-3.0/) と /etc/gtk-3.0/ です。前者はユーザーごとの設定のためにあり、後者はシステム全体の設定のために存在します。
 
   
=== ボードショートカットのカスタイズを有効にする ===
+
=== 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+ アプリケーションのキーボードショートカットをカスタマイズすることができます
 
ただし、この機能はデフォルトでは無効になっています。この機能を有効にするには、次を設定してください:
 
gtk-can-change-accels = 1
 
   
  +
インストールしたテーマでどれが GTK+ 2.x と GTK+ 3.x 両方のバージョンを持っているか調べるには次のコマンドを使って下さい (空白が含まれている名前はひっかかりません):
=== GNOME メニューの高速化 ===
 
  +
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 アプリケーションにテーマが適用されない ===
この設定は GNOME でマウスをメニューに置いた時にメニューが開くまでの待ち時間を決めます。あなたの好きなように設定を変更してください。数字はミリ秒です、例えば 250 は1/4秒になります。
 
gtk-menu-popup-delay = 0
 
   
  +
ユーザーテーマファイル ({{ic|$XDG_CONFIG_HOME/gtk-3.0/settings.ini}}, {{ic|~/.gtkrc-2.0}}) は他のアカウントからは読み込まれないため、選択したテーマは [[Root で X アプリケーションを起動#Xorg|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
gtk-toolbar-style = GTK_TOOLBAR_ICONS
 
  +
* システム全体にテーマファイルを設定: {{ic|/etc/gtk-3.0/settings.ini}} (GTK+ 3) または {{ic|/etc/gtk-2.0/gtkrc}} (GTK+ 2)
小さいアイコンを使うには、次のような行を使って下さい:
 
  +
* テーマを root で設定:
gtk-icon-sizes = "panel-menu=16,16:panel=16,16:gtk-menu=16,16:gtk-large-toolbar=16,16\
 
  +
# gksu lxappearance
:gtk-small-toolbar=16,16:gtk-button=16,16"
 
  +
* 設定デーモンを使用 (ほとんどのデスクトップ環境では設定デーモンが使われています)。デスクトップに依存しない [https://standards.freedesktop.org/xsettings-spec/xsettings-spec-0.5.html XSettings] を使うデーモンは [[AUR]] の {{aur|xsettingsd-git}} でインストールできます。
ボタンからアイコンを完全に削除するには:
 
gtk-button-images = 0
 
メニューからアイコンを削除することもできます:
 
gtk-menu-images = 0
 
   
  +
=== クライアントサイドデコレーション ===
[http://martin.ankerl.com/2008/10/10/how-to-make-a-compact-gnome-theme/ ここ] で説明されているようにテーマの gtkrc で設定をすることもでき、小さくする設定が全て行う [http://gnome-look.org/content/show.php/Simple+eGTK?content=119812 テーマ] もあります。
 
   
  +
GTK 3.12 から [https://blogs.gnome.org/mclasen/2013/12/05/client-side-decorations-in-themes/ クライアントサイドデコレーション] が導入されており、タイトルバーはウィンドウマネージャから取り去られています。これによって [http://redmine.audacious-media-player.org/boards/1/topics/1135 タイトルバーが二重になる]、タイトルバーが全く表示されない、コンポジットを有効にした場合に [https://github.com/chjj/compton/issues/189 影が二重に表示される] などの問題が発生することがあります。
== 開発 ==
 
   
  +
(タイル型ウィンドウマネージャを使っている場合などに発生する) ウィンドウの周りの影と枠を消すには、以下のファイルを作成してください:
スクラッチから C で GTK+ 3 プログラムを書く時は、CFLAGS を gcc に追加してください:
 
gcc -g -Wall `pkg-config --cflags --libs gtk+-3.0` -o base base.c
 
-g と -Wall パラメータはデバッグ出力をするためのものなので必須ではありません。
 
公式の [http://developer.gnome.org/gtk-tutorial/stable/c39.html#SEC-HELLOWORLD Hello World サンプル] も試してみてください。
 
   
  +
{{hc|~/.config/gtk-3.0/gtk.css|<nowiki>.window-frame, .window-frame:backdrop {
=== シンプルなメッセージダイアログアプリ ===
 
  +
box-shadow: 0 0 0 black;
  +
border-style: none;
  +
margin: 0;
  +
border-radius: 0;
  +
}
   
  +
.titlebar {
GObject-Introspection やバインディングを使うことで多くのプログラミング言語で簡単に GTK+ 3 のメッセージダイアログを作ることができます、また bash を使うこともできます。
 
  +
border-radius: 0;
  +
}
   
  +
.window-frame.csd.popup {
以下の例ではシンプルに "Hello world" をメッセージダイアログに表示します。
 
  +
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.13);
  +
}
   
  +
.header-bar {
====Bash====
 
  +
background-image: none;
*依存パッケージ: {{Pkg|zenity}}
 
  +
background-color: #ededed;
{{hc|hello_world.sh|<nowiki>#!/bin/bash
 
  +
box-shadow: none;
zenity --info --title='Hello world!' --text='This is an example dialog.'</nowiki>}}
 
  +
}
  +
/* You may want to use this if you don't like the double title.
  +
GtkLabel.title {
  +
opacity: 0;
  +
}*/
  +
</nowiki>}}
   
  +
ヘッダーバーのボタンを調整するには、{{ic|gtk-decoration-layout}} の設定を使います [https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings--gtk-decoration-layout]。以下の例では全てのボタンを削除します:
====Boo====
 
*依存パッケージ: AUR の {{Pkg|gtk-sharp-3}} ({{Pkg|boo}})
 
*ビルドするのに必要なパッケージ: {{Pkg|boo}}
 
*ビルド: {{ic|booc hello_world.boo}}
 
*実行: {{ic|mono hello_world.exe}} (もしくは {{ic|booi hello_world.boo}})
 
   
  +
{{hc|~/.config/gtk-3.0/settings.ini|2=
{{hc|hello_world.boo|<nowiki>import Gtk from "gtk-sharp"
 
  +
gtk-decoration-layout=menu:
Application.Init()
 
  +
}}
Hello = MessageDialog(null, DialogFlags.Modal, MessageType.Info, ButtonsType.Close, "Hello world!")
 
Hello.SecondaryText = "This is an example dialog."
 
Hello.Run()</nowiki>}}
 
   
  +
=== セディーユ ć/Ć ではなく ç/Ç が使われる ===
====C====
 
*依存パッケージ: {{Pkg|gtk3}} と {{Pkg|pkg-config}}
 
*ビルド: {{Ic|gcc -o hello_world `pkg-config --cflags --libs gtk+-3.0` hello_world.c}}
 
{{hc|hello_world.c|<nowiki>#include <gtk/gtk.h>
 
void main (int argc, char *argv[]) {
 
gtk_init (&argc, &argv);
 
GtkWidget *hello = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Hello world!");
 
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (hello), "This is an example dialog.");
 
gtk_dialog_run(GTK_DIALOG (hello));
 
}</nowiki>}}
 
   
  +
Xcompose を使用した解決方法が [https://bugs.launchpad.net/ubuntu/+source/gtk+2.0/+bug/518056] や [https://bugs.launchpad.net/ubuntu/+source/gtk+2.0/+bug/518056/comments/37] に載っています (US 国際レイアウト)。
====C++====
 
*依存パッケージ: {{Pkg|gtkmm3}}
 
*ビルド: {{Ic|g++ -o hello_world `pkg-config --cflags --libs gtkmm-3.0` hello_world.cc}}
 
{{hc|hello_world.cc|<nowiki>#include <gtkmm/main.h>
 
#include <gtkmm/messagedialog.h>
 
int main(int argc, char *argv[]) {
 
Gtk::Main kit(argc, argv);
 
Gtk::MessageDialog Hello("Hello world!", false, Gtk::MESSAGE_INFO, Gtk::BUTTONS_OK);
 
Hello.set_secondary_text("This is an example dialog.");
 
Hello.run();
 
}</nowiki>}}
 
   
  +
===accessibility bus に関する警告を表示させない===
====C#====
 
*依存パッケージ: AUR の {{Pkg|gtk-sharp-3}}
 
*ビルド: {{ic|mcs -pkg:gtk-sharp-3.0 hello_world.cs}}
 
*実行: {{ic|mono hello_world.exe}}
 
{{hc|hello_world.cs|<nowiki>using Gtk;
 
public class HelloWorld {
 
static void Main() {
 
Application.Init ();
 
MessageDialog Hello = new MessageDialog (null, DialogFlags.Modal, MessageType.Info, ButtonsType.Close, "Hello world!");
 
Hello.SecondaryText="This is an example dialog.";
 
Hello.Run ();
 
}
 
}</nowiki>}}
 
   
  +
GTK+ 3 プログラムの実行時に、ターミナルに以下のような警告が表示される場合:
====Genie====
 
*依存パッケージ: {{Pkg|gtk3}}
 
*ビルドするのに必要なパッケージ: {{Pkg|vala}}
 
*ビルド: {{Ic|valac --pkg gtk+-3.0 hello_world.gs}}
 
{{hc|hello_world.gs|<nowiki>uses
 
Gtk
 
init
 
Gtk.init (ref args)
 
var Hello=new MessageDialog (null, Gtk.DialogFlags.MODAL, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, "Hello world!")
 
Hello.format_secondary_text ("This is an example dialog.")
 
Hello.run ()</nowiki>}}
 
   
  +
WARNING **: Couldn't connect to accessibility bus:
====Java====
 
*依存パッケージ: AUR の {{AUR|java-gnome}}
 
*ビルドするのに必要なパッケージ: java-environment
 
*ビルド: {{ic|mkdir HelloWorld && javac -classpath /usr/share/java/gtk.jar -d HelloWorld HelloWorld.java}}
 
*実行: {{ic|java -classpath /usr/share/java/gtk.jar:HelloWorld HelloWorld}}
 
   
  +
以下のように[[環境変数]]を付けて実行することで警告を消すことができます:
{{hc|HelloWorld.java|<nowiki>import org.gnome.gtk.Gtk;
 
import org.gnome.gtk.Dialog;
 
import org.gnome.gtk.InfoMessageDialog;
 
   
  +
$ NO_AT_BRIDGE=1 ''theprogram''
public class HelloWorld
 
{
 
public static void main(String[] args) {
 
Gtk.init(args);
 
Dialog Hello = new InfoMessageDialog(null, "Hello world!", "This is an example dialog.");
 
Hello.run();
 
}
 
}</nowiki>}}
 
   
  +
もしくは {{ic|~/.bashrc}} や {{ic|/etc/environment}} に {{ic|1=NO_AT_BRIDGE=1}} を追加してください。
====JavaScript====
 
*依存パッケージ: {{Pkg|gtk3}}, {{Pkg|gjs}} ({{Pkg|seed}})
 
{{hc|hello_world.js|<nowiki>#!/usr/bin/gjs
 
Gtk = imports.gi.Gtk
 
Gtk.init(null, null)
 
Hello = new Gtk.MessageDialog({type: Gtk.MessageType.INFO,
 
buttons: Gtk.ButtonsType.OK,
 
text: "Hello world!",
 
"secondary-text": "This is an example dialog."})
 
Hello.run()</nowiki>}}
 
   
  +
=== タイトルバーの背景色がおかしい ===
====Perl====
 
*依存パッケージ: AUR の {{AUR|perl-gtk3}}
 
{{hc|hello_world.pl|<nowiki>#!/usr/bin/perl
 
use Gtk3 -init;
 
my $hello = Gtk3::MessageDialog->new (undef, 'modal', 'info', 'ok', "Hello world!");
 
$hello->set ('secondary-text' => 'This is an example dialog.');
 
$hello->run;</nowiki>}}
 
   
  +
GTK+ テーマの背景色に擬態するウィンドウデコレーションテーマを使用する[[ウィンドウマネージャ]]を使っている場合、GTK+ 3 アプリケーションでタイトルバーの色がアプリケーションの色と完全に食い違って表示されることがあります。対応策としては、以下のファイルを作成してください:
====Python====
 
  +
{{hc|~/.config/gtk-3.0/gtk.css|
*依存パッケージ: {{Pkg|gtk3}}, {{Pkg|python-gobject}}
 
  +
/* Always use background color */
{{hc|hello_world.py|<nowiki>#!/usr/bin/python
 
  +
GtkWindow {
from gi.repository import Gtk
 
  +
background-color: @theme_bg_color;
Gtk.init(None)
 
  +
}
Hello=Gtk.MessageDialog(None, Gtk.DialogFlags.MODAL, Gtk.MessageType.INFO, Gtk.ButtonsType.CLOSE, "Hello world!")
 
Hello.format_secondary_text("This is an example dialog.")
 
Hello.run()</nowiki>}}
 
   
  +
/* Fix tooltip background override */
====Vala====
 
  +
.tooltip {
*依存パッケージ: {{Pkg|gtk3}}
 
  +
background-color: rgba(0, 0, 0, 0.8);
*ビルドするのに必要なパッケージ: {{Pkg|vala}}
 
  +
}
*ビルド: {{Ic|valac --pkg gtk+-3.0 hello_world.vala}}
 
{{hc|hello_world.vala|<nowiki>using Gtk;
 
public class HelloWorld {
 
static void main (string[] args) {
 
Gtk.init (ref args);
 
var Hello=new MessageDialog (null, Gtk.DialogFlags.MODAL, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, "Hello world!");
 
Hello.format_secondary_text ("This is an example dialog.");
 
Hello.run ();
 
}
 
}</nowiki>}}
 
   
  +
.tooltip * {
====Visual Basic .NET====
 
  +
background-color: transparent;
*依存パッケージ: AUR の {{Pkg|gtk-sharp-3}}
 
  +
}
*ビルドするのに必要なパッケージ: {{Pkg|mono-basic}}
 
*ビルド: {{ic|vbnc -r:/usr/lib/mono/gtk-sharp-3.0/gio-sharp.dll -r:/usr/lib/mono/gtk-sharp-3.0/glib-sharp.dll -r:/usr/lib/mono/gtk-sharp-3.0/gtk-sharp.dll hello_world.vb}}
 
*実行: {{ic|mono hello_world.exe}}
 
   
  +
/* Fix Nautilus desktop window background override */
{{hc|hello_world.vb|<nowiki>Imports Gtk
 
  +
NautilusWindow {
Public Class Hello
 
  +
background-color: transparent;
Inherits MessageDialog
 
  +
}
Public Sub New
 
  +
}}
MyBase.New(Me, DialogFlags.Modal, MessageType.Info, ButtonsType.Close, "Hello world!")
 
  +
Me.SecondaryText = "This is an example dialog."
 
  +
=== タイル型ウィンドウマネージャでフォーカスイベントがおかしい ===
End Sub
 
  +
Public Shared Sub Main
 
  +
{{Note|1=以下の設定は GTK3 アプリケーションのタッチスクリーンのサポートを無効化します [https://bugzilla.gnome.org/show_bug.cgi?id=677329#c14]。}}
Application.Init
 
  +
Dim Dialog As New Hello
 
  +
{{ic|1=GDK_CORE_DEVICE_EVENTS=1}} を[[環境変数#変数の定義|定義]]して xinput2 の代わりに GTK2 のスタイル入力を使うようにしてください [https://bugzilla.gnome.org/show_bug.cgi?id=677329#c10]。
Dialog.Run
 
  +
End Sub
 
  +
=== GTK+ 2 のファイルダイアログのサムネイル ===
End Class</nowiki>}}
 
  +
  +
{{AUR|gtk2-patched-filechooser-icon-view}} をインストールすることで GTK+ のファイル選択ダイアログで、リストの代わりにサムネイルでファイルを閲覧するオプションが作られます。
  +
  +
=== GNOME Wayland セッションで一部のアプリのボタン/メニューアイコンが表示されない ===
  +
  +
{{ic|~/.config/gtk-3.0/settings.ini}} ファイルの設定が間違っています。他の GTK+ ベースのデスクトップ環境を試しに使ってみた場合に発生することがあります。以下の値に問題があります:
  +
  +
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki>[Settings]
  +
gtk-button-images=1
  +
gtk-menu-images=1</nowiki>}}
  +
  +
上記を 0 に設定するか、全てのファイルを削除して GNOME のデフォルト設定に戻してください。
  +
  +
=== GTK+3 で polkit を使用しない ===
  +
  +
GTK+3 は印刷に必要な colord で polkit に依存しています。ただし印刷自体は polkit をインストールしていなくても可能です。
  +
  +
=== 一部の GTK+ 2 テーマで UI のカラーパレットしか変化しない ===
  +
  +
GTK+ 2 のテーマによっては、UI のコントロールがデフォルトの Raleigh のままで、カラーパレットしか変わらないことがあります。原因はテーマが GTK+ 2 の Murrine エンジンを必要としているためです (GTK+ 2 プログラムは標準エラー出力にそのことを吐き出します)。{{Pkg|gtk-engine-murrine}} パッケージをインストールしてください。
  +
  +
=== GTK file chooser にパッチを適用して通常のタイプを先に使用する ===
  +
GTK file chooserは、 [[GNOME_Files]] と同じ先行検索機能を使用します。これは非常に煩わしくなる可能性があり、他のデスクトップ環境とうまく適合しません。 一部のアプリケーションはXDG-desktop-portalをサポートしているため、アプリケーションで Native file chooser を使用できます。それが機能しない場合は、たとえば {{aur|gtk3-mushrooms}} などのパッチされたGTKを使用して先行入力機能を復元できます。
  +
  +
== 設定例 ==
  +
  +
GTK+ 2 設定例:
  +
  +
{{hc|~/.gtkrc-2.0|2=
  +
# GTK theme
  +
include "/usr/share/themes/Clearlooks/gtk-2.0/gtkrc"
  +
  +
# Font
  +
style "myfont" {
  +
font_name = "DejaVu Sans 8"
  +
}
  +
widget_class "*" style "myfont"
  +
gtk-font-name = "DejaVu Sans 8"
  +
  +
# Icon theme
  +
gtk-icon-theme-name = "Tango"
  +
  +
# Toolbar style
  +
gtk-toolbar-style = GTK_TOOLBAR_ICONS
  +
}}
  +
  +
{{Pkg|lxappearance}} で GTK+ 2.x から GTK+ 3.x に変換した GTK+ 3 の設定例:
  +
  +
{{hc|$XDG_CONFIG_HOME/gtk-3.0/settings.ini|2=
  +
[Settings]
  +
gtk-theme-name=TraditionalOk
  +
gtk-icon-theme-name=Fog
  +
gtk-font-name=Luxi Sans 12
  +
gtk-cursor-theme-name=mate
  +
gtk-cursor-theme-size=24
  +
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
  +
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
  +
gtk-button-images=1
  +
gtk-menu-images=1
  +
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
  +
}}
   
== 資料 ==
+
== 参照 ==
* [http://www.gtk.org/ 公式 GTK+ ウェブサイト]
+
* [http://www.gtk.org/ GTK+ 公式ウェブサイト]
* [[wikipedia:GTK+|Wikipedia article about GTK+]]
+
* [[wikipedia:GTK+|GTK+ についての Wikipedia の記事]]
* [http://developer.gnome.org/gtk-tutorial/stable/ GTK+ 2.0 チュートリアル]
+
* [https://developer.gnome.org/gtk-tutorial/stable/ GTK+ 2.0 チュートリアル]
* [http://developer.gnome.org/gtk3/stable/ GTK+ 3 リファレンスマニュアル]
+
* [https://developer.gnome.org/gtk3/stable/ GTK+ 3 リファレンスマニュアル]
* [http://developer.gnome.org/gtkmm-tutorial/stable/ gtkmm チュートリアル]
+
* [https://developer.gnome.org/gtkmm-tutorial/stable/ gtkmm チュートリアル]
* [http://developer.gnome.org/gtkmm/stable/ gtkmm リファレンスマニュアル]
+
* [https://developer.gnome.org/gtkmm/stable/ gtkmm リファレンスマニュアル]

2020年12月31日 (木) 14:44時点における版

関連記事

GTK+ ウェブサイト より:

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

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

目次

インストール

GTK+ は公式リポジトリから2つのバージョンがインストールできます。以下のパッケージでインストールできます:

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

テーマ

GTK+ 2 のデフォルトテーマは Raleigh ですが、Arch Linux では /usr/share/gtk-2.0/gtkrc にカスタム設定ファイルを作成しており、デフォルトテーマは Adwaita に設定されています。GTK+ 3 のデフォルトテーマは Adwaita です。ただし HighContrast, HighContrastInverse, Raleigh テーマも含まれています。

特定のテーマを使うには、環境変数を設定します。

  • GTK+ 2 の場合、GTK2_RC_FILES 環境変数を使います[1]、例:
$ GTK2_RC_FILES=/usr/share/themes/Industrial/gtk-2.0/gtkrc gimp
上記のコマンドを実行すると Industrial テーマで GIMP が起動します。
ヒント: gtkrc#設定ツールで作成された設定ファイルのカスタマイズにも使えます。
  • GTK+ 3 の場合、GTK_THEME 環境変数を使います[2]、例:
$ GTK_THEME=Adwaita:dark gnome-calculator
上記のコマンドを実行すると Adwaita のダークテーマで GNOME Calculator が起動します。
ノート: デスクトップショートカットやデスクトップランチャーを使っても特定のテーマを使えます。[デスクトップエントリ#環境変数の修正]を参照してください。

公式リポジトリや AUR から多数のテーマをインストールすることができます。

ノート: テーマを手動で展開するときは ~/.themes/~/.local/share/themes/ ディレクトリに配置します。

GTK+ 2 と GTK+ 3.20 以上の両方をサポートしているテーマ:

  • Adapta — マテリアルデザインガイドラインに基づいている GTK+ テーマ。次のテーマが含まれています: Adapta, Adapta-Eta, Adapta-Nokto, Adapta-Nokto-Eta
https://github.com/adapta-project/adapta-gtk-theme || adapta-gtk-theme
ノート: Adapta README にあるように、noto-fontsnoto-fonts-cjkttf-roboto のインストールをおすすめします。
  • Arc — モダンで透過するエレメントを備えたフラットテーマ。次のテーマが含まれています: Arc, Arc-Dark, Arc-Darker
https://github.com/nicohood/arc-theme || arc-gtk-themearc-solid-gtk-theme
  • Blackbird — Xfce 用のダークなデスクトップスイート。
https://github.com/shimmerproject/Blackbird || xfce-theme-blackbirdAUR
  • Bluebird — Xfce 向けのデスクトップスイート。Shimmer Project の一環。
https://github.com/shimmerproject/Bluebird || xfce-theme-bluebirdAUR
  • Breeze — KDE のデフォルトウィジェットテーマの GTK+ バージョン。次のテーマが含まれています: Breeze, Breeze-Dark
https://cgit.kde.org/breeze-gtk.git || breeze-gtk
  • Deepin — Deepin デスクトップのデフォルトテーマ。次のテーマが含まれています: deepin, deepin-dark
https://github.com/linuxdeepin/deepin-gtk-theme || deepin-gtk-theme
  • GNOME Extra Themes — GNOME デスクトップの追加テーマ。次のテーマが含まれています: Adwaita (GTK+ 2用のみ), Adwaita-dark, HighContrast
https://gitlab.gnome.org/GNOME/gnome-themes-extra || gnome-themes-extra
  • Greybird — グレーとブルーの Xfce テーマ。Xubuntu 12.04 のデフォルト。Shimmer Project の一環。
https://github.com/shimmerproject/Greybird || xfce-theme-greybirdAUR
  • Materia Theme — 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)。
https://github.com/shimmerproject/Numix || numix-gtk-themeAUR
  • Vertex — GTK 3, GTK 2, Gnome-Shell, Cinnamon のためのテーマ。
ttps://github.com/horst3180/vertex-theme || vertex-themesAUR
  • Zuki — GTK, gnome-shell などのためのテーマ。
https://github.com/lassekongo83/zuki-themes || zuki-themes-gitAUR

GTK+ 2 だけをサポートしているテーマ:

  • GTK+ Engines — GTK+ 2 のテーマエンジン。次のテーマが含まれています: Clearlooks, Crux, Industrial, Mist, Redmond, ThinIce
https://gitlab.gnome.org/Archive/gtk-engines || gtk-engines
  • Xfce Gtk+ Engine — Xfce の Gtk+-2.0 エンジンとテーマ
http://git.xfce.org/xfce/gtk-xfce-engine/ || gtk-xfce-engine[リンク切れ: パッケージが存在しません]
  • Oxygen-Gtk — KDE のデフォルトウィジェットテーマ (Oxygen) の GTK2 ポート
https://cgit.kde.org/oxygen-gtk.git || oxygen-gtk2AUR
  • Aurora Gtk Engine — 最新の Clearlooks ファミリー。
http://gnome-look.org/content/show.php/Aurora+Gtk+Engine?content=56438 || gtk-engine-auroraAUR
  • QtCurve — KDE と Gtk のウィジェットスタイルの設定セット
https://cgit.kde.org/qtcurve.git || qtcurve-gtk2

AUR には他にも多くの GTK+ テーマが存在します: search for gtk-theme, search for gtk2-theme

ノート: GTK+ 3 は頻繁に変更されるため、GTK+ 3 のリリースがあった後は GTK+ 3 のテーマを修正する必要があることがしばしばあります。このため、全ての GTK+ 3 テーマが (最新バージョンの GTK+ 3 で) 期待通りの外観を表示するとは限りません。

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://cgit.kde.org/kde-gtk-config.git || kde-gtk-config
インストール後、kde-gtk-configSystem Settings > Application Appearance > GTK からも設定できます。
  • LXAppearance — LXDE プロジェクトによる、デスクトップに依存しない GTK+2 と GTK+3 のスタイル設定ツール (LXDE デスクトップの他のソフトウェアを必要としません)。
https://wiki.lxde.org/en/LXAppearance || lxappearance-gtk3
  • Oo-mox — Numix/Flat-Plat テーマ (GTK2, GTK3) や Archdroid/Gnome-Colors アイコンテーマの様々なカラーバリエーションを生成するためのグラフィカルアプリケーション。HiDPI ディスプレイ用にスケールした GTK+ 2 テーマも生成できます。
https://github.com/actionless/oomox || oomoxAUR

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

  • GTK+ Change Theme — GTK+ 2.0 のテーマを変更するためのプログラム (switch2 の代替プログラム)。
http://plasmasturm.org/code/gtk-chtheme/ || gtk-chtheme
  • GTK+ Preference Tool — GTK+ テーマの選択とフォントの切り替えプログラム。
http://gtk-win.sourceforge.net/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 ライクなキーバインドを使うには:

GTK+2 アプリの場合、~/.gtkrc-2.0gtk-key-theme-name = "Emacs" を追加してください。

GTK+3 アプリの場合、以下を追加してください:

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

そして以下のコマンドを実行してください:

$ 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 セレクションからの貼り付け機能を無効にするには[3]:

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; }

GTKの設定例

ノート: 一部の デスクトップ環境 (例えば 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+ アプリケーションを表示するための複数のバックエンドをサポートしています。デフォルトのバックエンドは x11 です。

Broadway バックエンド

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

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

Wayland バックエンド

GDK Wayland バックエンドは GDK_BACKEND=wayland 環境変数を設定することで有効にできます。

ヒント: Wayland で GTK のウィンドウ装飾を無効化するには gtk3-optional-csdAUR[リンク切れ: パッケージが存在しません] パッケージをインストールして GTK_CSD=0 環境変数を設定してください。

トラブルシューティング

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 の設定を使います [5]。以下の例では全てのボタンを削除します:

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

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

Xcompose を使用した解決方法が [6][7] に載っています (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 アプリケーションのタッチスクリーンのサポートを無効化します [8]

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

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+ 2 設定例:

~/.gtkrc-2.0
# GTK theme
include "/usr/share/themes/Clearlooks/gtk-2.0/gtkrc"

# Font
style "myfont" {
    font_name = "DejaVu Sans 8"
}
widget_class "*" style "myfont"
gtk-font-name = "DejaVu Sans 8"

# Icon theme
gtk-icon-theme-name = "Tango"

# Toolbar style
gtk-toolbar-style = GTK_TOOLBAR_ICONS

lxappearance で GTK+ 2.x から GTK+ 3.x に変換した GTK+ 3 の設定例:

$XDG_CONFIG_HOME/gtk-3.0/settings.ini
[Settings] 
gtk-theme-name=TraditionalOk
gtk-icon-theme-name=Fog
gtk-font-name=Luxi Sans 12
gtk-cursor-theme-name=mate
gtk-cursor-theme-size=24
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
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

参照