FvwmIconMan

名前
形式
説明
初期化
呼び出し
設定オプション
設定例
未対応の問題
作者
謝辞

名前

FvwmIconMan − Fvwm アイコンマネージャ

形式

FvwmIconMan は fvwm によって実行されるので、コマンドライン からの呼び出しでは動作しません。

説明

FvwmIconMan は twm アイコンマネージャをモデルにしたアイ コ ンマネージャです。ユーザは、それぞれが管理するウィンドウタ イプの一覧を持つ複数のアイコンマネージャを持つことができま す。 例えば、あるマネージャでは emacs ウィンドウのみをリス トアップし、別のマネージャではそれ以外のすべてをリストアッ プ す るようなものを持つことができます。また、各アイコンマ ネージャが使用する解像度も指定することができます。例えば、 あるものはすべてのデスクトップ上のウィンドウを管理し、別の ものは現在のデスクトップ、あるいは現在のページ上のもののみ を管理する、といった具合です。

twm のアイコンマネージャとは違い、 FvwmIconMan は垂直方向 にしかアイコンの一覧を作れないという制限があります。もう一 つ の twm のアイコンマネージャとの違いは、3 次元的な見た目 でしょう (ディスプレイの depth が十分な場合)。

fvwm 関数をマウスの押し下げイベントやマウスカーソルが 入っ た ボ タンに対するイベントに割り当てることができます。例え ば、マウスボタン 1 を Iconify 関数に割り当て、マウスボタン 2 を Identify 関数に割り当てたりできます。

FvwmIconMan は、現在どのウィンドウがキーボードフォーカスを 持っているかを表示するように設定できますし、選択イベント ( 以下参照) を fvwm の Focus 関数に割り当てることで、 twm の アイコンマネージャの振舞いをまねることもできます。残念なが ら、Focus 関数はカーソルを対象となるウィンドウに移動してし まいます。 FvwmIconMan の配布物には fvwm 2.0.41 へのパッチ が含まれていて、それにより、Focus 関数がカーソルを移動する かどうかを制御できるような引数を取るように、その振舞いを変 更することができます。

初期化

初 期化の間、FvwmIconMan は、以下のものを記述している fvwm の設定ファイルを検索します。 FvwmIconMan を sticky ウィ ン ド ウにすることを強く推奨しますし、 followfocus オプション を使わせたい、あるいは Focus にある動作 (action) を割り 当 て たい場合は、 FvwmIconMan を clicktofocus にしておくべき でしょう。

呼び出し

FvwmIconMan は、.fvwmrc ファイル中に ’Module FvwmIconMan’ の行を入れることで fvwm の初期化の際に呼び出すことができま す。 FvwmTalk を fvwm の初期化の間に起動させたい場合は、こ の 行は InitFunction と ResetFunction 宣言内に置くべきです し、あるいはそれを後で呼び出すためにメニューやマウス ボ タ ン、 キー ス ト ロー ク な ど に割り当てることも可能です。 FvwmIconMan は、fvwm が見つけら れ る よ う に ModulePath (.fvwmrc ファイル内で定義される) に置くべきです。

設定オプション

オ プション nummanagers 以外は、すべてのオプションはアイコ ンマネージャ毎に定義できます。よって、例えば、emacs マネー ジャ の前景色を赤にして、 xterm マネージャを青にするといっ たこともできます。よって、設定行は以下の 2 つの形式のう ち の 1 つとなります:

*FvwmIconMan*optionname optionvalue

こ ち らは、すべてのマネージャに対して、オプション optionnameoptionvalue の値を取ることを指定しま す。

*FvwmIconMan*managerid*optionname optionvalue

こちらは、managerid のマネージャに対して、オプショ ン optionnameoptionvalue の値を取ることを指 定 します。

以下のオプションを指定できます:

*FvwmIconMan*nummanagers num

num は正の整数で、アイコンマネージャの総数を指定し ます。 FvwmIconMan は、オプションを指定するアイ コ ン マ ネージャを操作する前にいくつのアイコンマネー ジャがあるかを知りたいので、これは最初に指定すべき です。デフォルトは 1 です。

