Blackbox ユーザガイド

Deaver Anthony [FAMILY Given]

Collins Jasen [FAMILY Given]

SATOH Satoru [FAMILY Given]


イントロダクション

イントロダクション

Blackbox は Open Group の X Window System Ver. 11 Release 6 以降のためのウィンドウマネージャの一つです。Blackbox は C++ で書か れていて画像処理こそ Window Maker に似ていますがそれを除いて他のど のウィンドウマネージャともコードを共有しません。Blackbox は Bradley T. Hughes (bhughes@tcac.net)とJeff Raven(jraven@psu.edu)に よって書かれています。

この文書はAnthony Deaver(bishop@themes.org)、Jason Collins(jdc@themes.org)、そして Blackbox のプログラマのprogrammers Bradley T. Hughes(bhughes@tcac.net)とJeff Raven(jraven@psu.edu)が 保守しています。

訳者注意

この翻訳および DocBook を使った SGML 化は 佐藤 暁 (ss@gnome.gr.jp)が行いました。 原文とはかなり異なり、改変した部分も多くあります。訳については原 作者に公開の許可などはもらっていないので無断転載等はしないように 願います。また記述のあやまりなどのすべての責任は訳者にありますの でくれぐれもこれらの原著者に問合せたりしないことで下さい。

The Blackbox.Themes.Org Staff is:

もしBlackbox Guideに貢献したいと思ったならe-mailをbb@themes.orgまでコメント、意見、 追補などを添えて送って下さい。

このガイドがBlackboxのv0.5x.xシリーズのために書かれていること に注意して下さい。ベータ版の0.6x.xシリーズのためのガイドはまだ編集 中です[1]

インストール

コンパイルとインストール

Blackboxはftp://blackbox.wiw.org/pub/blackbox/ からダウンロードできます。ダウンロートしたらコンパイルしたいディレ クトリ内にファイルを置いて、次のように入力します:

    bash$ tar zxvf blackbox-x.xx.x.tar.gz          (1)
   
(1)

実際には x.xx.x は Blackbox のバージョン番号の数字になりま す。

ファイルを展開した後でできたディレクトリ内に cdします。

Blackbox をコンパイルする方法は次のとおりです:

  1. Blackbox のソースコードを含むディレクトリに移動し ./configure と入力しあなたのシステムに対してパッ ケージを調整します。もし csh と古いバージョンのSystem V を使って いるなら csh が configure を実行しないように ./ の代りに sh と入力しなけ ればならないでしょう。configure の実行にはしばらくかかります。こ の sh スクリプトは実行している間にどの特性をチェックしているかを 表示します。

  2. make と入力してコンパイルします。

  3. プログラムとデータファイル、そして文書をインストールするた めにmake install と入力して下さい。

  4. make clean と入力するとソースコードディ レクトリからバイナリおよびオブジェクトファイルを消すことができま す。configureによって生成されたファイルを消す にはmake distclean と入力します。従って Blackbox をコンパイルするためのコマンドについてまとめると次のよう になります:

           bash$ ./configure (あるいは sh ./configure)                      
           bash$ make
           bash$ make install
           bash$ make clean          (1)
           bash$ make distclean          (2)
          

    (1)

    バイナリおよびオブジェクトファイルを消すオプション

    (2)

    configure で生成されたファイルを消す オプション

configureシェルスクリプトはコンパイル時の システム依存のさまざまな変数に対する正しい値を推測します。そして Blackboxの各ディレクトリ内にMakefileを生成する のにこれらの値を使います。

最終的に、将来そのときの調整項目を再構築するためのシェルスク リプトconfig.status、再び configureを実行するときの速度を速めるために結果 を保存するconfig.cache、そして コンパイラの出 力を含んでいるconfig.log(主に configureのデバッグをするのに便利です)を生成しま す。

もしあなたが Blackbox をコンパイルするのに特殊な作業が必要な ら configure がチェックしているかどうか明確にして diff か説明を bhughes@tcac.net に送って下されば次のリリースに入れるかどうかを考え ることができす。もし何か保存しておきたくないものが config.cacheに含まれていれば消すか編集して下さ い。configure.inautoconf というプログラムによってconfigureを生成するのに 使われます。configure.inはあなたがより新しいバー ジョンのautoconfを使って、 configureを変更するか再生成するときにだけ必要と なります。

コンパイラとオプション

いくつかのシステムではconfigureスクリプト が関知しない、コンパイルあるいはリンクのための特殊なオプションを必 要とします。変数について configure 初期値を環境 変数で定義できます。Bourne 互換シェルを使っているならコマンドライン で次のようにします:

    bash$ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
   

あるいはenvプログラムを持つシステム上では 次のようにもできます:

    bash$ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s
    bash$ ./configure
   

オプション特性

Blackbox はいくつかの configure オプション でその機能特性を変えてコンパイルすることができます:

  • BlackboxはX11R6のXShape拡張 をサポートしています。これはデ フォルトで有効になっていますがconfigureスクリ プトのコマンド行で--disable-shapeと指定すれば無効にできます。

  • KDE プロトコル/拡張の最低限の組をサポートしています。このサ ポートはデフォルトでは無効になっていますが configure スクリプトのコマンド行で --enable-kdeと指定すれば有効にできます。

  • Blackbox は Slit という小物で Window Maker のドックアプリケー ション(注意: wmaker から blackbox に再起動するときは必ずしもドッ クアプリケーションを正しく処理できません)をサポートしています。 Slitはデフォルトでコンパイルされますが configureスクリプトのコマンド行で-- disable-slitと指定すれば無効にできます。

  • Blackboxは "偽インタレース(faked interlacing)" と呼ばれ、描 画画像内の行毎に暗くする描画効果をサポートしています。このサポー トはグラディエント画像に対してのみ機能します。デフォルトではコン パイルされますが configure スクリプトのコマン ド行で--disable-interlaceと指定すれば無効にできます。

  • さらにconfigureスクリプトは通常自動的に X ヘッダおよびライブラリをみつけますが、もしみつけられないなら configureオプションで--x-includes=DIRと-- x-libraries=DIRでそれらの場所を指定できます。

基本的な操作方法

Blackbox の起動

Blackbox は実行時に指定することのできるいくつかのコマンド行オ プションを持っています。blackbox -display[display] とすれば Blackbox は指定されたディスプ レイ(例えば :1.0)で実行されます。blackbox --versionとすると Blackbox のバージョン情報が表示されます。 blackbox --helpとするとコマンド行オプションを表 示します。さらにバージョン 0.51 で追加されたものとして、 blackbox -rc [file] とすると Blackboxは ~/.blackboxrc以外の初期化ファイルを読み込んで 起動します。

ウィンドウの操作

他のウィンドウマネージャと同じようにウィンドウを制御する一番 のツールがウィンドウの上部のバーです。このバーにはウィンドウタイト ルが表示され、最小化、最大化、終了の三つのボタンがついています。最 小化ボタンは左側に、他の二つのボタンは右側にあります。ウィンドウは フルスクリーン、垂直方向、水平方向の三つの方法で最大化できます。最 大化ボタンを左クリックすると両方向に、中央クリックすると垂直方向に、 右クリックすると水平方向に最大化されます。ウィンドウのタイトルバー の中央を左マウスボタンでダブルクリックするとウィンドウはシェード(折 畳む)されます。ウィンドウを左クリックすると前面に出、中央クリックす ると後面に下がります。ウィンドウのタイトルバーを右クリックするとよ り多くのウィンドウ操作が次のようなメニューを通じて利用可能になりま す:

