×

[PR]この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。

サイトトップまとめドキュメントGUI環境GTK+ ≫ GTK+のテーマについて

GTK+のテーマについて

GTK+にはGUIの外観をテーマとして切り替える機能があり

  • 外観を定義するテーマ(テーマ定義ファイルgtkrcとテーマによっては追加の画像ファイル群)

  • 描画を行うプログラムとしてのエンジン

の2段階で構成される。テーマはいずれかのエンジンをその中で指定し、エンジンの中で表示をカスタマイズするためのパラメータを渡したりもできる仕組み[43]になっている。

[注意]注意

gnome-look.orgのようなテーマ配布サイトにあるテーマの内、エンジンを含んでいないものについては、それが使用(依存)するエンジンがシステムにインストールされていないと正常に表示されない。

[注記]メモ

幾つかのエンジンとその付属テーマはディストリのgtk([バージョン])-engines-系パッケージとして簡単にパッケージ管理ツールからインストールすることができる。

[ヒント]ヒント

GTK+ 2のエンジンの中で最も動作が軽いエンジンはBluecurve。

GTK+用テーマとGTK+向けエンジンの配置

[注意]注意

下のテーマの配置はテーマの中心となるgtkrcを含むディレクトリについて記述したもので、実際に配置する際はテーマ名のディレクトリをテーマ用ディレクトリの下に配置する形となる。

表48 GTK+用のテーマとエンジンの配置

項目一般ユーザ(自分)用システム(全ユーザ)用
GTK+用テーマ(gtkrcを含む)[ホームディレクトリ]/.themes/[テーマ名]/gtk-[バージョン]//usr/share/themes/[テーマ名]/gtk-[バージョン]/
GTK+用エンジン(lib[名前].so)[ホームディレクトリ]/.gtk-[バージョン]/engines/や[ホームディレクトリ]/.gtk-[バージョン]/[バージョン]/[アーキテクチャ]/engines/(例:[ホームディレクトリ]/.gtk-2.0/2.10.0/x86_64-pc-linux-gnu/engines/)など/usr/lib(64)/gtk-[バージョン]/[バージョン]/engines/や/usr/lib(64)/gtk-[バージョン]/[アーキテクチャ]/[バージョン]/engines/(例:/usr/lib/gtk-2.0/i686-pc-linux-gnu/2.10.0/engines/)など

[注記]メモ

エンジンはOSネイティブのプログラムなのでアーキテクチャ依存となり、GTK+の中のバージョンによってもバイナリ互換性がなくなることもある[44]ため、それらを考慮した配置ができるようになっている一方で、浅いディレクトリ階層で配置できるようにもなっている。

GTK+のテーマ選択(変更/切り替え)

GTK+ 1のテーマ選択(変更/切り替え)

  • 環境変数GTK_RC_FILESgtkrcファイルの場所を指定することで(アプリケーションの起動ごとに)テーマを指定できるが、GTK+ 1を用いたデスクトップ環境はもう存在せず、デスクトップ環境の外観設定から指定/切り替えを行うことはできない

  • GTK+ 1自体、ディストリから外されることが増えているため、そもそも使う場面がない

GTK+ 2のテーマ選択(変更/切り替え)

  • GNOME2,Xfce4,LXDE,KDE4ではGTK+ 2のテーマをデスクトップ環境の外観設定としてGUI上で変更することができる(KDE4では追加の設定モジュールパッケージ[45]が必要)

  • それ以外の環境では[ホームディレクトリ]/.gtkrc-2.0がGTK+ 2のテーマファイルとして使用される

  • 環境によらず、GTK+アプリケーションの実行時に環境変数GTK2_RC_FILESgtkrcファイルの場所を指定することでアプリケーションの起動ごとに使用テーマが指定できる

例93 Firefox(GTK+ 2使用)のみBluecurveテーマを使用する場合の起動例

$ GTK2_RC_FILES=/usr/share/themes/Bluecurve/gtk-2.0/gtkrc firefox &

GTK+ 3のテーマ選択(変更/切り替え)

  • GTK+ 3とGTK+ 2の両方に対応している(gtk-3.0gtk-2.0の2つのディレクトリを含む)テーマがデスクトップ環境などで選択されている場合、そのテーマのGTK+ 3部分の外観がGTK+ 3アプリケーションで用いられ、GTK+ 2部分の外観がGTK+ 2アプリケーションで用いられる

  • GNOME3ではgnome-tweak-toolを用いてテーマをGUI上で変更することができる

  • GTK+ 2のみに対応してGTK+ 3に対応していないテーマがデスクトップ環境などで選択されている場合などでは、下に示すディレクトリでGTK+ 3のテーマを指定(選択)することができる

    • 環境変数XDG_CONFIG_HOMEが定義されている場合: ${XDG_CONFIG_HOME}/gtk-3.0/以下のテーマが使用される

    • 環境変数XDG_CONFIG_HOMEが定義されていない場合: [ホームディレクトリ]/.config/gtk-3.0/以下のテーマが使用される

[注記]メモ

GTK+ 3のテーマはCSSを用いた新しい形式となっている。

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

デスクトップ環境などでテーマを選択する仕組み自体はGTK+ 3とGTK+ 2とで分かれてはいないが、テーマがどちらか一方だけのバージョンにしか対応していなければGTK+ 3アプリケーションとGTK+ 2アプリケーションとで見栄えが大きく異なることになり、両対応なテーマであってもGTK+ 3とGTK+ 2とで細かい部分で見栄えが違う場合がある。



[43] 幾つかのエンジンではgtkrcの編集によりエンジンの描画のカスタマイズができる

[44] 例としてバージョン2.10.0があり、これ以上のバージョンのGTK+ 2向けにビルドされたエンジンにはバイナリ互換性があるが、それより古いバージョンのものとは互換でない(例えばバージョン2.8系のGTK+でエンジンをビルドした場合、バージョン2.10系以上のGTK+では動かない)

[45] パッケージ名はディストリやそのバージョンにより異なるがkdesystemsettingsconfiggtkといった単語を含む・例:kde-config-gtk