「GTK」の版間の差分
細 (1版 をインポートしました) |
|||
10行目: | 10行目: | ||
{{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'' です。 |
||
− | [[Uniform Look for Qt and GTK Applications#それぞれのツールキットのスタイルを変更する]] も参照してください。 |
||
+ | 特定のテーマを使うには、環境変数を設定します。 |
||
− | == テーマ == |
||
+ | * GTK+ 2 の場合、{{ic|GTK2_RC_FILES}} 環境変数を使います、例: |
||
+ | $ GTK2_RC_FILES=/usr/share/themes/Industrial/gtk-2.0/gtkrc gimp |
||
+ | :上記のコマンドを実行すると Industrial テーマで GIMP が起動します。 |
||
+ | * GTK+ 3 の場合、{{ic|GTK_THEME}} 環境変数を使います、例: |
||
+ | $ GTK_THEME=Adwaita:dark gnome-calculator |
||
+ | :上記のコマンドを実行すると Adwaita のダークテーマで GNOME Calculator が起動します。 |
||
+ | |||
+ | 公式リポジトリや [[AUR]] から多数のテーマをインストールすることができます。 |
||
+ | |||
+ | '''GTK+ 2 と GTK+ 3 の両方をサポートしているテーマ:''' |
||
+ | * {{App|GNOME Standard Themes|GNOME デスクトップのデフォルトテーマ。次のテーマが含まれています: ''Adwaita'', ''HighContrast''|https://github.com/GNOME/gnome-themes-standard|{{Pkg|gnome-themes-standard}}}} |
||
+ | * {{App|Orion|近代的で明るい GTK テーマ。|http://deviantart.com/view/281431756|{{Pkg|gtk-theme-orion}}}} |
||
+ | * {{App|MATE Themes|MATE デスクトップのデフォルトテーマ。次のテーマが含まれています: ''BlackMATE'', ''BlueMenta'', ''Blue-Submarine'', ''ContrastHigh'', ''ContrastHighInverse'', ''GreenLaguna'', ''Green-Submarine'', ''Menta'', ''TraditionalGreen'', ''TraditionalOk'', ''TraditionalOkTest''|https://github.com/mate-desktop/mate-themes|{{Pkg|mate-themes}}}} |
||
+ | * {{App|MATE Themes Extras|MATE の GTK2/3 デスクトップテーマのコレクション。次のテーマが含まれています: ''DeLorean-Dark'', ''DeLorean'', ''GnomishBeige''|https://github.com/NiceandGently/mate-themes-extras|{{Pkg|mate-themes-extras}}}} |
||
+ | * {{App|Numix|近代的な外観をしているフラットで明るいテーマ (GNOME, Openbox, Unity, Xfce)。|https://numixproject.org/|{{Pkg|numix-themes}}}} |
||
+ | * {{App|Vertex|GTK 3, GTK 2, Gnome-Shell, Cinnamon のためのテーマ。|http://horst3180.deviantart.com/art/Vertex-Theme-470663601|{{AUR|vertex-themes}}}} |
||
+ | * {{App|Clearlooks-Phénix|Clearlooks に見た目が似ている GTK3 テーマ。|https://github.com/jpfleury/clearlooks-phenix|{{AUR|clearlooks-phenix-gtk-theme}}}} |
||
+ | * {{App|Zukitwo|GTK, gnome-shell などのためのテーマ。|http://gnome-look.org/content/show.php/Zukitwo?content=140562|{{AUR|zukitwo-themes}}}} |
||
+ | * {{App|Ceti-2|GTK 3, GTK 2, Gnome-Shell のためのテーマ。|http://horst3180.deviantart.com/art/Ceti-2-Theme-489193140|{{AUR|ceti-2-themes}}}} |
||
+ | * {{App|Greybird|グレーとブルーの Xfce テーマ。Xubuntu 12.04 のデフォルト。|http://shimmerproject.org/our-projects/greybird/|{{AUR|xfce-theme-greybird}}}} |
||
+ | * {{App|Gnome-breeze|新しい Plasma 5 Breeze にマッチする GTK テーマ。|https://github.com/dirruk1/gnome-breeze|{{AUR|gnome-breeze-git}}}} |
||
+ | |||
+ | '''GTK+ 2 だけをサポートしているテーマ:''' |
||
+ | * {{App|GTK+ Engines|GTK+ 2 のテーマエンジン。次のテーマが含まれています: ''Clearlooks'', ''Crux'', ''Industrial'', ''Mist'', ''Redmond'', ''ThinIce''|https://github.com/GNOME/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}}}} |
||
+ | * {{App|Oxygen-Gtk|KDE のデフォルトウィジェットテーマ (Oxygen) の GTK2 ポート|https://projects.kde.org/projects/playground/artwork/oxygen-gtk/|{{Pkg|oxygen-gtk2}}}} |
||
+ | * {{App|Aurora Gtk Engine|最新の Clearlooks ファミリー。|http://gnome-look.org/content/show.php/Aurora+Gtk+Engine?content=56438|{{Pkg|gtk-engine-aurora}}}} |
||
+ | * {{App|Openbox Themes|Openbox ウィンドウマネージャ用の様々なテーマ。|https://www.debian.org/|{{Pkg|openbox-themes}}}} |
||
+ | * {{App|QtCurve|KDE と Gtk のウィジェットスタイルの設定セット|https://projects.kde.org/projects/playground/base/qtcurve|{{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 で) 期待通りの外観を表示するとは限りません。 |
||
+ | * テーマによっては正しく表示するために {{pkg|librsvg}} が必要になりますが、依存パッケージとして指定されていないことがあります。選んだテーマが壊れて見えるようでしたらインストールしてみて下さい。 |
||
+ | * テーマによってはパネルを正しく表示することができないため (明るい背景に明るいテキストが表示される)、この [http://i.imgur.com/QmeyN.png パネルの背景] を使う必要があります。 |
||
+ | }} |
||
+ | |||
+ | === GTK+ と Qt === |
||
+ | |||
+ | デスクトップで GTK+ と Qt (KDE) アプリケーションを使っているならば、それらの見た目が上手く調和しないことに気づくでしょう。GTK+ スタイルと Qt スタイルを調和させたい場合は [[Qt と GTK アプリケーションの外観の統合]]を読んで下さい。 |
||
+ | |||
+ | == 設定ツール == |
||
+ | |||
+ | 主流の[[デスクトップ環境]]の多くは GTK+ テーマやアイコン、フォントやフォントサイズを設定するためのツールを提供しており、[http://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 Tweak Tool (''gnome-tweak-tool''): {{Pkg|gnome-tweak-tool}} をインストール。 |
||
+ | * [[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://projects.kde.org/kde-gtk-config|{{Pkg|kde-gtk-config}}}} |
||
+ | :インストール後、{{ic|kde-gtk-config}} は ''System Settings > Application Appearance > GTK'' からも設定できます。 |
||
+ | * {{App|LXAppearance|LXDE プロジェクトによる、デスクトップに依存しない GTK+2 と GTK+3 のスタイル設定ツール (LXDE デスクトップの他のソフトウェアを必要としません)。|http://wiki.lxde.org/en/LXAppearance|{{Pkg|lxappearance}}}} |
||
+ | '''GTK+ 2 だけをサポートしているツール:''' |
||
− | ほとんどの[[Desktop Environment|デスクトップ環境]]は GTK+ テーマ・アイコン・フォント・フォントサイズを設定するためのツールを提供しています。 |
||
+ | * {{App|GTK-KDE4|KDE4 で GTK+2 アプリケーションのスタイルとフォントを変更できるアプリケーション。|http://kde-look.org/content/show.php?content=74689|{{AUR|gtk-kde4}}}} |
||
+ | :インストール後、{{ic|gtk-kde4}} は ''System Settings > Lost and Found > GTK style'' からも設定できます。 |
||
+ | * {{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|{{Pkg|gtk2_prefs}}}} |
||
+ | * {{App|GTK+ Theme Switch|シンプルな GTK+ テーマスイッチャ。|http://muhri.net/nav.php3?node=gts|{{Pkg|gtk-theme-switch2}}}} |
||
+ | == 設定 == |
||
− | もしくは、{{Pkg|gtk-theme-switch2}} を使って下さい。{{ic|switch}} コマンドで実行できます。 |
||
+ | 設定ファイルで GTK+ の設定を手動で指定することもできます。ただしデスクトップ環境やアプリケーションは手動設定を上書きしてしまうことがあります。GTK+ のバージョンによって、設定ファイルの場所は異なっています: |
||
− | === GTK+ 2.x === |
||
+ | * GTK+ 2 ユーザー個別: {{ic|~/.gtkrc-2.0}} または {{ic|~/.config/gtkrc-2.0}} |
||
+ | * GTK+ 2 システム全体: {{ic|/etc/gtk-2.0/gtkrc}} |
||
+ | * GTK+ 3 ユーザー個別: {{ic|$XDG_CONFIG_HOME/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]) を見て下さい。 |
||
+ | *以下の設定の中には非推奨となっているものもあり、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 |
||
+ | === GNOME メニューの高速化 === |
||
− | テーママネージャを全くインストールしたくないという場合は、手動で {{ic|$XDG_CONFIG_HOME/gtk-3.0/settings.ini}} (普通は {{ic|~/.config/gtk-3.0/settings.ini}}) にテーマを設定することができます。{{ic|settings.ini}} ファイルの例: |
||
− | {{hc|$XDG_CONFIG_HOME/gtk-3.0/settings.ini|2= |
||
− | [Settings] |
||
− | gtk-application-prefer-dark-theme = false |
||
− | gtk-theme-name = Zukitwo |
||
− | gtk-fallback-icon-theme = gnome |
||
− | gtk-icon-theme-name = [icon theme name] |
||
− | gtk-font-name = [font name] [font size] |
||
+ | この設定は GNOME でマウスをメニューに置いた時にメニューが開くまでの待ち時間を決めます。あなたの好きなように設定を変更してください。数字はミリ秒です、例えば 250 は1/4秒になります。 |
||
− | }} |
||
+ | gtk-menu-popup-delay = 0 |
||
+ | === ウィジェットのサイズを小さくする === |
||
− | 手動設定が反映されないときは、{{ic|$XDG_CONFIG_HOME}} にある古い {{ic|gtk-3.0}} フォルダを削除して /path/to/theme から {{ic|$XDG_CONFIG_HOME}} に {{ic|gtk-3.0}} フォルダをコピーしてください。例えば: |
||
+ | 小さな画面を使っていて大きなアイコンやウィジェットを表示したくない場合、簡単にサイズを変えることができます。 |
||
− | $ rm -r ~/.config/gtk-3.0/ |
||
+ | ツールバーのアイコンに文章を表示しないようにするには、次を使って下さい: |
||
− | $ cp -r /usr/share/themes/Zukitwo/gtk-3.0/ ~/.config/ |
||
+ | 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 テーマ] もあります。 |
||
− | この後、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 |
||
+ | === ファイル選択ダイアログのデフォルトフォルダ === |
||
− | {{Note|テーマによっては正しく表示するために {{pkg|librsvg}} が必要になりますが、依存パッケージとして指定されていないことがあります。選んだテーマが壊れて見えるようでしたらインストールしてみて下さい。}} |
||
+ | 最近使われたフォルダではなく ''current-working-directory'' でファイル選択ダイアログを開くようにします。通常、''current-working-directory'' は''ホームディレクトリ''です。 |
||
− | {{Note|他にも両方兼ね備えたテーマがあるかもしれません。上のテーマの内いくつかは AUR で利用できます。また、テーマによっては GTK+ 2.x パネルを正しく表示することができないため、この [http://i.imgur.com/QmeyN.png パネルの背景] を使う必要があります。}} |
||
+ | '''GTK+ 3''' |
||
− | インストールしたテーマでどれが 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"/ |
||
+ | ''gsettings'' で DConf を変更してください、設定ファイルは存在しません: |
||
− | === GTK+ と Qt === |
||
+ | $ gsettings set org.gtk.Settings.FileChooser startup-mode cwd |
||
− | デスクトップで GTK+ と Qt (KDE) アプリケーションを使っているならば、それらの見た目が上手く調和しないことに気づくでしょう。GTK+ スタイルと Qt スタイルを調和させたい場合は [[Uniform Look for Qt and GTK Applications]] を読んで下さい。 |
||
+ | |||
+ | '''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; } |
||
+ | }} |
||
− | + | == Broadway による GTK+ と HTML == |
|
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]。 |
||
132行目: | 228行目: | ||
$ broadwayd --port $port_number --address $address $display_number |
$ broadwayd --port $port_number --address $address $display_number |
||
+ | == トラブルシューティング == |
||
− | == 設定ファイル == |
||
+ | === GTK+ 2 と GTK+ 3 アプリケーションでテーマが異なる === |
||
− | {{Note|GTK の設定オプションの完全なリストは GTK+ プログラミングリファレンスマニュアルの [http://library.gnome.org/devel/gtk/stable/GtkSettings.html#GtkSettings.properties ''GtkSettings'' properties] を見て下さい。}} |
||
+ | 通常、選択したテーマが 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+ の設定をまとめて説明します。 |
||
+ | インストールしたテーマでどれが GTK+ 2.x と GTK+ 3.x 両方のバージョンを持っているか調べるには次のコマンドを使って下さい (空白が含まれている名前はひっかかりません): |
||
− | (ini フォーマットの) GTK+ の設定ファイルは配置される場所が2つあります: $XDG_CONFIG_HOME/gtk-3.0/ (普通は ~/.config/gtk-3.0/) と /etc/gtk-3.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"/ |
||
− | === |
+ | === root アプリケーションにテーマが適用されない === |
+ | ユーザーテーマファイル ({{ic|$XDG_CONFIG_HOME/gtk-3.0/settings.ini}}, {{ic|~/.gtkrc-2.0}}) は他のアカウントからは読み込まれないため、選択したテーマは [[en2:Running_X_apps_as_root|root で動かしている X アプリケーション]]には適用されません。以下のような解決方法があります: |
||
− | マウスをメニューアイテムの上に乗せて設定したいキーボードのコンビネーションを押すことで GTK+ アプリケーションのキーボードショートカットをカスタマイズすることができます |
||
− | ただし、この機能はデフォルトでは無効になっています。この機能を有効にするには、次を設定してください: |
||
− | gtk-can-change-accels = 1 |
||
+ | * システム全体にテーマファイルを設定: {{ic|/etc/gtk-3.0/settings.ini}} (GTK+ 3) または {{ic|/etc/gtk-2.0/gtkrc}} (GTK+ 2) |
||
− | === GNOME メニューの高速化 === |
||
+ | * シンボリックリンクを作成、例: |
||
+ | # ln -s /home/[username]/.gtkrc-2.0 /root/.gtkrc-2.0 |
||
+ | * テーマを root で設定: |
||
+ | # gksu lxappearance |
||
+ | * 設定デーモンを使用 (ほとんどのデスクトップ環境では設定デーモンが使われています)。デスクトップに依存しない [http://standards.freedesktop.org/xsettings-spec/xsettings-spec-0.5.html XSettings] を使うデーモンは [[AUR]] の {{aur|xsettingsd-git}} でインストールできます。 |
||
+ | === クライアントサイドデコレーション === |
||
− | この設定は GNOME でマウスをメニューに置いた時にメニューが開くまでの待ち時間を決めます。あなたの好きなように設定を変更してください。数字はミリ秒です、例えば 250 は1/4秒になります。 |
||
− | gtk-menu-popup-delay = 0 |
||
+ | GTK 3.12 から [http://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 影が二重に表示される] などの問題が発生することがあります。 |
||
− | === ウィジェットのサイズを小さくする === |
||
+ | (タイル型ウィンドウマネージャを使っている場合などに発生する) ウィンドウの周りの影と枠を消すには、以下のファイルを作成してください: |
||
− | 小さな画面を使っていて大きなアイコンやウィジェットを表示したくない場合、簡単にサイズを変えることができます。 |
||
− | ツールバーのアイコンに文章を表示しないようにするには、次を使って下さい: |
||
− | 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 |
||
+ | {{hc|~/.config/gtk-3.0/gtk.css|<nowiki>.window-frame, .window-frame:backdrop { |
||
− | [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 テーマ] もあります。 |
||
+ | box-shadow: 0 0 0 black; |
||
+ | border-style: none; |
||
+ | margin: 0; |
||
+ | border-radius: 0; |
||
+ | } |
||
+ | .titlebar { |
||
− | == 開発 == |
||
+ | border-radius: 0; |
||
+ | } |
||
+ | .window-frame.csd.popup { |
||
− | スクラッチから C で GTK+ 3 プログラムを書く時は、CFLAGS を gcc に追加してください: |
||
+ | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.13); |
||
− | 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 サンプル] も試してみてください。 |
||
+ | .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; |
||
+ | }*/ |
||
+ | </nowiki>}} |
||
+ | ヘッダーバーのボタンを調整するには、{{ic|gtk-decoration-layout}} の設定を使います [https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings--gtk-decoration-layout]。以下の例では全てのボタンを削除します: |
||
− | GObject-Introspection やバインディングを使うことで多くのプログラミング言語で簡単に GTK+ 3 のメッセージダイアログを作ることができます、また bash を使うこともできます。 |
||
+ | {{hc|~/.config/gtk-3.0/settings.ini|2= |
||
− | 以下の例ではシンプルに "Hello world" をメッセージダイアログに表示します。 |
||
+ | gtk-decoration-layout=menu: |
||
+ | }} |
||
+ | === セディーユ ć/Ć ではなく ç/Ç が使われる === |
||
− | ====Bash==== |
||
− | *依存パッケージ: {{Pkg|zenity}} |
||
− | {{hc|hello_world.sh|<nowiki>#!/bin/bash |
||
− | zenity --info --title='Hello world!' --text='This is an example dialog.'</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 国際レイアウト)。 |
||
− | ====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}}) |
||
+ | ===accessibility bus に関する警告を表示させない=== |
||
− | {{hc|hello_world.boo|<nowiki>import Gtk from "gtk-sharp" |
||
− | Application.Init() |
||
− | Hello = MessageDialog(null, DialogFlags.Modal, MessageType.Info, ButtonsType.Close, "Hello world!") |
||
− | Hello.SecondaryText = "This is an example dialog." |
||
− | Hello.Run()</nowiki>}} |
||
+ | GTK+ 3 プログラムの実行時に、ターミナルに以下のような警告が表示される場合: |
||
− | ====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>}} |
||
+ | WARNING **: Couldn't connect to accessibility bus: |
||
− | ====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>}} |
||
+ | 以下を実行することで警告を消すことができます: |
||
− | ====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>}} |
||
+ | $ NO_AT_BRIDGE=1 ''theprogram'' |
||
− | ====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>}} |
||
+ | もしくは {{ic|~/.bashrc}} や {{ic|/etc/environment}} に {{ic|1=NO_AT_BRIDGE=1}} を追加してください。 |
||
− | ====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; |
||
+ | GTK+ テーマの背景色に擬態するウィンドウデコレーションテーマを使用する[[ウィンドウマネージャ]]を使っている場合、GTK+ 3 アプリケーションでタイトルバーの色がアプリケーションの色と完全に食い違って表示されることがあります。対応策としては、以下のファイルを作成してください: |
||
− | public class HelloWorld |
||
+ | {{hc|~/.config/gtk-3.0/gtk.css| |
||
− | { |
||
+ | /* Always use background color */ |
||
− | public static void main(String[] args) { |
||
+ | GtkWindow { |
||
− | Gtk.init(args); |
||
+ | background-color: @theme_bg_color; |
||
− | Dialog Hello = new InfoMessageDialog(null, "Hello world!", "This is an example dialog."); |
||
+ | } |
||
− | Hello.run(); |
||
− | } |
||
− | }</nowiki>}} |
||
+ | /* Fix tooltip background override */ |
||
− | ====JavaScript==== |
||
+ | .tooltip { |
||
− | *依存パッケージ: {{Pkg|gtk3}}, {{Pkg|gjs}} ({{Pkg|seed}}) |
||
+ | background-color: rgba(0, 0, 0, 0.8); |
||
− | {{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>}} |
||
+ | .tooltip * { |
||
− | ====Perl==== |
||
+ | background-color: transparent; |
||
− | *依存パッケージ: 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>}} |
||
+ | /* Fix Nautilus desktop window background override */ |
||
− | ====Python==== |
||
+ | NautilusWindow { |
||
− | *依存パッケージ: {{Pkg|gtk3}}, {{Pkg|python-gobject}} |
||
+ | background-color: transparent; |
||
− | {{hc|hello_world.py|<nowiki>#!/usr/bin/python |
||
+ | } |
||
− | from gi.repository import Gtk |
||
+ | }} |
||
− | 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>}} |
||
− | == |
+ | == 設定例 == |
− | *依存パッケージ: {{Pkg|gtk3}} |
||
− | *ビルドするのに必要なパッケージ: {{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>}} |
||
+ | GTK+ 2 設定例: |
||
− | ====Visual Basic .NET==== |
||
− | *依存パッケージ: 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}} |
||
+ | {{hc|~/.gtkrc-2.0|2= |
||
− | {{hc|hello_world.vb|<nowiki>Imports Gtk |
||
+ | # GTK theme |
||
− | Public Class Hello |
||
+ | include "/usr/share/themes/Clearlooks/gtk-2.0/gtkrc" |
||
− | Inherits MessageDialog |
||
+ | |||
− | Public Sub New |
||
+ | # Font |
||
− | MyBase.New(Me, DialogFlags.Modal, MessageType.Info, ButtonsType.Close, "Hello world!") |
||
+ | style "myfont" { |
||
− | Me.SecondaryText = "This is an example dialog." |
||
+ | font_name = "DejaVu Sans 8" |
||
− | End Sub |
||
+ | } |
||
− | Public Shared Sub Main |
||
+ | widget_class "*" style "myfont" |
||
− | Application.Init |
||
+ | gtk-font-name = "DejaVu Sans 8" |
||
− | Dim Dialog As New Hello |
||
+ | |||
− | Dialog.Run |
||
+ | # Icon theme |
||
− | End Sub |
||
+ | gtk-icon-theme-name = "Tango" |
||
− | End Class</nowiki>}} |
||
+ | |||
+ | # 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 の記事]] |
* [http://developer.gnome.org/gtk-tutorial/stable/ GTK+ 2.0 チュートリアル] |
* [http://developer.gnome.org/gtk-tutorial/stable/ GTK+ 2.0 チュートリアル] |
||
* [http://developer.gnome.org/gtk3/stable/ GTK+ 3 リファレンスマニュアル] |
* [http://developer.gnome.org/gtk3/stable/ GTK+ 3 リファレンスマニュアル] |
2015年8月23日 (日) 20:18時点における版
GTK+ ウェブサイト より:
- GTK+ もしくは GIMP ツールキットはグラフィカルユーザーインターフェースを作成するためのマルチプラットフォームのツールキットです。ウィジェットの完全なセットを提供することで、GTK+ はちょっとしたツールから完全なアプリケーションスイートまで幅広いプロジェクトに適しています。
当初 GTK+ (GIMP Toolkit) は GNU プロジェクトによって GIMP のために作成されました、しかしながら現在ではさまざまな言語のバインディングの存在する人気のあるツールキットになっています。この記事では GTK+ テーマ・スタイル・アイコン・フォント・フォントサイズを設定するのに使うツールと手動設定の方法を詳しく伝えます。
インストール
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 です。
特定のテーマを使うには、環境変数を設定します。
- GTK+ 2 の場合、
GTK2_RC_FILES
環境変数を使います、例:
$ GTK2_RC_FILES=/usr/share/themes/Industrial/gtk-2.0/gtkrc gimp
- 上記のコマンドを実行すると Industrial テーマで GIMP が起動します。
- GTK+ 3 の場合、
GTK_THEME
環境変数を使います、例:
$ GTK_THEME=Adwaita:dark gnome-calculator
- 上記のコマンドを実行すると Adwaita のダークテーマで GNOME Calculator が起動します。
公式リポジトリや AUR から多数のテーマをインストールすることができます。
GTK+ 2 と GTK+ 3 の両方をサポートしているテーマ:
- GNOME Standard Themes — GNOME デスクトップのデフォルトテーマ。次のテーマが含まれています: Adwaita, HighContrast
- Orion — 近代的で明るい GTK テーマ。
- MATE Themes — MATE デスクトップのデフォルトテーマ。次のテーマが含まれています: BlackMATE, BlueMenta, Blue-Submarine, ContrastHigh, ContrastHighInverse, GreenLaguna, Green-Submarine, Menta, TraditionalGreen, TraditionalOk, TraditionalOkTest
- MATE Themes Extras — MATE の GTK2/3 デスクトップテーマのコレクション。次のテーマが含まれています: DeLorean-Dark, DeLorean, GnomishBeige
- Numix — 近代的な外観をしているフラットで明るいテーマ (GNOME, Openbox, Unity, Xfce)。
- Vertex — GTK 3, GTK 2, Gnome-Shell, Cinnamon のためのテーマ。
- Clearlooks-Phénix — Clearlooks に見た目が似ている GTK3 テーマ。
- Zukitwo — GTK, gnome-shell などのためのテーマ。
- Ceti-2 — GTK 3, GTK 2, Gnome-Shell のためのテーマ。
- Greybird — グレーとブルーの Xfce テーマ。Xubuntu 12.04 のデフォルト。
- Gnome-breeze — 新しい Plasma 5 Breeze にマッチする GTK テーマ。
GTK+ 2 だけをサポートしているテーマ:
- GTK+ Engines — GTK+ 2 のテーマエンジン。次のテーマが含まれています: Clearlooks, Crux, Industrial, Mist, Redmond, ThinIce
- Xfce Gtk+ Engine — Xfce の Gtk+-2.0 エンジンとテーマ
- Oxygen-Gtk — KDE のデフォルトウィジェットテーマ (Oxygen) の GTK2 ポート
- Aurora Gtk Engine — 最新の Clearlooks ファミリー。
- Openbox Themes — Openbox ウィンドウマネージャ用の様々なテーマ。
- 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 Tweak Tool (gnome-tweak-tool): gnome-tweak-tool をインストール。
- 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://projects.kde.org/kde-gtk-config || kde-gtk-config
- インストール後、
kde-gtk-config
は System Settings > Application Appearance > GTK からも設定できます。
- LXAppearance — LXDE プロジェクトによる、デスクトップに依存しない GTK+2 と GTK+3 のスタイル設定ツール (LXDE デスクトップの他のソフトウェアを必要としません)。
GTK+ 2 だけをサポートしているツール:
- GTK-KDE4 — KDE4 で GTK+2 アプリケーションのスタイルとフォントを変更できるアプリケーション。
- http://kde-look.org/content/show.php?content=74689 || gtk-kde4AUR
- インストール後、
gtk-kde4
は System Settings > Lost and Found > GTK style からも設定できます。
- GTK+ Change Theme — GTK+ 2.0 のテーマを変更するためのプログラム (switch2 の代替プログラム)。
- GTK+ Preference Tool — GTK+ テーマの選択とフォントの切り替えプログラム。
- GTK+ Theme Switch — シンプルな GTK+ テーマスイッチャ。
設定
設定ファイルで GTK+ の設定を手動で指定することもできます。ただしデスクトップ環境やアプリケーションは手動設定を上書きしてしまうことがあります。GTK+ のバージョンによって、設定ファイルの場所は異なっています:
- GTK+ 2 ユーザー個別:
~/.gtkrc-2.0
または~/.config/gtkrc-2.0
- GTK+ 2 システム全体:
/etc/gtk-2.0/gtkrc
- GTK+ 3 ユーザー個別:
$XDG_CONFIG_HOME/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
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 で設定をすることもでき、小さくする設定が全て行う テーマ もあります。
ファイル選択ダイアログのデフォルトフォルダ
最近使われたフォルダではなく 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; }
Broadway による GTK+ と HTML
GDK Broadway バックエンドは HTML5 とウェブソケットを使って、ウェブブラウザに GTK+ アプリケーションを表示することをサポートしています [1]。
broadwayd を使うときには、X と同じようにコロンを前に付けて、使用するディスプレイ番号を指定してください。デフォルトのディスプレイ番号は 1 です。
$ display_number=:5
次のコマンドで起動します。
$ broadwayd $display_number
デフォルトで使われるポートは:
port = 8080 + ($display_number - 1)
ブラウザで http://localhost:port を開いて下さい。
アプリを起動するには:
$ GDK_BACKEND=broadway BROADWAY_DISPLAY=$display_number <<app>>
また、アドレスやポートを設定することも可能です:
$ broadwayd --port $port_number --address $address $display_number
トラブルシューティング
GTK+ 2 と GTK+ 3 アプリケーションでテーマが異なる
通常、選択したテーマが GTK+ 2.x と GTK+ 3.x の両方をサポートしている場合、GTK+ 2 と GTK+ 3 アプリケーションの両方にテーマが適用されます。選択したテーマが GTK+ 2.x しかサポートしてない場合、GTK+ 2.x アプリケーションにはそのテーマが使われ、GTK+ 3.x アプリケーションにはデフォルトの GTK+ テーマが使われます。選択したテーマが GTK+ 3.x しかサポートしていない場合、GTK+ 3.x アプリケーションにはそのテーマが使われ、GTK+ 2.x アプリケーションにはデフォルトの GTK+ テーマが使われます。UI の外観を統一するために GTK+ 2.x と GTK+ 3.x 両方をサポートしているテーマを使うと一番良い結果が得られます。
インストールしたテーマでどれが GTK+ 2.x と GTK+ 3.x 両方のバージョンを持っているか調べるには次のコマンドを使って下さい (空白が含まれている名前はひっかかりません):
find $(find ~/.themes /usr/share/themes/ -wholename "*/gtk-3.0" | sed -e "s/^\(.*\)\/gtk-3.0$/\1/") -wholename "*/gtk-2.0" | sed -e "s/.*\/\(.*\)\/gtk-2.0/\1"/
root アプリケーションにテーマが適用されない
ユーザーテーマファイル ($XDG_CONFIG_HOME/gtk-3.0/settings.ini
, ~/.gtkrc-2.0
) は他のアカウントからは読み込まれないため、選択したテーマは root で動かしている X アプリケーションには適用されません。以下のような解決方法があります:
- システム全体にテーマファイルを設定:
/etc/gtk-3.0/settings.ini
(GTK+ 3) または/etc/gtk-2.0/gtkrc
(GTK+ 2) - シンボリックリンクを作成、例:
# ln -s /home/[username]/.gtkrc-2.0 /root/.gtkrc-2.0
- テーマを 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
の設定を使います [2]。以下の例では全てのボタンを削除します:
~/.config/gtk-3.0/settings.ini
gtk-decoration-layout=menu:
セディーユ ć/Ć ではなく ç/Ç が使われる
Xcompose を使用した解決方法が [3] や [4] に載っています (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; }
設定例
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