図 1. window menu

window menu

Send to ...メニューはウィンドウを 移動させたいデスクトップの名前を選択し、デスクトップ間でウィンドウ を移動させることができます。ウィンドウを閉じるKill Clientを除いた他のすべては上のようにそれぞれに記述さ れたとおりのことができます。ウィンドウはタイトルバーあるいはウィン ドウの外周のフレームのどこかを移動させたい方向にクリック、トラッグ して移動できます。ウィンドウ移動時にはウィンドウの上部左隅の座標が 画面中央に表示されます。ウィンドウの下部の隅をクリック、ドラッグし て好みの大きさにリサイズすることができます。ウィンドウの大きさはそ の間に画面中央に表示されます。

ツールバー

図 2. toolbar

toolbar

ツールバーは現在のワークスペース名、フォーカスされているウィ ンドウのタイトル名、そして時計とワークスペースと現在のワークスペー ス内のウィンドウ間を移動するためのボタンを表示します。ツールバーの 一番左側のラベルには現在のワークスペース名が表示されています。名前 を変えるにはラベルの上で右クリックし、名前を入力し、 Enterを押します。もしまちがってこのラベル上で右ク リックし、名前を変えたくないときは単に Enterを押せ ば名前は変わりません。このラベルの右側のボタンでワークスペース間を 移動します。ワークスペースについての詳細は後述のワークスペースの節 を参照して下さい。これらのボタンの右側のラベルには現在フォーカスさ れたウィンドウのタイトル名が表示されます。さらにこのラベルの右側に は現在のワークスペース内でのウィンドウを切り替えるためのボタンがあ ります。時計はこれらのボタンの右側にあります。時計を設定の詳細な情 報については基本的設定の節を参照して下さい。デフォルトではツールバー はすべてのアプリケーションよりも前面に表示されます。もし後面に下げ たいならツールバー上で中央クリックして下さい。

メニュー

Blackbox にはウィンドウメニュー、ワークスペースメニュー、ルー トメニューの三つの基本メニューがあります。前述のウィンドウの節で詳 細について述べている、ウィンドウメニューはウィンドウのフレーム上で 右クリックすると表示されます。このメニューは編集不可です。ルートウィ ンドウで中央クリックすると表示される、ワークスペースメニューはすべ てのワークスペースと各ワークスペースにあるウィンドウのリストを表示 します。またこのメニューはワークスペースに加えて最小化、あるいはア イコン化されたウィンドウを表示します。さらにこのメニューによってワー クスペースを追加したり減らしたりできます。ワークスペースメニューも ユーザによる編集は不可です。ルートウィンドウで右クリックすると表示 されるルートメニューは唯一ユーザによる編集の可能なメニューです。こ のメニューでプログラムを実行したり、ウィンドウマネージャを再設定、 あるいは再起動したり、スタイルを変えたり、終了したりできます。ルー トメニューの設定の詳細については後述のメニュー設定の節を参照して下 さい。ワークスペースメニューとルートメニューは両方ともピン止めでき、 開かれたまま移動することができます。ピン止めされたメニューを閉じる にはメニューを右クリックするか、ルートウィンドウを左クリックします。

ワークスペース

Blackbox ではたいていのウィンドウマネージャと同じように複数の ウィンドウの属するワークスペースを持つことができます。ワークスペー スの切り替えはさまざまな方法で行うことができます。まずツールバーの 左側のボタンでワークスペースを循環できます。ショートカットキーで同 様のことができます。ショートカットキーは ~/.blackboxrcで定義されます。設定の詳細につい ては後述の基本設定を参照して下さい。デフォルトでは [Ctrl + →(←)] でワークスペースを切り替えられます。最後にルートウィンドウで中央ク リックし、ワークスペースメニューから切り替えたいワークスペース名を 選択することでワークスペースを切り替えられます。ワークスペースを追 加、削除するのにもこのメニューを使います。ワークスペース名を変える には、そのワークスペースに切り替えて、ツールバーのワークスペース名 ラベルの上で右クリックすると変えることができます。好みの名前にして [Enter] を押して下さい。

基本設定

基本設定

もっとも基本的な Blackbox のカスタマイズはユーザ固有の設定ファ イルである、~/.blackboxrcで行ないます。このファ イルは初めてBlackbox を起動した後の終了時に生成され、毎回 Blackbox を再起動、あるいは終了するときに書き込まれます。このファイルを編集 したいなら Blackbox は再起動、あるいは終了時にメモリ内に保持された オプションについてこのファイルを上書きするので、必ずBlackbox が実行 されていないときに編集しなければなりません。この節の残りでは ~/.blackboxrc内で利用可能なオプションと各オプ ションについての設定にフォーカスします。次はこのファイルの単純な例 です:

    session.screen0.workspaces: 1
    session.screen0.toolbarOnTop: False
    session.screen0.toolbarWidthPercent: 66
    session.screen0.windowPlacement: SmartPlacement
    session.screen0.slitPlacement: CenterRight
    session.screen0.focusModel: SloppyFocus
    session.screen0.strftimeFormat: %I:%M %p
    session.screen0.workspaceNames: Workspace 1
    session.menuFile: /usr/local/share/Blackbox/menu
    session.windowCycleModifier: Mod1
    session.colormapFocusModel: Click
    session.colorsPerChannel: 4
    session.doubleClickInterval: 250
    session.workspaceChangeModifier: Control
    session.autoRaiseDelay: 250
    session.styleFile: /usr/local/share/Blackbox/styles/default
    session.imageDither: True
    session.moveStyle: Opaque
   

session クラスパラメータ

session.menuFile

この変数のデフォルト値は config.h の DEFAUTLMENU (上の例ではディ レクトリを指定しています)で、適切な値は <(/path/to/menu/file) > となります。変数にはメニューファ イルの場所を指定します。メニューファイルの詳細については節 5 を 参照して下さい。

session.styleFile

この変数のデフォルト値は config.h の DEFAUTSTYLE (上の例で はディレクトリを指定しています)で、適切な値は <(/path/to/style/file) > となります。変数にはスタイルファ イルの場所を指定します。スタイルファイルの詳細については節 6 を 参照して下さい。

session.colormapFocusModel

この変数のデフォルト値は Click で適切な値は Click か FollowsMouse です。この変数はどのようにアプリケーションがカラー マップを取得するか(あるいはどのアプリケーションが正しい配色を取 得するか)、カラーマップフォーカスモデルを指定します。

session.doubleClickInterval

この変数のデフォルト値は250で適切な値は<(数)>です。 この変数はミリ秒単位でのマウスのダブルクリックの時間間隔の長さ、 言い換ればダブルクリックを完了するまでどのくらい二回目のマウスク リックを待つか、を指定します。

session.colorsPerChannel

この変数のデフォルト値は 4 で適切な値は < ( < 2,2|> 6, 6|数) > です。これは Blackbox に X サーバから仮想 画面に何色取得するかを指示します。チャンネルは赤、緑、青のいずれ かです。これは Blackbox にこの変数の 3 乗個の色を確保し、それら をいつも利用可能にするように指示します。

session.imageDither

