Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) 名前 fvwm95 - X11 用の Win95 に似た F(?) 仮想ウィンドウマネージャ 形式 fvwm95 [ options ] 説明 fvwm95 は X11 用のウィンドウマネージャです。これは、fvwm を 元に作られたもので、fvwm は twm を元に作られています。 普通の fvwm と同様、fvwm95 は大きな仮想デスクトップと、 別々 に、あるいは一緒に使用できる複数の重ならないデスクトップの両 方を提供します。仮想デスクトップは、使用しているスクリーンが 実際に広くなったかのように見せてくれ、そしてそのデスクトップ 内のあちこちをスクロールすることが可能です。複数の重ならない デスクトップは、実際に複数のスクリーンを作業する場として持っ ているかのように見せてくれますが、個々のスクリーンはそれぞれ 完全に独立しています。 fvwm95 はキーボードによる高速操作性も提供します。こ れ に よ り、ウィンドウの移動やサイズの変更のような、たいていのウィン ドウマネージャの機能を実行できますし、キーボードショートカッ トを使ってウィンドウマネージャのメニューの操作も行えます。 たいていのウィンドウマネージャが設定コマンドと組み込みコマン ド との違いを明確にしているのに対し、fvwm はその違いをあいま いにしています。典型的には設定コマンドはフォントの設定、色の 設定、メニューの内容やキー、マウスの機能割り当てなどを行いま す。一方、組み込みコマンドは典型的にはウィンドウの上げ下げな ど を行います。fvwm はそのような違いを持たないので、現実的な 範囲で、どんなものでもいつであっても変化させることが可 能 に なっています。 Fvwm と他の X11 ウィンドウマネージャのその他の特筆すべき違い は、 SloppyFocus (だらしないフォーカス) とフォーカスをウィン ドウ毎に設定することを導入している点です。SloppyFocus は、 マ ウスに従うフォーカス (focus-follows-mouse) ですが、マウス がウィンドウから出てルートウィンドウ (背景のウィンドウ ) に 入っ てもそのフォーカスが消えない性質があります。SloppyFocus がデフォルトのフォーカススタイルとして使われている場合、通常 タ イ プ 入 力 し な いようなウィンドウ (xmag, xman, xgraph, xclock, xbiff 等) をマウスクリックに従うフォーカ ス (click- to-focus) にするといいでしょう。そうすれば、端末ウィンドウが 不必要にフォーカスを失うことはなくなります。 COPYRIGHTS (原文) Since fvwm95 is derived from fvwm code it shares fvwm's copyrights. fvwm is copyright 1988 by Evans and Sutherland Computer Cor- poration, Salt Lake City, Utah, and 1989 by the SunOS 5.9 Last change: 1 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) Massachusetts Institute of Technology, Cambridge, Mas- sachusetts, All rights reserved. It is also copyright 1993 and 1994 by Robert Nation. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting docu- mentation, and that the names of Evans & Sutherland and M.I.T. not be used in advertising in publicity pertaining to distribution of the software without specific, written prior permission. ROBERT NATION, CHARLES HINES, EVANS & SUTHERLAND, AND M.I.T. DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT- NESS, IN NO EVENT SHALL EVANS & SUTHERLAND OR M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 著作権 (日本語訳) fvwm95 は fvwm のコードからの派生物なので、fvwm95 も fvwm の 著作権を共有します。 fvwm は、1988 年にエバンス & サザーランドコンピュータ株式 会 社 (ユタ州ソルトレーク市)、1989 年にマサチューセッツ工科大学 (マサチューセッツ州ケンブリッジ市) による著作物で、全ての 権 利 が保護されています。1993 年と 1994 年にロバート・ネイショ ン (Robert Nation) によっても作成されています。 このソフトウェア、およびその付属文書の使用、複製、改変、配布 の許可は、任意の目的に対して、そして課金をしないならば、この 文書により、以下の条件の元で保証されます: 上の著作権通知が全 ての複製に含まれること、その著作権通知とこの許可通知の両方が 付属文書に含まれること、そして、このソフトウェアの配布に関し て、特に文書での許可をあらかじめ取っているのでなければ、エバ ンス & サザーランドと M.I.T の名前を公の広告に使用しな い こ と。 ロバート・ネイション、チャールズ・ハインズ、エバン ス & サ ザー ランド、そして M.I.T は、このソフトウェアに対して何の保 証もしませんし、市場性や適切さに対する暗黙の保証もしません。 どんな特殊な、間接的な、または結果として引き起こされた損害に 対しても、または、このソフトウェアの使用や性能から引き起こさ れる、あるいはそれに関係した使用不能や、データの損失、利益の SunOS 5.9 Last change: 2 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) 損失の結果としてのどんな損害に対しても、それらが契約、過失、 お よ びその他の不正行為によってであるかそうでないかに関わら ず、どんな場合でもエバンス & サザーランドと M.I.T は責任を負 いません。 ウィンドウの構造 fvwm95 は、ほとんどのウィンドウの周囲に装飾的な 3 次元的な境 界 をつけます。この境界は、上下左右の 4 方向の辺上のまっすぐ な棒 (bar) と 4 つの角にある小さな "L" 字型の部品からでき て います。さらに、タイトルバーと呼ばれる、ウィンドウ名を表示す るのに使われる棒を上辺に追加してつけることもできます。 さ ら に、最大 10 個までのタイトルバーボタンをその中に追加すること もできます。上辺や左右の辺、および底辺の棒はまとめてサ イ ド バーと呼ばれます。 標準的な初期化ファイルを修正しなければ、タイトルバー、または サ イドバーでマウスボタン 1 を押すと、ウィンドウの移動操作を 開始します。角の L 字部分でボタン 1 を押すとサイズ変更操作を 開 始します。境界の任意の箇所でボタン 2 を押すと、ウィンドウ 操作の一覧メニューを作り出します。 タイトルバーボタンは最大 10 個まで作れます。それらの使用は完 全にユーザが定義可能です。デフォルトの設定ではタイトルバーボ タンは、タイトルバーの両側に 1 つずつつきます。左端 の も の は、ウィンドウ操作の一覧メニューを作りだすもので、右端のもの は、ウィンドウのアイコン化用のものです。使用するタイトルバー ボ タ ンの数は、どれがマウス操作を割り当てられているタイトル バーボタンであるかに依存します。以下の "Mouse" 設定パラ メー タの節を参照してください。 仮想デスクトップ fvwm95 は、複数の仮想デスクトップを使いたい人に提供しま す。 ス ク リーンは、それより広くてもいい一つのデスクトップ上への ビューポート (視野) になります。いくつかの異なるデスクトップ にアクセスすることができます (個々のプロジェクト用に一つのデ スクトップ、あるいは表示アプリケーションが異なる場合の個々の アプリケーション用に一つのデスクトップ、といった利用を想定し ています)。デスクトップ一つ一つは、物理的なスクリーンサイ ズ よりも大きくても構わないので、スクリーンよりも大きいサイズの ウィンドウや、関連するたくさんのウィンドウのグループなどを簡 単に見ることができます。 仮想デスクトップのサイズは、組み込みコマンド DeskTopSize を 使っていつでも変更できます。すべてのデスクトップは同じサイズ になります。デスクトップの個数は指定する必要はありませんが、 全部でほぼ 40 憶個までに制限されています。デスクトップの領域 内のすべてのウィンドウは Pager で見ることができますが、こ れ は デ ス ク トッ プをミニチュア表示します。この Pager は、モ ジュールと呼ばれる付属プログラムの一つで、ウィンドウ マ ネー ジャの操作に必要不可欠なものではありません。FvwmWinList と呼 SunOS 5.9 Last change: 3 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) ばれる別なモジュールによって、ウィンドウの一覧を、そのそれぞ れの位置に従った順で、ポップアップメニューか独立したウィンド ウとしてアクセス可能できる形で、作成することができます。 "Sticky" (粘着的) ウィンドウは、「スクリーンのガラスに張りつ く」ことで仮想デスクトップを越えるウィンドウです。それは常に スクリーン上に居続けます。これは、時計や xbiff (郵便受け) の ようなものには便利な機能で、そのような小道具をは一つ起動する だけで済みますし、それが常にあなたと共にいます。アイコンも、 望むならば、スクリーンに張りつくようにすることができます。 ウィンドウの位置や大きさの情報 (geometry) は、現在 の ビュー ポートに相対的に指定します。例えば、 xterm -geometry +0+0 これは、常にスクリーンの表示部分の左上の角に表示され ま す。 ウィンドウを仮想デスクトップに置くような geometry を指定する ことも可能ですが、スクリーンからは外れます。例えば、表示スク リー ンが 1000x1000 ピクセルの大きさであって、デスクトップサ イズが 3x3 (i.e. 一つのデスクトップが縦 3 行、横 3 列のス ク リーンからなる) であって、現在のビューポートがそのデスクトッ プの左上角にあるとき、 xterm -geometry +1000+1000 のようにすると、そのウィンドウはスクリーンの右下に外れ ま す が、 マ ウスをスクリーンの右下に持っていってスクリーンがスク ロールされるまで待てばそのウィンドウを見つけることがで き ま す。 ウィンドウを、現在有効なデスクトップではない別のデスクトップ 上に配置する方法は今のところはありませんが、もしかして知って いませんか ? geometry を以下のように指定した場合 xterm -geometry -5-5 一般的には、そのウィンドウの右下の角が、表示スクリーンの右下 の 角から 5 ピクセルの位置に置かれます。ただし、全てのアプリ ケーションが負の位置指定のウィンドウ geometry をサポートして いるわけではありません。 xterm や xfontsel のように、標準的な Xt (X toolkit) コマンド ラ イン引数と X リソースを解釈するようなアプリケーションに対 してはユーザは、起動時のデスクをコマンドラインで指定できます : xterm -xrm "*Desk:1" これは、xterm を番号 1 のデスクで起動します。しかし、全て の SunOS 5.9 Last change: 4 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) ア プ リケーションがこのオプションを認識するわけではありませ ん。 これと同じことは、あなたの .Xdefaults ファイルに以下の行を入 れることでも可能です: XTerm*Desk: 1 初期化 初期化の間、fvwm95 は設定ファイルを探しま す。 そ れ に は、 キー、マウスボタンの割り当てや、他のいくつかのことが書かれて います。そのファイルの書式に関しては後で述べ ま す。 ま ず、 fvwm95 は .fvwm95rc という名前 (または、コンパイル時の設定に よっては .fvwmrc という名前 - デフォルトでは .fvwm95rc) の ファイルを、ユーザのホームディレクトリ上で探します。それに失 敗した場 合、 シ ス テ ム 共 通 の 設 定 ファ イ ル で あ る /usr/lib/X11/fvwm/system.fvwm95rc ( う ち の 研 究 室 で は /usr/local/x11/lib/fvwm95/system.fvwm95rc) を検索します。 そ の ファイルも見つからなかった場合、fvwm95 は基本的に使いもの にはならないでしょう。 fvwm95 は、その子プロセスに引き継がれる環境変数を 2 つ設定し ます。一つは $DISPLAY で、これは fvwm95 が動作しているディス プレイを意味します。$DISPLAY は unix:0.0 や :0.0 などで、 こ れ は rsh を通して他のマシンを使っている場合はあまりうまく は効きません。よって、$HOSTDISPLAY も設定され、これはネッ ト ワー ク 向きのディスプレイの記述になっています。$HOSTDISPLAY は TCP/IP 転送プロトコルを常に使います (ローカルな接続であっ ても) ので、ローカルな接続には $DISPLAY を使うべきで、これは Unix ドメインソケットを使用し、こちらの方が高速です。 fvwm95 には 2 つの初期化 用 の 特 別 な 関 数、 InitFunction と RestartFunction を持っていて、これらはそれぞれ初期化 と再起動の時に実行されます。これらはユーザの rc ファイル (初 期 設 定 ファ イ ル) で AddToFunc の機能 (後述) を使って、モ ジュールや xterm、その他 fvwm95 の起動時に立ち上げさせたいも のを何でも起動させるようにカスタマイズするようにできます。 fvwm95 は終了用の特別な関数名「ExitFunction」も持っ て い ま す。これは (それが定義されていれば)、fvwm95 の終了時、あるい は本当に fvwm95 を終了させる前に再起動させたとき等の場合に実 行されます。それを定義すれば明示的にモジュールを殺したりする のに使えます。 アイコン 基本的な fvwm95 の設定は、twm 同様白黒のビットマップアイコン を使うようになっています。XPM 拡張が有効な状態でコンパイルさ れている場合は、ctwm, MS-Windows, Macintosh などと同様 に カ ラーのアイコンを使うことができます。そのオプションを使うため SunOS 5.9 Last change: 5 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) には XPM パッケージが必要ですが、それに関しては Imake の設定 ファイル Fvwm.tmpl 内に書かれています。 SHAPE と XPM オプションの両方がついてコンパイルされている 場 合、形のあるカラーアイコンを使うこともできますが、それはとて も綺麗です。 モジュール モジュールは fvwm95 とは分離した形のプログラムで、fvwm95 と は 分離した Unix プロセスとして動作しますが、fvwm95 に実行さ せるコマンドを fvwm95 に送信します。ユーザは、fvwm95 それ 自 身 の 完全さに影響を与えない、あるいは fvwm95 を肥大化させな い、不気味な、または奇妙な操作をするような自分のオリジナルの モジュールを書くことも可能です。 モジュールのプロセスは、fvwm95 とモジュールの双方が通信で き るような 2 つのパイプをセットできるように、fvwm95 によって生 成される必要があります。モジュールのためのパイプは、それが起 動したときに既にオープンされていて、パイプ用のファイルデスク リプタはコマンドライン引数として与えられています。 モジュールプロセスは fvwm95 の初期化の際にモジュールオプショ ンによって生成されるか、または、組み込みコマンド Module を使 うことによって X が動作している間の任意の時に生成されま す。 モジュールは、X の起動中存在し続けることもできますし、一つの 仕事を行ってその後終了することもできます。fvwm95 が終了す る よ う命令されたときにモジュールがまだ有効な場合、fvwm95 は通 信用のパイプを閉じてモジュールからの SIGCHLD シグナルが来 る のを待ちますが、それは、パイプが閉じたことをモジュールが検出 し、そして終了した、ということを示しています。モジュールがパ イ プが閉じたことの検出に失敗した場合、fvwm95 はほぼ 30 秒後 に取りあえず終了します。同時に実行できるモジュールの数は、同 時に開けるファイルの最大数という OS の制限によって限定されま すが、通常は 60 から 256 の間です。 モジュールは単にテキストコマンドを fvwm95 の組み込みコマンド エンジンに送信するだけで、このテキストコマンドとは、設定ファ イル .fvwm95rc の丁度マウス割り当ての場合のような書式で す。 サ ンプルモジュール FvwmButtons の中にあるように、ある補足の 情報も送信されます。モジュール FvwmButtons に関しては、そ の マニュアルページに書かれています。 ICCCM 勧告への対応度 fvwm95 は ICCCM 1.1 への対応を試みています。さらに、ICCCM は アプリケーションが「任意の」キーストロークを受け取ることが可 能であるべきだと述べていますが、しかしこれは fvwm95、およ び 他 の ほとんどのウィンドウマネージャで利用されているショート カットキーの手法と両立しません。 SunOS 5.9 Last change: 6 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) ICCCM は、以下のプロパティを所有するウィンドウ: WM_HINTS(WM_HINTS): Client accepts input or input focus: False は、ウィンドウマネージャがキーボードフォーカスを与えるべきで はない、と言っていますが、そういったウィンドウは自分自身で入 力フォーカスを取得します。多くのアプリケーションがこのプロパ ティ を 設定していて、その上ウィンドウマネージャがキーボード フォーカスを与えてくれる、と思っているのです。だから fvwm95 は "Lenience" (Lenience = 寛大) というウィンドウスタイルを用 意し、fvwm95 がこの ICCCM の規則を大目に見ることができるよう にしています。 M4 による前処理 M4 による前処理は fvwm95 ではモジュールとして提供されてい ま す。 詳 細は man FvwmM4 を見てください。簡単に言うと、fvwm95 にあなたのファイルを m4 で処理させたい場合、に置き変 え て、 fvwm95 を次のように実行します: fvwm95 -cmd "FvwmM4 .fvwm95rc" CPP による前処理 cpp は C 言語のプリプロセッサです。fvwm95 は m4 による前処理 と 全く同様の cpp による前処理も提供しています。それに関して は、上の M4 の項目を、"m4" の部分を "cpp" と置き変えて読んで みてください。 AUTO-RAISE ウィンドウはそれがフォーカスを得たとき、あるいはフォーカスを 得 て 数ミリ秒後に自動的に一番上に来るようにすることができま す。それには auto-raise モジュールである FvwmAuto を使用しま す。 オプション fvwm95 が認識するコマンドラインオプションは以下の通りです: -f config_file fvwm95 に、初期化ファイルとして、".fvwm95rc" の代わりに config_file を 読 み 込 ま させます。これは -cmd "Read config_file" と同等です。 -cmd config_command fvwm95 に、初期化コマンドとして "Read .fvwm95rc" をさせ る 代わりに config_command を使用します (10 個までの -f と -cmd パラメータを与えることが可能、それらは指定し た 順に実行されること、に注意してください)。 SunOS 5.9 Last change: 7 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) -debug 同期モードでの X とのやりとりを出力します。動作は劇的に 遅 くなりますが、出力される fvwm95 の内部エラーメッセー ジが正しいものであることは保証されます。 -d displayname 環境変数 $DISPLAY による名前の代わりに "displayname" の 名前のディスプレイを制御します。 -s マルチスクリーンディスプレイ上で、fvwm95 を 環 境 変 数 $DISPLAY、 ま た は -d オプションで与えられる名前のスク リーンのみで動作させます。通常は、マルチスクリーン ディ スプレイでは、fvwm95 は全てのスクリーン上で起動しようと します。 -version fvwm95 のバージョンを標準エラー出力に表示します。 設定ファイル 設定ファイルはキー割り当て、マウスボタン割り当て、色、 仮 想 ディスプレイサイズ、そしてそれらに関連する項目等を記述するの に使われます。初期設定ファイルの典型的な名前 は ".fvwm95rc" です。組み込み関数 "Read" を使えば、容易に別の設定ファイルを あなたのしたいように読み込ませることが可能です。 '#' で始まる行は fvwm95 は無視します。'*' で 始 ま る 行 は (fvwm95 自身の設定コマンドではなく) モジュールの設定コマンド が含まれる行とみなされます。 fvwm95 の設定コマンドと組み込みコマンドとの間には特に違い は なく、組み込みコマンドの節で説明されているものはいずれも、そ れを一つの行に書くことでそれが設定ファイルから読み込まれると きに fvwm95 に実行させることも可能ですし、またはメニュー内や マウスボタンやキーボードのキーに割り当てた実行コマンドとする ことも可能です。どの関数が初期化用の意味を持ち、どの関数が実 行時に意味があるのか、ということを決めるのはユーザへの課題と して残されています。 組み込み関数 fvwm95 は組み込み関数群をサポートしていて、それはキーボー ド や マウスボタンに割り当てることができます。fvwm95 は一つのコ マンドにまず組み込み関数を見つけようとして、そしてそれに失敗 した場合はその指定されたコマンドが "Function (コマンドの残り)" という形なのか "Module (コマンドの残り)" のどちらであるかを調べます。こ れ により、設定ファイルに関してかなり透明な仕組みで、複雑な関数 やモジュールを呼び出すことが可能になります。 例: ファイル .fvwm95rc が "HelpMe" という行を持つとしま す。 fvwm95 はまず "HelpMe" という名の組み込みコマンドがあるかど SunOS 5.9 Last change: 8 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) うかを調べますが、それはありません。次に、fvwm95 はユーザ が 定義した "HelpMe" という名前の複雑な関数があるかどうかを探し ます。もし、そのようなユーザ定義関数がなけれ ば、 fvwm95 は "HelpMe" という名のモジュールを実行しようとします。 引用符は、fvwm95 に 2 つ以上の単語を一つの引数と思わせるとき のみに必要ですが、不必要な引用符の使用も許されています。文字 列内で引用符文字を使用したい場合は、バックスラッシュ(\) を頭 に つけてエスケープする必要があります。例えば、Window-Ops と いう名前のポップアップメニューに対しては、引用符を使う必要は な く、 Popup Window-Ops とできますが、このダッシュ(-) をス ペース ( ) で置き変えた場合は引用符が必要で、 Popup "Window Ops" とする必要があります。 AddToMenu これはメニューの定義を開始、あるいはメニュー定義への 追 加 を行います。典型的なメニュー定義は例えば以下のように なります: AddToMenu Utilities "Utilities" Title + "Xterm" Exec xterm -e tcsh + "Rxvt" Exec rxvt + "Remote Logins" Popup Remote-Logins + "Top" Exec rxvt -T Top -n Top -e top + "Calculator" Exec xcalc + "Xman" Exec xman + "Xmag" Exec xmag + "emacs" Exec xemacs + "Mail" MailFunction xmh "-font fixed" + "" Nop + "Modules" Popup Module-Popup + "" Nop + "Exit Fvwm95" Popup Quit-Verify このメニューは、 Mouse 1 R A Menu Utilities Nop や Mouse 1 R A Popup Utilities のようにして呼びだすことができます。メニューの終りを 表 わす記号はありません。メニュー同士が .fvwm95rc ファイル 内の隣接する領域で定義される必要もありません。上の例 の 引 用符で囲まれた部分はメニューラベルで、それはユーザが メニューをポップアップした際にそこに表示される も の で す。 残りの部分は組み込みコマンドで、それはユーザがその メニュー項目を選択したときに実行されるべきものです。 空 のメニューラベル ("") と Nop 関数は、メニューに仕切り線 を入れるのに使われます。 SunOS 5.9 Last change: 9 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) メニュー名が、'@' で始まる部分文字列を含む場合、 '@' で 囲まれた文字列は xpm アイコンかビットマップファイルの名 前であるとみなされ、それは、適当にメニューの内容部分 を 移動しながらメニューの左下の角に描画されます。例えば、 AddToMenu "StartMenu@menu-linux.xpm@" は、左下角に絵の入ったメニューを生成します。 メニュー名が、'^' で始まる部分文字列を含む場合、'^' で 囲まれた文字列は X11 の色名であるとみなされ、その横の絵 を含む列がその色で色付けされます。例えば、 AddToMenu "StartMenu@menu-linux.xpm@^blue^" は、左下角に絵が入ったメニューを生成し、その絵を含む 列 が青に塗られます。 どちらの場合でも、結果としてメニューの名前は、指定し た ものからそれらの部分文字列を取り除いたものになります。 メニューラベルが '*' で始まる部分文字列を含む場合、 '*' で囲まれた文字列は xpm アイコンかビットマップファイルの 名前であるとみなされ、メニューに挿入されます。例えば、 + "Calculator*xcalc.xpm*" Exec xcalc は、"Calculator" というラベルのついたメニュー項目 を 作 り、その上に計算機の絵がつきます。以下の例: + "*xcalc.xpm*" Exec xcalc は、"Calculator" というラベルを省略しますが、絵は残りま す。 メニューラベルが '%' で始まる部分文字列を含む場合、 '%' で囲まれた文字列は xpm アイコンかビットマップファイルの 名前であるとみなされ、メニューラベルの左に挿入 さ れ ま す。例えば、 + "Calculator%xcalc.xpm%" Exec xcalc は、"Calculator" というラベルのついたメニュー項目 を 作 り、その左に計算機の絵がつきます。以下の例: + "%xcalc.xpm%" Exec xcalc は、"Calculator" というラベルを省略しますが、絵は残りま す。 これに使用される画像は小さいものであるべきです (で きれば 16x16)。 SunOS 5.9 Last change: 10 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) AddToFunc これは関数の定義を開始、あるいは追加します。以下はそ の 一例です: AddToFunc Move-or-Raise "I" Raise + "M" Move + "D" Lower この関数名は Move-or-Raise で、これはメニューやマウス、 キーの割り当て (binding) で呼び出すことができます: Mouse 1 TS A Move-or-Raise 関数の引用符で囲まれた部分は、どんな種類の動作がそれ に 従うコマンドを起動させるかを表しています。 "I" は Immediate を意味し、これは関数が呼び出される と すぐに実行されます。 "M" は Motion を意味し、すなわちユーザがマウスを動かし 始めたとき、となります。 "C" は Click、すなわちユーザが短い時間の間 (ClickTime ミリ秒) にマウスボタンを押して離したとき、となります。 "D" はダブルクリックを意味します。どのウィンドウに従う べ きか、という優先度に関する情報とともにその関数が呼ば れた場合、動作 "I" は、そのボタンが押されたところで実行 されるべき動作を引き起こします。 $w と $0 から $9 までの記号は特別な意味を持ち、複雑な関 数 やマクロ、またはそれらを呼び出したいどんな場所でも有 効です。マクロ内では、$w はそのマクロが呼び出されたウィ ンドウのウィンドウ ID (例えば 0x10023c のような 16 進表 記) に展開されます。$0 から $9 は、マクロの引数に な りますので、よって Key F10 R A Function MailFunction xmh "-font fixed" のように呼び出し、そして MailFunction が AddToFunc MailFunction "I" Next [$0] Iconify -1 + "I" Next [$0] focus + "I" None [$0] Exec $0 $1 のようであったとすると、関数の最後の行は以下のように な ります。 + "I" None [xmh] Exec xmh -font fixed その展開は関数が実行されるときに行われますので、一つ の 関 数をありとあらゆる種類の異なる引数に対して使うことが SunOS 5.9 Last change: 11 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) できます。したければ、同じ .fvwm95rc ファイル内で、 Key F11 R A Function MailFunction zmail "-bg pink" とすることもできるわけです。$w を使った例は例えば: AddToFunc PrintFunction "I" Raise + "I" Exec xdpr -id $w $$ は $ と展開されることに注意してください。 Beep 期待される通り、これは端末のビープ音を生成します。 ButtonStyle button# pixmap これはタイトルバーボタンのところに表示されるピクス マッ プ (xpm 画像) ファイルを定義します。button# はタイトル バーボタン番号で 0 から 9 までの数字です。ピクスマッ プ ファイルは一つだけ指定できます。 ButtonStyle 2 mini-close.xpm ピクスマップファイル指定は絶対パスでも相対パスでも構 い ま せん (PixmapPath 参照)。ピクスマップファイルが見つか らなかった場合、そのボタンはピクスマップ画像を 含 ま な い、単なる長方形になってしまいます。 ClickTime delay これには、組み込み関数がマウスクリック動作と認識す る、 ボタンを押してから離すまでの最大の時間間隔 (ミリ秒単位) を指定します。デフォルトの間隔は 150 ミリ秒です。 Close ウィンドウがウィンドウ削除プロトコルを受けつける場合 は そ のメッセージをウィンドウに送り、行儀よく消えてくれる か尋ねます。ウィンドウ削除プロトコルを理解しないウィ ン ドウの場合は、そのウィンドウを破壊します。 ColormapFocus [FollowsMouse | FollowsFocus] デフォルトでは、fvwm95 はカーソルが入っているウィンドウ に カ ラー マップを割り当てます。ColormapFocus Follows- Focus を使うと、カラーマップは、現在キーボードフォー カ SunOS 5.9 Last change: 12 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) スのあるウィンドウのものになります。 CursorMove horizontal vertical これは、マウスポインタを X 方向に horizontal ページ、 Y 方 向に vertical ページ移動します。これらの指定は負の値 でも構いません。horizontal, vertical の値はいずれもペー ジ サイズに対するパーセントを意味し、よって "CursorMove 100 100" は右下に丸々1 ページ分動かすことになります。 "CursorMove 50 25" は右に 1 ページの半分だけ、下 に 1 ペー ジの 1/4 だけ動かすことを意味します。CursorMove 関 数は popup menu では使うべきではありません。 DefaultColors winfore winback titlefore titleback これは、デフォルトの色一式を設定します。 winback は メ ニュー ウィンドウを含む全てのウィンドウの背景 (境界) 色 を、winfore はメニューの文字の色を、titleback は選択 さ れ ていないタイトルバーの背景色を、titlefore は選択され ていないタイトル文字の色を、それぞれ意味します。 Delete これは、ウィンドウに自分で消えてくれないかと尋ねる メッ セー ジを送りますので、通常アプリケーションは終了させら れます。 Desk arg1 arg2 これは他のデスクトップ (作業場、部屋とも呼ばれる) へ 切 り変えます。 arg1 が 0 でなければ切り代わる先のデスクトップ番号 は、 現 在のデスクトップ番号 + arg1 です。デスクトップ番号は 負でも構いません。 arg1 が 0 ならば、切り代わる先のデスクトップ番号は arg2 です。 有効 (active) なデスクトップの個数は動的に決定しま す。 有 効なデスクトップとは、ウィンドウを含むものか、現在表 示されているものを言いま す。 デ ス ク トッ プ 番 号 は -2147483648 から 2147483647 までの間である必要がありま す (それで十分でしょう ?)。 DeskTopSize HorizontalxVertical SunOS 5.9 Last change: 13 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) これは、物理的なスクリーンサイズを単位とした、仮想デ ス クトップのサイズを定義します。 Destroy これはアプリケーションウィンドウを破壊しますが、通常 そ れはアプリケーション (のプロセス) を壊してつぶします。 DestroyFunc これは関数を削除し、その後のその関数への参照が無効に な るようにします。これは、fvwm95 を動作させながら関数の内 容を変更する場合に使えます。その関数は AddToFunc を使っ て再構成できます。 DestroyFunc "PrintFunction" DestroyMenu これはメニューを削除し、その後のそのメニューへの参照 が 無効になるようにします。これは、fvwm95 を動作させながら メニューの内容を変更する場合に使えます。そのメニュー は AddToMenu を使って再構成できます。 DestroyMenu "Utilities" DestroyModuleConfig これはモジュール設定行を削除し、新しい設定行を代わり に 入 れ られるようにします。これは、fvwm95 を動作させなが ら、fvwm95 を再起動させることなしにモジュールの動作の方 法 を 変 更するのに使えます。さらにその名前にはワイルド カードを使うこともできます。 DestroyModuleConfig FvwmFormFore DestroyModuleConfig FvwmButtons* EdgeResistance scrolling moving これは、マウスがスクリーンの端を越えて動くときにデス ク トッ プビューポートを変更すること、及びスクリーンの端を 越えてウィンドウを動かすことの困難さを fvwm95 に伝え ま す。 最初のパラメータは fvwm95 がビューポートを動かす前に マ SunOS 5.9 Last change: 14 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) ウ スポインタが何ミリ秒、スクリーンの端にいなければいけ ないかを意味します。これは、"EdgeScroll 100 100" を使う が、 彼らが望まないときに不意にページを自分でジャンプさ せてしまうような人を想定しています。 2 つ目のパラメータは、ウィンドウの端を、それが部分的 に ス クリーンから離れて実際に移動する前に、スクリーンの端 を越えて何ピクセル動かさなければいけないか、を意味し ま す。 "EdgeScroll 0 0" でも、現在のスクリーンの端をまた い で ウィ ンドウの移動や大きさの変更 (resize) がまだ可能であ ることに注意してください。最初のパラメータを EdgeResis- tance 10000 にすることで、このような移動等はできなくな ります。EdgeResistance を 10000 未満 (しかし 0 よりは大 ) にすると、ページを越えることは難しくはなりますが不可 能ではありません。 EdgeScroll horizontal vertical これには、カーソルがページの端に当たったときにページ を 何 パーセントスクロールさせるかを指定します。ページの端 に当たっても、何のページの切り変えもスクロールも望ま な い 場 合は、あなたの .fvwm95rc ファイルに "EdgeScroll 0 0" と書いてください。ページ全体を丸々スクロールさせたい なら "EdgeScroll 100 100" としてください。horizontal と vertical は正の数である必要があります。 horizontal と vertical のパーセントが 1000 倍され た 場 合、 デスクトップの端でのスクロールは反対の端に戻ります (1 巻につながった形式 )。 例 え ば "EdgeScroll 100000 100000" を 使用すると、fvwm95 はページを丸々スクロール し、デスクトップの端では反対の端につながった形式にし ま す。 Exec command これは command を実行します。Exec は、command の先頭 に 'exec' とつけたり、最後に '&' とつけたりする必要はあり ません。 以下の例はルートウィンドウ上で、修飾キーなしのファン ク ションキーF1 を exec 関数に割り当てています。プログラム rxvt は、オプション一揃いをともなって起動されます。 Key F1 R N Exec rxvt -fg yellow -bg blue -e /bin/tcsh SunOS 5.9 Last change: 15 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) ExecUseShell [shell] これは、Exec コマンドに、デフォ ル ト の Bourne shell (/bin/sh) の代わりに指定した shell か、または shell を 指定しなかった場合は $SHELL 環境変数で定義されている も のを使わせます。 ExecUseShell ExecUseShell /usr/local/bin/tcsh Focus これは、必要なときに選択されたウィンドウが見え る よ う に、 ビュー ポー トやウィンドウを移動します。そしてキー ボードフォーカスを選択されたウィンドウに設定し、見え る の に必要ならウィンドウを前面に出します。しかしマウスポ インタは選択されたウィンドウにはジャンプ さ せ ま せ ん (WarpToWindow 関数参照) し、アイコン化されているウィン ドウを元に戻すこともしません。 Function FunctionName これは、あらかじめ定義された関数をキー、またはマウス ボ タンに割り当てるのに使われます。 以下の例は、マウスボタン 1 に "Move-or-Raise" と呼ば れ る 関数を割り当てます。この関数の定義は、このマニュアル の上の方の例にあります。この割り当ての 行 わ れ た 後、 fvwm95 は、ウィンドウタイトルバーのどこでボタン 1 が押 されても move-or-rase 関数を実行することになります。 Mouse 1 T A Function Move-or-Raise "FunctionName" が fvwm95 の組み込み関数の名前と一致 し ない場合、キーワード "Function" は省略できます。 GotoPage x y これは、デスクトップビューポートをページ (x,y) に移動し ま す。一番左上のページが (0,0) で、右上が (N,0) です。 ここで、N は DeskTopSize コマンドで指定した現在の 水 平 ペー ジ 数 (horizontal) より 1 だけ小さい数です。左下の ページは (0,M) で右下は (N,M) です。ここで、M は Desk- TopSize コマンドで指定した、デスクトップの垂直方向のサ イズ (vertical) より 1 だけ小さい数です。この GotoPage 関数はポップアップメニューでは使うべきではありません。 HilightColors textcolor backgroundcolor SunOS 5.9 Last change: 16 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) これは、現在キーボードフォーカスを持つウィンドウ (選 択 さ れたウィンドウ) のタイトルバーの文字色と背景色を設定 します。 IconFont fontname これは fvwm95 に、アイコンのラベル用として fontname の フォ ン トを使用させます。これを省略した場合、(MenuFont 設定変数で指定される) メニューフォントが代わりに使用 さ れます。 Iconify [ value ] これは、アイコン化されていないウィンドウをアイ コ ン 化 し、 アイコン化されたウィンドウを元のサイズに戻します。 省略できる引数の value が正の場合は、アイコン化のみが行 わ れます。オプション引数が負の場合はアイコンから元のサ イズへの復帰のみが行われます。 IconPath path これには、X11 ビットマップ形式 (白黒) のアイコン画像 が 置 かれているディレクトリのフルパス名を、':' 区切りで指 定します。それぞれのパスは '/' で始まっていなければなり ま せ ん。環境変数をここで使用することもできます ($HOME や ${HOME} 等)。 注意: rc ファイル (初期設定ファイル) の解釈に FvwmM4 を 使 用している場合、m4 は "include" という語を消そうとし ますが、それは IconPath や PixmapPath コマンドの中に よ く現れます。この問題を解決するには、IconPath コマンドの 前に undefine(`include') を追加するか、またはより良い方 法は、オプション '-m4-prefix' を使って強制的に全ての m4 命令が "m4_" という接頭辞を持つことにすることです (FvwmM4 オ ンラインマニュアル参照)。 Key keyname Context Modifiers Function これは、キーボードのキーを、指定された fvwm95 の組み 込 み 関数に割り当てますが、Function が '-' の場合はその割 り当てを削除します。定義は、マウスの割り当てとほぼ同 じ で、 そのマウス番号がキーに変わるだけです。keyname は、 /usr/include/X11/keysymdef.h ( 注 : Solaris で は /usr/openwin/include/X11/keysymdef.h) の中に書かれてい る項目のうちの一つで、その先頭の XK_ を取り除いたもので す。 引数 Context と Modifiers はマウスの割り当て Mouse と同様です。 SunOS 5.9 Last change: 17 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) 以下の例は、マウスポインタがどこにあって も、 Alt-Ctrl- Shift-F11 が押された場合に、組み込みウィンドウリストを ポップアップメニューに割り当てます: Key F11 A SCM WindowList あるキーをあるタイトルバーボタンに割り当てたからと いっ て、 そのボタンへのマウス割り当ても存在する場合でなけれ ば、そのボタンを表示させることはしません。 KillModule name これは、name という名前で呼びだされたモジュールを終了さ せます。name にはワイルドカードを使うこともできます。 Lower これでウィンドウを下 (奥) に降ろせます。 Maximize [ horizontal vertical ] オプション引数がない場合、Maximize はウィンドウを通常の サイズとフルスクリーンサイズとに交互に切り変えます。 オプション引数の horizontal と vertical を指定 し た 場 合、 これらはフルスクリーンサイズの何パーセントであるか を意味しますが、ウィンドウの新しいサイズを制御 で き ま す。 horizontal が 0 より大きい場合、ウィンドウの水平方 向のサイズは、horizontal*(スクリーン幅)/100 に設定さ れ ま す。垂直方向のサイズ変更も同様です。例えば以下のよう にすると、ウィンドウの垂直サイズをフルスクリーンサイ ズ に変更するタイトルバーボタンを追加します: Mouse 0 4 A Maximize 0 100 以下のようにすればウィンドウの幅がいっぱいの幅に広が り ます: Mouse 0 4 A Maximize 100 0 以下のものは、縦横の両方向がスクリーンサイズの 半 分 に なったウィンドウを作成します: Mouse 0 4 A Maximize 50 50 100 より大きい値は用心して使ってください。 文字 "p" を各座標 (horizontal, vertical) につけると、大 SunOS 5.9 Last change: 18 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) きさの単位はピクセル単位になります。 Menu menu-name double-click-action これは、あらかじめ定義されたメニューを "sticky" な ( くっ ついた) 方式でポップアップさせます。すなわち、ユー ザがメニューをドラッグではなくクリックで呼び出 し た 場 合、 メ ニュー は 消 えずに出続けます。コマンド double- click-action は、メニューを作り出すときにユーザがダブル クリックした場合に呼び出されるものです。 MenuFont fontname これは、fvwm95 のメニュー項目に、fontname のフォント を 使わせます。これを省略した場合、代わりに fixed フォント が使用されます。 Module ModuleName これには、初期化の際に実行されるべきモジュールを指定 し ま す。現在利用できるモジュール (fvwm95 に含まれるもの) は、FvwmAudio (ウィンドウマネージャの操作とともに音を生 成 ), FvwmAuto (自動的に前面に持ち上げる), FvwmBacker ( デスクトップを変えたときに背景を変える), FvwmBanner ( ちょっとした XPM 画像を表示), FvwmButtons (カスタマイズ 可能なツールバーを生成), FvwmCpp (.fvwm95rc を cpp で前 処 理), FvwmForm (対話型ツールの生成), FvwmIconBox (mwm IconBox のようなもの), FvwmIdent (ウィンドウの情報を 取 得), FvwmM4 (.fvwm95rc を m4 で前処理), FvwmPager (デス クトップの小型表示), FvwmSave (デスクトップ の 状 態 を .xinitrc の形式で保存), FvwmSaveDesk (デスクトップの状 態を fvwm95 コマンドの形式で保存), FvwmScroll (任 意 の ウィ ンドウにスクロールバーを付加), FvwmTalk (fvwm コマ ンドを対話的に実行), FvwmTaskBar (Win95 のようなタス ク バー ), FvwmWinList (ウィンドウの一覧) です。これらのモ ジュールにはそれ自身のオンラインマニュアルがありま す。 また、fvwm95 には含まれない他のモジュールも存在します。 モジュールは短命の一時的なプログラムであっても構いま せ ん し、FvwmButton のように X との対話中ずっとい続けるこ ともできます。モジュールは、ウィンドウマネージャが再 起 動 するか終了する前に、可能ならばそれによって終了させら れます。モジュールを紹介している節を参照してくださ い。 ModuleName が全ての組み込み関数名、および関数名と違って いれば、キーワード "module" は省略することができます。 ModulePath path SunOS 5.9 Last change: 19 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) これには、fvwm95 がモジュールを読み込むときにそれを探す パスのリストを ':' 区切りで指定します。個々のディレクト リは '/' で終わる必要はありません。環境変数ここで使用す ることもできます ($HOME や ${HOME} 等)。 Mouse Button Context Modifiers Function これは、マウス割り当てを定義しますが、Function が '-' の場合は逆にマウス割り当てを削除します。Button はボタン 番号です。Button が 0 の場合は、任意のボタンで指定さ れ た関数が実行されます。Context (コンテキスト) は、どこに 割り当てが適用されるかを記述します。有効なコンテキス ト は R (ルートウィンドウ)、W (アプリケーションウィンドウ )、T (ウィンドウタイトルバー)、S (上下左右のウィンド ウ の境界にあるサイドバー)、F (ウィンドウの角にある L 字型 のウィンドウフレーム)、I (アイコンウィンドウ)、0 から 9 までの数字 (タイトルバーボタン)、またはこれらの文字の任 意の組み合わせです。A は、タイトルバーを除く任意のコ ン テ キ ス トを意味します。例えば、FST というコンテキスト は、タイトルバーボタン以外の、ウィンドウの境界全てに 適 用されることになります。 Modifiers (修飾キー) は、N (修飾キーなし)、C (Ctrl キー )、S (Shift キー)、M (Meta キー)、A (任意の修飾キー) の 任意の組み合わせです。例えば、SM と い う Modifier は Meta キーと Shift キーの両方が押された場合に適用されま す。X11 で定義される修飾キーmod1 から mod5 も、数字の 1 から 5 で表現されます。 Function には、fvwm95 の組み込み関数の一つを与えます。 タイトルバーボタンは、奇数番号は左に、偶数番号は右に 番 号 づけされています。小さい番号のボタンがウィンドウの外 側へ、大きい番号のボタンがウィンドウの真ん中に来るよ う に表示されます (0 は 10 の省略形)。要するに、 1 3 5 7 9 0 8 6 4 2 のようになります。動作が割り当てられた最も大きい奇数 番 号 のボタンは、タイトルバーの左側に表示されるボタンの数 を決定し、最も大きい偶数番号のボタンは右側に表示され る ボ タ ン の数を決定します。動作はマウスボタンにも、キー ボードのキーにも割り当て可能です。 Move [ x y ] これは、ユーザがウィンドウを動かせるようにします。 ウィ ン ド ウ 内部、またはその境界のどこかから呼び出された場 合、そのウィンドウが移動されます。ルートウィンドウで 呼 び 出された場合、ユーザはその後、移動するウィンドウを選 SunOS 5.9 Last change: 20 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) 択することになります。 オプション引数の x, y を指定した場合、ウィンドウはそ の 左上の角がその場所 (x,y) になるように移動されます。x, y の単位はスクリーンの百分率ですが、文字 "p" が各座標値に 追加されるとそれはピクセル単位での指定となります。 例: Mouse 1 T A Move Mouse 2 T A Move 10 10 Mouse 3 T A Move 10p 10p 最初の例では、対話的な移動が指示されています。2 つ目 の 例 は、タイトルバーが選択されたウィンドウを、その左上の 角がスクリーンの左端からスクリーン幅の 10% だけ右、スク リーンの上からスクリーンの高さの 10% だけ下の位置に移動 します。最後の例は、ウィンドウを (10,10) ピクセルの座標 の位置に移動します。 Nop これは何もしません。これは、メニューに空行や分離線を 入 れるのに使われます。メニュー項目として Nop " " を指定す ると空行が挿入され、Nop "" とすると分離線が挿入さ れ ま す。 これは、メニューに対するダブルクリック動作用にも使 うことができます。 Next [conditions] command これは、例えば Focus のような command を、全ての condi- tions ( 条件) を満たす次のウィンドウに実行します。条件 は、 "iconic", "!iconic", "CurrentDesk", "Visible", "!Visible", "CurrentScreen" などを含みます。さらに、条件に、それに マッ チした場合に実行させるようなウィンドウ名を指定する こともできます。そのウィンドウ名にはワイルドカード *, ? を 使 う ことができます。ウィンドウ名、クラス、リソース は、それにマッチするものを検索しようとするときに参照 さ れます。 None [conditions] command これは、すべての conditions (条件) を満たすウィンドウが 存 在 し な い 場 合 に command を実行します。条件は、 "iconic", "!iconic", "CurrentDesk", "Visible", "!Visi- ble", "CurrentScreen" を含みます。さらに、条件に、それにマッ チ させるためのウィンドウ名を指定することもできます。そ のウィンドウ名にはワイルドカード *, ? を使うことがで き SunOS 5.9 Last change: 21 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) ま す。ウィンドウ名、クラス、リソースは、それにマッチす るものを検索しようとするときに参照されます。 OpaqueMoveSize percentage これは、fvwm95 に、不透過型ウィンドウ変化を使うべき最大 ウィンドウサイズを知らせます。percentage は全スクリーン 領域に対する百分率を意味します。 "OpaqueMove 0" の場合、全てのウィンドウが旧式のゴム ひ も型の外枠 (透過型ウィンドウ変化) を使って移動され、 "OpaqueMove 100" では、全てのウィンドウが、ちゃんと 中 身 の詰まったウィンドウとして移動されます。デフォルトは "OpaqueMove 5" で、これにより小さなウィンドウは不透過的 に、 大 き なウィンドウはゴムひもで移動することになりま す。 PipeRead cmd これは、fvwm95 に cmd という名前のプログラムから出力 さ れ る コ マンドを読み込まさせます。これは、例えば、ある ディレクトリの内容に応じて動的にメニュー項目を作り上 げ る、といった場合に有用です。 PixmapPath path これには、ピクスマップ形式 (カラー) のアイコン画像が 置 かれているディレクトリのフルパス名を、 ':' 区切りで指定 します。それぞれのパスは '/' で始まっていなければなりま せ ん。環境変数をここで使用することもできます ($HOME や ${HOME} 等)。 Popup PopupName この組み込み関数は、2 つの目的を持っています: 一つ は、 メ ニューをキーやマウスボタンに割り当てること、もう一つ は、メニューに子メニューを割り当てることです。それぞ れ の書式は、少し違いがあります。 あらかじめ定義されたポップアップメニューを、キーまた は マウスボタンに割り当てる方法: 次の例は、"Window Ops" と呼ばれるポップアップメニュー をマウスボタン 2,3 に割り当てます。メニューは、ウィン ドウフレームかサイドバー、タイトル バー で 修 飾 キー (Shift,Ctrl,Meta) なしでボタン 2, 3 のどちらかが押さ SunOS 5.9 Last change: 22 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) れた場合にポップアップします。 Mouse 2 FST N Popup "Window Ops" Mouse 3 FST N Popup "Window Ops" ポップアップメニューは、組み込み関数 Key を 使っ て、 キー に割り当てることも可能ですし、キーに割り当てれば マウスなしで、上下の矢印キーとリターンキーで操作す る ことも可能です。 あらかじめ定義されたポップアップメニューを、他のメニュー に子メニューとして割り当てる方法: 以下の例は子メニュー"Quit-Verify" を定義 し、 そ れ を "RootMenu" という親メニューに割り当てています: AddToMenu Quit-Verify "Really Quit Fvwm?" Title + "Yes, Really Quit" Quit + "Restart Fvwm95" Restart fvwm95 + "Restart Fvwm2" Restart fvwm2 + "Restart Fvwm 1.xx" Restart fvwm + "" Nop + "No, Don't Quit" Nop AddToMenu RootMenu "Root Menu" Title + "Open an XTerm Window" Popup NewWindowMenu + "Login as Root" Exec xterm -fg green -T Root -n Root -e su - + "Login as Anyone" Popup AnyoneMenu + "Remote Hosts" Popup HostMenu + "" Nop + "X utilities" Popup Xutils + "" Nop + "Fvwm Modules" Popup Module-Popup + "Fvwm Window Ops" Popup Window-Ops + "" Nop + "Previous Focus" Prev [*] Focus + "Next Focus" Next [*] Focus + "" Nop + "Refresh screen" Refresh + "Recapture screen" Recapture + "" Nop + "Reset X defaults" Exec xrdb -load $HOME/.Xdefaults + "" Nop + "" Nop + "Quit" Popup Quit-Verify Popup は、単なるクリックでは居続けない、という点 で Menu と異なります。居続けないのは Twm スタイルのポップアップメ ニューですが、これはやや手首に負担となります。 Menu は、 Motif、 あるいは Microsoft-Windows スタイルのメニューで、 単一クリック動作で居続けます。 SunOS 5.9 Last change: 23 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) Prev [conditions] command これは、例えば Focus のような command を、全ての condi- tions ( 条件) を満たす前のウィンドウに実行します。条件 は、 "iconic", "!iconic", "CurrentDesk", "Visible", "!Visible", "CurrentScreen" などを含みます。さらに、条件に、それに マッ チした場合に実行させるようなウィンドウ名を指定する こともできます。そのウィンドウ名にはワイルドカード *, ? を 使 う ことができます。ウィンドウ名、クラス、リソース は、それにマッチするものを検索しようとするときに参照 さ れます。 Quit これは fvwm95 を終了しますが、それは通常 X の終了も引き 起こします。 Raise これでウィンドウを上 (前面) に上げることができます。 RaiseLower 上 (下) がっているウィンドウを下 (上) に下 (上 ) げ ま す。 Read filename これは fvwm95 に filenameP という名前のファイルからコマ ンドを読み込まさせます。 Recapture これは fvwm95 に、全てのウィンドウ管理をやり直させま す ( ウィンドウの再捕獲)。これは、直前のスタイルパラメータ を確実に使用します。再捕獲の際には画面が乱されます。 Refresh これはスクリーンの全てのウィンドウを再描画させます。 Resize [ x y ] これによりウィンドウの大きさの変更 (リサイズ) が行え ま す。 SunOS 5.9 Last change: 24 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) オプション引数 x, y が与えられた場合、ウィンドウはそ の 大 きさが横 x, 縦 y であるように変更されます。x, y の単 位はスクリーンに対する百分率ですが、文字 "p" を各座標に つけた場合はピクセル単位となります。 Restart WindowManagerName これは、WindowManagerName が "fvwm95" の場合は、 fvwm95 を 再起動させますし、WindowManagerName が "fvwm95" 以外 の場合は、その他の指定されたウィンドウマネージャに切 り 替 えます。そのウィンドウマネージャがデフォルトの検索パ スにない場合、WindowManagerName はフルパスで指定する 必 要があります。 このコマンドは、後ろに & やコマンドライン引数をつけては い けませんし、環境変数を使うようにしてもいけません。以 下の例では、最初の 2 つのものは確かに失敗しますが、3 つ 目のものは OK です: Key F1 R N Restart fvwm & Key F1 R N Restart $(HOME)/bin/fvwm Key F1 R N Restart /home/nation/bin/fvwm SendToModule modulename string これは、任意の文字列 (引用符で囲む必要はあり ま せ ん ) を、modulename にマッチする全てのモジュールに送ります。 modulename には、ワイルドカードを使うこともできます。こ れ は、そのモジュールが文字列を認識し処理するように作ら れている場合にのみ意味を持ちます。そし て、 こ れ は モ ジュー ル間の通信や、モジュール内のより複雑な実装に利用 することができます。 Scroll horizontal vertical これは仮想デスクトップのビューポートを、x-方向 に hor- izontal ペー ジ だけ、y 方向に vertical ページだけスク ロールします。一方、あるいは両方の指定は負の値にもで き ます。horizontal と vertical の両方の単位は、ページのサ イズに対する百分率 (パーセント) ですから、 "Scroll 100 100" は丸々1 ページ分だけ右下にスクロールすることを意味 し、"Scroll 50 25" は右にページの半分、下にページの 1/4 だ け ス クロールします。スクロール関数はポップアップメ ニューからは呼んではいけません。スクロールは通常その デ スクトップの端で止まります。 horizontal と vertical の百分率が 1000 倍してあると、ス SunOS 5.9 Last change: 25 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) ク ロー ル はデスクトップの端を越えて反対側の端に戻りま す。"Scroll 100000 0" が何度も実行された場合、fvwm95 は 各 実行で隣のデスクトップへ移動し、そしてデスクトップの 端で巻き戻しされ最初のデスクトップに戻りますので、順 番 に全てのページに当たることになります。 文字 "p" を各座標 (horizontal や vertical) の後ろに追加 すると、スクロールの単位はピクセルになります。 Stick これは、sticky (くっつく) でないウィンドウを sticky に し、 既に sticky のウィンドウを sticky でないようにしま す。 StickyColors textcolor backgroundcolor これには、sticky な (くっついた) ウィンドウのタイ ト ル バーの文字色と背景色を指定します。 Style windowname options このコマンドは古い fvwm 1.xx の大域 的 な コ マ ン ド : NoBorder, NoTitle, StartsOnDesk, Sticky, StaysOnTop, Icon, WindowListSkip, CirculateSkip, SuppressIcons, BoundaryWidth, NoBoundaryWidth, StdForeColor, StdBackColor を、柔軟で包括的なウィンドウ毎の単一のコマ ン ドに置き換えようとします。このコマンドは、ウィンドウ の属性にデフォルトとは異なる値を設定したり、ウィンド ウ マ ネージャのデフォルトスタイルを設定したりするのに使わ れます。 windowname は、ウィンドウ名、ウィンドウクラス、またはリ ソー ス 文 字列のいずれでも構いません。これにはワイルド カード *, ? を含めることも可能ですが、これらは 通 常 の Unix のファイル名に使われる場合と同じ意味です。これらは 上に述べたことの逆順に検索され、それによりリソース文 字 列 による Style コマンドはクラス名による Style コマンド で上書き、あるいは追加され、クラス名による Style コマン ドは名前による Style コマンドで上書き、あるいは追加され ます。 注意: 名前 (WM_NAME) を持たないウィンドウは "Untitled" と い う 名 前 に よっ て 与 え られ、クラス (WM_CLASS, res_class) を持たないウィンドウは "NoClass" というク ラ ス によって、リソース (WM_CLASS, res_name) を持たないリ ソースは "NoResource" というリソースによって与えられ ま す。 SunOS 5.9 Last change: 26 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) options は、以下のキーワードの幾つかを含む、, (コンマ ) で 区 切 ら れ た リストです: BorderWidth, HandleWidth, NoIcon/Icon, TitleIcon, IconBox, NoTitle/Title, NoHandles/Handles, WindowListSkip/WindowListHit, CirculateSkip/CirculateHit, StaysOnTop/StaysPut, Sticky/Slippery, StartIconic/StartNormal, ForeColor, BackColor, StartsOnDesk/StartsAnyWhere, IconTitle/NoIconTitle, MWMDecor/NoDecorHint, MWMFunctions/NoFuncHint, HintOverride/NoOverride, NoButton/Button, OLDecor/NoOLDecor, StickyIcon/SlipperyIcon, SmartPlacement/DumbPlacement, RandomPlacement/ActivePlacement, DecorateTransient/NakedTransient, SkipMapping/ShowMapping, UseStyle, NoPPosition/UsePPosition, Lenience/NoLenience, MouseFocus|FocusFollowsMouse/SloppyFocus/ClickToFocus 上のリストにおいて、いくつかのオプションはスタイルオ プ ション/反スタイルオプションの形式になっています。反スタ イルオプションが含まれている項目では、それが fvwm95 で の デフォルトを意味し、それは fvwm95 のデフォルトの振舞 いを変更したい場合に利用できます。 Icon は、アイコンの白黒画像またはカラー画像として使用す る ファイル名を、引用符には入れない文字列引数として取り ます (オプション引数)。 IconBox は数値引数を取ります: IconBox l t r b ここで、l は左の座標で、同様に t は上、r は右、b は下の 座 標です。負の座標は、スクリーンの右下からの距離を意味 します。アイコンボックスはスクリーン内のある 領 域 で、 fvwm95 は他のアイコンと重ならない限りアイコンをそのウィ ンドウに出力しようとします。 StartsOnDesk は、そのウィンドウが最初に置かれるべきデス ク トップ番号を引数に取ります。標準的な Xt プログラムで はそれをリソースを使っても指定できる ( 例 え ば "-xrm '*Desk: 1'") ことに注意してください。 BorderWidth は、リサイズハンドルを持たないウィンドウ に つける境界の幅を引数として取ります。 HandleWidth は、リサイズハンドルを持つウィンドウにつ け る境界の幅を引数として取ります。 Button と NoButton は、タイトルバーに含まれる/取り除 か れるボタンの個数を引数として取ります。 StickyIcon は、ウィンドウを、それがアイコン化されたとき SunOS 5.9 Last change: 27 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) に sticky (くっついたもの) にするので、有効なデスクトッ プの上でアイコンを元のウィンドウに復元できます。 MWMDecor は、fvwm95 に、mwm の装飾ヒント情報を 認 識 さ せ、 考慮させようとします。ときどきそれを利用するアプリ ケーションがあります。 MWMFunctions は、fvwm95 に、mwm 禁止操作ヒント情報を 認 識 させ、考慮させようとします。ときどきそれを利用するア プリケーションがあります。HintOverride は fvwm95 に mwm が 禁止する操作を隠しますが、これはあなたにとにかくその 操作を行わさせます。 OLDecor は、fvwm95 に olwm や olvwm のヒント情報を認 識 させ、考慮させようとします。これらは大くの古い XView や OLIT アプリケーションが使用します。 UseStyle は引数を一つ取り、それは他のスタイルの名 前 で す。 この方法では無関係なウィンドウ名を使うことができま すが、これにより新ためて設定し直すことなしにそれと同 様 の性質を継承することができます。例: 'Style "rxvt" UseS- tyle "XTerm"' SkipMapping は、fvwm95 にそのウィンドウが最初に配置され る ときに、それが乗っているデスクトップを変更しないよう に伝えます (StartsOnDesk で有用です)。 Lenience は、ICCCM の勧告を無視するように fvwm95 に指示 し ます。これは、あるアプリケーションが wm_hints 構造体 の input フィールドを False にセットした場合は、それ は ウィ ンドウマネージャがそれに入力フォーカスを渡すことを 決して望まない、と述べています。私が知る、これを必要 と す る唯一のアプリケーションは sxpm ですが、それは簡単に 修正されるばかげたバグであり、そのプログラムへの全体 的 な 効果は全く何もありません。他にも問題を持つ古いアプリ ケーションがあるという噂です。 ClickToFocus は、そのウィンドウがクリックされたと き に フォー カスをそのウィンドウに与えるように fvwm95 に指示 します。MouseFocus (またはその別 名 で あ る FocusFol- lowsMouse) は、マウスポインタがそのウィンドウに入ったと きに直ちにフォーカスをそのウィンドウに与え、ポインタ が ウィ ン ドウから出たらフォーカスも持ち去るように fvwm95 に指示します。SloppyFocus も同様ですが、ポインタが ウィ ン ドウから出てもルートウィンドウや ClickToFocus ウィン ドウ上を通過している間 (そこでクリックしていない場 合 ) はフォーカスを手放しません。ClickToFocus は、フォーカス を失わずにマウスを外に出すことを可能にします。 NoPPosition は、新しいウィンドウを追加したときに、 PPo- sition フィールドを無視するように fvwm95 に指示します。 PPosition フィールドに固執するアプリケーションもある の SunOS 5.9 Last change: 28 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) で すが、そういったものを持っていなければ、これは頭の痛 い問題です。 RandomPlacement は、通常ユーザに配置させるウィ ン ド ウ を、 ごくわずかにランダムな位置に自動的に配置しようとし ます。最もいいのは RandomPlacement と SmartPlacement の 両方を使うことです。 SmartPlacement は、通常ユーザに配置させるウィンドウを、 ス マートな位置、つまりそのスクリーン上の他のウィンドウ とは重ならない位置に自動的に配置しようとします。その よ う な場所が見つからなかった場合は、最後の手段としてユー ザ配置、またはもし指定されていればランダム配置 (Random- Placement) が 使用されます。最もいいのは、RandomPlace- ment と SmartPlacement の両方を使うことです。 例: # fvwm95 のデフォルトの挙動を、タイトルバーなしに変更 # デフォルトのアイコンも定義 Style "*" NoTitle,Icon unknown1.xpm, BorderWidth 4,HandleWidth 5 # ウィンドウ毎の変更: Style "Fvwm*" NoHandles,Sticky,WindowListSkip,BorderWidth 0 Style "FvwmPager" StaysOnTop, BorderWidth 0 Style "*lock" NoHandles,Sticky,StaysOnTop,WindowListSkip Style "xbiff" Sticky, WindowListSkip Style "FvwmButtons" NoHandles,Sticky,WindowListSkip Style "sxpm" NoHandles Style "makerkit" # タイトルバーを xterm にのみ復活 Style "xterm" Title Style "rxvt" Icon term.xpm Style "xterm" Icon rterm.xpm Style "xcalc" Icon xcalc.xpm Style "xbiff" Icon mail1.xpm Style "xmh" Icon mail1.xpm, StartsOnDesk 2 Style "xman" Icon xman.xpm Style "matlab" Icon math4.xpm, StartsOnDesk 3 Style "xmag" Icon magnifying_glass2.xpm Style "xgraph" Icon graphs.xpm Style "FvwmButtons" Icon toolbox.xpm Style "Maker" StartsOnDesk 1 Style "signal" StartsOnDesk 3 ウィンドウに対する全ての属性は、OR で認識されることに注 意 してください。上の例では、"FvwmPager" はウィンドウ名 が完全に一致する行により属性 StaysOnTop を取得 し ま す が、 "Fvwm*" に も マッチするために NoHandles, Sticky, SunOS 5.9 Last change: 29 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) WindowListSkip も取得し、"*" にもマッチするために NoTi- tle も取得します。一つのウィンドウに対して相反するスタ イルが指定された場合は、最後に指定されたスタイルが使 わ れます。 NoIcon 属性がセットされると、指定されたウィンドウはそれ が アイコン化されたときに単に消えてしまいます。そのウィ ンドウはウィンドウリストから復帰できます。Icon が引数な しにセットされた場合、NoIcon 属性が解除されますがアイコ ンは何も指定されていないことになりま す。 FvwmPager モ ジュールアイコンのみ存在することを許す例: Style "*" NoIcon Style "Fvwm Pager" Icon Title これは何もしません。これは popup や menu にタイトル行を 挿入するのに使われます。 WarpToWindow x y これは、カーソルを関連づけられたウィンドウへジャンプ さ せ ます。パラメータ x, y はデフォルトでの位置で、ウィン ドウの左上の角から右下への百分率で表した値です ('p' を 数字に追加した場合はピクセル単位になります)。 Wait name この組込み関数は、fvwm95 関数内でのみ使われることを意図 しています。これは関数の実行を、name という名前の新しい ウィンドウが現われるまで一時停止します。fvwm95 はその停 止 の 間完全に機能し続けます。これは、特に InitFunction 内で、ウィンドウを指定したデスクトップ上で起動したい 場 合に便利です: AddToFunc InitFunction "I" exec xterm -geometry 80x64+0+0 + "I" Wait xterm + "I" Desk 0 2 + "I" Exec xmh -font fixed -geometry 507x750+0+0 + "I" Wait xmh + "I" Desk 0 0 上の関数は、xterm を現在のデスクトップ上で起動し、そ れ が配置されるまで待ち、そしてデスクトップ 2 に切りかえて xmh を起動します。xmh ウィンドウが現れた後で、制御を デ スクトップ 0 に移します。 SunOS 5.9 Last change: 30 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) WindowList options これは、現在デスクトップにある個々のウィンドウのタイ ト ル と (オプションで) その配置情報を表示したポップアップ メニューを生成します (そしてそれをポップアップします)。 ア イコン化されたウィンドウの配置情報はカッコでくくられ て表示されます。そのウィンドウの一覧のポップ アッ プ メ ニュー からある項目を選択すると、そのウィンドウが現在そ のデスクトップ上になければそのウィンドウをそこ に 移 動 し、 デスクトップのビューポートをそのウィンドウの左上の 角が含まれるページへ移動し、そのウィンドウがアイコン 化 さ れ て いれば復元し、そのウィンドウを前面に出します。 WindowList コマンドには、以下のオプションの一つ、または 複 数のオプション引数をスペース区切りで与えることができ ます: ShowAllDesks - 全てのデスクトップの全ての ウィ ン ド ウ (WindowSkipList 命令で上げられたものを除く) を表示しま す。これはデフォルトです。 ShowCurrentDesk - 現在のデスクトップ上のウィンドウの み 表示します。 ShowDesk n - デスクトップ番号 n のウィンドウのみを表 示 します。 ShowGeometry - これを指定すると、各ウィンドウの配置情報 も リストに追加します。デフォルトではこのオプションは無 効になっています。 UseWindowNames - 各ウィンドウは、そのウィンドウ (タイト ルバー) 名で表示されます。これがデフォルトです。 UseIconNames - タイトル名の代わりにウィンドウのアイコン 名が使われます。 WindowFont fontname これは、ウィンドウのタイトルバー用に、"fixed" の代わ り に fontname と いう名前のフォントを fvwm95 に使わせま す。 WindowsDesk new_desk これは、設定されたウィンドウを new_desk と指定された デ スクトップへ移動します。 XORvalue number これは、ゴムひも状のウィンドウの移動やサイズ変更を行 う SunOS 5.9 Last change: 31 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) ときに、値をビット毎の XOR で変更します。この値の設定は 試行錯誤で行ってください。 + これは、直前に指定された関数やメニューに追加し続ける の に使われます。AddToFunc や AddToMenu での議論を参照して ください。 キーボードショートカット 全て (私の考えるに) のウィンドウマネージャの操作は、キーボー ドから行うこともでき、マウスなしの操作が可能になっています。 Scroll 組込み関数を適当なキーに割り当てることで仮想 デ ス ク トッ プ を巡回できるだけでなく、ポップアップ、移動、サイズ変 更、その他ほとんどの組込み関数をキーに割り当てられます。その 場合組込み関数が一度開始されると、マウスポインタは上下左右の 矢印キーを使って移動され、その動作はリターンを打つことで終了 します。シフトキーを押すとポインタの移動はより大きなステップ になり、コントロールキーを押すとポインタの移動はより小さなス テッ プ になります。矢印キーの代わりに、標準的な emacs や vi のカーソル移動制御 (^n, ^p, ^f, ^b, 及び ^j, ^k, ^h, ^l) を 使うこともできます。 設定例の提供 fvwm95 配布物に、設定ファイル .fvwm95rc のサンプルファイルが 提 供 さ れ ています。これには十分にコメントが書かれていて、 fvwm95 の設定ファイルの設定例の原本として使用できます。 マルチスクリーンディスプレイ上での使用について コマンドライン引数 -s を指定しないと、fvwm95 は自動的に指 定 さ れ たディスプレイの全てのスクリーン上で起動します。fvwm95 が起動した後では個々のスクリーンは独立したものとして扱われ、 fvwm95 の再起動も、各スクリーンで別々に行わなくてはなりませ ん。マルチスクリーンディスプレイでは、EdgeScroll 0 0 を使 用 することを強く推奨します。 X との対話を完全に終了するには、個々のスクリーンで終了する必 要があるでしょう。 バグ fvwm 0.99 の時点では、丁度 39.342 個の正体不明のバグがありま したが、確認されたバグはほとんど修正され、その後 9.34 個のバ グが修正されました。確認されたバグ一つに対して、少なく と も SunOS 5.9 Last change: 32 Misc. Reference Manual Pages FVWM95-2.xx(late 20th century) 10 個のバグが存在すると仮定すると、39.342 - 9.34 + 10 * 9.34 = 123.402 個の正体不明のバグが現在まだ残っていることになりま す。この理屈の論理的帰結に従えば、プログラムのバグがない状態 にまでバグの個数が減少する前に、正体不明なバグの個数が無限大 になってしまうことになるでしょう。しかし倍精度まで要求しなけ れば、これはコンピュータプログラムでの無限大 = 3.4028e+38 で す から、現在のバグ発見の割合では、3.37e+27 年にはバグなしの 状態に達する見通しです。私はこのことを引き継いでいこうと考え ています。私の子供達に... 確認されているバグは、配布物のファイル BUGS、および TO-DO の リストに書かれています。 著者 多くの人々の助力により、Tom LaStrange によって書かれ た twm の コードを元に Robert Nation によって作成されました。しかし Rob は fvwm の作業からは '引退' したので、 現 在 は Charles Hines がその世話と供給を保守しています。 SunOS 5.9 Last change: 33