*FvwmIconMan*[id*]resolution resolution

これは、実際のウィンドウに対するエントリをいつ表示 するかを指定します。 resolutions は、global, desk, page のいずれかで、 global の場合は、適切なタイプ (以下のオプション show, dontshow の項目参照) の す べてのウィンドウが表示され、 desk の場合は、現在の デスクトップ上のそういうウィンドウだけが表示され、 page の場合は、現在のページ上のそういうウィンドウ だけが表示されます。デフォルトは global です。

*FvwmIconMan*[id*]showtitle boolean

値を true とした場合、アイコンマネージャ内ではウィ ン ドウタイトル名を表示し、値を false とした場合、 そのアイコン名を表示します。デフォルトは false で す。

*FvwmIconMan*[id*]font font

こ れ は、ボタンラベルに使われるフォントを指定しま す。

*FvwmIconMan*[id*]geometry geometry

これは、マネージャの位置情報を指定します。位置情報 と して負の y 座標を指定した場合、ウィンドウマネー ジャは上向きに伸びていきます。それ以外の場合は下向 きに縮みます。

*FvwmIconMan*[id*]foreground foreground

これは、デフォルトの前景色を指定します。

*FvwmIconMan*[id*]background background

これは、デフォルトの背景色を指定します。

*FvwmIconMan*[id*]plainbutton style [forecolor backcolor]

これは、標準的なボタンの見せ方を指定します。 styleflat, up, down のいずれかで、ボタンがどのように 書かれるのかを意味します。色のオプションはいずれも 必須ではなく、指定しない場合はデフォルトの色が使わ れます。よって白黒のスクリーン上では、オプ ショ ン style は無視されますが、それでも設定はしなければい けません。

*FvwmIconMan*[id*]selectbutton style [forecolor backcolor]

これは、オプション plainbutton と同じで、マウス が そのボタンの上にあるときのそのボタンの見た目を指定 します。

*FvwmIconMan*[id*]focusbutton style [forecolor backcolor]

こ れは、オプション plainbutton と同じで、そのウィ ンドウにキーボードフォーカスがあるときのそのボタン の見た目を指定します。

*FvwmIconMan*[id*]focusandselectbutton style [forecolor backcolor]

こ れは、オプション plainbutton と同じで、そのボタ ンが選択され、かつキーボードフォーカスを持つときの そのボタンの見た目を指定します。

*FvwmIconMan*[id*]action event response[,response...]

こ れ は、event が行われたときに、 FvwmIconMan に response 内のコマンドを fvwm に送 信 さ せ ま す。 event は 次の値の一つを取ります: select, click1, click2, click3。デフォルトは、マウスボタンクリック に対してはアイコン化で、 select に対しては何もしま せん。 select は、そのアイコンマネージャ内のボタン に入ったカーソルを参照します。

以 下の 2 つのオプションは、どのアイコンマネージャ でどのウィンドウを操作するかを制御します。一つのア イ コンマネージャは 2 つのリストを持つことができ、 一つは表示するウィンドウの、そしてもう一つは無視す るウィンドウのリストです。 dontshow のリストのみが 与えられた場合、アイコンマネージャはそのリスト以外 のすべてのウィンドウを表示します。両方のリストが与 えられた場合は、アイコンマネージャは dontshow のリ ストに入ってなくて、 show のリストに入っているウィ ンドウを表示します。どちらのリストも与えられなかっ た場合は、すべてのウィンドウが対象となります。それ ぞれのリストは、 type=pattern の形式のパター ン に よっ て 作 成 さ れ ま す。 ここで、type は class, resource, title, icon のいずれ か で、pattern は fvwm の style コマンドで使われるのと同じ書式の正規 表現です。 pattern の前後に引用符を置くと、それ も 正規表現の一部と見なされます。一つのウィンドウが 2 つ以上のアイコンマネージャの対象となった場合、最も 小さい id のアイコンマネージャがそれを取得します。

*FvwmIconMan*[id*]show pattern list