この変数のデフォルト値は True で適切な値は <[True|False] < です。値 True は画像処理をよりスムーズにします。

session.autoRaiseDelay

この変数のデフォルト値は 250 で適切な値は<(数字)> で す。この変数はマウスカーソルがウィンドウの上を通過するときのウィ ンドウの AutoRaise の待ち時間を指定します。AutoRaise は指定時間 後にウィンドウを自動的に前面に出します。変数は session.screen0.focusModel と一緒に使います。

session.moveStyle

この変数のデフォルト値は False で適切な値は <[Opaque|Not There] > です。この変数はデスクトップのまわり でウィンドウを移動する方法を指定します。もし変数が指定されていな い(デフォルト設定)ならウィンドウの移動時には境界だけを表示し、 Opaque ならウィンドウ全体を表示します。

session.workspaceChangeModifier

この変数のデフォルト値はControlで適切な値は <[Shift|Lock|Control|Alt|Mod2|Mod3|Mod4|Mod5] > です。この 変数はワークスペースを切り替えるキーを指定します。このキーはワー クスペースを切り替えるのにカーソルキー(←、→)と組合せて 使います。

session.windowCycleModifier

この変数のデフォルト値はMod1で適切な値は <[Shift|Lock|Control|Alt|Mod2|Mod3|Mod4|Mod5]>です。この変 数はウィンドウを切り替えるときのキーを指定します。このキーはウィ ンドウを切り替えるのにカーソルキー(←、→)と組合せて使い ます。

session.screen0.workspaceNames

この変数のデフォルト値は Workspace 1、Workspace 2、...で適 切な値は < (カンマで区切られたワークスペース名のリスト) > です。この変数はツールバー内に表示されるワークスペース名を指定し ます。

session.screen0.strftimeFormat

この変数のデフォルト値は %I:%M % で適切な値は <(date 関数のフォーマット文字列 -- date のマニュアルを参照) > です。この変数はツールバー内の時計のフォーマットを指定しま す。

session.screen0.focusModel

この変数のデフォルト値は SloppyFocus で適切な値は <[SloppyFocus|ClickToFocus| AutoRaiseSloppyFocus] > です。 この変数はウィンドウのフォーカスモデルを指定します。SloppyFocus はマウスカーソルが指すウィンドウにフォーカスしますが前面には出し ません。ClickToFocus はクリックしたウィンドウにフォーカスします が前面には出しません。AutoRaiseSloppyFocus はマウスカーソルが指 すウィンドウにフォーカスし、session.autoRaiseDelay ミリ秒後に自 動的に前面に出します。

session.screen0.toolbarWidthPercent

この変数のデフォルト値は 66 で適切な値は < (パーセント) > です。この変数は画面上のツールバーの幅の割合い(パーセント) を指定します。今のところこの変数の値を 0 にしてツールバーを隠す ことはできません。

session.screen0.toolbarOnTop

この変数のデフォルト値は False で適切な値は <[True|False] > です。この変数はツールバーを画面上の上と下 のどちらに配置するかを指定します。

session.screen0.workspaces

この変数のデフォルト値は 4 で適切な値は < (数字) > です。この変数は Blackbox セッションでのワークスペース数を指定し ます。数字はあなたが指定した session.screen0.workspaceNames の数 を一致していなければなりません。

session.screen0.windowPlacement

この変数のデフォルト値は SmartPlacement で適切な値は< [SmartPlacement|CascadePlacement] > です。この変数はウィンド ウを開いたときにどのように配置するかを指定します。SmartPlacement ではウィンドウは上部左隅から"次に利用可能な場所"かその次に利用可 能な場所に配置されます。CascadePlacement ではウィンドウはタイト ルバーを少しずつ下、右側にずらして配置されます。

session.screeen0.slitPlacement

この変数のデフォルト値は CenterRight で適切な値は <[TopLeft|TopRight|CenterLeft|CenterRight|BottomLeft|BottomRight] > です。この変数は slit をどこに配置するかを指定します。

session.screen0.dateFormat

この変数のデフォルト値は European で適切な値は <[American|European] > です。もしあなたのシステムに strftime () 関数がなければこの変数でツールバーの時計のフォーマッ トを指定します。指定されるフォーマットはAmericanでは MM/DD/YY、 European では DD/MM/YY です。

session.screen0.clockFormat

この変数のデフォルト値は 24 で適切な値は < [12|24]> です。この変数はあなたのシステムで strftime () 関数がない場合に ツールバーの時計のフォーマットを指定します。

メニュー設定

メニューファイルをつくる

Blackbox のルートメニューを定義するのはシンプルなテキストファ イルです。最初はユーザのカスタマイズメニューをつくるのにデフォルト メニューをホームディレクトリにコピーして編集すると便利です。例えば 次のようにします:

    bash$ mkdir ~/.blackbox
    bash$ cp /usr/local/share/Blackbox/menu ~/.blackbox/Menu
   

けれどもこのファイルはユーザが Blackbox を実行するさいに書き 込みのできさえすればどこでも好きな場所に置けます。

次にこのファイルをメニューファイルとして使うために ~/.blackboxrc内の session.menueFile 行を編集し てあなたのメニューファイルへの絶対パスを指定します。

メニューファイルの編集

メニューの構文はとても単純で実際的なものです。メニュー行に は最大 3 つまでのフィールドがあります。それらは次のような形式に なっています:

begin (ルートメニューのラベル)

これは Blackbox にメニューファイルの解析を開始するように指 示します。このタグはメニューファイルの解析のために必要です。もし このタグがなければ代りにシステムのデフォルトメニューが使われます。

end

これはメニューの終端を指示し、サブメニューにもメインメニュー にも使えます。メニュー内に必要な [begin] タグと同じ数のこのタグ が少くとも一つ以上なければなりません。

exec(コマンドのラベル) {シェルコマンド}

これはメニューにコマンド項目を挿入するように指示します。メ ニューからそのメニュー項目を選択すると Blackbox がシェルコマンド を実行します。

exit(exit ラベル)

これは Blackbox を終了し抜けるためのアイテムの挿入を指示し ます。Blackbox を抜ける前にすべてのウィンドウはルートウィンドウ の子となります。

include (ファイル名)

これは今のメニューに 'ファイル名' で指定されたファイルを挿 入して解析するように指示します。ファイル名はファイルへの絶対パス (例えば /usr/local/share/Blackbox/brueghel/stylesmenu) も~/からはじまっていても ( ホームディレクトリに展開されます。例えば [include] (~/blackbox/stylesmenu)は /home/username/blackbox/stylemenuと展開され ます) いいです。

nop (ラベル - オプション)

これは何も操作をしない項目を今のメニューに挿入するように指 示し、メニューを必要ならブロックや節に分けるのを助けるために使う ことができます。[nop] にはラベルを指定できますが必ずしも必要では なく、何も指定されなければ単に空白の項目となります。

style (ラベル) {ファイル名}

これはファイル名を読み新規テクスチャ、カラー、フォントを今 実行しているセッションに適用するように指示します。ファイル名はちょ うど [include] タグと同じようにファイルへの絶対パスも ~/path/from/home/dirという形式も可 能です。

submenu (ラベル) {メニューのタイトル - オプション}

これは新規メニューを生成、解析するように指示します。このメ ニューは親メニュー内の副メニューとして挿入されます。これらのメ ニューは再帰的に解析されるので副メニューの入れ子の深さには上限は ありません。新規メニューのタイトルはオプションでもし無指定なら項 目ラベルと同じになります。

reconfig(ラベル)

これは今のスタイルとメニューファイルを再度読み込み任意の変 化を適用するように指示します。スタイルを保存する度にBlackbox を 再起動する必要はなくなるので新規スタイルやテーマをつくるのに便利 です。

restart (ラベル) {シェルコマンド - オプション}

これは再起動を指示します。もしシェルコマンドがあれば終了後 にコマンド(たいていは他のウィンドウマネージャの名前)を実行します。 もしコマンドがなければ Blackbox 自身を再起動します。

workspaces (ラベル)

これはメニューに直接ワークスペースメニューへのリンクを挿入 するように指示します。ワークスペースメニューへ直接アクセスできな い(すなわち第 3 ボタンのないマウスを使っていて中央ボタンクリック よりもワークスペース表示が不便な)ユーザに便利です。システムのワー クスペースメニューへのリンクなので複数の [workspaces] タグで同じ ワークスペースメニューを表示できます。

コメントは行の最初を # にすれば、ファイルの任意の行に挿入 できます。

またラベル/コマンド/ファイル名フィールドには次のような任意の エスケープシーケンスを入れることができます。

    [exec] (\(my cool\) \{XTERM\}) {\(xterm -T \\\"cool XTERM\\\"\)}
   

\\ を使ってラベル/コマンド/ファイル名フィールドにバックスラッ シュを入れることができます。

ではこれまでの難解な呪文について見てみましょう。まずメニュー をつくりタイトルをつけるには一対の [begin] と [end] タグが必要です:

    ...
    [begin] (Example \[Menu\])
    [end]
    ...
   

十分単純です。それでは何か項目をリストに加えましょう。 xtermか何かの仮想端末はいつも使いたいものなので メニューに追加すると次のようになります:

    ...
    [begin] (Example \[Menu\])
    [exec] (xterm) {xterm -ls}
    [end]
    ...
   

いい感じ! では irc クライアント、mozilla、Eye of GNOME、そし て他のいくつかの一般的なプログラムを起動するための項目を追加してみ ましょう。こうなります:

    [begin] (Example \[Menu\])
    [exec] (efnet irc) {xterm -e irc fnord irc.efnet.net}
    [exec] (Mozilla Browser) {mozilla}
    [exec] (Eye of GNOME) {eog}
    [exec] (XEmacs) {xemacs}
    [exec] (The GIMP) {gimp}
    [exec] (Video Tune) {xvidtune}
    [end]
   

と、ちょっと待って。このメニューファイルは最初にしてはちょっ と散らかっているように見えます。しかし問題にはならず、単にインデン トし、空白を入れてメニューファイルを整理できますので少しかたづけて みましょう:

    [begin] (Example \[Menu\])
    [exec] (efnet irc)       {xterm -e irc fnord irc.efnet.net}
    [exec] (Mozilla Browser) {mozilla}
    [exec] (Eye of GNOME)    {eog}
    [exec] (XEmacs)          {xemacs}
    [exec] (The GIMP)        {gimp}
    [exec] (Video Tune)      {xvidtune}
    [end]
   

うーん、これで少しは見た目がよくなりました。それではファイル に空白のたぐいを入れ、メニュー自身にもそれを反映させるようにしたい でしょうから [nop] タグを使ってみましょう:

    [begin] (Example \[Menu\])
    [exec] (efnet irc)       {xterm -e irc fnord irc.efnet.net}
    [nop]
    [exec] (Mozilla Browser) {mozilla}
    [exec] (Eye of GNOME)    {eog}
    [exec] (XEmacs)          {xemacs}
    [nop]
    [exec] (The GIMP)        {gimp}
    [nop]
    [exec] (Video Tune)      {xvidtune}
    [end]
   

さてBB.t.o.からダウ ンロードしたすべてのテーマに変えるための項目を入れるサブメニューを つくってみましょう。テーマはthemes.org の文書にあるように~/.blackboxディレクトリ内に置くことと します。

    [begin] (Example \[Menu\])
    [exec] (efnet irc)       {xterm -e irc fnord irc.efnet.net}
    [nop]
    [exec] (Mozilla Browser) {mozilla}
    [exec] (Eye of GNOME)    {eog}
    [exec] (XEmacs)          {xemacs}
    [nop]
    [exec] (The GIMP)        {gimp}
    [nop]
    [exec] (Video Tune)      {xvidtune}
      [submenu] (Themes) {Themes from blackbox.themes.org}
        [style] (Redsky) {~/.blackbox/Styles/Redsky}
        [style] (Blackbox) {~/.blackbox/Styles/blackbox}
        [style] (Blackbox II) {~/.blackbox/Styles/blackbox2}
        [style] (Hardware) {~/.blackbox/Styles/hardware}
        [style] (Nova) {~/.blackbox/Styles/nova}
        [style] (Orbital) {~/.blackbox/Styles/orbital}
        [style] (Orbital II) {~/.blackbox/Styles/orbital2}
        [style] (Seething) {~/.blackbox/Styles/seething}
        [style] (Zero) {~/.blackbox/Styles/zero}
        [style] (Cold Fusion) {~/.blackbox/Styles/coldfusion}
      [end]                                                        
    [end]
      

それではメニューの構文について感じがつかめたのでメニューを完 成させましょう。ダウンロードしたスタイルも Blackbox のデフォルトス タイルについてサブメニューにすることにします。Blackbox の共有ディレ クトリからスタイルを [include] することが必要です。すべてを一緒にす ると次のようになります:

    # custom menu file for Blackbox                                              
    
    [begin] (Example \[Menu\])
      [exec] (efnet irc)       {xterm -e irc fnord irc.efnet.net}
      [nop]
      [exec] (Mozilla Browser) {mozilla}
      [exec] (Eye of GNOME)    {eog}
      [exec] (XEmacs)          {xemacs}
      [nop]
      [exec] (The GIMP)        {gimp}                
      [nop]
      [exec] (Video Tune)      {xvidtune}
      [nop]  (...)
        [submenu] (Themes) {Themes from blackbox.themes.org}
          [style] (Blackbox) {~/.blackbox/Styles/blackbox}
          [style] (Blackbox II) {~/.blackbox/Styles/blackbox2}
          [style] (Hardware) {~/.blackbox/Styles/hardware}
          [style] (Nova) {~/.blackbox/Styles/nova}
          [style] (Orbital) {~/.blackbox/Styles/orbital}
          [style] (Orbital II) {~/.blackbox/Styles/orbital2}
          [style] (Seething) {~/.blackbox/Styles/seething}
          [style] (Zero) {~/.blackbox/Styles/zero}
          [style] (Cold Fusion) {~/.blackbox/Styles/coldfusion}
       
          # include the default style menu... this is assuming
          # Blackbox was installed into /usr/local [nop] [include]
          # (/usr/local/share/Blackbox/styles/stylesmenu) [end]
          # [workspaces] (Workspace list) [submenu] (Restart) {Restart
          # which?}  [restart] (Blackbox)
    
          # let's also give us access to some other window managers
    
          [restart] (Window Maker) {wmaker}
          [restart] (Enlightenment) {enlightenment}
          [restart] (KWM) {kwm}
          [restart] (TWM) {twm}
        [end]
      [nop] (...)
      [reconfig] (Reconfigure)
      [exit] (Quit!)
    [end]
   

メニューファイルは完成です! そして Blackbox がこのメニューファ イルを読めるようにする必要がありますので ~/.blackboxrcを編集します。

blackboxrc ファイル

~/.blackboxrcはBlackboxが再起動、再設定、 スタイル変更、あるいは終了の度に自動的に更新されます。ワークスペー スの数、名前などの動的データの変更は失われます。変更して保存される のはメニューファイル名だけでこれはまさに今変更しているものです。 ~/.blackboxrcの書式は(ちょうど ~/.Xdefaultsのような)Xリソースデータベースの 書式です。ファイルは自動的に更新されるのでファイルは完全なものかあ るいは存在しないことさえあります(特にはじめてBlackboxを起動したと き)。Blackbox は次の起動時にはそのファイルを見るので、 ~/.blackboxrcをつくる必要かどうかを心配する必 要はありません。

ここではメニューファイル名に対するリソースの変更が必要となり ます。そこで次のように変更(あるいは追加します:

    session.menuFile:       /path/to/some/file
   

もしこのリソースが存在すれば変更します。もしなければ追加しま す。メニューの置き場所によって新しいリソースは次のようになります:

    session.menuFile:       /home/user/blackbox/rootmenu
   

そして~/.blackboxrcを保存し、Blackbox を 再起動(再設定が機能しなければ完全に Blackbox を終了し、カラー/フォ ント/などを制御するものだけでなくすべての設定ファイルを再読み込みす る必要があります。すべて正しく操作を終えると Blackbox は自身を再起 動し、新規メニューが利用可能となります。もし何かうまくいかなければ 上のすべてのサンプルを読んで再度必要なタグをとばしたり必要なステッ プを忘れていたりしないかを確かめて下さい。

さて Blackbox についてどこにメニューがあるかといった以上のこ とを説明しました。Blackbox 0.50.0 では自動メニュー更新ができますの で、 session.menuFile を変更しないかぎりメニューを編集しても Blackbox を再起動、再設定する必要はありません。Blackbox はメニュー を構築するのにすべてのファイルのタイムスタンプを監視します。どれか が変化すれば再度読み込まれメニューが更新されます。チェックはルート メニューを開く度に行なわれます。つまり、いつもメニューを再読み込み するわけではなく、改変された時間を見て改変時に再読み込みするわけで す。

スタイル

bb.t.o. からスタイルをインストール

bb.t.o.から適切に フォーマットされたスタイル tar ボールをインストールするのは非常に単 純です。最初に適切にディレクトリをつくっていること、~/.blackboxが存在することを確認します。 その下には最低二つのディレクトリStyleBackgroundsが必要です。もしなければ次 のコマンドを実行します。

    bash$ mkdir -p ~/.blackbox/{Styles,Backgrounds}
   

使いたいスタイルをダウンロードしたら次を実行します:

    bash$ cd ~/.blackbox
    bash$ tar zxvf /path/to/style/tarball
   

この後でメニューファイルに [style] 行を追加します。

自分独自のスタイルをつくる

Blackbox を取ってきて実行した後、次にあなたは画面上の色/フォ ント/その他を変えたいと思います。Blackbox はその設定情報を読むのに "style" (スタイル)を使います。Blackbox でのスタイルはファイル内の X リソースで構成されています。ちょうどメニューファイルと同じようにス タイルファイルは読み込みアクセス可能で Blackbox がそれを使うことが できれば、ファイルシステム上のどこにも置けます。

第一にどこにどういう名前でファイルを置くか決めなければなりま せん。新規スタイルを results というファイル名で置くことにしましょう。 このファイルは ~/.blackbox/Styles に置きます。メニューファイルと同 じように好みのテキストエディタで新規スタイルをつくります。

X リソースはキーと値から成ります。キーはピリオド(.)で区切られ たいくつかの小さなキーの構成されています。またキーはワイルドカード、 つまり一行のテキストがいくつかのキーに解釈される、アスタリスク(*') を含むことも可能です。これは一、二色をベースにするスタイルでは便利 です。この例はこの節の最後であげられています。Blackbox ではユーザは ツールバー、メニュー、ウィンドウの装飾の三つの主要コンポーネントを 調整できます。それではツールバーの独自のスタイルをつくってみましょ う。

はじめにツールバーとそのコンポーネントの "texture" (テクスチャ) を定義する必要があります。テクスチャは Blackbox に与えられた色をど のように形造る、あるいはまとめるかを指示します。テクスチャは次の要 素から成ります:

Raised / Sunken / Flat

これは膨らみ、凹み、あるいは平らな外観を与えます

Solid / Gradient

これはBlackboxに単一あるいはグラディエントテクスチャを描画 するように指示します。グラディエントはある色から他の色へ次第に変 えて描画されます。

Horizontal / Veritcal / Diagonal / Crossdiagonal / Rectangle / Pyramid / Pipecross

これらは Blackbox にグラディエントがどの方向に向うかを指示 する追加指定です(つまりグラディエントと供に使われます)。

Interlaced

これは Blackbox にグラディエント(そしてグラディエントのみ) テクスチャを組合せるように指示します。

Bevel1 / Bevel2

これは Blackbox にどのタイプのベベル(傾斜)を使うかを指示し ます。Bevel1 はデフォルトのベベルです。影は画 像の端に描かれます。Bevel2 はもう一つの選択肢 で、影は画像の端から 1 ピクセルのところに描かれます。

さあテクスチャについてわかったのでツールバーのテクスチャを定 義してみましょう。ツールバーはメインフレーム、ボタン、二つのラベル と時計ラベルを持っています。ボタンには二つの状態があり、よって普通 の状態とクリックされた状態の両方についてテクスチャを与えなければな りません。

    ...
    toolbar:                  Raised Diagonal Gradient Bevel1
    toolbar.button:           Raised Diagonal Gradient Bevel1
    toolbar.button.pressed:   Sunken Diagonal Interlaced Gradient Bevel1
    toolbar.clock:            Flat Interlaced Gradient
    toolbar.label:            Flat Interlaced Gradient
    ...
   

テクスチャ

テクスチャ文字列は前のバージョンでそうしたように大文字で書い たりしません(v0.61.1 ではすべて小文字)。例えば bbtoolsのようなアプリケーションが古い 方法を使うのでここではまだ語句の最初を大文字で書いています。

次にテクスチャの色を定義します。色は man 1 X に記述されているように適性な X の(RGB データベースから の)色名、あるいは色識別子のどちらによる指定も可能です。色について追 加した後のファイルを見てみましょう:

    ...
    toolbar:                        Raised Diagonal Gradient Bevel1
    toolbar.button:                 Raised Diagonal Gradient Bevel1
    toolbar.button.pressed:         Sunken Diagonal Interlaced Gradient Bevel1
    toolbar.clock:                  Flat Interlaced Gradient
    toolbar.label:                  Flat Interlaced Gradient
    toolbar.color:                  rgb:8/8/7
    toolbar.colorTo:                grey20
    toolbar.button.color:           grey
    toolbar.button.colorTo:         grey20
    toolbar.button.pressed.color:   rgb:4/4/38
    toolbar.button.pressed.colorTo: rgb:f/f/d
    toolbar.clock.color:            grey20
    toolbar.clock.colorTo:          rgb:8/8/7
    toolbar.label.color:            grey20
    toolbar.label.colorTo:          rgb:8/8/7
    toolbar.textColor:              grey85
    ...
   

ちょうどタイプの量を減らすためにワイルドカードをどのように使 うかについて説明するよい機会です。上の例では色値を指定するいくつか の行があります。それらの各行には color か colorTo 設定があります。 もし二つのリソース指定が部分的に一致するなら(すなわち toolbar.clock.colorとtoolbar.label.colorのように)、次の作法でそれら を同時に指定できます:

toolbar.*.color

* 指定はワイルドカードと呼ばれそこに普 通現れるような任意のテキストの代りになります。 toolbar.button.color設定はワイルドカードのリソースによって上書き されるかもしれないことに注意するかもしれません。しかし、X はたい てい指定リソース(toolbar.button.color)を最初に読み、もしなければ もっとも一般的なリソース(toolbar.*.color)にいくのでそのようなこ とはおこりません。

あなたが気づいたようにすべてのテクスチャは color と colorTo キーを持ちます。これらのキーは gradient (グラディエント)画像のため に必要となります。solid (単色)については一つの色だけが必要です。ま たあなたはツールバー上のテキストについても色を指定していることに注 目するでしょう。すべてのテクスチャがテキスト色を持つわけではなく、 単にベーステクスチャを確かにしています。

次にメニューに移りましょう。Blackbox は C++ で書かれているの で使われているすべてのメニューは一つの一般基礎クラスのサブクラスで す。Blackbox は基礎クラスに対するスタイル指定を読み、Blackbox で使 われるすべてのメニューについて適用します。

メニューはタイトルとフレームの二つの主要部分を持ちます。それ らについて見ることはできませんのでこれら二つの部分について指定する だけです。メニューフレームとメニュータイトルには両方ともテキスト色 指定があり、メニューフレームには前景色と対応する前景テキスト色キー があります。メニューについていくつかのテクスチャを割当て、これまで のスタイルファイルがどのようになるか見てみましょう:

    ...
    toolbar:Raised Diagonal Gradient Bevel1
    toolbar.button:     Raised Diagonal Gradient Bevel1
    toolbar.button.pressed:   Sunken Diagonal Interlaced Gradient Bevel1
    toolbar.clock:Flat Interlaced Gradient
    toolbar.label:Flat Interlaced Gradient
    toolbar.color:rgb:8/8/7
    toolbar.colorTo:    grey20
    toolbar.button.color:     grey
    toolbar.button.colorTo:   grey20
    toolbar.button.pressed.color:   rgb:4/4/38
    toolbar.button.pressed.colorTo: rgb:f/f/d
    toolbar.clock.color:grey20
    toolbar.clock.colorTo:    rgb:8/8/7
    toolbar.label.color:grey20
    toolbar.label.colorTo:    rgb:8/8/7
    toolbar.textColor:  grey85
    menu.title:   Raised Diagonal Interlaced Gradient Bevel1
    menu.frame:   Raised Diagonal Gradient Bevel1
    menu.title.color:   grey20
    menu.title.colorTo: rgb:8/8/7
    menu.title.textColor:     grey85
    menu.frame.color:   rgb:8/8/7
    menu.frame.colorTo: grey10
    menu.frame.textColor:     white
    menu.frame.highlightColor:grey85
    menu.frame.hiTextColor:   grey20
    ...
   

次にウィンドウを設定する必要があります。ウィンドウはフォーカ ス状態と非フォーカス状態を持ち、ボタンに似ています。よってフォーカ スウィンドウと非フォーカスウィンドウのテクスチャは別々に定義します。 タイトルバー上のボタンはフォーカスウィンドウに隷属するので同じに設 定しなければなりません。ボタンは一つの"クリック"された状態を持つの で(focus.pressed状態とunfocus.pressed状態を持つ代りに)その一つの状 態だけについて定義する必要があります。ウィンドウフレームはクライア ントウィンドウの外周に細い枠のことです。同じように理解しましょう。 ウィンドウの設定を追加した後ではスタイルは次のようになります:

    ...
    toolbar:Raised Diagonal Gradient Bevel1
    toolbar.button:     Raised Diagonal Gradient Bevel1
    toolbar.button.pressed:   Sunken Diagonal Interlaced Gradient Bevel1
    toolbar.clock:Flat Interlaced Gradient
    toolbar.label:Flat Interlaced Gradient
    toolbar.color:                  rgb:8/8/7
    toolbar.colorTo:                grey20
    toolbar.button.color:           grey
    toolbar.button.colorTo:         grey20
    toolbar.button.pressed.color:   rgb:4/4/38
    toolbar.button.pressed.colorTo: rgb:f/f/d
    toolbar.clock.color:            grey20
    toolbar.clock.colorTo:          rgb:8/8/7
    toolbar.label.color:            grey20
    toolbar.label.colorTo:          rgb:8/8/7
    toolbar.textColor:              grey85
    menu.title:                     Raised Diagonal Interlaced Gradient Bevel1
    menu.frame:                     Raised Diagonal Gradient Bevel1
    menu.title.color:               grey20
    menu.title.colorTo:             rgb:8/8/7
    menu.title.textColor:           grey85
    menu.frame.color:               rgb:8/8/7
    menu.frame.colorTo:             grey10
    menu.frame.textColor:           white
    menu.frame.highlightColor:      grey85
    menu.frame.hiTextColor:         grey20
    window.focus:                   Raised Diagonal Interlaced Gradient Bevel1
    window.focus.button:            Raised Diagonal Gradient Bevel1
    window.unfocus:                 Raised Diagonal Gradient Bevel1
    window.unfocus.button:          Sunken Diagonal Gradient Bevel1
    window.button.pressed:          Flat Diagonal Interlaced Gradient
    window.frame:                   Raised Solid Bevel1
    window.focus.color:             grey
    window.focus.colorTo:           grey20
    window.focus.textColor:         grey85
    window.focus.button.color:      grey
    window.focus.button.colorTo:    grey20
    window.unfocus.color:           rgb:8/8/7
    window.unfocus.colorTo:         grey20
    window.unfocus.textColor:       grey
    window.unfocus.button.color:    grey20
    window.unfocus.button.colorTo:  grey
    window.button.pressed.color:    rgb:4/4/38
    window.button.pressed.colorTo:  rgb:f/f/d
    window.frame.color:             grey85
    ...
   

それでは 2、3 のその他のオプションを追加してスタイルを終りに します。その他のオプションにはタイトルとメニューフォント、位置調整、 枠色、ベベルとハンドルの幅、ウィンドウの移動スタイル、そしてrootコ マンドを含みます。フォントは適切な X11 フォントか適切なフォント別名 でなければなりません。フォントの試写には xfontsel(か他のもの)のようなユーティリティを使っ て下さい。また今のすべての X フォント名と X サーバ内に保持されてい る別名を出力するにはユーティリティxlsfontを使っ て下さい。位置調整にはLeftJustify、CenterJustify、RightJustifyの三 つのオプションの内の一つを指定できます。

枠色はメニューフレーム、タイトル、ウィンドウのタイトルバー、 ボタン、ハンドルなどのまわりの 1 ピクセルの枠に適用する色です。この 色を設定することであなたのスタイルには劇的な効果があるので、いつも 単に黒のままにするということはしないで下さい。

ベベルとハンドルの幅は Blackbox での装飾の幅とスペースを制御 します。数字を大きくすると与えられたウィンドウに対してよりスペース をとるようになります。ウィンドウ移動スタイルは Blackbox にマウスで ドラッグしてウィンドウを移動するさいの方法を指示し、OpaqueとWireの 二つのオプションがあります。

Blackbox ver 0.51 ではmenu bullet、location、highlightを変更 するオプションが追加されています。menu.bullet.Styleに対するオプショ ンはRound、Empty、Triangle、Square、Diamondです。bullet style とし てRoundが選択されているときは強調表示のまわりはまるく縁取られ、そう でなければ強調表示はルートメニュー内にbullet(鋲、選択したことを示す 印のこと?)を配置するための左か右に指定できる、 square.menu.bulletPositionになります[若干この個所は意味不明のため、 原文をのせると: the highlight has rounded edges when Round is selected as the bullet style, otherwise the highlight is square.menu.bulletPosition can be set to left or right in order to position the bullet in the root menu]。root コマンドはスタイル読み 込み時(あるいは起動、再設定/スタイル変更時)に毎回実行されるコマンド です。これはルートウィンドウに画像や色やパターンを設定するための xvEsetrootwmsetbgなどのようなプログラムを実行するために使 われます。単にコマンドを指定し、それが実行されます。

X リソースファイルでのコメン トの記述

X リソースファイルにはコメントを書けます。行頭に感嘆符!を書 くと残りの部分は無視されます。

さあ詳細については終わらせて最終的なスタイルを見てみましょう:

    ...
    ! Results - theme for Blackbox 0.50.x
    ! by Brad Hughes bhughes@tcac.net
    ! define the toolbars textures... note that the interlaced option is new
    ! in 0.50.5
    toolbar:                        Raised Diagonal Gradient Bevel1
    toolbar.button:                 Raised Diagonal Gradient Bevel1
    toolbar.button.pressed:         Sunken Diagonal Interlaced Gradient Bevel1
    toolbar.clock:                  Flat Interlaced Gradient
    toolbar.label:                  Flat Interlaced Gradient
    ! toolbar colors
    toolbar.color:                  rgb:8/8/7
    toolbar.colorTo:                grey20
    toolbar.button.color:           grey
    toolbar.button.colorTo:         grey20
    toolbar.button.pressed.color:   rgb:4/4/38
    toolbar.button.pressed.colorTo: rgb:f/f/d
    toolbar.clock.color:            grey20
    toolbar.clock.colorTo:          rgb:8/8/7
    toolbar.label.color:            grey20
    toolbar.label.colorTo:          rgb:8/8/7
    toolbar.textColor:              grey85
    ! menu textures
    menu.title:                     Raised Diagonal Interlaced Gradient Bevel1
    menu.frame:                     Raised Diagonal Gradient Bevel1
    ! menu colors
    menu.title.color:               grey20
    menu.title.colorTo:             rgb:8/8/7
    menu.title.textColor:           grey85
    menu.frame.color:               rgb:8/8/7
    menu.frame.colorTo:             grey10
    menu.frame.textColor:           white
    menu.frame.highlightColor:      grey85
    menu.frame.hiTextColor:         grey20
    ! window textures
    window.focus:                   Raised Diagonal Interlaced Gradient Bevel1
    window.focus.button:            Raised Diagonal Gradient Bevel1
    window.unfocus:                 Raised Diagonal Gradient Bevel1
    window.unfocus.button:          Sunken Diagonal Gradient Bevel1
    window.button.pressed:          Flat Diagonal Interlaced Gradient
    window.frame:                   Raised Solid Bevel1
    ! window colors
    window.focus.color:             grey
    window.focus.colorTo:           grey20
    window.focus.textColor:         grey85
    window.focus.button.color:      grey
    window.focus.button.colorTo:    grey20
    window.unfocus.color:           rgb:8/8/7
    window.unfocus.colorTo:         grey20
    window.unfocus.textColor:       grey
    window.unfocus.button.color:    grey20
    window.unfocus.button.colorTo:  grey
    window.button.pressed.color:    rgb:4/4/38
    window.button.pressed.colorTo:  rgb:f/f/d
    window.frame.color:             grey85
    ! misc...
    borderColor:                    rgb:2/2/1c
    moveStyle:                      Opaque
    menuJustify:                    CenterJustify
    titleJustify:                   CenterJustify
    bevelWidth:                     2
    handleWidth:                    4
    menuFont:                       lucidasans-10
    titleFont:                      lucidasans-bold-10
    rootCommand:                    bsetroot -mod 4 4 -fg rgb:6/6/5c -bg grey20
    !rootCommand:                   bsetbg ~/.blackbox/backgrounds/Image.jpg
    ...
   

bsetbg コマンドについて

rootCommand行をコメントにしていることに注意して下さい。もし 背景画像をあなたのスタイルに使おうとするなら必ず bsetbg コマンドが 必要です。これはxvEsetroot や他の任意のルートウィンドウ画像を操作 するプログラムの代りの新しいデファクトスタンダードです。bb.t.o. の ダウンロードセクションから簡単に手に入れられます。

いいでしょう! スタイルができました。どんな風に見えるか見てみ ましょう。まず Blackbox に新しいスタイルを使うように指示しなければ なりません。これにはメニューを編集して次をどこかに追加します:

    [style] (Results) {~/.blackbox/Styles/results}
   

Blackbox 0.50.5 より新しいものではメニューは自動的に更新され、 ルートメニューを閉じて開き直すだけで新しいスタイル項目が現れます。 それを選択すると Blackbox は今つくったばかりの新しいスタイルを適用 します。

図 3. my style

my style

bb.t.o にあなたのスタイルを投稿する

自分のスタイルをつくったらそれらを他の Blackbox ユーザと共有 できるように bb.t.o. に投稿したいと思うかもしれません。テーマのイン ストールを簡単にするために bb.t.o. は標準的な style のパッケージ化 方法を定式化しています。スタイルを投稿するときにはこれらのガイドラ インに従うことが必須となります。これは決して Blackbox スタイルを用 意するための唯一の方法というわけではありませんが、bb.t.o. にアップ ロードするために唯一の許されている方法です。スタイルを bb.t.o. にアッ プロードするときには三つのものが不可欠となります : スタイルのスクリー ンショット、lsm ファイルとスタイルファイル自身、同じ lsm ファイルと 任意の必須の背景画像を含む tar ボール

スタイルファイルのつくりかたについては節 5.1 を参照して下さい。

lsm ファイルはスタイルについて説明する小さなテキストファイル です。これにはスタイルのタイトル、スタイルの作者、適切なクレディッ ト、そしてスタイルの使い方についてコメントについての情報が含まれて います。例えば:

    Title:      Results                             
    Author:     Brad Hughes <bhughes@tcac.net>
    Version:    0.50.x
    Credits:    I did this!
   

スタイルをつくり、背景画像を選択し、lsm ファイルをつくり、そ れらを~/.blackbox 内 (rootCommand がこれらの場所を使っていることを確認して下さい)の適切 な場所に置きます。lsm ファイルは~/.blackbox内に、スタイルファイルは ~/.blackbox/Styles/内に、そ して背景(もし利用可能なら)は~/.blackbox/Backgrounds/に置かなければ なりません。tar ボールをつくるには次のコマンドを実行します(ここでは スタイルの名前としては MyStyle を使います):

    bash$ cd ~/.blackbox
    bash$ tar zcvf MyStyle.tar.gz MyStyle.lsm Styles/MyStyle Backgrounds/MyStyle.jpg
   

次にあなたの好きなプログラム(gimp、import [imagemagick に入っ ています]、eeyes など)を使ってスクリーンショットを撮ります。

あなたのつくった tar ボールとスクリーンショットをアップロード するには bb.t.o. のスタイルアップロードページを使って下さい。これで 完了です。

特色

Dock アプリケーションサポート - Slit

Blackbox は Afterstep と Window Maker に共通の Dock アプリケー ションをサポートしています。Dock アプリケーションを配置する、Slit はデフォルトで Blackbox 本体に組込まれています。もしSlitサポートを はずしたければ Blackboxを--disable-slitオプション付で configure して下さい。Slit は Dock アプリケーショ ンが動作していなければ見ることができません(Dock アプリケーションが その中で枠つきで動きます)。

図 4. Slit

Slit

Slit の位置は Slit の上で右クリックし、六つのオプション (TopRight、TopLeft、CenterRight、CenterLeft、BottomRight、あるいは BottomLeft) が選択することで変えることができます。これはまた ~/.blackboxrcでも設定できます。たいていの Dock アプリケーションは実行されると自動的に Slit 内に現れますが、bbtools シリーズのようにそうならないものは Slit 内で現れるために -w(withdrawn) オプションが実行時に必要となります。

KDE サポート

今のところ、Blackbox の KDE のサポートは限定的です。このサポー トはconfigureに--enable-kdeオプションをつけて有 効になる、コンパイル時のオプションです。KDE と blackbox と一緒に使 うにはblackboxとkfmkpanelを動かします。もし X の実行時にはいつも それらを動かすのであれば次のような行を ~/.xinitrc(あるいはxdmなど を使っていれば~/.xsession)に追加して下さい:

          
    kfm &
    kpanel &
    exec blackbox 
   

GNOME サポート

今のところ Blackbox は (GNOME WM ) specification が貧弱なため に標準的なパッケージでは GNOME をサポートしません。将来的にはGNOME サポートが追加されるかもしれませんが、これは GNOME specification が 修正された後になるでしょう[2]

現在はサードパーティの GNOME サポートが Blackbox へのパッチの 形で利用可能です。このパッチは Blackbox Stuff、 blackbox.linuxbox.com、あるいはGNOME @ Winds of Storm で取得できます。

ショートカット

今はユーザはワークスペース移動とウィンドウ切り替えのショート カットのみカスタマイズできます。この設定は ~/.blackboxrcでできます。デフォルトのショート カットキーはワークスペース移動に Control-Left (かRightカーソル矢印キー)で、ウィンドウ切り替えは Alt-TabAlt-Shift-Tab です。ショートカットキーを無効にするにはNum LockCaps Lockを押しておきます。

FAQ

Dock アプリケーションと .xinitrc

Dock アプリケーションを Slit に適切な順番で読み込むには次のよ うにします:

    sleep 1 && wmppp &
    sleep 2 && wmsomething &
    exec blackbox
   

Blackbox メーリングリスト blackbox@troll.no での質問と答です。

Blackbox のパッチをつくる

パッチはたいていは Blackbox の機能を追加したり省略したり別の もので置きかえたりするためにソースコードを変更します。Blackbox プロ グラマ Brad Hughes は完全なソースツリーのバックアップをとることを勧 めています。一方のツリーはオリジナルのソースコードでもう一方は改変 されたコードを含みます。例えば:

    blackbox-0.50.5.org/
    blackbox-0.50.5.new/
   

これらのパッチをつくるには次のようにします:

    bash$ diff -urN blackbox-0.50.5.org blackbox-0.50.5.new
   

ディレクトリの名前は違っていなければならないことに注意して下 さい。

Blackbox にパッチをあてる

パッチファイルをあなたが Blackbox をコンパイルした場所から Blackboxディレクトリに移動さ せます。パッチを適用するには次のようにします:

    bash$ patch -p0 < name_of.patch
   

Blackbox ソースを改変したら makemake install を実行するのを忘れないで下さい。

bsetroot の使い方

bsetroot は Blackbox の背景を設定するのに 使うコマンドです。これは画像を設定するのではなくあなたの指定したパ ラメータに基づいて背景画像を生成します。オプションは次のとおりです:

    -display <string>     use display connection
    -fg <color>           use foreground color
    -bg <color>           use background color
    -solid <color>        use solid color
    -mod <x> <y>    use modula pattern
   

自動的に二つのワークスペースで起動

Blackbox が一つ以上のワークスペースで起動するためには中央クリッ クか左右両方ボタンクリックでワークスペースメニューを表示し、新規ワー クスペース [New Workspace] を選択し、右クリックしてルートメニューか ら再設定 [Reconfigure] を選択します。再度 Blackbox を起動したときに は二つのワークスペースがあるはずです。たくさん欲しいだけワークスペー スを追加するには同様の操作をします。Blackbox メーリングリストblackbox@troll.noでの質問と 答です。

フォントをどうやって指定するか

もしかしたらあなたは "myfont" という TrueType フォントをツー ルバーやメニューやあるいはウィンドウタイトルバーに使いたいと思って いるかもしれません。あなたはこのフォントをインストールし、サイズ 14 で使いたいと思っているとします。スタイルファイル内のリソースに例え ば次のように設定して下さい:

    *Font:  -*-myfont-*-i-*-*-14-*-*-*-*-*-*-*
   

この設定を実行するのに優れたユーティリティが xfontsel です。

どうやってデスクトップにアイコンを追加するか

少しの単純なステップを必要としますが実際はとても簡単です。

  1. KDE をダウンロードします

  2. v 0.53.0 以降の Blackbox をダウンロードします

  3. KDE をインストールします(どのようにするか、あるいはどのファ イルが必要かなど詳細については説明したくないです。www.kde.orgはちょうどこの目的の ために豊富な文書を用意しています。

  4. それでは KDE を使うように Blackboxを configureします。tar ボールをダウンロードし、 展開して configure を実行するときにオプション-- enable-kdeを追加します。

  5. コンパイルします

  6. blackbox を起動します

  7. kfmkpanelを起動し、 アイコンが出現すれば成功です!!!

WWW サイト

表 1. blackbox関連サイト

Official Blackbox WWW site http://blackboxwm.sourceforge.net
Blackbox.Themes.Org http://blackbox.themes.org
Blackbox Stuff http://blackbox.linuxbox.com
Blackbox Tools http://bbtools.windsofstorm.net
Blackbox @ Winds of Storm http://gnome.windsofstorm.net/blackbox.html
KDE Blackbox http://www.netwave.net/members/z934133/kbb/
Joey's Blackbox Stuff http://www4.ncsu.edu/~rjmorris/blackbox/
bb.jp http://Goudge.org/~ss/bb/


[1] 訳者もv0.61.xを使用しているので日本語版の方も v0.6x.xシリーズのためにさらに加筆修正しようと考えています。これにつ いては協力者募集中。

[2] 現在ではWM Specの1.0が公 開されているために徐々にblackboxのGNOME対応(というより、GNOMEのWM SPEC対応)が進むことでしょう。