このセクションの大半は Fluxbox 0.1.13 の man ページからもってきた、あるいは多大な影響を受けています。 通常この種の事柄の決定的な権威は man ページですが、 この文書はスタイル作成をはじめたばかりの人をもっと[強く]啓蒙するようなものとなっています。
スタイルの仕組がどう機能するかを理解するには、少し X11 のリソースの機能について知ってみるのがいいです。
X11 リソースはキーと値で構成されています。 キーはピリオド (.) で区切られたいくつかのより小さなキー (ときどき子として参照されます) で構成されています。 キーには、 ワイルドカードの役目を果たすアスタリスク (*) を含めることもでき、その場合その一行でいくつかのキーにマッチすることを意味しています。 これは一、二色をベースとするスタイルで便利です。
Fluxbox では、 ツールバー、メニュー、ウィンドウ装飾の三つの主要コンポーネントを調整できます。 slit は自動的にツールバーからスタイルを継承しますが、 必要なら別にスタイルを指定することもできます。 ウィンドウをドラッグする際に x-y 位置に表示される小ウィンドウは、 そのスタイルをウィンドウタイトルバーから借ります。
以下は基本構文を説明するためのいくつかの簡単な例です:
ツールバーの時計の色リソースをgreen に設定します。 別の例:
メニューとそのすべての子の色リソースを rgb:3/4/5 に設定しています。色名の説明は X11 man ページを参照して下さい。 これは menu.title.color と menu.frame.color にも適用されます。 そして次の例:
すべてのキーのフォントリソースを一度にこのフォント名に設定しています。 システムにインストールされたフォントの情報については xfontsel, gfontsel あるいは xlsfonts のようなプログラムを使うことができます。
Fluxbox をこんなに華やかにしているのは、 テクスチャを動的に描画する能力です。 テクスチャの記述は直接キーに指定され適用されるはずです。 例えば、
例 10.4. テクスチャスタイル
toolbar.clock: Raised Gradient Diagonal Bevel1
toolbar.clock.color: rgb:8/6/4
toolbar.clock.colorTo: rgb:4/3/2
|
心配しないで、これらのディレクティブがどう機能するかについては[きちんと]説明します。 テクスチャの記述は次のように最大五つのフィールドからなります:
表 10.1. テクスチャディレクティブ
| ディレクティブ | 説明 |
|---|---|
| Flat / Raised / Sunken / Tiled | flat, raised あるいは sunken の外観をコンポーネントに与えます。 Tiled は pixmap だけに作用し、スケールしません。 |
| Gradient / Solid | 単色かグラデーションテクスチャを描画します |
| Horizontal / Vertical / Diagonal / Crossdiagonal / Pipecross / Elliptic / Rectangle / Pyramid | これらテクスチャタイプの内から一つ選択します。 これらも Gradient が指定されているときだけ機能します。 |
| Interlaced | テクスチャを織り混ぜ(一行毎に暗くする)ます。 このオプションはグラデーションテクスチャでもっともよく使われていますが、 Blackbox 0.60.3 (そしてすなわちすべてのバージョンの Fluxbox) から solid テクスチャでも使えるようになっています。 |
| Bevel1 / Bevel2 | 使用する bevel (面取り) の種類。bevel1 はデフォルトの設定で、陰影は画像の端につきます。 bevel2 はその代替で、陰影は画像の端から 1 pixel 分内側につきます。 |
テクスチャ記述からは離れますが、オプション ParentRelative もまた利用でき、コンポーネントをその親の一部として見せることができます。
すべてのグラデーションテクスチャは color と colorTo リソースの二色の組み合わせからなります。 Solid モードで interlace を使っているなら、その interlace 色をみつけるのに colorTo リソースが使われます。
完全なコンポーネントとそれぞれについて指定可能な値のリストは 付録 C. テーマリファンレンス にあります。
リストは長大ですが、独自のスタイルをつくるなら、 多数のキーを一つのコマンドで簡単に設定できることを覚えておいて下さい。 例えば次のように。