ウィンドウがそのリストの pattern の一つにマッチ し た場合、それはこのマネージャによって管理されます。

*FvwmIconMan*[id*]dontshow pattern list

ウィンドウがそのリストの pattern の一つにマッチ し た 場 合、それはこのマネージャによって管理されませ ん。

*FvwmIconMan*[id*]followfocus boolean

booleantrue の場合、ボタンの見かけはウィンドウ が現在フォーカスを持っているかどうかを反映します。 デフォルトは false です。

*FvwmIconMan*[id*]sort boolean

booleantrue の場合、アイコンマネージャはソート し続けます。デフォルトは true です。

設定例

最初の例は、FvwmIconMan の最も単純な呼び出しの例で、一つの アイコンマネージャのみを定義し、それですべてのウィンドウを 管理します:

##############################################################
# fvwm の初期化の際に起動されるべき任意のモジュールをロード
ModulePath /usr/lib/X11/fvwm:/usr/bin/X11
Module FvwmIconMan

# FvwmIconMan をタイトルバーなし、sticky とし、アイコンを指定
Style "Fvwm*"      Icon toolbox.xpm,NoTitle,NoHandles,Sticky
Style "FvwmIconMan" HandleWidth 5, Handles, BorderWidth 5

##############################################################
##############################################################
# このモジュールで使われる定義

*FvwmIconMan*nummanagers 1
*FvwmIconMan*resolution  global
*FvwmIconMan*background  slategrey
*FvwmIconMan*foreground  white
*FvwmIconMan*font        7x13
*FvwmIconMan*geometry    194x100-0+73

次 の 例 は、私の個人的な設定です。これは 2 つのアイコンマ ネージャを定義し、一つは emacs 用、もう一つはそれ以外で ア イコンタイトルがないものを除いたすべてのウィンドウ用です。 現在のページのウィンドウのみが表示されます。 select のアク ショ ン に 対 す る Focus への引数に注意してください。これ は、fvwm 用に含まれているパッチを適用した場合にのみ動作 し ます。 Focus に対する 0 でない引数、あるいは引数なしの場合 は、 Focus がカーソルを対象となるウィンドウへ移動し、値 0 の引数は、Focus はカーソルを移動しません。位置情報と表示オ プションはアイコンマネージャ毎に指定され、その他はすべて共 通であることに注意してください:

*FvwmIconMan*numManagers 2
*FvwmIconMan*Resolution  page
*FvwmIconMan*background  steelblue
*FvwmIconMan*foreground  white
*FvwmIconMan*font        7x13
*FvwmIconMan*action      click1 Iconify
*FvwmIconMan*action      click2 Iconify
*FvwmIconMan*action      click3 Module "FvwmIdent" FvwmIdent
*FvwmIconMan*action      select Focus 0
*FvwmIconMan*showtitle   false
*FvwmIconMan*followfocus true
*FvwmIconMan*sort        true
*FvwmIconMan*plainbutton          up white steelblue
*FvwmIconMan*selectbutton         down white steelblue
*FvwmIconMan*focusbutton          up white brown
*FvwmIconMan*focusandselectButton down white brown

*FvwmIconMan*1*geometry   194x100-204-90
*FvwmIconMan*1*show       resource=emacs resource=gemacs

*FvwmIconMan*2*geometry   194x100-0-90
*FvwmIconMan*2*dontshow   icon=Untitled

未対応の問題

現在知るところ、一つバグがあります。これに対するよい解があ れば本当に感謝します。アインマネージャが上向きに伸びるよう 設定されている場合、コンピュータによっては、それは時として 迷いこんでしまいます。

アイコンマネージャの解像度がページになっている場合、ページ が 切り替わったときには、アイコンマネージャはすべての fvwm イベントが到達した後でウィンドウを更新し、それが新しい設定 の内部で最終的に決定するまでの間、すぐに伸びたり縮んだりさ せます。これは、解像度がデスクトップの場合は起こりません。

リソース名のないウィンドウを、それが本来されるほど上手くは 対応できません。

作者

Brady Montz ([email protected]).

謝辞

David Berson ([email protected]) に感謝します。