「GTK」の版間の差分
imported>Lahwaacz.bot (update Pkg/AUR templates to reflect new package status) |
Kusakata.bot2 (トーク | 投稿記録) (Pkg/AUR テンプレートの更新) |
||
(7人の利用者による、間の28版が非表示) | |||
4行目: | 4行目: | ||
[[es:Improve GTK Application Looks]] |
[[es:Improve GTK Application Looks]] |
||
[[it:GTK+]] |
[[it:GTK+]] |
||
− | [[ |
+ | [[ru:GTK+]] |
− | [[zh- |
+ | [[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 |
+ | 当初 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+ テーマ・アイコン・フォント・フォントサイズを設定するためのツールを提供しています。 |
||
− | + | GTK+ テーマやアイコン、フォントやフォントサイズを手動で変更するには、以下のように設定ファイルに追加します: |
|
+ | '''GTK+ 2:''' |
||
{{hc|~/.gtkrc-2.0|2= |
{{hc|~/.gtkrc-2.0|2= |
||
− | gtk-icon-theme-name = " |
+ | gtk-icon-theme-name = "Adwaita" |
− | gtk-theme-name = " |
+ | gtk-theme-name = "Adwaita" |
− | gtk-font-name = " |
+ | gtk-font-name = "DejaVu Sans 11" |
}} |
}} |
||
+ | '''GTK+ 3:''' |
||
− | 例えば: |
||
− | {{hc| |
+ | {{hc|$XDG_CONFIG_HOME/gtk-3.0/settings.ini|2= |
+ | [Settings] |
||
− | gtk-icon-theme-name = "Tango" |
||
− | gtk-theme-name = |
+ | gtk-icon-theme-name = Adwaita |
− | gtk- |
+ | 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 テーマの中には派生のダークテーマが存在することがありますが、アプリケーションによって明示的に使うように設定されない限り、デフォルトで使われることはありません。全ての 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- |
+ | 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 |
+ | === 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 = 8080 + |
+ | port = 8080 + $display_number |
− | ブラウザで http:// |
+ | ブラウザで 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=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/ |
+ | * [http://www.gtk.org/ GTK+ 公式ウェブサイト] |
− | * [[wikipedia:GTK+| |
+ | * [[wikipedia:GTK+|GTK+ についての Wikipedia の記事]] |
− | * [ |
+ | * [https://developer.gnome.org/gtk-tutorial/stable/ GTK+ 2.0 チュートリアル] |
− | * [ |
+ | * [https://developer.gnome.org/gtk3/stable/ GTK+ 3 リファレンスマニュアル] |
− | * [ |
+ | * [https://developer.gnome.org/gtkmm-tutorial/stable/ gtkmm チュートリアル] |
− | * [ |
+ | * [https://developer.gnome.org/gtkmm/stable/ gtkmm リファレンスマニュアル] |
2020年12月31日 (木) 14:44時点における版
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 にパッチを適用して通常のタイプを先に使用する
- 7 設定例
- 8 参照
インストール
GTK+ は公式リポジトリから2つのバージョンがインストールできます。以下のパッケージでインストールできます:
- GTK+ 3.x は gtk3 パッケージでインストールできます。
- GTK+ 2.x は gtk2 パッケージでインストールできます。
- GTK+ 1.x は gtkAUR パッケージでインストールできます。
テーマ
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 が起動します。
- GTK+ 3 の場合、
GTK_THEME
環境変数を使います[2]、例:
$ GTK_THEME=Adwaita:dark gnome-calculator
- 上記のコマンドを実行すると Adwaita のダークテーマで GNOME Calculator が起動します。
公式リポジトリや AUR から多数のテーマをインストールすることができます。
GTK+ 2 と GTK+ 3.20 以上の両方をサポートしているテーマ:
- Adapta — マテリアルデザインガイドラインに基づいている GTK+ テーマ。次のテーマが含まれています: Adapta, Adapta-Eta, Adapta-Nokto, Adapta-Nokto-Eta。
- Arc — モダンで透過するエレメントを備えたフラットテーマ。次のテーマが含まれています: Arc, Arc-Dark, Arc-Darker。
- Blackbird — Xfce 用のダークなデスクトップスイート。
- Bluebird — Xfce 向けのデスクトップスイート。Shimmer Project の一環。
- Breeze — KDE のデフォルトウィジェットテーマの GTK+ バージョン。次のテーマが含まれています: Breeze, Breeze-Dark。
- Deepin — Deepin デスクトップのデフォルトテーマ。次のテーマが含まれています: deepin, deepin-dark。
- GNOME Extra Themes — GNOME デスクトップの追加テーマ。次のテーマが含まれています: Adwaita (GTK+ 2用のみ), Adwaita-dark, HighContrast。
- Greybird — グレーとブルーの Xfce テーマ。Xubuntu 12.04 のデフォルト。Shimmer Project の一環。
- Materia Theme — GTK3, GTK2, GNOME-Shell に対応しているマテリアルデザインライクなフラットテーマ。
- MATE Themes — MATE デスクトップのデフォルトテーマ。次のテーマが含まれています: BlackMATE, Blue-Submarine, BlueMenta, ContrastHighInverse, Green-Submarine, GreenLaguna, Menta, TraditionalGreen, TraditionalOk。
- Numix — 近代的な外観をしているフラットで明るいテーマ (GNOME, Openbox, Unity, Xfce)。
- Vertex — GTK 3, GTK 2, Gnome-Shell, Cinnamon のためのテーマ。
- ttps://github.com/horst3180/vertex-theme || vertex-themesAUR
- Zuki — GTK, gnome-shell などのためのテーマ。
GTK+ 2 だけをサポートしているテーマ:
- GTK+ Engines — GTK+ 2 のテーマエンジン。次のテーマが含まれています: Clearlooks, Crux, Industrial, Mist, Redmond, ThinIce
- Xfce Gtk+ Engine — Xfce の Gtk+-2.0 エンジンとテーマ
- http://git.xfce.org/xfce/gtk-xfce-engine/ || gtk-xfce-engine[リンク切れ: パッケージが存在しません]
- Oxygen-Gtk — KDE のデフォルトウィジェットテーマ (Oxygen) の GTK2 ポート
- Aurora Gtk Engine — 最新の Clearlooks ファミリー。
- QtCurve — KDE と Gtk のウィジェットスタイルの設定セット
AUR には他にも多くの GTK+ テーマが存在します: search for gtk-theme, search for gtk2-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://cgit.kde.org/kde-gtk-config.git || kde-gtk-config
- インストール後、
kde-gtk-config
は System Settings > Application Appearance > GTK からも設定できます。
- LXAppearance — LXDE プロジェクトによる、デスクトップに依存しない GTK+2 と GTK+3 のスタイル設定ツール (LXDE デスクトップの他のソフトウェアを必要としません)。
- Oo-mox — Numix/Flat-Plat テーマ (GTK2, GTK3) や 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 テーマの中には派生のダークテーマが存在することがありますが、アプリケーションによって明示的に使うように設定されない限り、デフォルトで使われることはありません。全ての GTK+ 3 アプリケーションでダークテーマを使うには、以下を設定:
gtk-application-prefer-dark-theme = true
キーボードショートカットのカスタマイズを有効にする
マウスをメニューアイテムの上に乗せて設定したいキーボードのコンビネーションを押すことで GTK+ アプリケーションのキーボードショートカットをカスタマイズすることができます ただし、この機能はデフォルトでは無効になっています。この機能を有効にするには、次を設定してください:
gtk-can-change-accels = 1
Emacs キーバインド
GTK アプリで Emacs ライクなキーバインドを使うには:
GTK+2 アプリの場合、~/.gtkrc-2.0
に gtk-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
ファイル選択ダイアログのデフォルトフォルダ
最近使われたフォルダではなく 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+ 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の設定例
~/.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
環境変数を設定することで有効にできます。
トラブルシューティング
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+ 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