試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

GTK+ 2を使用したデスクトップ環境などにおけるGTK+ 3のテーマ設定について(2011年6月時点)

GNOME 3の登場とともにバージョン3系のGTK+も公開され、GNOME 3を用いたディストリはもちろん、GNOME 2のコンポーネントを用いているUbuntu 11.04でも標準でディストリのパッケージとしてGTK+ 3(パッケージ名「libgtk-3-0」)をインストールすることができる。しかし、デスクトップ環境の中でgnome-tweak-toolを用いてGTK+ 3のテーマが変更できるGNOME 3とは異なり、GTK+ 2を用いたデスクトップ環境などでは、GTK+ 3アプリケーションの外観テーマが組み込みのシンプルな外観になってしまう。2011年6月時点ではGTK+ 3に対応するデスクトップ環境はGNOME 3のみで、デスクトップ環境の設定マネージャではGTK+ 3のテーマを変更/選択することができない
(2014/8/29)現在選択されているテーマ自体がGTK+ 3に対応したものであれば(/usr/share/themes/[ホームディレクトリ]/.themes/の中のテーマ名のディレクトリの中にgtk-3.0というディレクトリが存在する場合)、デスクトップ環境の設定ツールにおける外観変更(設定マネージャによる変更)でもGTK+ 3のテーマは切り替えができる。ただし、GTK+ 2とGTK+ 3両対応のテーマであっても外観はGTK+ 2とGTK+ 3とで一部異なる場合がある。本記事で扱うのは、GTK+ 2のみに対応しているテーマが選択されている場合や、GTK+のテーマがデスクトップ環境の設定ツールで変更できないような環境についてとなる。

外観テーマの形式とテーマ選択の方式が変更されている

GTK+の外観が

  • エンジン
  • テーマ(配色や描画の詳細などの定義)

の2段階になっている点はGTK+ 2と同様なのだが、GTK+ 3ではテーマ部分の仕様が新しくなっており、デスクトップ環境の設定マネージャを使用しない場合におけるテーマ選択の方式も変更されている。

新しい形式のテーマの構成ファイル

テーマによって構成ファイルは異なる(下に含まれないものが存在したり、下にあるファイルのいずれかがなかったりする場合がある)。

[テーマディレクトリ]-+-[gtk-3.0]-+-[assets]-(各種SVGファイル...)
            |           +-gtk-widgets-assets-dark.css
            |           +-gtk-widgets-assets.css
            |           +-gtk-widgets.css
            |           +-gtk-dark.css
            |           +-gtk.css
            |           +-settings.ini

ファイル名から分かるように、テーマはCSSファイルを用いて定義されている。

テーマの選択

「GTK3_RC_FILES」のような環境変数は設定しても効果がない。
環境変数XDG_CONFIG_HOMEが存在する場合は${XDG_CONFIG_HOME}/gtk-3.0/,存在しない場合は[ホームディレクトリ]/.config/gtk-3.0/以下にある上記構成ファイル群が用いられる。

設定例

gnome-themes-standard」パッケージが提供する「Adwaita」テーマを用いるには、/usr/share/themes/Adwaita/gtk-3.0/に対するシンボリックリンクを、環境変数XDG_CONFIG_HOMEが存在する場合は${XDG_CONFIG_HOME}/gtk-3.0,存在しない場合は[ホームディレクトリ]/.config/gtk-3.0として作成するのが手っ取り早い。
gnome-look.orgなどにあるGTK+ 3テーマを用いる場合は[ホームディレクトリ]/.themes/以下などにテーマ名のディレクトリ(中にgtk-3.0/などのディレクトリを含む階層)を配置した上でその中のgtk-3.0/ディレクトリに対してシンボリックリンクを張る。

(/usr/share/themes/以下のテーマ)
[XDG_CONFIG_HOME]-+-gtk-3.0 -> /usr/share/themes/[テーマ名]/gtk-3.0/
 [or ~/.config]   |

(~/.themes/以下のテーマ)
[XDG_CONFIG_HOME]-+-gtk-3.0 -> ~/.themes/[テーマ名]/gtk-3.0/
 [or ~/.config]   |

2011年6月時点ではgnome-look.orgなどにあるGTK+ 3テーマの多くは「adwaita」エンジン(「gnome-themes-standard」パッケージに含まれる・ファイルの場所は/usr/lib(64や32)/gtk-3.0/3.0.0/theming-engines/libadwaita.so)に依存しており、これをインストールしておかないと正常に表示されない場合がある。
Ubuntu 11.04で外観を確認するには「gtk-3-examples」パッケージのgtk3-demoが便利。
下の画像はZukitwoテーマ(2011.06.03版)を使用したもの。

関連記事:

使用したバージョン: