SunOS 5.9 1 Misc. Reference Manual Pages FVWM(2.xx) 名前 fvwm2 - X11 用の F(?) 仮想ウィンドウマネージャ(version 2.xx) 形式 fvwm [ options ] 説明 fvwm は X11 用のウィンドウマネージャです。これは twm を元 に 作られていて、メモリの消費を最小化するよう再設計され、ウィン ドウの枠の 3 次元的表示と簡単な仮想デスクトップを提 供 し ま す。 バージョン 2.xx は、1.xx よりごくわずかに多くのメモリを 使うのみですが、それはほぼ、いくつかの大域的なオプションを各 ウィンドウ毎のオプションにすることを可能にするためです。 fvwm は大きな仮想デスクトップと、別々に、あるいは一緒に使 用 できる複数の重ならないデスクトップの両方を提供します。仮想デ スクトップは、使用しているスクリーンが実際に広くなったかのよ うに見せてくれ、そしてそのデスクトップ内のあちこちをスクロー ルすることが可能です。複数の重ならないデスクトップは、実際に 複数のスクリーンを作業する場として持っているかのように見せて くれますが、個々のスクリーンはそれぞれ完全に独立しています。 fvwm はキーボードによる高速操作性も提供します。これによ り、 ウィンドウの移動やサイズの変更のような、たいていのウィンドウ マネージャの機能を実行できますし、キーボードショートカットを 使ってウィンドウマネージャのメニューの操作も行えます。 たいていのウィンドウマネージャが設定コマンドと組み込みコマン ド との違いを明確にしているのに対し、fvwm はその違いをあいま いにしています。典型的には設定コマンドはフォントの設定、色の 設定、メニューの内容やキー、マウスの機能割り当てなどを行いま す。一方、組み込みコマンドは典型的にはウィンドウの上げ下げな ど を行います。fvwm はそのような違いを持たないので、現実的な 範囲で、どんなものでもいつであっても変化させることが可 能 に なっています。 fvwm と他の X11 ウィンドウマネージャのその他の特筆すべき違い は、 SloppyFocus (だらしないフォーカス) とフォーカスをウィン ドウ毎に設定することを導入している点です。SloppyFocus は、 マ ウスに従うフォーカス (focus-follows-mouse) ですが、マウス がウィンドウから出てルートウィンドウ (背景のウィンドウ ) に 入っ てもそのフォーカスが消えない性質があります。SloppyFocus がデフォルトのフォーカススタイルとして使われている場合、通常 タ イ プ 入 力 し な いようなウィンドウ (xmag, xman, xgraph, xclock, xbiff 等) をマウスクリックに従うフォーカ ス (click- to-focus) にするといいでしょう。そうすれば、端末ウィンドウが 不必要にフォーカスを失うことはなくなります。 COPYRIGHTS (原文) Since fvwm is derived from twm code it shares twm's copy- rights. Since nearly every line of twm code has been SunOS 5.9 Last change: late 20th century 1 Misc. Reference Manual Pages FVWM(2.xx) changed, the twm copyright has been removed from most of the individual code files. I do still recognize the influence of twm code in the overall package, so fvwm's copyright is still considered to be the same as twm's. fvwm is copyright 1988 by Evans and Sutherland Computer Cor- poration, Salt Lake City, Utah, and 1989 by the Mas- sachusetts 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. 著作権 (日本語訳) fvwm は twm のコードからの派生物なので、fvwm は twm の著作権 を共有します。twm のほとんどすべてのコードは変更されています ので、ほとんどの個々のソースコードファイルからは twm の著 作 権 表 示は取り除かれていますが、私はパッケージ全体に渡る twm のコードの影響を今でも認識していますから、fvwm の著作権は 今 でも twm のものと全く同じと考えます。 fvwm は、1988 年にエバンス & サザーランドコンピュータ株式 会 社 (ユタ州ソルトレーク市)、1989 年にマサチューセッツ工科大学 (マサチューセッツ州ケンブリッジ市) による著作物で、全ての 権 利 が保護されています。1993 年と 1994 年にロバート・ネイショ ン (Robert Nation) によっても作成されています。 このソフトウェア、およびその付属文書の使用、複製、改変、配布 の許可は、任意の目的に対して、そして課金をしないならば、この 文書により、以下の条件の元で保証されます: 上の著作権通知が全 ての複製に含まれること、その著作権通知とこの許可通知の両方が SunOS 5.9 Last change: late 20th century 2 Misc. Reference Manual Pages FVWM(2.xx) 付属文書に含まれること、そして、このソフトウェアの配布に関し て、特に文書での許可をあらかじめ取っているのでなければ、エバ ンス & サザーランドと M.I.T の名前を公の広告に使用しな い こ と。 ロバート・ネイション、チャールズ・ハインズ、エバン ス & サ ザー ランド、そして M.I.T は、このソフトウェアに対して何の保 証もしませんし、市場性や適切さに対する暗黙の保証もしません。 どんな特殊な、間接的な、または結果として引き起こされた損害に 対しても、または、このソフトウェアの使用や性能から引き起こさ れる、あるいはそれに関係した使用不能や、データの損失、利益の 損失の結果としてのどんな損害に対しても、それらが契約、過失、 お よ びその他の不正行為によってであるかそうでないかに関わら ず、どんな場合でもエバンス & サザーランドと M.I.T は責任を負 いません。 ウィンドウの構造 fvwm は、ほとんどのウィンドウの周囲に装飾的な境界を つ け ま す。 この境界は、上下左右の 4 方向の辺上のまっすぐな棒 (bar) と 4 つの角にある小さな "L" 字型の部品からできています。さら に、タイトルバーと呼ばれる、ウィンドウ名を表示するのに使われ る棒を上辺に追加してつけることもできます。さらに、最大 10 個 までのタイトルバーボタンをその中に追加することもできます。上 辺や左右の辺、および底辺の棒はまとめてサイドバーと呼ば れ ま す。角の部品はフレームと呼ばれます。 標準的な初期化ファイルを修正しなければ、タイトルバー、または サ イドバーでマウスボタン 1 を押すと、ウィンドウの移動操作を 開始します。角の L 字部分でボタン 1 を押すとサイズ変更操作を 開 始します。境界の任意の箇所でボタン 2 を押すと、ウィンドウ 操作の一覧メニューを作り出します。 タイトルバーボタンは最大 10 個まで作れます。それらの使用は完 全にユーザが定義可能です。デフォルトの設定ではタイトルバーボ タンは、タイトルバーの両側に 1 つずつつきます。左端 の も の は、ウィンドウ操作の一覧メニューを作りだすもので、右端のもの は、ウィンドウのアイコン化用のものです。使用するタイトルバー ボ タ ンの数は、どれがマウス操作を割り当てられているタイトル バーボタンであるかに依存します。以下の "Mouse" 設定パラ メー タの節を参照してください。 仮想デスクトップ fvwm は、複数の仮想デスクトップを使いたい人に提供します。 ス ク リー ン は、 それより広くてもいい一つのデスクトップ上への ビューポート (視野) になります。いくつかの異なるデスクトップ にアクセスすることができます (個々のプロジェクト用に一つのデ スクトップ、あるいは表示アプリケーションが異なる場合の個々の アプリケーション用に一つのデスクトップ、といった利用を想定し SunOS 5.9 Last change: late 20th century 3 Misc. Reference Manual Pages FVWM(2.xx) ています)。デスクトップ一つ一つは、物理的なスクリーンサイ ズ よ りも大きくても構わなくて、それらは m x n 個の物理スクリー ンサイズのページに分割され、スクリーンよりも大きいサイ ズ の ウィンドウや、関連するたくさんのウィンドウのグループなどを簡 単に見ることができます。 仮想デスクトップのサイズ (m x n; すなわちページ数) は、組 み 込 みコマンド DeskTopSize を使っていつでも変更できます。すべ てのデスクトップは同じサイズになります。デスクトップの個数は 指定する必要はありませんが、全部でほぼ 40 憶個までに制限され ています。デスクトップの領域内のすべてのウィンドウ は Pager で見ることができますが、これはデスクトップをミニチュア表示し ます。この Pager は、モジュールと呼ばれる付属プログラムの 一 つで、ウィンドウマネージャの操作に必要不可欠なものではありま せん。FvwmWinList と呼ばれる別なモジュールによって、ウィンド ウ の 一覧を、そのそれぞれの位置に従った順で、ポップアップメ ニューか独立したウィンドウとしてアクセス可能できる形で、作成 することができます。 "Sticky" (粘着的) ウィンドウは、「スクリーンのガラスに張りつ く」ことで仮想デスクトップを越えるウィンドウです。それは常に スクリーン上に居続けます。これは、時計や xbiff (郵便受け) の ようなものには便利な機能で、そのような小道具をは一つ起動する だけで済みますし、それが常にあなたと共にいます。アイコンも、 望むならば、スクリーンに張りつくようにすることができます。 ウィンドウの位置や大きさの情報 (geometry) は、現在 の ビュー ポートに相対的に指定します。例えば、 xterm -geometry +0+0 これは、常にスクリーンの表示部分の左上の角に表示され ま す。 ウィンドウを仮想デスクトップに置くような geometry を指定する ことも可能ですが、スクリーンからは外れます。例えば、表示スク リー ンが 1000x1000 ピクセルの大きさであって、デスクトップサ イズが 3x3 (i.e. 一つのデスクトップが縦 3 行、横 3 列のス ク リーンからなる) であって、現在のビューポートがそのデスクトッ プの左上角にあるとき、 xterm -geometry +1000+1000 のようにすると、そのウィンドウはスクリーンの右下に外れ ま す が、 マ ウスをスクリーンの右下に持っていってスクリーンがスク ロールされるまで待てばそのウィンドウを見つけることがで き ま す。 ウィンドウを、現在有効なデスクトップではない別のデスクトップ 上に配置する方法は今のところはありませんが、もしかして知って いませんか ? SunOS 5.9 Last change: late 20th century 4 Misc. Reference Manual Pages FVWM(2.xx) geometry を以下のように指定した場合 xterm -geometry -5-5 一般的には、そのウィンドウの右下の角が、表示スクリーンの右下 の 角から 5 ピクセルの位置に置かれます。ただし、全てのアプリ ケーションが負の位置指定のウィンドウ geometry をサポートして いるわけではありません。 xterm や xfontsel のように、標準的な Xt (X toolkit) コマンド ラ イン引数と X リソースを解釈するようなアプリケーションに対 してはユーザは、起動時のデスクをコマンドラインで指定できます : xterm -xrm "*Desk:1" これは、xterm を番号 1 のデスクで起動します。しかし、全て の ア プ リケーションがこのオプションを認識するわけではありませ ん。 これと同じことは、あなたの .Xdefaults ファイルに以下の行を入 れることでも可能です: XTerm*Desk: 1 初期化 初期化の間、fvwm は設定ファイルを探します。それには、 キー、 マ ウ スボタンの割り当てや、他のいくつかのことが書かれていま す。そのファイルの書式に関しては後で述べます。まず、fvwm は .fvwm2rc と い う名前 (または、コンパイル時の設定によっては .fvwmrc という名前 - デフォルトでは .fvwm2rc) のファイルを、 ユーザのホームディレクトリ上で探します。それに失敗した場合、 システム共通の設定ファイルである /usr/lib/X11/fvwm/.fvwm2rc ( う ちの研究室では /usr/local/x11/lib/fvwm2/system.fvwm2rc) を検索します。そのファイルも見つからなかった場合、fvwm は 基 本的に使いものにはならないでしょう。 fvwm は、その子プロセスに引き継がれる環境変数を 2 つ設定しま す。一つは $DISPLAY で、これは fvwm が動作しているディスプレ イを意味します。$DISPLAY は unix:0.0 や :0.0 などで、これ は rsh を通して他のマシンを使っている場合はあまりうまくは効き ません。よって、$HOSTDISPLAY も設定され、これはネットワー ク 向 き の ディ ス プレイの記述になっています。$HOSTDISPLAY は TCP/IP 転送プロトコルを常に使います (ローカルな接続であっ て も ) ので、ローカルな接続には $DISPLAY を使うべきで、これは Unix ドメインソケットを使用し、こちらの方が高速です。 fvwm には 2 つの初 期 化 用 の 特 別 な 関 数、 InitFunction と RestartFunction を持っていて、これらはそれぞれ初期化 と再起動の時に実行されます。これらはユーザの rc ファイル (初 SunOS 5.9 Last change: late 20th century 5 Misc. Reference Manual Pages FVWM(2.xx) 期 設 定 ファ イ ル) で AddToFunc の機能 (後述) を使って、モ ジュールや xterm、その他 fvwm の起動時に立ち上げさせたいもの を何でも起動させるようにカスタマイズするようにできます。 fvwm は終了用の特別な関数名「ExitFunction」も持っていま す。 これは (それが定義されていれば)、fvwm の終了時、あるいは本当 に fvwm を終了させる前に再起動させたとき等の場合に実行されま す。それを定義すれば明示的にモジュールを殺したりするのに使え ます。 コンパイルオプション fvwm は、コンパイル時にいくつかの機能の使用を制限すること で メモリの使用を減らすことができるような色んな方法を用意してい ます。あるコマンドや機能の利用のトラブルがあれば、その機能が サ ポー トされるようにコンパイルされたかをチェックしてくださ い。必須でない機能は、Imake の設定ファイル Fvwm.tmpl に詳 し く書かれています。 アイコン 基本的な fvwm の設定は、twm 同様白黒のビットマップアイコンを 使うようになっています。XPM 拡張が有効な状態でコンパイルされ ている場合は、ctwm, MS-Windows, Macintosh などと同様にカラー のアイコンを使うことができます。そのオプションを使うためには XPM パッケージが必要ですが、それに関しては Imake の設定 ファ イル Fvwm.tmpl 内に書かれています。 SHAPE と XPM オプションの両方がついてコンパイルされている 場 合、形のあるカラーアイコンを使うこともできますが、それはとて も綺麗です。 モジュール モジュールは fvwm とは分離した形のプログラムで、fvwm とは 分 離 した Unix プロセスとして動作しますが、fvwm に実行させるコ マンドを fvwm に送信します。ユーザは、fvwm それ自身の完全 さ に影響を与えない、あるいは fvwm を肥大化させない、不気味な、 または奇妙な操作をするような自分のオリジナルのモジュールを書 くことも可能です。 モジュールのプロセスは、fvwm とモジュールの双方が通信でき る ような 2 つのパイプをセットできるように、fvwm によって生成さ れる必要があります。モジュールのためのパイプは、それが起動し たときに既にオープンされていて、パイプ用のファイルデスクリプ タはコマンドライン引数として与えられています。 モジュールプロセスは fvwm の初期化の際にモジュールオプション によって生成されるか、または、組み込みコマンド Module を使う ことによって X が動作している間の任意の時に生成されます。 モ ジュールは、X の起動中存在し続けることもできますし、一つの仕 事を行ってその後終了することもできます。fvwm が終了するよ う SunOS 5.9 Last change: late 20th century 6 Misc. Reference Manual Pages FVWM(2.xx) 命 令されたときにモジュールがまだ有効な場合、fvwm は通信用の パイプを閉じてモジュールからの SIGCHLD シグナルが来るのを 待 ちますが、それは、パイプが閉じたことをモジュールが検出し、そ して終了した、ということを示しています。モジュールがパイプが 閉 じたことの検出に失敗した場合、fvwm はほぼ 30 秒後に取りあ えず終了します。同時に実行できるモジュールの数は、同時に開け るファイルの最大数という OS の制限によって限定されますが、通 常は 60 から 256 の間です。 モジュールは単にテキストコマンドを fvwm の組み込みコマンドエ ンジンに送信するだけで、このテキストコマンドとは、設定ファイ ル .fvwm2rc の丁度マウス割り当ての場合のような書式です。サン プ ルモジュール FvwmButtons の中にあるように、ある補足の情報 も送信されます。モジュール FvwmButtons に関しては、 そ の マ ニュアルページに書かれています。 ICCCM 勧告への対応度 fvwm は ICCCM 1.1 への対応を試みています。さらに、ICCCM はア プリケーションが「任意の」キーストロークを受け取ることが可能 であるべきだと述べていますが、しかしこれは fvwm、および他 の ほとんどのウィンドウマネージャで利用されているショートカット キーの手法と両立しません。 ICCCM は、以下のプロパティを所有するウィンドウ: WM_HINTS(WM_HINTS): Client accepts input or input focus: False は、ウィンドウマネージャがキーボードフォーカスを与えるべきで はない、と言っていますが、そういったウィンドウは自分自身で入 力フォーカスを取得します。多くのアプリケーションがこのプロパ ティ を 設定していて、その上ウィンドウマネージャがキーボード フォーカスを与えてくれる、と思っているのです。だから fvwm は "Lenience" (Lenience = 寛大) というウィンドウスタイルを用意 し、fvwm がこの ICCCM の規則を大目に見ることができるようにし ています。 M4 による前処理 M4 による前処理は fvwm-2.0 ではモジュールとして提供されて い ま す。 詳細は man FvwmM4 を見てください。簡単に言うと、fvwm にあなたのファイルを m4 で処理させたい場合、に置き変 え て、 fvwm を次のように実行します: fvwm -cmd "FvwmM4 .fvwm2rc" CPP による前処理 SunOS 5.9 Last change: late 20th century 7 Misc. Reference Manual Pages FVWM(2.xx) cpp は C 言語のプリプロセッサです。fvwm-2.0 は m4 による前処 理 と全く同様の cpp による前処理も提供しています。それに関し ては、上の M4 の項目を、"m4" の部分を "cpp" と置き変えて読ん でみてください。 AUTO-RAISE ウィンドウはそれがフォーカスを得たとき、あるいはフォーカスを 得 て 数ミリ秒後に自動的に一番上に来るようにすることができま す。それには auto-raise モジュールである FvwmAuto を使用しま す。 オプション fvwm が認識するコマンドラインオプションは以下の通りです: -f config_file fvwm に、初期化ファイルとして、".fvwm2rc" の代 わ り に config_file を 読 み 込 ま させます。これは -cmd "Read config_file" と同等です。 -cmd config_command fvwm に、初期化コマンドとして "Read .fvwm2rc" をさせ る 代わりに config_command を使用します (10 個までの -f と -cmd パラメータを与えることが可能、それらは指定した順に 実行されること、に注意してください)。 -debug 同期モードでの X とのやりとりを出力します。動作は劇的に 遅 くなりますが、出力される fvwm の内部エラーメッセージ が正しいものであることは保証されます。また、これは fvwm に動作中のデバッグメッセージも出力させます。 -d displayname 環境変数 $DISPLAY による名前の代わりに "displayname" の 名前のディスプレイを制御します。 -s マルチスクリーンディスプレイ上で、 fvwm を 環 境 変 数 $DISPLAY、 ま た は -d オプションで与えられる名前のスク リーンのみで動作させます。通常は、マルチスクリーン ディ スプレイでは、fvwm は全てのスクリーン上で起動しようとし ます。 -version fvwm のバージョンを標準エラー出力に表示します。 設定ファイル 設定ファイルはキー割り当て、マウスボタン割り当て、色、 仮 想 ディスプレイサイズ、そしてそれらに関連する項目等を記述するの に使われます。初期設定ファイルの典型的な名前は ".fvwm2rc" で す。組み込み関数 "Read" を使えば、容易に別の設定ファイルをあ SunOS 5.9 Last change: late 20th century 8 Misc. Reference Manual Pages FVWM(2.xx) なたのしたいように読み込ませることが可能です。 '#' で始まる行は fvwm は無視します。'*' で始まる行 は (fvwm 自身の設定コマンドではなく) モジュールの設定コマンドが含まれ る行とみなされます。 fvwm の設定コマンドと組み込みコマンドとの間には特に違いは な く、組み込みコマンドの節で説明されているものはいずれも、それ を一つの行に書くことでそれが設定ファイルから読み込まれるとき に fvwm に実行させることも可能ですし、またはメニュー内やマウ スボタンやキーボードのキーに割り当てた実行コマンドとすること も可能です。どの関数が初期化用の意味を持ち、どの関数が実行時 に意味があるのか、ということを決めるのはユーザへの課題として 残されています。 組み込み関数 fvwm は組み込み関数群をサポートしていて、それはキーボード や マ ウスボタンに割り当てることができます。fvwm は一つのコマン ドにまず組み込み関数を見つけようとして、そしてそれに失敗した 場合はその指定されたコマンドが "Function (コマンドの残り)" という形なのか "Module (コマンドの残り)" のどちらであるかを調べます。こ れ により、設定ファイルに関してかなり透明な仕組みで、複雑な関数 やモジュールを呼び出すことが可能になります。 例: ファイル .fvwm2rc が "HelpMe" という行を持つとし ま す。 fvwm はまず "HelpMe" という名の組み込みコマンドがあるかどう かを調べますが、それはありません。次に、fvwm はユーザが定 義 し た "HelpMe" という名前の複雑な関数があるかどうかを探しま す。もし、そのようなユーザ定義関数 が な け れ ば、 fvwm は "HelpMe" という名のモジュールを実行しようとします。 fvwm の以前の版では、引用符は .fvwmrc ファイル内では危険で不 合 理なものでした。fvwm-2 現在ではこのほとんどが解消されまし た。引用符は、fvwm に 2 つ以上の単語を一つの引数と思わせると きのみに必要ですが、不必要な引用符の使用も許されています。文 字列内で引用符文字を使用したい場合は、バックスラッシュ(\) を 頭 に つけてエスケープする必要があります。例えば、Window-Ops という名前のポップアップメニューに対しては、引用符を使う必要 は なく、Popup Window-Ops とできますが、このダッシュ(-) をス ペース ( ) で置き変えた場合は引用符が必要で、 Popup "Window Ops" とする必要があります。 AddButtonStyle button [state] [style] [ -- [!]flag ... ] これは一つのボタンスタイルを button に割りあ て ま す。 button は、ボタン番号か、または "All", "Left", "Right" のいずれかです。 state は、 "ActiveUp", "ActiveDown", "Inactive" のいずれかです。state を省略すると、全ての状 態 (state) にそのスタイルが追加されます。ボタンスタイル SunOS 5.9 Last change: late 20th century 9 Misc. Reference Manual Pages FVWM(2.xx) とフラグがカッコでくくれば、一行に複数の状態 (state) の 定義を書くことができます。追加するボタンスタイルに対 す るフラグは、その後の定義では変更できません。 ボタンは、定義された順に書かれます。つまり、一番最近 定 義 さ れた ButtonStyle に始まり、それに追加した AddBut- tonStyle がそれに続きます。ボタンスタイルの定義の積み重 ね を消去するには、スタイルフラグを変更してください。有 効なスタイルとフラグに関する詳細については、ButtonStyle コマンドの項を参照してください。例: ButtonStyle 1 Pixmap led.xpm -- Top Left ButtonStyle 1 ActiveDown HGradient 8 grey black ButtonStyle All -- UseTitleStyle AddButtonStyle 1 ActiveUp (Pixmap a.xpm) ActiveDown (Pixmap b.xpm -- Top) AddButtonStyle 1 Vector 4 50x30@1 70x70@0 30x70@0 50x30@1 この例では、最初にボタンの全ての状態が一つのピクス マッ プ 画像に設定されています。2 行目は ActiveDown 状態をグ ラデーションに置きかえています (これは前の行で、全て の 状 態に対して同じスタイルとして割り当てたピクスマップ画 像の設定を無効にします)。そして、UseTitleStyle フラグが 全 てのボタンに対して設定され、それはボタンを描画する前 に fvwm に任意のスタイルを TitleStyle に設定させま す。 そ し て 最 後 に AddButtonStyle を使って、ActiveUp と ActiveDown の状態に追加のピクスマップ画像を設定し、全て の 状 態 の一番上に、ベクトルボタンスタイルが追加されま す。 AddTitleStyle [state] [style] [ -- [!]flag ... ] これはタイトルバーにタイトルスタイルを追加します。state は、 "ActiveUp", "ActiveDown", "Inactive" のいずれかで す。state を省略すると、全ての状態 (state) にそのスタイ ル が追加されます。ボタンスタイルとフラグをカッコでくく れば、一行に複数の状態 (state) の定義を書くことができま す。 このコマンドは、AddButtonStyle コマンド (上を参照) と全く同様です。 タイトルバーは、定義された順に書かれます。つまり、一 番 最 近 定 義 さ れた TitleStyle に始まり、それに追加した AddButtonStyle がそれに続きます。タイトルスタイルの定義 の 積み重ねを消去するには、スタイルフラグを変更してくだ さい。有効なスタイルとフラグに関する詳細につ い て は、 TitleStyle と ButtonStyle コマンドの項を参照してくださ い。 AddToDecor decor これは、decor という名前の装飾にコマンドを追加、転換 し SunOS 5.9 Last change: late 20th century 10 Misc. Reference Manual Pages FVWM(2.xx) ます。装飾 (decor) とは、ボタンスタイル (ButtonStyle)、 タイトルバースタイル (TitleStyle) 、ボーダース タ イ ル (BorderStyle)、ハイライトカラー(HilightColor)、ウィンド ウフォント (WindowFont) に影響を与える複数のコマンド の 集 合につけられた名前です。decor が存在しなかった場合は 作られますが、そうでなければ既に存在する decor が変更さ れます。 生成された装飾 (decor) は、任意のスタイル定義を除いたデ フォ ルトの fvwm の装飾と丁度同じものとして出発します。 与えられた装飾は、Style コマンドの UseDecor オプショ ン に より、ウィンドウの集合に適用できます。既に存在する装 飾を修正すると、現在それが割り当てられているウィンド ウ も影響を受けます。 AddToDecor の使用法は、AddToMenu, AddToFunc コマンド と 同 様 で、 違 いはそれらのメニューや関数が ButtonStyle, AddButtonStyle, TitleStyle, AddTitleStyle, BorderStyle, HilightColor, WindowFont コ マ ンドに変わるだけです。 AddToDecor で生成された装飾 は、 ChangeDecor, Destroy- Decor, UpdateDecor コ マ ン ド や、Style オプションの UseDecor などで操作できます。 以下は、装飾とスタイルを生成する例で、いずれも 名 前 は "flatness" です。同じ名前ですが、それらの実体は別もので す: AddToDecor flatness + ButtonStyle All ActiveUp (-- flat) Inactive (-- flat) + TitleStyle -- flat + BorderStyle -- HiddenHandles NoInset + HilightColor white navy Style "flatness" UseDecor flatness,Color white/grey40,HandleWidth 4 Style "xterm" UseStyle flatness 既に存在するウィンドウの装飾は ChangeDecor、あ る い は Style コマンドに続く Recapture で割り当て直すことができ ます。UpdateDecor により、全てのウィンドウの装飾、ま た は 特定の装飾一つを更新できます (これは装飾を変更した後 で有用で、Style オプションの変更の場合はその代 わ り に Recapture が必要になります)。装飾は、DestroyDecor で破 壊できます。 AddToMenu これはメニューの定義を開始、あるいはメニュー定義への 追 加 を行います。典型的なメニュー定義は例えば以下のように SunOS 5.9 Last change: late 20th century 11 Misc. Reference Manual Pages FVWM(2.xx) なります: 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 Fvwm" Popup Quit-Verify このメニューは、 Mouse 1 R A Menu Utilities Nop や Mouse 1 R A Popup Utilities のようにして呼びだすことができます。メニューの終りを 表 わ す記号はありません。メニュー同士が .fvwm2rc ファイル 内の隣接する領域で定義される必要もありません。上の例 の 引 用符で囲まれた部分はメニューラベルで、それはユーザが メニューをポップアップした際にそこに表示される も の で す。 残りの部分は組み込みコマンドで、それはユーザがその メニュー項目を選択したときに実行されるべきものです。 空 のメニューラベル ("") と Nop 関数は、メニューに仕切り線 を入れるのに使われます。 メニューラベルが '*' で始まる部分文字列を含む場合、 '*' で囲まれた文字列は xpm アイコンかビットマップファイルの 名前であるとみなされ、メニューに挿入されます。例えば、 + "Calculator*xcalc.xpm*" Exec xcalc は、"Calculator" というラベルのついたメニュー項目 を 作 り、その上に計算機の絵がつきます。以下の例: + "*xcalc.xpm*" Exec xcalc は、"Calculator" というラベルを省略しますが、絵は残りま す。 メニューラベルが '%' で始まる部分文字列を含む場合、 '%' で囲まれた文字列は xpm アイコンかビットマップファイルの 名前であるとみなされ、メニューラベルの左に挿入 さ れ ま SunOS 5.9 Last change: late 20th century 12 Misc. Reference Manual Pages FVWM(2.xx) す。例えば、 + "Calculator%xcalc.xpm%" Exec xcalc は、"Calculator" というラベルのついたメニュー項目 を 作 り、その左に計算機の絵がつきます。以下の例: + "%xcalc.xpm%" Exec xcalc は、"Calculator" というラベルを省略しますが、絵は残りま す。 これに使用される画像は小さいものであるべきです (で きれば 16x16)。 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 が SunOS 5.9 Last change: late 20th century 13 Misc. Reference Manual Pages FVWM(2.xx) AddToFunc MailFunction "I" Next [$0] Iconify -1 + "I" Next [$0] focus + "I" None [$0] Exec $0 $1 のようであったとすると、関数の最後の行は以下のように な ります。 + "I" None [xmh] Exec xmh -font fixed その展開は関数が実行されるときに行われますので、一つ の 関 数をありとあらゆる種類の異なる引数に対して使うことが できます。したければ、同じ .fvwm2rc ファイル内で、 Key F11 R A Function MailFunction zmail "-bg pink" とすることもできるわけです。$w を使った例は例えば: AddToFunc PrintFunction "I" Raise + "I" Exec xdpr -id $w $$ は $ と展開されることに注意してください。 Beep 期待される通り、これは端末のビープ音を生成します。 BorderStyle [state] [style] [ -- [!]flag ... ] これは、ウィンドウの境界のスタイルを定義しま す。 state は、"Active" か "Inactive" のいずれかです。state を省略 した場合、そのスタイルは両方の状態 (state) に対して設定 さ れます。スタイルとフラグをカッコでくくれば、一行に複 数の状態 (state) の定義を書くことができます。 style は、有効な ButtonStyle の部分 集 合 で、 そ れ は TiledPixmap (斜面の色にマッチする一様なピクスマップ画像 がこれに最も良く合います) のみが可能です。任意のフラ グ の 前 に "!" をつけた場合、そのフラグの意味は否定されま す。style を指定しなければ、スタイルをリセットせずに フ ラグを変更できます。 フラグ "HiddenHandles" は、ウィンドウ上で線で分離されて いる角のハンドル (corner handle) をハンドルで隠します ( このオプションは NoHandle のウィンドウには何の効果も 持 ちません)。デフォルトでは HiddenHandle は無効になってい ます。 フラグ "NoInset" は、HiddenHandles を補足します。これが 指 定された場合、ウィンドウの枠の内側の斜面は描画されま せん。HiddenHandles が指定されない場合は、このフラグ は 何の効果も持ちません。 SunOS 5.9 Last change: late 20th century 14 Misc. Reference Manual Pages FVWM(2.xx) アクティブ、非アクティブなウィンドウの境界を生地のピ ク スマップ画像で飾るには、以下のように指定します: BorderStyle Active TiledPixmap marble.xpm BorderStyle Inactive TiledPixmap granite.xpm BorderStyle Active -- HiddenHandles NoInset 両方の状態にスタイルをクリアするには: BorderStyle Simple 一つの状態の方をクリアするには: BorderStyle Active Simple 与えられた状態のフラグのセットを解除するには: BorderStyle Inactive -- !NoInset タイトルバーボタンは、UseBorderStyle フ ラ グ (Button- Style 参照) を使って、ボーダースタイルを継承することが できます。 ButtonStyle button [state] [style] [ -- [!]flag ... ] これは、タイトルバーボタンのボタンスタイルを設 定 し ま す。 button は、0 から 9 までのタイトルバーボタン番号、 または "All", "Left", "Right", "Reset" のうちのいずれか です。ボタン番号については Mouse の項 (下を参照) で説明 します。スタイルとフラグをカッコでくくれば、一行に複 数 の状態 (state) の定義を書くことができます。 state は、ボタンのどの状態にセットするのかを指 示 し ま す。 ボ タ ンの状態は以下のように定義されています: 状態 "ActiveUp" と "ActiveDown" は、アクティブ (有効) なウィ ン ドウのボタンが、それぞれ押されていない、押されている 状態を、状態 "Inactive" は非アクティブ (非有効) な ウィ ンドウのボタンを示しています。 state が ActiveUp, ActiveDown, Inactive の場合は、そ の 特 定のボタンの状態に対して設定されます。state が省略さ れた場合は、全ての状態に設定されます。スタイルを指定 す る と、 現 在のスタイルは破壊されます (これを避けるには AddButtonStyle を使用してください)。 style を省略すれば、現在のスタイルを破壊せずに、前の ボ タ ンスタイルに対する状態依存フラグを設定できます。例 ( SunOS 5.9 Last change: late 20th century 15 Misc. Reference Manual Pages FVWM(2.xx) 各行は独立に考慮されます): ButtonStyle Left -- flat ButtonStyle All ActiveUp (-- flat) Inactive (-- flat) 最初の行は全ての状態 (state) の左のボタンを平ら (flat) に設定しますが、2 行目は、ActiveUp と Inactive な状態に だけ、その全てのボタンを平ら (flat) に設定します (フ ラ グのみが変更され、その個々のスタイルは変更されません)。 全てのボタンをそのデフォルトにリセットしたいなら: ButtonStyle Reset ボタン 1 の ActiveUp の状態をデフォルトにリセットしたい なら: ButtonStyle 1 ActiveUp Default ボタン 1 の全ての状態を、ボタン番号 2 のデフォルトに リ セットしたいなら: ButtonStyle 1 Default 2 任意のボタンに対して、スタイルとフラグをカッコでくく れ ば 1 行で複数の状態に対する定義を指定できます。1 行に 1 つの定義しかしないなら、カッコは不要です。 flags は指定した state に影響を与えます。任意の flag に "!" をつけるとその振舞いは否定されます。利用できる、全 てのスタイルに対する状態依存フラグは、以下に記します ( 次の ButtonStyle の項では状態非依存フラグを扱います)。 "Raised" は、浮び上がったレリーフパターン (浮き彫り模様 ) を描画します。 "Sunk" は、沈み込んだレリーフパターンを描画します。 "Flat" は、レリーフパターンの描画を抑制します。 "UseTitleStyle" は、与えられたボタン状態に対して、ボ タ ン 自身のスタイルの前に現在のタイトルスタイルを描画させ ます。TitleStyle の Raised, Flat, Sunk のフラグは、この 文脈では冗長であり無視されます。 "UseBorderStyle" は、ボタンに装飾された BorderStyle の オプションを継承させます。 Raised, Sunk, Flat はお互いに排他的で、最初 の Button- Style に だけ指定できます。UseTitleStyle と UseBorder- Style も排他的です (しかし両方を同時に無効にはできま す SunOS 5.9 Last change: late 20th century 16 Misc. Reference Manual Pages FVWM(2.xx) )。デフォルトは Raised で、UseBorderStyle と UseTitleS- tyle はどちらも設定されていません。 ActiveDown 状態に対する重要な注意があります。ボタンが押 さ れ た 場 合、 そのレリーフは逆転されます。このため、 ActiveDown の状態で沈みこんだ状態にするには、望ん だ レ リー フの正反対のものを指定する必要があるのです (すなわ ち、盛り上がっているような、押し込まれた見た目を作る に は、 ActiveDown に Sunk を指定しなければいけません)。こ の仕様は首尾一貫したものなのですが、最初は紛らわしく 見 えるかもしれません。 ボタンスタイルは、非破壊的なもの、部分的に破壊 的 な も の、 完全に破壊的なもの、に分類されます。非破壊的なスタ イルは、画像に影響を与えません。部分的に破壊的なスタ イ ル は、下に横たわる画像 (ピクスマップ画像) を部分的、ま たは全ての部分を覆い隠すことができます。完全に破壊的 な ス タイルは下に横たわる画像全体を覆い隠します (Solid ま たはグラデーションスタイルの一つ)。よっ て、 AddButton- Style (またはタイトルバーに対する AddTitleStyle) でスタ イルを積み上げている場合は、それが最小限の重ね塗りに な るように並べ方に注意してください。 利用できるスタイルとその引数は、以下に記します (コン パ イ ル時の設定によって、利用できないボタンスタイルがある かもしれません)。 "Simple" スタイルは、何もしません。これには引数もありま せ んし、このスタイルは非破壊的なボタンスタイルの一例で す。 "Default" スタイルは、条件的に一つの引数を受け付けます: そ れ は 読み込むデフォルトのボタン番号を指定する番号で す。このスタイルコマンドが ButtonStyle か AddButton- Style で与えられると、引数は必須ではなくなります (与え た場合は現在のボタン番号に上書きします)。ButtonStyle と AddButtonStyle 以外で使われた場合は、番号は必ず指定しな ければいけません。 "Solid" スタイルは、ボタンを非透過色で塗り潰します。 レ リー フの境界色は影響を受けません。その色は一つの引数で 指定します。このスタイルは完全に破壊的です。 "Vector" スタイルは、直線による模様を描画します。これは 標 準的なボタンスタイルなので、キーワード "Vector" は省 略できますが、その指定は少し厄介です: ButtonStyle 2 Vector 4 50x30@1 70x70@0 30x70@0 50x30@1 この指定は、ボタン 2 の装飾に 4 点パターンを使用して い て、 影の色 (@0) の (x=50,y=30) から (70,70) への線分、 そこから影の色の (30,70) への線分、最後に明るい色 (@1) SunOS 5.9 Last change: late 20th century 17 Misc. Reference Manual Pages FVWM(2.xx) の (50,30) への線分から作られています。難しすぎますか ? 2,3 の例に関しては、.fvwm2rc のサンプルを参照してくださ い。このスタイルは部分的に破壊的です。 "VGradient", "HGradient" スタイルは、グラデーションスタ イ ルを表します。頭の H や V は、水平方向と垂直方向を意 味します。 このスタイルは次の 2 つの形式を持ちます: 1 つ目の形式は、線形グラデーションを指定します。 引 数 : 割り当てる色の総数 (2 から 128 まで)、最初の色、 最後の色。 2 つ目の形式は、非線形グラデーションの指定です。引数: 割り当てる色の総数 (2 から 128 まで) と、いくつかのパ ラメータブロック。各ブロックで、最初の色、増加の割 合 (%)、最後の色を指定します。各ブロックは、直前のブロッ クの色から開始します。全ての割合 (%) の合計は 100 で ある必要があります。 例: TitleStyle VGradient 16 3 Red 20 Blue 30 Black 50 Grey グラデーションスタイルは完全に破壊的です。 "Pixmap" スタイルは、ピクスマップ画像を表示します。ピク ス マップ画像は引数として指定します。例えば、以下のもの は、ボタン 2 の両方の状態に同じピクスマップ画像を与え、 ボタン 4 の up, down, inactive のそれぞれに異なるピクス マップ画像を与えます。 ButtonStyle 2 Pixmap my_pixmap.xpm ButtonStyle 4 ActiveUp (Pixmap up.xpm) ActiveDown (Pixmap down.xpm) ButtonStyle 4 Inactive Pixmap inactive.xpm ピクスマップ画像の指定は、絶対パス、相対パスのどちら の 指 定も可能です (PixmapPath 参照)。ピクスマップ画像が見 つかない場合、ボタンスタイルは Simple に戻ります。 Pix- map ス タ イ ル 特有のフラグは "Left", "Right", "Top", "Bottom" です。これらは、ピクスマップ画像の位置合わせに 使 われます (デフォルトは、両方向に対する中央合わせです )。ピクスマップ画像の透過性は、色 "None" に対して使用さ れます。このスタイルは、部分的に破壊的です。 "MiniIcon" スタイルは、Style コマンドの MiniIcon オ プ ショ ンが指定されたボタン内に、ウィンドウのミニチュアの アイコンを描画します。このボタンスタイルには引数はあ り SunOS 5.9 Last change: late 20th century 18 Misc. Reference Manual Pages FVWM(2.xx) ません。例: Style "*" MiniIcon mini-bx2.xpm Style "xterm" MiniIcon mini-term.xpm Style "Emacs" MiniIcon mini-doc.xpm ButtonStyle 1 MiniIcon "TiledPixmap" スタイルは、ボタンの背景として、 ピ ク ス マッ プ画像をタイル張りします。引数としてピクスマップ画 像を一つ指定します。ピクスマップ画像の透過性は使えま せ ん。このスタイルは、完全に破壊的です。 ButtonStyle button - [!]flag ... これは、指定されたボタンに対し状態に依存しないフラグ を 設 定します。状態に依存しないフラグは、ボタンの振舞いに 影響を与えます。各フラグは、スペースで区切りま す。 "!" を フ ラグにつけると、その振舞いは否定されます。"Clear" は特別なフラグで、これは存在する任意のフラグを消去し ま す。 以下のフラグは、通常、MWM function hint によりどのボ タ ン が影響を受けるべきなのかを fvwm に通知するのに使われ ます。これは、例えば複雑な関数をボタンに割り当てられ る ように、自動的には行われないようになっています。 "MWMDecorMenu" は、メニューを表示するタイトルバーボタン に 割り当てます。デフォルトの割り当ては最も左のボタンで す。MWMFunction スタイルオプションを持つウィンドウが こ の ボタンを表示しないように要求した場合、それは隠されま す。 "MWMDecorMin" は、ウィンドウを最小化、あるいはアイコ ン 化 するタイトルバーボタンに割り当てます。デフォルトの割 り当ては、最も右から 2 つ目のボタンです。MWMFunction ス タ イルオプションを持つウィンドウがこのボタンを表示しな いように要求した場合、それは隠されます。 "MWMDecorMax" は、ウィンドウを最大化するタイトルバー ボ タ ンに割り当てます。デフォルトの割り当ては最も右のボタ ンです。MWMFunction スタイルオプションを持つウィンド ウ が このボタンを表示しないように要求した場合、それは隠さ れます。 ChangeDecor decor これは、ウィンドウの装飾を decor に変更します。decor は SunOS 5.9 Last change: late 20th century 19 Misc. Reference Manual Pages FVWM(2.xx) "Default"、 ま たは AddToDecor で定義された装飾の名前で す。decor が有効でない場合、何もしません。ウィ ン ド ウ 内、 あるいはその境界上のどこかで呼び出された場合は、そ のウィンドウに影響を与えます。ルートウィンドウ上で呼 び 出 された場合は、ユーザに対象となるウィンドウを選択させ ます。ChangeDecor は、AddToDecor コマンドを使って設定で きる属性にのみ影響を与えます。 ChangeDecor "CustomDecor1" ClickTime delay これには、組み込み関数がマウスクリック動作と認識す る、 ボタンを押してから離すまでの最大の時間間隔 (ミリ秒単位) を指定します。デフォルトの間隔は 150 ミリ秒です。 Close ウィンドウがウィンドウ削除プロトコルを受けつける場合 は そ のメッセージをウィンドウに送り、行儀よく消えてくれる か尋ねます。ウィンドウ削除プロトコルを理解しないウィ ン ドウの場合は、そのウィンドウを破壊します。 ColormapFocus [FollowsMouse | FollowsFocus] デフォルトでは、fvwm はカーソルが入っているウィンドウに カ ラーマップを割り当てます。ColormapFocus FollowsFocus を使うと、カラーマップは、現在キーボードフォーカスの あ るウィンドウのものになります。 Current [conditions] command これは、現在のウィンドウがすべての conditions を満た し た 場 合、そのウィンドウ上で command を実行します。条件 (conditions) は、以下のものから成 り ま す : "Iconic", "!Iconic", "Visible", "!Visible", "Sticky", "!Sticky", "Maximized", "!Maximized", "Transient", "!Transient", "Raised", "!Raised", "CurrentDesk", "CurrentPage", "CurrentPageAnyDesk"。さらに、条件には、マッチさせよ う と するウィンドウの名前を書くこともできます。ウィンドウ 名には、ワイルドカード *, ? を入れることも可能です。 そ の マッチするものの検索のときには、ウィンドウの名前、ア イコン名、クラス名、リソースが考慮されます。ウィンド ウ 名の最初に ! を置くこともできますが、その場合、ウィンド ウ名、アイコン名、クラス、リソースがそれにマッチする 任 意のウィンドウ上で、command の実行を防ぎます。 SunOS 5.9 Last change: late 20th century 20 Misc. Reference Manual Pages FVWM(2.xx) CursorMove horizontal vertical これは、マウスポインタを X 方向に horizontal ページ、 Y 方 向に vertical ページ移動します。これらの指定は負の値 でも構いません。horizontal, vertical の値はいずれもペー ジ サイズに対するパーセントを意味し、よって "CursorMove 100 100" は右下に丸々1 ページ分動かすことになります。 "CursorMove 50 25" は右に 1 ページの半分だけ、下 に 1 ペー ジの 1/4 だけ動かすことを意味します。CursorMove 関 数は popup menu では使うべきではありません。 CursorStyle context cursornum これは、指定された状況 (context) に対する新しいマ ウ ス カーソルを定義します。以下のような状況が指定できます。 POSITION - ウィンドウの初期配置時に使用 (XC_top_left_corner) TITLE - ウィンドウタイトルバー内で使用 (XC_top_left_arrow) DEFAULT - カーソル設定のないウィンドウ内で使用 (XC_top_left_arrow) SYS - タイトルバーボタン上で使用 (XC_hand2) MOVE - ウィンドウの移動とリサイズ時に使用 (XC_fleur) WAIT - EXEC 組込みコマンド時に使用 (XC_watch) MENU - メニュー上で使用 (XC_sb_left_arrow) SELECT - アイコン化などの色々な組込みコマンド用 (XC_dot) DESTROY - DESTROY, CLOSE, DELETE 組込みコマンド用 (XC_pirate) TOP - ウィンドウの上端の境界線上で使用 (XC_top_side) RIGHT - ウィンドウの右端の境界線上で使用 (XC_right_side) BOTTOM - ウィンドウの下端の境界線上で使用 (XC_bottom_side) LEFT - ウィンドウの左端の境界線上で使用 (XC_left_side) TOP_LEFT - ウィンドウの左上角で使用 (XC_top_left_corner) TOP_RIGHT - ウィンドウの右上角で使用 (XC_top_right_corner) BOTTOM_LEFT - ウィンドウの左下角で使用 (XC_bottom_left_corner) BOTTOM_RIGHT - ウィンドウの右下角で使用 (XC_bottom_right_corner) cursornum は、インクルードファイル X11/cursorfont.h で 定義されているカーソルの番号です。例: # kill カーソルを XC_gumby にする: CursorStyle DESTROY 56 それぞれのデフォルトは上のカッコの中に書いてあります。 Delete これは、ウィンドウに自分で消えてくれないかと尋ねる メッ セー ジを送りますので、通常アプリケーションは終了させら れます。 Desk arg1 arg2 これは他のデスクトップ (作業場、部屋とも呼ばれる) へ 切 SunOS 5.9 Last change: late 20th century 21 Misc. Reference Manual Pages FVWM(2.xx) り変えます。 arg1 が 0 でなければ切り代わる先のデスクトップ番号 は、 現 在のデスクトップ番号 + arg1 です。デスクトップ番号は 負でも構いません。 arg1 が 0 ならば、切り代わる先のデスクトップ番号は arg2 です。 有効 (active) なデスクトップの個数は動的に決定しま す。 有 効なデスクトップとは、ウィンドウを含むものか、現在表 示されているものを言いま す。 デ ス ク トッ プ 番 号 は -2147483648 から 2147483647 までの間である必要がありま す (それで十分でしょう ?)。 DeskTopSize HorizontalxVertical これは、物理的なスクリーンサイズを単位とした、仮想デ ス クトップのサイズを定義します。 Destroy これはアプリケーションウィンドウを破壊しますが、通常 そ れはアプリケーション (のプロセス) を壊してつぶします。 DestroyFunc これは関数を削除し、その後のその関数への参照が無効に な るようにします。これは、fvwm を動作させながら関数の内容 を変更する場合に使えます。その関数は AddToFunc を使って 再構成できます。 DestroyFunc "PrintFunction" DestroyDecor decor これは、AddToDecor で定義した decor を削除し、それに よ り、 こ の 後 この decor への参照が無効になります。この decor を使用しているウィンドウは fvwm のデフォルトの 装 飾 に戻ります。"Default" という名前の装飾は削除できませ ん。 DestroyDecor "CustomDecor1" SunOS 5.9 Last change: late 20th century 22 Misc. Reference Manual Pages FVWM(2.xx) DestroyMenu これはメニューを削除し、その後のそのメニューへの参照 が 無効になるようにします。これは、fvwm を動作させながらメ ニューの内容を変更する場合に使えます。その メ ニュー は AddToMenu を使って再構成できます。 DestroyMenu "Utilities" DestroyModuleConfig これはモジュール設定行を削除し、新しい設定行を代わり に 入れられるようにします。これは、fvwm を動作させながら、 fvwm を再起動させることなしにモジュールの動作の方法を変 更 するのに使えます。さらにその名前にはワイルドカードを 使うこともできます。 DestroyModuleConfig FvwmFormFore DestroyModuleConfig FvwmButtons* Echo string これは、メッセージを stderr に出力します。これは、多 分 あ なたの .fvwm2rc に書かれているものをデバッグするのに 有用でしょう。 Echo Beginning style defs... EdgeResistance scrolling moving これは、マウスがスクリーンの端を越えて動くときにデス ク トッ プビューポートを変更すること、及びスクリーンの端を 越えてウィンドウを動かすことの困難さを fvwm に 伝 え ま す。 最初のパラメータは fvwm がビューポートを動かす前にマ ウ ス ポインタが何ミリ秒、スクリーンの端にいなければいけな いかを意味します。これは、"EdgeScroll 100 100" を 使 う が、 彼らが望まないときに不意にページを自分でジャンプさ せてしまうような人を想定しています。 2 つ目のパラメータは、ウィンドウの端を、それが部分的 に ス クリーンから離れて実際に移動する前に、スクリーンの端 を越えて何ピクセル動かさなければいけないか、を意味し ま す。 "EdgeScroll 0 0" でも、現在のスクリーンの端をまた い で SunOS 5.9 Last change: late 20th century 23 Misc. Reference Manual Pages FVWM(2.xx) ウィ ンドウの移動や大きさの変更 (resize) がまだ可能であ ることに注意してください。最初のパラメータを EdgeResis- tance 10000 にすることで、このような移動等はできなくな ります。EdgeResistance を 10000 未満 (しかし 0 よりは大 ) にすると、ページを越えることは難しくはなりますが不可 能ではありません。 EdgeScroll horizontal vertical これには、カーソルがページの端に当たったときにページ を 何 パーセントスクロールさせるかを指定します。ページの端 に当たっても、何のページの切り変えもスクロールも望ま な い場合は、あなたの .fvwm2rc ファイルに "EdgeScroll 0 0" と書いてください。ページ全体を丸々スクロールさせたい な ら "EdgeScroll 100 100" としてください。horizontal と vertical は正の数である必要があります。 horizontal と vertical のパーセントが 1000 倍され た 場 合、 デスクトップの端でのスクロールは反対の端に戻ります (1 巻につながった形式 )。 例 え ば "EdgeScroll 100000 100000" を使用すると、fvwm はページを丸々スクロールし、 デスクトップの端では反対の端につながった形式にします。 Exec command これは command を実行します。Exec は、command の先頭 に 'exec' とつけたり、最後に '&' とつけたりする必要はあり ません。 以下の例はルートウィンドウ上で、修飾キーなしのファン ク ションキーF1 を exec 関数に割り当てています。プログラム rxvt は、オプション一揃いをともなって起動されます。 Key F1 R N Exec rxvt -fg yellow -bg blue -e /bin/tcsh ExecUseShell [shell] これは、Exec コマンドに、デフォ ル ト の Bourne shell (/bin/sh) の代わりに指定した shell か、または shell を 指定しなかった場合は $SHELL 環境変数で定義されている も のを使わせます。 ExecUseShell ExecUseShell /usr/local/bin/tcsh SunOS 5.9 Last change: late 20th century 24 Misc. Reference Manual Pages FVWM(2.xx) FlipFocus これは最後にフォーカスした 2 つのウィンドウのフォーカス を入れかえます。 Focus これは、必要なときに選択されたウィンドウが見え る よ う に、 ビュー ポー トやウィンドウを移動します。そしてキー ボードフォーカスを選択されたウィンドウに設定し、見え る の に必要ならウィンドウを前面に出します。しかしマウスポ インタは選択されたウィンドウにはジャンプ さ せ ま せ ん (WarpToWindow 関数参照) し、アイコン化されているウィン ドウを元に戻すこともしません。 Function FunctionName これは、あらかじめ定義された関数をキー、またはマウス ボ タンに割り当てるのに使われます。 以下の例は、マウスボタン 1 に "Move-or-Raise" と呼ば れ る 関数を割り当てます。この関数の定義は、このマニュアル の上の方の例にあります。この割り当ての行われた後、 fvwm は、ウィンドウタイトルバーのどこでボタン 1 が押されても move-or-rase 関数を実行することになります。 Mouse 1 T A Function Move-or-Raise "FunctionName" が fvwm の組み込み関数の名前と一致し な い場合、キーワード "Function" は省略できます。 GlobalOpts [options] これは、いくつかの大域的なオプションを設定するのに使 わ れる「一時的」なオプションで、これは今後 Style パラメー タとして、あるいは Style パラメータへのオプションとして 扱われることになるでしょう。現在は以下のものを扱います: SmartPlacementIsReallySmart/SmartPlacementIsNormal, ClickToFocusDoesntPassClick/ClickToFocusPassesClick, ClickToFocusDoesntRaise/ClickToFocusRaises, MouseFocusClickDoesntRaise/MouseFocusClickRaises GlobalOpts ClickToFocusDoesntPassClick, ClickToFocusDoesntRaise GotoPage x y これは、デスクトップビューポートをページ (x,y) に移動し ま す。一番左上のページが (0,0) で、右上が (M,0) です。 ここで、M は DeskTopSize コマンドで指定した現在の 水 平 SunOS 5.9 Last change: late 20th century 25 Misc. Reference Manual Pages FVWM(2.xx) ペー ジ 数 (horizontal) より 1 だけ小さい数です。左下の ページは (0,N) で右下は (M,N) です。ここで、N は Desk- TopSize コマンドで指定した、デスクトップの垂直方向のサ イズ (vertical) より 1 だけ小さい数です。この GotoPage 関数はポップアップメニューでは使うべきではありません。 HilightColor textcolor backgroundcolor これは、現在キーボードフォーカスを持つウィンドウの装 飾 の文字色と背景色を設定します。 IconFont fontname これは fvwm に、アイコンのラベル用とし て fontname の フォ ントを使用させます。これを省略した場合、(Font 設定 変数で指定される) メニューフォントが代わりに使用され ま す。 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 これは、キーボードのキーを、指定された fvwm の組み込 み SunOS 5.9 Last change: late 20th century 26 Misc. Reference Manual Pages FVWM(2.xx) 関 数に割り当てますが、Function が '-' の場合はその割り 当てを削除します。定義は、マウスの割り当てとほ ぼ 同 じ で、 そのマウス番号がキーに変わるだけです。keyname は、 /usr/include/X11/keysymdef.h ( 注 : Solaris で は /usr/openwin/include/X11/keysymdef.h) の中に書かれてい る項目のうちの一つで、その先頭の XK_ を取り除いたもので す。 引数 Context と Modifiers はマウスの割り当て Mouse と同様です。 以下の例は、マウスポインタがどこにあって も、 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 以下のようにすればウィンドウの幅がいっぱいの幅に広が り SunOS 5.9 Last change: late 20th century 27 Misc. Reference Manual Pages FVWM(2.xx) ます: Mouse 0 4 A Maximize 100 0 以下のものは、縦横の両方向がスクリーンサイズの 半 分 に なったウィンドウを作成します: Mouse 0 4 A Maximize 50 50 100 より大きい値は用心して使ってください。 文字 "p" を各座標 (horizontal, vertical) につけると、大 きさの単位はピクセル単位になります。 Menu menu-name double-click-action これは、あらかじめ定義されたメニューを "sticky" な ( くっ ついた) 方式でポップアップさせます。すなわち、ユー ザがメニューをドラッグではなくクリックで呼び出 し た 場 合、 メ ニュー は 消 えずに出続けます。コマンド double- click-action は、メニューを作り出すときにユーザがダブル クリックした場合に呼び出されるものです。 MenuStyle forecolor backcolor shadecolor font style これは、メニュースタイルを設定します。白黒を使用して い る場合は色は無視されます。shadecolor は、メニューの選択 画面を描画するのに使われますが、これは、あるアプリ ケー ショ ンが指定した mwm-hint によって禁止 (あるいは非推 奨) されています。オプション style は "fvwm", "mwm" の いずれかで、これはメニューの見た目を変更します。 Module ModuleName これには、初期化の際に実行されるべきモジュールを指定 し ま す。 現 在利用できるモジュール (fvwm に含まれるもの) は、FvwmAudio (ウィンドウマネージャの操作とともに音を生 成 ), FvwmAuto (自動的に前面に持ち上げる), FvwmBacker ( デスクトップを変えたときに背景を変える), FvwmBanner ( ちょっとした XPM 画像を表示), FvwmButtons (カスタマイズ 可能なツールバーを生成), FvwmCpp (.fvwm2rc を cpp で 前 処 理), FvwmForm (対話型ツールの生成), FvwmIconBox (mwm IconBox のようなもの), FvwmIconManx (twm のアイコ ン マ ネー ジャのようなもの), FvwmIdent (ウィンドウの情報を取 得), FvwmM4 (.fvwm2rc を m4 で前処理), FvwmPager (デ ス ク トッ プ の 小型表示), FvwmSave (デスクトップの状態を .xinitrc の形式で保存), FvwmSaveDesk (デスクトップの 状 態を fvwm コマンドの形式で保存), FvwmScroll (任意のウィ ンドウにスクロールバーを付加), FvwmTalk (fvwm コマン ド SunOS 5.9 Last change: late 20th century 28 Misc. Reference Manual Pages FVWM(2.xx) を 対話的に実行), FvwmWinList (ウィンドウの一覧) です。 これらのモジュールにはそれ自身のオンラインマニュアル が あります。また、fvwm には含まれない他のモジュールも存在 します。 モジュールは短命の一時的なプログラムであっても構いま せ ん し、FvwmButton のように X との対話中ずっとい続けるこ ともできます。モジュールは、ウィンドウマネージャが再 起 動 するか終了する前に、可能ならばそれによって終了させら れます。モジュールを紹介している節を参照してくださ い。 ModuleName が全ての組み込み関数名、および関数名と違って いれば、キーワード "module" は省略することができます。 ModulePath path これには、fvwm がモジュールを読み込むときにそれを探すパ スのリストを ':' 区切りで指定します。個々のディレクトリ は '/' で終わる必要はありません。環境変数ここで使用する こともできます ($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 には、fvwm の組み込み関数の一つを与えます。 タイトルバーボタンは、奇数番号は左に、偶数番号は右に 番 号 づけされています。小さい番号のボタンがウィンドウの外 側へ、大きい番号のボタンがウィンドウの真ん中に来るよ う SunOS 5.9 Last change: late 20th century 29 Misc. Reference Manual Pages FVWM(2.xx) に表示されます (0 は 10 の省略形)。要するに、 1 3 5 7 9 0 8 6 4 2 のようになります。動作が割り当てられた最も大きい奇数 番 号 のボタンは、タイトルバーの左側に表示されるボタンの数 を決定し、最も大きい偶数番号のボタンは右側に表示され る ボ タ ン の数を決定します。動作はマウスボタンにも、キー ボードのキーにも割り当て可能です。 Move [ x y ] これは、ユーザがウィンドウを動かせるようにします。 ウィ ン ド ウ 内部、またはその境界のどこかから呼び出された場 合、そのウィンドウが移動されます。ルートウィンドウで 呼 び 出された場合、ユーザはその後、移動するウィンドウを選 択することになります。 オプション引数の 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 (条件) を満たす次のウィンドウに実行します。条件は Current のものに加え、CirculateSkip スタイル属性を無 効 に す る CirculateHit、 ア イ コン化されたウィンドウの SunOS 5.9 Last change: late 20th century 30 Misc. Reference Manual Pages FVWM(2.xx) CirculateSkipIcon スタイル属性を無効にする CirculateHi- tIcon が使えます。 None [conditions] command これは、全ての conditions (条件) を満たすウィンドウが存 在 しない場合に command を実行します。条件は、Next のも のと全く同じものが使えます。 OpaqueMoveSize percentage これは、fvwm に、不透過型ウィンドウ変化を使うべき 最 大 ウィンドウサイズを知らせます。percentage は全スクリーン 領域に対する百分率を意味します。 "OpaqueMove 0" の場合、全てのウィンドウが旧式のゴム ひ も型の外枠 (透過型ウィンドウ変化) を使って移動され、 "OpaqueMove 100" では、全てのウィンドウが、ちゃんと 中 身 の詰まったウィンドウとして移動されます。デフォルトは "OpaqueMove 5" で、これにより小さなウィンドウは不透過的 に、 大 き なウィンドウはゴムひもで移動することになりま す。 PipeRead cmd これは、fvwm に cmd という名前のプログラムから出力さ れ る コマンドを読み込まさせます。これは、例えば、あるディ レクトリの内容に応じて動的にメニュー項目を作り上げ る、 といった場合に有用です。 PixmapPath path これには、ピクスマップ形式 (カラー) のアイコン画像が 置 かれているディレクトリのフルパス名を、 ':' 区切りで指定 します。それぞれのパスは '/' で始まっていなければなりま せ ん。環境変数をここで使用することもできます ($HOME や ${HOME} 等)。 Popup PopupName この組み込み関数は、2 つの目的を持っています: 一つ は、 メ ニューをキーやマウスボタンに割り当てること、もう一つ は、メニューに子メニューを割り当てることです。それぞ れ の書式は、少し違いがあります。 あらかじめ定義されたポップアップメニューを、キーまた は マウスボタンに割り当てる方法: SunOS 5.9 Last change: late 20th century 31 Misc. Reference Manual Pages FVWM(2.xx) 次の例は、"Window Ops" と呼ばれるポップアップメニュー をマウスボタン 2,3 に割り当てます。メニューは、ウィン ドウフレームかサイドバー、タイトル バー で 修 飾 キー (Shift,Ctrl,Meta) なしでボタン 2, 3 のどちらかが押さ れた場合にポップアップします。 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 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 スタイルのポップアップメ SunOS 5.9 Last change: late 20th century 32 Misc. Reference Manual Pages FVWM(2.xx) ニューですが、これはやや手首に負担となります。 Menu は、 Motif、 あるいは Microsoft-Windows スタイルのメニューで、 単一クリック動作で居続けます。 Prev [conditions] command これは、例えば Focus のような command を、全ての condi- tions ( 条件) を満たす前のウィンドウに実行します。条件 は、Next と同じです。 Quit これは fvwm を終了しますが、それは通常 X の終了も引き起 こします。 Raise これでウィンドウを上 (手前) に上げることができます。 RaiseLower 上 (下) がっているウィンドウを下 (上) に下 (上 ) げ ま す。 Read filename これは fvwm に filenameP という名前のファイルからコマン ドを読み込まさせます。 Recapture これは fvwm に、全てのウィンドウ管理をやり直させます ( ウィンドウの再捕獲)。これは、直前のスタイルパラメータを 確実に使用します。再捕獲の際には画面が乱されます。 Refresh これはスクリーンの全てのウィンドウを再描画させます。 RefreshWindow これは現在 (あるいは選択された) ウィンドウにそれ自身 を 再描画させます。 SunOS 5.9 Last change: late 20th century 33 Misc. Reference Manual Pages FVWM(2.xx) Resize [ x y ] これによりウィンドウの大きさの変更 (リサイズ) が行え ま す。 オプション引数 x, y が与えられた場合、ウィンドウはそ の 大 きさが横 x, 縦 y であるように変更されます。x, y の単 位はスクリーンに対する百分率ですが、文字 "p" を各座標に つけた場合はピクセル単位となります。 Restart WindowManagerName これは、WindowManagerName が "fvwm2" の場合は、fvwm を 再起動させますし、WindowManagerName が "fvwm2" 以外の場 合は、その他の指定されたウィンドウマネージャに切り替 え ま す。そのウィンドウマネージャがデフォルトの検索パスに ない場合、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 だ け ス クロールします。スクロール関数はポップアップメ ニューからは呼んではいけません。スクロールは通常その デ スクトップの端で止まります。 SunOS 5.9 Last change: late 20th century 34 Misc. Reference Manual Pages FVWM(2.xx) horizontal と vertical の百分率が 1000 倍してあると、ス ク ロー ル はデスクトップの端を越えて反対側の端に戻りま す。"Scroll 100000 0" が何度も実行された場合、fvwm は各 実 行で隣のデスクトップへ移動し、そしてデスクトップの端 で巻き戻しされ最初のデスクトップに戻りますので、順番 に 全てのページに当たることになります。 文字 "p" を各座標 (horizontal や vertical) の後ろに追加 すると、スクロールの単位はピクセルになります。 Stick これは、そのウィンドウが現在 sticky でない場合は sticky に して、それが現在 sticky の場合は 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 コマンドで上書き、あるいは追加され ます。 options は、以下のキーワードの幾つかを含む、, (コンマ ) で 区 切 ら れ た リストです: BorderWidth, HandleWidth, NoIcon/Icon, MiniIcon, IconBox, NoTitle/Title, NoHandles/Handles, WindowListSkip/WindowListHit, CirculateSkip/CirculateHit, StaysOnTop/StaysPut, Sticky/Slippery, StartIconic/StartNormal, Color, ForeColor, BackColor, StartsOnDesk/StartsAnyWhere, IconTitle/NoIconTitle, MWMButtons/FvwmButtons, MWMBorder/FvwmBorder, MWMDecor/NoDecorHint, MWMFunctions/NoFuncHint, HintOverride/NoOverride, NoButton/Button, OLDecor/NoOLDecor, SunOS 5.9 Last change: late 20th century 35 Misc. Reference Manual Pages FVWM(2.xx) StickyIcon/SlipperyIcon, SmartPlacement/DumbPlacement, RandomPlacement/ActivePlacement, DecorateTransient/NakedTransient, SkipMapping/ShowMapping, UseStyle, NoPPosition/UsePPosition, Lenience/NoLenience, ClickToFocus/SloppyFocus/MouseFocus|FocusFollowsMouse 上のリストにおいて、いくつかのオプションはスタイルオ プ ション/反スタイルオプションの形式になっています。反スタ イルオプションが含まれている項目では、それが fvwm で の デ フォルトを意味し、それは fvwm のデフォルトの振舞いを 変更したい場合に利用できます。 Icon は、アイコンの白黒画像またはカラー画像として使用す る ファイル名を、引用符には入れない文字列引数として取り ます (オプション引数)。 IconBox は数値引数を取ります: IconBox l t r b ここで、l は左の座標で、同様に t は上、r は右、b は下の 座 標です。負の座標は、スクリーンの右下からの距離を意味 します。アイコンボックスはスクリーン内のある 領 域 で、 fvwm は他のアイコンと重ならない限りアイコンをそのウィン ドウに出力しようとします。 MiniIcon は、ウィンドウに対する小型アイコンとして使用す る ピクスマップ画像ファイルを指定します。この小型アイコ ンは、タイトルバーボタンの中に描くことができます (But- tonStyle 参照) し、色々な fvwmモジュール (FvwmWinList, FvwmIconMan, FvwmTaskBar) で利用できます。これは、一 つ の引数としてピクスマップ画像ファイルの名前を取ります。 StartsOnDesk は、そのウィンドウが最初に置かれるべきデス ク トップ番号を引数に取ります。標準的な Xt プログラムで はそれをリソースを使っても指定できる ( 例 え ば "-xrm '*Desk: 1'") ことに注意してください。 StaysOnTop は、そのウィンドウが常に他のウィンドウの一番 上 (手前) にいるように努力させます。これは、時計や郵便 箱のように常に見えていたいと思うようなものに対して便 利 で す。そのウィンドウが明示的に下げられた (奥に移動され た) 場合、それが明示的に上げられるまで、強制的には一 番 上 に 戻 そ うとはしません。StaysPut (これがデフォルト) は、そのウィンドウが隠されて、その状態でいつづけるこ と を許します。 BorderWidth は、リサイズハンドルを持たないウィンドウ に つける境界の幅を引数として取ります。 HandleWidth は、リサイズハンドルを持つウィンドウにつ け SunOS 5.9 Last change: late 20th century 36 Misc. Reference Manual Pages FVWM(2.xx) る境界の幅を引数として取ります。 Button と NoButton は、タイトルバーに含まれる/取り除 か れるボタンの個数を引数として取ります。 StickyIcon は、ウィンドウを、それがアイコン化されたとき に sticky (くっついたもの) にするので、有効なデスクトッ プの上でアイコンを元のウィンドウに復元できます。 MWMButtons は、そのウィンドウが最大化されたときに、最大 化 ボ タンを押しこまれた見た目にします。詳細は、Button- Style の MWMButton フラグの項を参照してください。 MWMBorder は、より mwm のものに近い 3 次元の斜面を作 り ます。 MWMDecor は、fvwm に、mwm の装飾ヒント情報を認識さ せ、 考 慮させようとします。ときどきそれを利用するアプリケー ションがあります。 MWMFunctions は、fvwm に、mwm 禁止操作ヒント情報を認 識 さ せ、考慮させようとします。ときどきそれを利用するアプ リケーションがあります。HintOverride は fvwm に mwm が 禁 止する操作を隠しますが、これはあなたにとにかくその操 作を行わさせます。 OLDecor は、fvwm に olwm や olvwm のヒント情報を認識 さ せ、 考 慮させようとします。これらは大くの古い XView や OLIT アプリケーションが使用します。 Color は 2 つの引数を取ります。最初の引数は、ウィンドウ ラ ベル文字列色で、2 番目のものはウィンドウの飾りの通常 の背景色です。この 2 つの色はスラッシュ(/) で分離して指 定 します。スラッシュを使うと問題がある場合は、別々にオ プション ForeColor と BackColor を使用することもでき ま す。 UseDecor は一つの引数を受けつけ、それは AddToDecor で生 成 された装飾 (decor) の名前です。UseDecor が指定されな い場合、"Default" の装飾が使用されます。ウィンドウは 実 際 には装飾を含んでいませんが、常にその一つに結びつけら れています。装飾が後で AddToDecor で変更された場合、 そ れ に結びつけられたすべてのウィンドウの見た目が変わりま す。あるウィンドウの装飾は、ChangeDecor で再割り当て す ることができます。 UseStyle は引数を一つ取り、それは他のスタイルの名 前 で す。 この方法では無関係なウィンドウ名を使うことができま すが、これにより新ためて設定し直すことなしにそれと同 様 の性質を継承することができます。例: 'Style "rxvt" UseS- tyle "XTerm"' SunOS 5.9 Last change: late 20th century 37 Misc. Reference Manual Pages FVWM(2.xx) SkipMapping は、fvwm にそのウィンドウが最初に配置される と きに、それが乗っているデスクトップを変更しないように 伝えます (StartsOnDesk で有用です)。 Lenience は、ICCCM の勧告を無視するように fvwm に指示し ま す。これは、あるアプリケーションが wm_hints 構造体の input フィールドを False にセットした場合は、それはウィ ン ドウマネージャがそれに入力フォーカスを渡すことを決し て望まない、と述べています。私が知る、これを必要とす る 唯 一のアプリケーションは sxpm ですが、それは簡単に修正 されるばかげたバグであり、そのプログラムへの全体的な 効 果 は全く何もありません。他にも問題を持つ古いアプリケー ションがあるという噂です。 ClickToFocus は、そのウィンドウがクリックされたと き に フォー カスをそのウィンドウに与えるように fvwm に指示し ます。デフォルトである MouseFocus (またはその別名である FocusFollowsMouse) は、マウスポインタがそのウィンドウに 入ったときに直ちにフォーカスをそのウィンドウに与え、 ポ イ ンタがウィンドウから出たらフォーカスも持ち去るように fvwm に指示します。SloppyFocus も同様ですが、ポインタが ウィ ン ド ウ から出てもルートウィンドウや ClickToFocus ウィンドウ上を通過している間 (そこでクリックしていな い 場 合 ) は フォーカスを手放しません。ClickToFocus は、 フォーカスを失わずにマウスを外に出すことを可能 に し ま す。 NoPPosition は、新しいウィンドウを追加したときに、 PPo- sition フィー ルドを無視するように fvwm に指示します。 PPosition フィールドに固執するアプリケーションもある の で すが、そういったものを持っていなければ、これは頭の痛 い問題です。 RandomPlacement は、通常ユーザに配置させるウィ ン ド ウ を、 ごくわずかにランダムな位置に自動的に配置しようとし ます。最もいいのは RandomPlacement と SmartPlacement の 両方を使うことです。 SmartPlacement は、通常ユーザに配置させるウィンドウを、 ス マートな位置、つまりそのスクリーン上の他のウィンドウ とは重ならない位置に自動的に配置しようとします。その よ う な場所が見つからなかった場合は、最後の手段としてユー ザ配置、またはもし指定されていればランダム配置 (Random- Placement) が 使用されます。最もいいのは、RandomPlace- ment と SmartPlacement の両方を使うことです。 例: # fvwm のデフォルトの挙動を、タイトルバーなしに変更 # デフォルトのアイコンも定義 Style "*" NoTitle,Icon unknown1.xpm, BorderWidth 4,HandleWidth 5 SunOS 5.9 Last change: late 20th century 38 Misc. Reference Manual Pages FVWM(2.xx) # ウィンドウ毎の変更: 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, Color black/grey 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, WindowListSkip も取得し、"*" にもマッチするために NoTi- tle も取得します。一つのウィンドウに対して相反するスタ イルが指定された場合は、最後に指定されたスタイルが使 わ れます。 NoIcon 属性がセットされると、指定されたウィンドウはそれ が アイコン化されたときに単に消えてしまいます。そのウィ ンドウはウィンドウリストから復帰できます。Icon が引数な しにセットされた場合、NoIcon 属性が解除されますがアイコ ンは何も指定されていないことになりま す。 FvwmPager モ ジュールアイコンのみ存在することを許す例: Style "*" NoIcon Style "FvwmPager" Icon Title これは何もしません。これは popup や menu にタイトル行を 挿入するのに使われます。 SunOS 5.9 Last change: late 20th century 39 Misc. Reference Manual Pages FVWM(2.xx) TitleStyle [justification] [height num] これは、タイトルバーに対する属性を設定します。 justifi- cation には、"Centered", "RightJustified", "LeftJusti- fied" を指定できます。height は、ピクセル単位でのタイト ルバーの高さを設定します。デフォルトは Centered で Win- dowFont の高さです。WindowFont コマンドは、指定さ れ た フォ ントに対するデフォルトに高さをリセットするので、パ ラメータ height はこのコマンドの後でセットする必要が あ ります。例: TitleStyle LeftJustified Height 24 TitleStyle [state] [style] [ -- [!]flag ... ] これは、タイトルバーのスタイルを設定します。state は、 "ActiveUp", "ActiveDown", "Inactive" のいずれかです。 state が省略された場合、そのスタイルはす べ て の 状 態 (state) に対して追加されます。スタイルとフラグをカッコ で囲めば、複数の状態に対する定義を 1 行で指定することが で きます。style は省略することができ、それにより現在の スタイルを破壊せずにフラグのみ設定することができます。 "!" が任意の flag の前に置かれた場合、その振舞いは否 定 さ れ ます。各状態に対する利用可能なフラグに、"Raised", "Flat", "Sunk" (これらは互いに排他的) があり ま す。 デ フォ ル ト は Raised です。状態 ActiveDown に関しては、 ButtonStyle の項目の中の注意を参照してください。例: TitleStyle ActiveUp HGradient 16 navy black TitleStyle ActiveDown (Solid red -- flat) Inactive (TiledPixmap wood.xpm) TitleStyle ActiveUp (-- Flat) ActiveDown (-- Raised) Inactive (-- Flat) これは、ActiveUp の状態に水平方向のグラデーションを設定 し、 ActiveDown の状態にべったりした赤を、そして Inac- tive の状態にタイル張りの木目 (wood) のピクスマップ画像 を 設定します。そして最後に ActiveUp は平らな見た目に設 定され、ActiveDown は沈みこんだものに設定さ れ (Raised の フラグは ActiveDown 状態に対しては、レリーフの逆転の 仕様により、沈みこんだ形 (Sunk) になります )、 Inactive は平らに設定されます。すべての状態にフラグを設定する例: TitleStyle -- flat 平らな見た目を設定するには: TitleStyle -- flat ButtonStyle All ActiveUp (-- flat) Inactive (-- flat) SunOS 5.9 Last change: late 20th century 40 Misc. Reference Manual Pages FVWM(2.xx) UpdateDecor decor これはウィンドウの装飾を更新します。decor はオプショ ン 引 数で、これには更新する装飾を指定します。それが指定さ れた場合、その特定の decor に結びつけられたウィンドウの み が更新されます。このコマンドは、例えば、ButtonStyle, TitleStyle, BorderStyle (多分 AddToDecor との組み合わせ で 使用されます) の後で有用でしょう。無効な装飾を指定す ると、結果としてすべてのウィンドウが更新されます。こ の コ マンドは Recapture ほどはかき乱しませんが、Recapture ほどにはウィンドウスタイルオプションに影響を与 え ま せ ん。 WarpToWindow x y これは、カーソルを関連づけられたウィンドウへジャンプ さ せ ます。パラメータ x, y はデフォルトでの位置で、ウィン ドウの左上の角から右下への百分率で表した値です ('p' を 数字に追加した場合はピクセル単位になります)。 Wait name この組込み関数は、fvwm 関数内でのみ使われることを意図し て い ます。これは関数の実行を、name という名前の新しい ウィンドウが現われるまで一時停止します。fvwm はその停止 の 間完全に機能し続けます。これは、特に 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 に移します。 WindowsDesk arg1 [arg2] これは、選択したウィンドウを他のデスクトップ ( 作 業 空 間、部屋) に移動します。 arg1 が 0 でなければ、次のデスクトップ番号は、現在の デ ス クトップ番号 + arg1 になります。デスクトップ番号は負 も使えます。 SunOS 5.9 Last change: late 20th century 41 Misc. Reference Manual Pages FVWM(2.xx) arg1 が 0 ならば、新しいデスクトップ番号は arg2 にな り ます。 一つの引数だけが与えられた場合、これは選択したウィン ド ウを arg1 に移動します。 WindowFont fontname これは、ウィンドウのタイトルバー用に、"fixed" の代わ り に fontname という名前のフォントを fvwm に使わせます。 WindowId id func WindowId 関数は、指定したウィンドウ id を探してその上で 指定した func (関数)を実行する以外は、Next や Prev 関数 と同じです。 WindowId 0x34567890 Raise WindowId 0x34567890 WarpToWindow 50 50 これは、主に WindowList 組込み関数で使用される関数で 有 用です。 WindowList [options] これは、現在のデスクトップの個々のウィンドウのタイト ル や 位置情報が表示されるポップアップメニューを生成 (そし てそれをポップアップ) します。アイコン化されたウィン ド ウ の位置情報はカッコ内に表示されます。そのウィンドウの 一覧のポップアップメニューから一つの項目を選択する と、 デフォルトでは、$0 として渡されるウィンドウのウィンドウ ID を与えてそれを解釈する関数 WindowListFunc を実行させ ま す。デフォルトでは WindowListFunc は以下のようになっ ています: AddToFunc WindowListFunc "I" WindowId $0 Iconify -1 + "I" WindowId $0 Focus + "I" WindowId $0 Raise + "I" WindowId $0 WarpToWindow 5p 5p これらのデフォルトが気にいらなければ、WindowListFunc 組 込み関数を破壊し、自分で作ることができます。 WindowList に 渡 さ れ る オ プ ショ ン options は "NoGeometry", "Function ", "Desk ", "CurrentDesk", "NoIcons", "Icons", "OnlyIcons", "NoNor- mal", "Normal", "OnlyNormal", "NoSticky", "Sticky", "OnlySticky", "NoOnTop", "OnTop", "OnlyOnTop", "Unsorted", "UseIconName", "Alphabetic", SunOS 5.9 Last change: late 20th century 42 Misc. Reference Manual Pages FVWM(2.xx) "NotAlphabetic" です。 (注意: Normal は、NoIcons かつ Sticky かつ OnTop を意味 します) ある関数を "Function " で渡す場合、$0 はウィン ドウ ID です: AddToFunc IFunc "I" WindowId $0 Iconify WindowList Function IFunc, NoSticky, CurrentDesk, NoIcons WindowList をアイコンマネージャとして使うには、以下のよ うにすれいいでしょう: WindowList OnlyIcons, Sticky, OnTop, Geometry (注意: オプション "Only" は、他のものすべてを一掃します ) WindowShade [ opt ] これは、タイトルのついたウィンドウに対するウィンドウ の 日 陰機能を On/Off します。日陰状態にあるウィンドウは、 タイトルバーのみが表示されます。opt が与えないとウィ ン ドウの日陰機能が On/Off されます。opt が 1 の場合は、そ のウィンドウは強制的に日陰状態にされます。opt が 2 の場 合 は、そのウィンドウは強制的に日向状態にされます。最大 化されたウィンドウとタイトルのないウィンドウは日陰状 態 にはできません。 XORvalue number これは、ゴムひも状のウィンドウの移動やサイズ変更を行 う ときに、値をビット毎の XOR で変更します。この値の設定は 試行錯誤で行ってください。 + これは、直前に指定された装飾や関数、メニューに追加し 続 け るのに使われます。AddToDecor や AddToFunc, AddToMenu での議論を参照してください。 キーボードショートカット 全て (私の考えるに) のウィンドウマネージャの操作は、キーボー ドから行うこともでき、マウスなしの操作が可能になっています。 Scroll 組込み関数を適当なキーに割り当てることで仮想 デ ス ク トッ プ を巡回できるだけでなく、ポップアップ、移動、サイズ変 SunOS 5.9 Last change: late 20th century 43 Misc. Reference Manual Pages FVWM(2.xx) 更、その他ほとんどの組込み関数をキーに割り当てられます。その 場合組込み関数が一度開始されると、マウスポインタは上下左右の 矢印キーを使って移動され、その動作はリターンを打つことで終了 します。シフトキーを押すとポインタの移動はより大きなステップ になり、コントロールキーを押すとポインタの移動はより小さなス テッ プ になります。矢印キーの代わりに、標準的な emacs や vi のカーソル移動制御 (^n, ^p, ^f, ^b, 及び ^j, ^k, ^h, ^l) を 使うこともできます。 設定例の提供 fvwm 配布物に、設定ファイル .fvwm2rc のサンプルファイルが 提 供 さ れています。これには十分にコメントが書かれていて、fvwm の設定ファイルの設定例の原本として使用できます。 マルチスクリーンディスプレイ上での使用について コマンドライン引数 -s を指定しないと、fvwm は自動的に指定 さ れ たディスプレイの全てのスクリーン上で起動します。fvwm が起 動した後では個々のスクリーンは独立したものとして扱われ、fvwm の再起動も、各スクリーンで別々に行わなくてはなりません。マル チスクリーンディスプレイでは、EdgeScroll 0 0 を使用するこ と を強く推奨します。 X との対話を完全に終了するには、個々のスクリーンで終了する必 要があるでしょう。 fvwm 0.99 の時点では、丁度 39.342 個の正体不明のバグがありま したが、確認されたバグはほとんど修正され、その後 9.34 個のバ グが修正されました。確認されたバグ一つに対して、少なく と も 10 個のバグが存在すると仮定すると、39.342 - 9.34 + 10 * 9.34 = 123.402 個の正体不明のバグが現在まだ残っていることになりま す。この理屈の論理的帰結に従えば、プログラムのバグがない状態 にまでバグの個数が減少する前に、正体不明なバグの個数が無限大 になってしまうことになるでしょう。しかし倍精度まで要求しなけ れば、これはコンピュータプログラムでの無限大 = 3.4028e+38 で す から、現在のバグ発見の割合では、3.37e+27 年にはバグなしの 状態に達する見通しです。私はこのことを引き継いでいこうと考え ています。私の子供達に... 確認されているバグは、配布物のファイル BUGS、および TO-DO の リストに書かれています。 バグリポートは FVWM メーリングリストに送ることが で き ま す (FAQ を参照)。 SunOS 5.9 Last change: late 20th century 44 Misc. Reference Manual Pages FVWM(2.xx) 著者 多くの人々の助力により、Tom LaStrange によって書かれ た twm の コードを元に Robert Nation によって作成されました。しかし Rob は fvwm の作業からは '引退' したので、 現 在 は Charles Hines がその世話と供給を保守しています。 SunOS 5.9 Last change: late 20th century 45