「GTK」の版間の差分
(→GDK バックエンド: 同期) |
(→設定: 同期) |
||
98行目: | 98行目: | ||
* 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}} |
+ | * 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 の設定オプションの完全なリストについては、GTK プログラミングリファレンスマニュアルの [https://docs.gtk.org/gtk4/class.Settings.html#properties GTK4] と [https://docs.gtk.org/gtk3/class.Settings.html#properties GTK3] の ''GtkSettings'' properties (そして [https://ghostarchive.org/archive/p2BmM GTK 2 properties]) を見てください。 |
+ | |||
− | *以下の設定の中には非推奨となっているものもあり ({{ic|gtk-icon-sizes}} など)、GTK 3.10 では無視されることがあります。 |
||
+ | *以下で説明している設定のうちいくつか ({{ic|gtk-icon-sizes}} など) は GTK 3.10 から非推奨となっており、無視されます。 |
||
*GTK の設定ファイルを編集した場合、変更が適用されるのは新しく起動したアプリケーションからです。}} |
*GTK の設定ファイルを編集した場合、変更が適用されるのは新しく起動したアプリケーションからです。}} |
||
=== テーマの基本設定 === |
=== テーマの基本設定 === |
||
− | GTK テーマやアイコン、フォントやフォントサイズを手動で変更するには、以下のように設定ファイルに追加します: |
+ | GTK テーマやアイコン、フォントやフォントサイズを手動で変更するには、例えば以下のように設定ファイルに追加します: |
− | + | * GTK 2: |
|
{{hc|~/.gtkrc-2.0|2= |
{{hc|~/.gtkrc-2.0|2= |
||
gtk-icon-theme-name = "Adwaita" |
gtk-icon-theme-name = "Adwaita" |
||
117行目: | 118行目: | ||
}} |
}} |
||
− | + | * GTK 3: |
|
{{hc|$XDG_CONFIG_HOME/gtk-3.0/settings.ini|2= |
{{hc|$XDG_CONFIG_HOME/gtk-3.0/settings.ini|2= |
||
[Settings] |
[Settings] |
||
125行目: | 126行目: | ||
}} |
}} |
||
+ | テーマが GTK 3 に対して適用されない場合、加えて {{ic|gsettings}} を使用してください: |
||
− | {{Note|アイコンテーマの名前はテーマのインデックスファイルに定義されています。ディレクトリの名前を指定しても適用されません。}} |
||
+ | |||
+ | $ gsettings set org.gnome.desktop.interface gtk-theme Pop |
||
+ | |||
+ | {{Note|アイコンテーマの名前は、そのテーマのディレクトリ名です。{{ic|index.theme}} 内の name プロパティでは''ありません''。}} |
||
=== ダークテーマ === |
=== ダークテーマ === |
||
133行目: | 138行目: | ||
gtk-application-prefer-dark-theme = true |
gtk-application-prefer-dark-theme = true |
||
+ | GTK 4 に対しては、以下を使用してください: |
||
− | === キーボードショートカットのカスタマイズを有効にする === |
||
+ | |||
+ | $ gsettings set org.gnome.desktop.interface color-scheme prefer-dark |
||
+ | |||
+ | === キーボードショートカット === |
||
+ | |||
+ | マウスをメニューアイテムの上に乗せて設定したいキーの組み合わせを押すことで GTK アプリケーションのキーボードショートカット (GTK では ''accelerators'' とも呼ばれます) を変更することができます。この機能を有効にするには、次を設定してください: |
||
− | マウスをメニューアイテムの上に乗せて設定したいキーボードのコンビネーションを押すことで GTK アプリケーションのキーボードショートカットをカスタマイズすることができます |
||
− | ただし、この機能はデフォルトでは無効になっています。この機能を有効にするには、次を設定してください: |
||
gtk-can-change-accels = 1 |
gtk-can-change-accels = 1 |
||
==== Emacs キーバインド ==== |
==== Emacs キーバインド ==== |
||
+ | |||
− | GTK アプリで Emacs ライクなキーバインドを使うには以下を追加します。 |
||
+ | GTK アプリで Emacs ライクなキーバインドを使うには以下を追加します: |
||
− | |||
+ | |||
{{hc|1=~/.gtkrc-2.0|2= |
{{hc|1=~/.gtkrc-2.0|2= |
||
gtk-key-theme-name = "Emacs" |
gtk-key-theme-name = "Emacs" |
||
148行目: | 158行目: | ||
{{hc|1=~/.config/gtk-3.0/settings.ini|2= |
{{hc|1=~/.config/gtk-3.0/settings.ini|2= |
||
[Settings] |
[Settings] |
||
− | gtk-key-theme-name = Emacs |
+ | gtk-key-theme-name = Emacs |
+ | }} |
||
− | + | GTK 3 に対しては、以下も実行してください: |
|
$ gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs" |
$ gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs" |
||
− | + | XFCE にも同じような設定が存在します: |
|
$ xfconf-query -c xsettings -p /Gtk/KeyThemeName -s Emacs |
$ xfconf-query -c xsettings -p /Gtk/KeyThemeName -s Emacs |
||
− | Emacs のキーバインドは {{ic|/usr/share/themes/Emacs/}} の設定ファイルで定義・変更できます。ユーザーの {{ic|~/.gtkrc-2.0}} ファイルにセクションをコピーすることで、ユーザー個別に編集が可能です。 |
||
+ | Emacs のキーバインドは {{ic|/usr/share/themes/Emacs/}} 内の設定ファイルで定義・変更できます。ユーザーの {{ic|~/.gtkrc-2.0}} ファイルにセクションをコピーすることで、ユーザー個別に編集が可能です。 |
||
− | === GNOME メニューの高速化 === |
||
+ | |||
+ | === GNOME メニューの遅延 === |
||
+ | |||
+ | この設定は GNOME でマウスをメニューに置いた時にメニューが開くまでの待ち時間を決めます。数値はミリ秒単位です。 |
||
− | この設定は GNOME でマウスをメニューに置いた時にメニューが開くまでの待ち時間を決めます。あなたの好きなように設定を変更してください。数字はミリ秒です、例えば 250 は1/4秒になります。 |
||
gtk-menu-popup-delay = 0 |
gtk-menu-popup-delay = 0 |
||
168行目: | 181行目: | ||
小さな画面を使っていて大きなアイコンやウィジェットを表示したくない場合、簡単にサイズを変えることができます。 |
小さな画面を使っていて大きなアイコンやウィジェットを表示したくない場合、簡単にサイズを変えることができます。 |
||
+ | |||
− | ツールバーのアイコンに文章を表示しないようにするには、次を使って下さい: |
||
+ | ツールバーのアイコンに文章を表示しないようにするには ([https://developer.gnome.org/gtk3/stable/gtk3-Standard-Enumerations.html#GtkToolbarStyle 有効値])、次を使って下さい: |
||
+ | |||
gtk-toolbar-style = GTK_TOOLBAR_ICONS |
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-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-small-toolbar=16,16:gtk-button=16,16" |
||
+ | |||
ボタンからアイコンを完全に削除するには: |
ボタンからアイコンを完全に削除するには: |
||
+ | |||
gtk-button-images = 0 |
gtk-button-images = 0 |
||
+ | |||
メニューからアイコンを削除することもできます: |
メニューからアイコンを削除することもできます: |
||
+ | |||
gtk-menu-images = 0 |
gtk-menu-images = 0 |
||
− | [ |
+ | [https://martin.ankerl.com/2008/10/11/how-to-make-a-compact-gnome-theme/] と [https://www.gnome-look.org/p/1079374] も参照。 |
− | === |
+ | === CSD ボタンを隠す === |
+ | |||
+ | Client-Side Decorations (CSD)[https://blogs.gnome.org/tbernard/2018/01/26/csd-initiative/] の最小化・最大化ボタン を ''gtk3'' ウィンドウから削除するには: |
||
− | ウィンドウから最大化ボタンおよび最小化ボタンを取り除き、閉じるボタンのみにするには、{{ic|gtk-decoration-layout}} プロパティを次のように設定します: |
||
gtk-decoration-layout=menu:close |
gtk-decoration-layout=menu:close |
||
− | https:// |
+ | [https://docs.gtk.org/gtk3/property.Settings.gtk-decoration-layout.html GTK docs] を参照。 |
− | === マウス中ボタンでのペーストを無効化 === |
||
+ | === マウスの貼り付け機能を無効化 === |
||
− | マウスの中ボタンによるプライマリ X セレクションからの貼り付け機能を無効にするには[https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings--gtk-enable-primary-paste]: |
||
− | gtk-enable-primary-paste=false |
||
+ | マウスの中ボタンのクリック (PRIMARY とも) による貼り付け機能を無効にするには: |
||
− | {{Note|X におけるセレクションとクリップボードの挙動については [https://www.freedesktop.org/wiki/Specifications/ClipboardsWiki/ freedesktop.org Clipboards] に記されています。}} |
||
+ | |||
+ | gtk-enable-primary-paste=false |
||
=== ファイル選択ダイアログのデフォルトフォルダ === |
=== ファイル選択ダイアログのデフォルトフォルダ === |
||
− | 最近使われたフォルダではなく |
+ | '''最近使われた'''フォルダではなく'''現在の作業ディレクトリ'''でファイル選択ダイアログを開くようにします。通常、'''現在の作業ディレクトリ'''は''ホーム''ディレクトリです。 |
'''GTK 3''' |
'''GTK 3''' |
||
− | + | イカのコマンドで[[GNOME#設定|設定]]を変更してください: |
|
$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd |
$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd |
||
205行目: | 227行目: | ||
'''GTK 2''' |
'''GTK 2''' |
||
− | {{ic|~/.config/gtk-2.0/gtkfilechooser.ini}} |
+ | 以下を {{ic|~/.config/gtk-2.0/gtkfilechooser.ini}} に追加してください: |
+ | StartupMode=cwd |
||
− | {{hc|~/.config/gtk-2.0/gtkfilechooser.ini| |
||
− | StartupMode=cwd}} |
||
=== スクロールの旧式の挙動 === |
=== スクロールの旧式の挙動 === |
||
224行目: | 245行目: | ||
=== オーバーレイスクロールバーを無効化 === |
=== オーバーレイスクロールバーを無効化 === |
||
− | GTK 3.15 から、オーバーレイスクロールバーがデフォルトで有効になっており、GTK 3 アプリケーションではマウスを乗せたときだけしかスクロールバーが表示されないようになっています。次の環境変数を設定することで元のスクロールバーに戻せます: {{ic|1=GTK_OVERLAY_SCROLLING=0}}。 |
+ | GTK 3.15 から、オーバーレイスクロールバーがデフォルトで有効になっており、GTK 3 アプリケーションではマウスを乗せたときだけしかスクロールバーが表示されないようになっています。次の環境変数を設定することで元のスクロールバーに戻せます: {{ic|1=GTK_OVERLAY_SCROLLING=0}}。[[環境変数#グラフィック環境]] を参照。 |
+ | あるいは、GTK 3.24.9 からは GTK 3 の設定でオーバーレイスクロールバーを無効化できます。設定ファイルの [Settings] セクションで gtk-overlay-scrolling の値を false に設定してください: |
||
− | [[環境変数#グラフィカルアプリケーション]]を参照。 |
||
+ | |||
+ | {{hc|~/.config/gtk-3.0/settings.ini|2= |
||
+ | [Settings] |
||
+ | gtk-overlay-scrolling = false |
||
+ | }} |
||
+ | |||
+ | GTK 4 は、もはや {{ic|1=GTK_OVERLAY_SCROLLING}} をサポートしていません。master から[https://github.com/GNOME/gtk/commit/e49615184a9d85bb0bb4e289b3ee8252adee3813#diff-3cf94c6e1eb009e20985034bc2210bfd 削除]されました。GTK 4 では、スクロールバーのオーバーレイはツールキットの一部です。blanket toggle は、両方の組み合わせでテストしていないアプリケーションが壊れてしまうのを防ぐために削除されました。アプリケーション開発者がアプリの見た目を決定できるように、ツールキットは、オプトアウトあるいは設定を削除するメカニズムをユーザに提供しています。[https://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html#gtk-scrolled-window-set-overlay-scrolling gtk_scrolled_window_set_overlay_scrolling()] 関数を使って、''アプリケーションごとに''オーバーレイスクロールを有効化/無効化できます。アプリケーション開発者は、任意で [https://blog.gtk.org/2017/05/01/first-steps-with-gsettings/ GSettings] を使ってユーザの設定をプロパティにバインドできます。 |
||
==== オーバーレイスクロールのインジケータを削除 ==== |
==== オーバーレイスクロールのインジケータを削除 ==== |
||
− | オーバーレイスクロールバーの位置はアプリケーションウィンドウの破線で示されます。たとえ上述の環境変数を使ってオーバーレイスクールを無効化しても破線は消えません。インジケータの線を消すには、以下のファイルを作成してください: |
+ | オーバーレイスクロールバーの位置はアプリケーションウィンドウの細い破線で示されます。たとえ上述の環境変数を使ってオーバーレイスクールを無効化しても破線は消えません。インジケータの線を消すには、以下のファイルを作成してください: |
{{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; } |
|
}} |
}} |
||
=== 例 === |
=== 例 === |
||
+ | GTK の設定例: |
||
− | {{Note|一部の [[デスクトップ環境]] (例えば [[GNOME]]) では無視される場合があります。}} |
||
+ | |||
+ | {{Note|一部の[[デスクトップ環境]] (例えば、[[GNOME]]) では無視される場合があります。}} |
||
{{hc|~/.gtkrc-2.0|2= |
{{hc|~/.gtkrc-2.0|2= |
2022年12月25日 (日) 18:27時点における版
GTK ウェブサイト より:
- GTK もしくは GIMP ツールキットはグラフィカルユーザーインターフェースを作成するためのマルチプラットフォームのツールキットです。ウィジェットの完全なセットを提供することで、GTK はちょっとしたツールから完全なアプリケーションスイートまで幅広いプロジェクトに適しています。
当初 GTK (GIMP Toolkit) は GNU プロジェクトによって GIMP のために作成されました、しかしながら現在ではさまざまな言語のバインディングの存在する人気のあるツールキットになっています。この記事では GTK テーマ・スタイル・アイコン・フォント・フォントサイズを設定するのに使うツールと手動設定の方法を説明します。
目次
- 1 インストール
- 2 テーマ
- 3 設定ツール
- 4 設定
- 5 GDK バックエンド
- 6 トラブルシューティング
- 6.1 GTK 2 と GTK 3 アプリケーションでテーマが異なる
- 6.2 root アプリケーションにテーマが適用されない
- 6.3 クライアントサイドデコレーション
- 6.4 セディーユ ć/Ć ではなく ç/Ç が使われる
- 6.5 accessibility bus に関する警告を表示させない
- 6.6 タイトルバーの背景色がおかしい
- 6.7 タイル型ウィンドウマネージャでフォーカスイベントがおかしい
- 6.8 GTK 2 のファイルダイアログのサムネイル
- 6.9 GNOME Wayland セッションで一部のアプリのボタン/メニューアイコンが表示されない
- 6.10 GTK 3 で polkit を使用しない
- 6.11 一部の GTK 2 テーマで UI のカラーパレットしか変化しない
- 6.12 GTK file chooser にパッチを適用して通常のタイプを先に使用する
- 6.13 GTK 4 アプリケーションの文字がぼやける、または正しく表示されない
- 7 参照
インストール
複数の GTK バージョンが現在利用可能です。以下のパッケージによってそれらはインストールできます:
- GTK 4.x は gtk4 パッケージでインストールできます。
- GTK 3.x は gtk3 パッケージでインストールできます。
- GTK 2.x は gtk2 パッケージでインストールできます。
- GTK 1.x は gtkAUR パッケージでインストールできます。
テーマ
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
- GTK 2 に対しては、
GTK2_RC_FILES
を使用してください。例えば、Raleigh テーマで GIMP を起動するには:
$ GTK2_RC_FILES=/usr/share/themes/Raleigh/gtk-2.0/gtkrc gimp
公式リポジトリや AUR からさらにテーマをインストールすることができます。手動で展開されたテーマは ~/.themes/
や ~/.local/share/themes/
ディレクトリに配置されます。
GTK 2 と GTK 3 をサポートしているテーマ:
- Adapta — マテリアルデザインガイドラインに基づいている GTK テーマ。次のテーマが含まれています: Adapta, Adapta-Eta, Adapta-Nokto, Adapta-Nokto-Eta
- Arc — モダンで透過するエレメントを備えたフラットテーマ。次のテーマが含まれています: Arc, Arc-Dark, Arc-Darker
- https://github.com/jnsh/arc-theme || 透過あり: arc-gtk-theme, 透過なし: arc-solid-gtk-theme
- Bluebird — Xfce 用の Blue Desktop Suite。
- Breeze — KDE のデフォルトウィジェットテーマの GTK バージョン。次のテーマが含まれています: Breeze, Breeze-Dark
- Deepin — Deepin デスクトップのデフォルトテーマ。次のテーマが含まれています: deepin, deepin-dark
- GNOME Extra Themes — GNOME デスクトップの追加テーマ。次のテーマが含まれています: Adwaita, Adwaita-dark, HighContrast
- Greybird — グレーとブルーの Xfce テーマ。Xubuntu 12.04 のデフォルト。
- Materia — GTK3, GTK2, GNOME-Shell に対応しているマテリアルデザインライクなフラットテーマ。
- MATE Themes — MATE デスクトップのデフォルトテーマ。次のテーマが含まれています: BlackMATE, Blue-Submarine, BlueMenta, ContrastHighInverse, Green-Submarine, GreenLaguna, Menta, TraditionalGreen, TraditionalOk
- Numix — 近代的な外観をしているフラットで明るいテーマ (GNOME, Openbox, Unity, Xfce)。次のテーマが含まれています: Numix
- Vertex — GTK 3, GTK 2, Gnome-Shell, Cinnamon のためのテーマ。
- Zuki — GTK, gnome-shell などのためのテーマ。
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-config
は System Settings > Appearance > Application Style > Configure GNOME/GTK Application Style から使用できます。
- LXAppearance — LXDE プロジェクトによる、デスクトップに依存しない GTK 2 と GTK 3 のスタイル設定ツール (LXDE デスクトップの他のパーツを必要としません)。
- Oo-mox — Numix と Flat-Plat テーマ (GTK 2, GTK 3) や Archdroid と Gnome-Colors アイコンテーマの様々なカラーバリエーションを生成するためのグラフィカルアプリケーション。HiDPI ディスプレイ用にスケールした GTK 2 テーマも生成できます。
GTK 2 だけをサポートしているツール:
- GTK Change Theme — GTK 2.0 のテーマを変更するためのプログラム (switch2 より優れた代替ツールと見なされています)。
- GTK Preference Tool — GTK テーマの選択とフォントの切り替えプログラム。
- GTK Theme Switch — シンプルな GTK テーマスイッチャ。
設定
設定ファイルで 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 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 に対して適用されない場合、加えて gsettings
を使用してください:
$ gsettings set org.gnome.desktop.interface gtk-theme Pop
ダークテーマ
GTK 3 テーマの中には派生のダークテーマが存在することがありますが、アプリケーションによって明示的に使うように設定されない限り、デフォルトで使われることはありません。全ての GTK 3 アプリケーションでダークテーマを使うには、以下を設定:
gtk-application-prefer-dark-theme = true
GTK 4 に対しては、以下を使用してください:
$ gsettings set org.gnome.desktop.interface color-scheme prefer-dark
キーボードショートカット
マウスをメニューアイテムの上に乗せて設定したいキーの組み合わせを押すことで GTK アプリケーションのキーボードショートカット (GTK では accelerators とも呼ばれます) を変更することができます。この機能を有効にするには、次を設定してください:
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
GTK 3 に対しては、以下も実行してください:
$ 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 でマウスをメニューに置いた時にメニューが開くまでの待ち時間を決めます。数値はミリ秒単位です。
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
CSD ボタンを隠す
Client-Side Decorations (CSD)[3] の最小化・最大化ボタン を gtk3 ウィンドウから削除するには:
gtk-decoration-layout=menu:close
GTK docs を参照。
マウスの貼り付け機能を無効化
マウスの中ボタンのクリック (PRIMARY とも) による貼り付け機能を無効にするには:
gtk-enable-primary-paste=false
ファイル選択ダイアログのデフォルトフォルダ
最近使われたフォルダではなく現在の作業ディレクトリでファイル選択ダイアログを開くようにします。通常、現在の作業ディレクトリはホームディレクトリです。
GTK 3
イカのコマンドで設定を変更してください:
$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd
GTK 2
以下を ~/.config/gtk-2.0/gtkfilechooser.ini
に追加してください:
StartupMode=cwd
スクロールの旧式の挙動
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
。環境変数#グラフィック環境 を参照。
あるいは、GTK 3.24.9 からは GTK 3 の設定でオーバーレイスクロールバーを無効化できます。設定ファイルの [Settings] セクションで gtk-overlay-scrolling の値を false に設定してください:
~/.config/gtk-3.0/settings.ini
[Settings] gtk-overlay-scrolling = false
GTK 4 は、もはや GTK_OVERLAY_SCROLLING
をサポートしていません。master から削除されました。GTK 4 では、スクロールバーのオーバーレイはツールキットの一部です。blanket toggle は、両方の組み合わせでテストしていないアプリケーションが壊れてしまうのを防ぐために削除されました。アプリケーション開発者がアプリの見た目を決定できるように、ツールキットは、オプトアウトあるいは設定を削除するメカニズムをユーザに提供しています。gtk_scrolled_window_set_overlay_scrolling() 関数を使って、アプリケーションごとにオーバーレイスクロールを有効化/無効化できます。アプリケーション開発者は、任意で GSettings を使ってユーザの設定をプロパティにバインドできます。
オーバーレイスクロールのインジケータを削除
オーバーレイスクロールバーの位置はアプリケーションウィンドウの細い破線で示されます。たとえ上述の環境変数を使ってオーバーレイスクールを無効化しても破線は消えません。インジケータの線を消すには、以下のファイルを作成してください:
~/.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 の設定例:
~/.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 を使う必要があります。
Wayland バックエンドを使用する際、一部の変数は settings.ini
から source されません。
GSettings スキーマ org.gnome.desktop.interface
内に存在しているキーが、settings.ini
の代わりにそこから読み込まれます。
そのような変数の例は gtk-color-scheme
と icon-theme
です。Wayland 下で GTK アプリケーションにテーマを適用させるために、これらはキーを GSettings で設定しなければなりません。あるいは、テーマだけをカスタマイズすればよいのであれば、環境変数 GTK_THEME
を使用できます。
Xorg バックエンド
Xorg ディスプレイサーバが使用されている場合、バックエンドのデフォルトは自動的に x11 になります。
環境変数 GDK_BACKEND=x11
を設定することで、Wayland セッション上で動作する GTK 3 アプリケーションに Xwayland を通して X11 バックエンドを使用するように強制することが可能です。
Broadway バックエンド
GDK Broadway バックエンドは HTML5 とウェブソケットを使って、ウェブブラウザに GTK アプリケーションを表示することをサポートしています。 [4]
broadwayd を使うときには、X と同じようにコロンを前に付けて、使用するディスプレイ番号を指定してください。デフォルトのディスプレイ番号は 0 です。
$ display_number=:5
次のコマンドで起動します。
$ broadwayd $display_number
デフォルトで使われるポートは:
port = 8080 + $display_number
ブラウザで http://127.0.0.1:port を開いてください。
アプリを起動するには:
$ GDK_BACKEND=broadway BROADWAY_DISPLAY=$display_number <<application>>
また、アドレスやポートを設定することも可能です:
$ 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 を使うデーモンは AUR の xsettingsd-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/environment
に NO_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; }
タイル型ウィンドウマネージャでフォーカスイベントがおかしい
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 4 アプリケーションの文字がぼやける、または正しく表示されない
GTK 4 は、フォントのレンダリング時にヒントを出さずにグレースケールのアンチエイリアシングを行うように変更しました。以前の動作に戻す機能はありません。gtk4-without-subpixel-hintingAUR を使って GTK 3 のフォントレンダリングを元に戻すことができます。GTK 4.6 参照 では、GTK 3 の動作の一部を復元する設定が利用できるようになります。サブピクセル・アンチエイリアシングは、この変更では利用可能になる予定はありません。