fvwm2 − X11 用の F(?) 仮想ウィンドウマネージャ (version 2) |
fvwm2 [−blackout] [−clientId id] [−cmd config_command] [−d displayname] [−debug] [−debug_stack_ring] [−f config_file] [−h] [−replace] [−restore state_file] [−s] [−version] [−visual visual_class] [−visualId id] |
Fvwm は X11 用のウィンドウマネージャです。これは、メモリの 消費を最小化するように設計され、ウィンドウ枠の 3 次元的 表 示と仮想デスクトップを提供します。 あ ちこちに、"fvwm" という名前のついたウィンドウマネージャ がいくつかあることに注意してください。以前は、fvwm の バー ジョン 2.x は一般に fvwm2 と呼ばれていましたが、これは以前 の版である 1.x (fvwm または fvwm1 と言われることも) と区別 するためでした。バージョン 1.x がバージョン 2.x に置き換え られて長い時間が経ったので、実行プログラムファイルが fvwm2 という名前であるとしても、バージョン 2.x、そしてこれ以降の すべての版を、この文書中では単に fvwm と呼ぶことにします。 fvwm95 と呼ばれる fvwm の子孫があり、これは fvwm バージョ ン 2 の古い版ととてもよく似ているのですが、技術的には異 な るウィンドウマネージャであり、異なる人々によって開発された ものです。 fvwm95 の最終的な目標は、Windows 95 に似た見 た 目 と感触を与えることでした。その後、fvwm は多くの点で拡張 され、 fvwm95 の機能で fvwm にまねできないのはごくわずかの もののみです。そして、ここ数年 fvwm95 の開発は行われていま せん。しかし不幸なことに、(普及している Linux の配布物であ る) Red Hat には、 fvwm のバージョン 2.x を元にした fvwm のコンパイル済みパッケージで、やはり fvwm95 と呼ばれるもの があります。 fvwm は大きな 仮想デスクトップと、別々に、あるいは一緒に使 用できる 複数の重ならないデスクトップの両方を提供しま す。 仮想デスクトップは、使用しているスクリーンが実際に広くなっ たかのように見せてくれ、そしてそのデスクトップ内のあちこち をスクロールすることが可能です。複数の重ならないデスクトッ プは、実際に複数のスクリーンを作業する場として持っているか のように見せてくれますが、個々のスクリーンはそれぞれ完全に 独立しています。 fvwm は キーボードによる高速操作性も提供します。これ に よ り、ウィンドウの移動やサイズの変更のような、たいていのウィ ンドウマネージャの機能を実行できますし、キーボードショート カットを使ってメニューの操作も行えます。 たいていのウィンドウマネージャが設定コマンドと組み込みコマ ンドとの違いを明確にしているのに対し、 fvwm はその違いをあ い ま いにしています。典型的には設定コマンドはフォントの設 定、色の設定、メニューの内容やキー、マウスの機能割り当てな どを行います。一方、組み込みコマンドは典型的にはウィンドウ の上げ下げなどを行います。 fvwm はそのような違いを持たない ので、現実的な範囲で、どんなものでもいつであっても変化させ ることが可能になっています。 Fvwm と X11 の他のウィンドウマネージャとの注目すべき 違 い は、 SloppyFocus と NeverFocus というフォーカス方法の導入 です。フォーカスの方式は、個々のウィンドウ毎に指定で き ま す。 SloppyFocus を使うウィンドウは、マウスポインタがその 中に入ったときにフォーカスを取得し、他のウィンドウがフォー カスを取得するまでフォーカスをはなしません。そのウィンドウ では、ポインタがルートウィンドウに移動してもフォーカスは失 われません。 NeverFocus の方式は、その上では入力することが ないウィンドウ (例: xclock, oclock, xbiff, xeyes, tuxeyes) で 使うために用意されています。例えば SloppyFocus のターミ ナルウィンドウがフォーカスを持っている場合、マウスカーソル が NeverFocus のウィンドウ上を移動してもターミナルのフォー カスは失われません。 |
fvwm が認識するコマンドラインオプションは以下の通りです: |
-blackout |
このオプションは、以前の版との互換性のためだけに提 供されています。現在は起動時にスクリーンを真っ暗に する必要性はありません。 |
-clientId id |
このオプションは、 fvwm がセッションマネージャから 起動された場合に使われます。ユーザが使用すべきでは ありません。 |
-cmd config_command |
fvwm に、初期化コマンドとして ’Read .fvwm2rc’ をさ せ る代わりに config_command を使用します (10 個ま での −f と −cmd パラメータを与えることが可能、それ ら は 指定した順に実行されること、に注意してくださ い)。 |
-d displayname |
環境変数 $DISPLAY による名前の代わりに displayname の名前のディスプレイを制御します。 |
-debug |
同期モードでの X とのやりとりを出力しま す。動作は劇的に遅くなりますが、出力される fvwm の 内部エラーメッセージが正しいものであることは保証さ れます。また、これは fvwm に動作中のデバッ グ メッ セージも出力させます。 |
-debug_stack_ring |
これはスタックリングデバッグを可能にします。このオ プションは内部デバックのためだけのもので、開発者の みが使うべきです。 |
-f config_file |
fvwm に、初期化ファイルとして、 .fvwm2rc の代わり に config_file を読み込まさせます。 こ れ は -cmd ’Read config_file’ と同等です。 |
-h |
短い使用説明を表示します。 |
-replace |
これは、直前に動作してしたウィンドウマネージャに置 き換えようとします。これは、そのウィンドウ マ ネー ジャが ICCCM 2.0 準拠でない場合は動作しません。 |
-restore state_file |
このオプションは、 fvwm がセッションマネージャから 起動された場合に使われます。ユーザが使用すべきでは ありません。 |
-s |
マルチスクリーンディスプレイ上で、fvwm を環境 変数 $DISPLAY 、または -d オプションで与えられる名 前のスクリーンのみで動作させます。通常は、マルチス クリーンディスプレイでは、fvwm は全てのスクリー ン 上で起動しようとします。 |
-version |
これは、fvwm のバージョンを標準エラー出力 ( stderr ) に出力します。そして こ れ は、readline, rplay, stroke, xpm, gnome ヒント情報、セッションマネー ジャ、マルチバイト文字をサポートするようにコンパイ ルされたかどうかの情報も出力します。 |
-visual visual_class |
これは fvwm に、 visual_class をウィンドウの境界と メニューに使うよ う に さ せ ま す。 visual_class は、"StaticGray", "GrayScale", "StaticColor", "PseudoColor", "TrueColor", "DirectColor" のいずれ かです。 |
-visualId id |
これは fvwm に、 id をウィンドウの境界とメニューの visualId として使うようにさせます。 id は、10 進数 の N、あるいは 16 進数の 0xN のいずれかの形で指定 できます。サポートされているビジュアルの一覧につい ては、 xdpyinfo のオンラインマニュアルを参照してく ださい。 |
fvwm は、ほとんどのウィンドウの周囲に装飾的な境界をつけ ま す。 こ の 境 界 は、上下左右の 4 方向の辺上のまっすぐな棒 (bar) と 4 つの角にある小さな "L" 字型の部品からできていま す。さらに、タイトルバーと呼ばれる、ウィンドウ名を表示する のに使われる棒を上辺に追加してつけることもできます。 さ ら に、最大 10 個までのタイトルバーボタンをその中に追加するこ ともできます。上辺や左右の辺、および底辺の棒はまとめてサイ ドバーと呼ばれます。角の部品はフレームと呼ばれます。 標準的な初期化ファイルを修正しなければ、タイトルバー、また はサイドバーでマウスボタン 1 を押すと、ウィンドウの移動 操 作を開始します。角の L 字部分でボタン 1 を押すとサイズ変更 操作を開始します。境界の任意の箇所でボタン 2 を 押 す と、 ウィンドウ操作の一覧メニューを作り出します。 タイトルバーボタンは最大 10 個まで作れます。それらの使用は 完全にユーザが定義可能です。デフォルトの設定ではタイ ト ル バー ボタンは、タイトルバーの両側に 1 つずつつきます。左端 のものは、ウィンドウ操作の一覧メニューを作りだすもので、右 端のものは、ウィンドウのアイコン化用のものです。使用するタ イトルバーボタンの数は、どれがマウス操作を割り当てられてい る タイトルバーボタンであるかに依存します。下の Mouse コマ ンドのセクションを参照してください。 |
fvwm は、複数の仮想デスクトップを使いたい人に提供しま す。 ス クリーンは、それより広くてもいい一つの デスクトップ上へ のビューポート (視野) になります。いくつかの異なるデ ス ク トップにアクセスすることができます (個々のプロジェクト用に 一つのデスクトップ、あるいは表示アプリケーションが異なる場 合の個々のアプリケーション用に一つのデスクトップ、といった 利用を想定しています)。デスクトップ一つ一つは、物理的な ス ク リー ンサイズよりも大きくても構わなくて、それらは m x n 個の物理スクリーンサイズの ページに分割され、スクリーン よ りも大きいサイズのウィンドウや、関連するたくさんのウィンド ウのグループなどを簡単に見ることができます。 仮想デスクトップのサイズ (m x n; すなわちページ数) は、 組 み 込みコマンド DeskTopSize を使っていつでも変更できます。 すべてのデスクトップは同じサイズになります。デスクトップの 個数は指定する必要はありませんが、全部でほぼ 40 憶個までに 制限されています。デスクトップの領域内のすべてのウィンドウ は FvwmPager で見ることができますが、これはデスクトップを ミニチュア表示します。このページャは、モジュールと呼ばれる 付属プログラムの一つで、ウィンドウマネージャの操作に必要不 可欠なものではありません。 FvwmWinList と呼ばれる 別 な モ ジュールによって、ウィンドウの一覧を、そのそれぞれの位置に 従った順で、ポップアップメニューか独立したウィンドウとして アクセス可能できる形で、作成することができます。 fvwm は、デスクトップ上のウィンドウを、レイヤ (層状) に積 み上げられた順に保持します。下のレイヤのウィンドウが上のレ イ ヤ のウィンドウを覆い隠すことは決してありません。個々の ウィンドウのレイヤは、 Layer コマンドを使って変更 で き ま す。このレイヤの概念は、古い fvwm の版の StaysOnTop フラグ を一般化したものです。 StaysOnTop と StaysPut の Style オ プションは、現在はウィンドウを適切なレイヤへ配置することで 実装されていて、以前はなかった StaysOnBottom Style オ プ ションも追加されています。 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 をサポー トしているわけではありません。アプリケーションによっては、 ウィ ン ド ウの右上の角を、スクリーンの左上角の 5 ピクセル 上、5 ピクセル左に置くものがあります。他にも同様の奇妙なこ とを行うものがあるかもしれません。 ウィンドウを現在有効なもの以外のデスクトップやページ上に配 置させる方法はいくつかあります。上で述べた geometry による 方 法 (物理的なスクリーンサイズよりも大きな x,y 座標を指定 する方法) は、現在のビューポート (視野) に相対的に解釈され るという限界に悩まされます。つまり、そのアプリケーションを 常に同じページから呼び出さなければ、ウィンドウが首尾一貫し て特定のページに現われる、ということにはなりません。 ウィンドウを、現在のビューポートとは異なるページ、スクリー ン、デスクトップに配置するよりよい方法は、設 定 ファ イ ル .fvwm2rc 内で、 StartsOnPage か StartsOnScreen スタイル指 定 (古い StartsOnDesk スタイルの後継) を利用することです。 その配置は首尾一貫し、現在仮想デスクトップのどこにいるかと いうことにはよりません。 xterm や xfontsel のように、標準的な Xt (X toolkit) コマン ド ライン引数と X リソースを解釈するようなアプリケーション に対してはユーザは、起動時のデスクトップをコマンドラインで 指定できます: xterm -xrm "*Desk:1" これは、xterm を番号 1 のデスクトップで起動し、 xterm -xrm "*Page:3 2 1" は xterm を、番号 3 のデスクトップの、左上のページから 2 ページ右で 1 ページ下のページに起動します。しかし、すべ て のアプリケーションがこのようなオプションを理解するわけでは ありません。あなたの .Xdefaults ファイルに以下のような行を 書くことでも、これと同じ結果が得られます: XTerm*Desk: 1 または XTerm*Page: 3 2 1 |
コ マンドライン引数として -s を与えなかった場合、fvwm は自 動的に、指定されたディスプレイのすべてのスクリーン上で起動 し ます。そして、fvwm の起動後は、個々のスクリーンは独立に 取り扱われます。 fvwm の再起動は、個々のスクリーンで別々に 行う必要があります。マルチスクリーンディスプレイでは EdgeScroll 0 0 の 使用を強く勧めます。 X との対話を完全に終了するには、個 々のスクリーンで終了する必要があります。こ れ は、Xinerama のサポートとはまぎらわしくはありません。 |
fvwm は、新しい X サーバの Xinerama 拡張をサポートしていま す。 Xinerama は、マルチヘッド (複数のスクリーン) のサポー トと同等ですが、スクリーン間のウィンドウの移動も可能にしま す。 fvwm が Xinerama をサポートするようにコンパイルされた 場合、 Xinemara によってマルチスクリーンをサポートし、そし てそれを利用する X サーバ上では、 fvwm が動作する場合は 常 にそれが使われます。このオプションがない場合、デスクトップ 全体が一つの大きなスクリーンとして扱われます。例え ば、 メ ニューは、2 つのスクリーンの間の右にポップアップするでしょ う。コマンド EdgeResistance は、ウィン ド ウ が 2 つ の Xinerama スクリーンの端を越えて移動する際の明示的な抵抗値 を指定することを可能にします。 Xinerama サポートは、 起 動 中、あるいは設定ファイルから Xinerama コマンドを使うことで 有効にしたり無効にしたりできます。 Xinerama ディスプレイで 多くのモジュールやコマンドが正常に動作します。 通常の X の書式での geometry (位置情報) を与えられる場所で はどこでも、 fvwm の Xinerama 拡張は geometry にスクリーン を追加して指定 (またはスクリーンのみの指定) することを可能 にします。これを行うには、geometry 文字列の最後に ’@’ を一 つ追加し、その後ろにスクリーン番号かまたはアルファベット 1 文字を書きます。番号は、(X サーバで設定される) Xinerama の ス クリーン番号とみなされます。アルファベット 1 文字は、以 下のいずれかです: ´g’ はスクリーン全体 (すべての Xinerama スクリーンを含む長方形)、 ´p’ はプライマリスクリーン (以下 参照)、 ´c’ は現在のスクリーン (現在マウスポインタを含むス クリーン)。 X サーバが Xinerama をサポートしていないか、一 つのスクリーンだけが使われている場合は、そのスクリーン指定 部分は無視されます。 Style * IconBox 64x300-0-0@p Xinerama のサポートはプライマリスクリーンを使うように設定 できます。 fvwm は、新しいウィンドウとアイコンをこの ス ク リーンを置くように設定できます。プライマリスクリーンは、デ フォルトではスクリーン番号 0 のスクリーンですが、 こ れ は XineramaPrimaryScreen コマンドによって変更できます。 Xinerama のサポートは、単一のスクリーンでも同じ設定ファイ ルで手軽に動作するように設計されていました。しかし、異なる ス ク リーンの解像度を使用するスクリーンが含まれている場合 は、これはそれほどうまくは動作しないでしょう。このような状 況では、デスクトップ全体のどちらのスクリーンにも所属しない 部分にウィンドウが入り込んでしまうかもしれません。これが起 きた場合、そのウィンドウやアイコンは All MoveToScreen と い うコマンドで取り出せます。このコマンドは FvwmConsole ウィンドウ内、あるいは FvwmCommand コマンドで入力 で き ま す。 Xinerama 以外にも、例えば Single Logical Screen のようなマ ルチスクリーン環境の実装がありますが、 FVWM によって ス ク リーン全体が同じサイズのスクリーンを長方形の格子状に組み上 げた形に見える場合は、 Xinerama の設定をシミュレートするこ とが可能です。コマンド XineramaSls と XineramaSlsSize がこ の機能を設定するのに使えます。 |
初期化の際、fvwm は、キーはマウスボタン割り当てやその他 多 く の ことが記述されている設定ファイルを探します。これらの ファイルの書式は後で述べます。 fvwm は最初に以下のコマンド を使用して設定ファイルを探します。 Read .fvwm2rc こ れ は、以下の Read の項目に書かれているように、ファイル .fvwm2rc を、 $HOME/.fvwm で探し、なけれ ば $FVWM_USERDIR と い うディレクトリ内で探します。そこに見つからなかった場 合、fvwm はこのファイルを $HOME ディレクトリで探し、なけれ ば fvwm システムのインストール先の system.fvwm2rc という ファイルを探します。設定ファイルがどこにも見つからなかった 場合は、ルートウィンドウ上でマウスボタンをクリックするか、 Help キーか F1 キーを押すことで初期設定ファイルを作成す る ためのメニューと入力フォームが立ち上がります。 fvwm は、その子プロセスに引き継がれる環境変数を 2 つ設定し ます。一つは $DISPLAY で、これは fvwm が動作しているディス プレイを意味します。 $DISPLAY は unix:0.0 や :0.0 などで、 これは rsh を通して他のマシンを使っている場合はあまりう ま く は 効きません。よって、 $HOSTDISPLAY も設定され、これは ネットワーク向きのディスプレイの記述 に なっ て い ま す。 $HOSTDISPLAY は TCP/IP 転送プロトコルを常に使います (ロー カルな接続であっても) ので、ローカルな接続には $DISPLAY を 使うべきで、これは Unix ドメインソケットを使用し、こちらの 方が高速です。 あるアプリケーションやモジュールを fvwm とともに起動したい ならば、単に、それぞれ Exec app や Module FvwmXxx とあなたの .fvwm2rc に入れればできますが、これはお勧めしま せん。これは、あなたが何をしていることになっているのかをよ く知っている場合にのみ行ってください。 .fvwm2rc が読み込ま れているときにアプリケーションやモジュールを起動するのは普 通は危険で、それはその設定ファイルが、スタイルやモジュール の設定を含んでいるからで、それらはウィンドウの見た目や機能 に影響をおよぼし得ます。 アプリケーションやモジュールを fvwm の起動時に立ち上げる標 準的な方法は、それらを初期化関数の中 (通 常 StartFunction か InitFunction ) に追加することです。この方法では、それら は .fvwm2rc 全体が fvwm によって読みこまれた後に起動される のみです。 fvwm は 3 つ の 特 別 な 初 期 化 関数を持っています: StartFunction は、起動時と再起動時 (restart) に実行され ま す。 InitFunction と RestartFunction は、StartFunction の 直後に、それぞれ初期化と再起動の時に実行されます。これらは ユー ザの .fvwm2rc ファイルでコマンド AddToFunc の機能 (後 述) を使って、モジュールや xterm、その他 fvwm の起動時に立 ち上げさせたいものを何でも起動させるようにカスタマイズする ようにできます。 fvwm は終了用の一つの特別な関数 ExitFunction も持ってい ま す。これは fvwm の終了時、あるいは実際に終了する前の再起動 時に実行されます。これは明示的にモジュールを殺したりするの に使えます。 fvwm が セッ ショ ンマネージャの元で動いている場合、関数 SessionInitFunction と SessionRestartFunction が、InitFunction や RestartFunction の代わりに実行されま す。これは、ユーザの .fvwm2rc ファイルがセッション マ ネー ジャの元でも、そうでない場合でもどちらでもうまく機能するよ うにすることを助けてくれます。一般的に言って、"Sessin*" 関 数 で xterm や他のアプリケーションを起動するのは良い考えで はありません。あるいは、セッションマネージャの元とそうでな い場合で異なるモジュールを起動すると決めることも可能になり ます。同様の目的で、 SessionExitFunction も ExitFunction の代わりに使えます。 DestroyFunc StartFunction AddToFunc StartFunction + I ModuleSynchronous FvwmTheme + I Module FvwmPager * * + I Module FvwmButtons DestroyFunc InitFunction AddToFunc InitFunction + I Module FvwmBanner + I Module FvwmTaskBar + I xsetroot -solid cyan + I Exec xterm + I Exec netscape DestroyFunc RestartFunction AddToFunc RestartFunction + I Module FvwmTaskBar DestroyFunc SessionInitFunction AddToFunc SessionInitFunction + I Module FvwmBanner DestroyFunc SessionRestartFunction AddToFunc SessionRestartFunction + I Nop これらの特別な関数は、いくつか内容が何もないならば、すべて を定義する必要はありません。 |
fvwm には、コンパイル時のオプションがたくさんあります。 あ るコマンドや機能を使っていて何かトラブルに出会った場合、ま ずそれがコンパイル時にサポートされるようにコンパイルされた かをチェックしてください。オプションの機能は、コンパイル時 に生成されるファイル config.h に記述されています。 |
基本的な fvwm の設定では、白黒のビットマップアイコンを使う よ うになっています。 XPM 拡張が有効な状態でコンパイルされ ている場合は、カラーのアイコンも使うことができます。そのオ プ ションを使うためには XPM パッケージが必要ですが、それに 関してはファイル INSTALL.fvwm 内に書かれています。 SHAPE と XPM オプションの両方がついてコンパイルされてい る 場合、形のあるカラーアイコンを使うこともできますが、それは とても綺麗です。 |
モジュールは fvwm とは分離した形のプログラムで、 fvwm とは 分離した Unix プロセスとして動作しますが、 fvwm に実行させ るコマンドを fvwm に送信します。ユーザは、fvwm それ自身 の 完全さに影響を与えない、あるいは fvwm を肥大化させない、不 気味な、または奇妙な操作をするような自分のオリジナル の モ ジュールを書くことも可能です。 モ ジュールのプロセスは、fvwm とモジュールの双方が通信でき るような 2 つのパイプをセットできるように、 fvwm によっ て 生成される必要があります。モジュールのためのパイプは、それ が起動したときに既にオープンされていて、パイプ用のファイル デスクリプタはコマンドライン引数として与えられています。 モジュールプロセスは、組み込みコマンド Module を使うことに よって X と対話している間の任意の時に生成 で き ま す。 モ ジュールは、X の起動中存在し続けることもできますし、一つの 仕事を行ってその後終了することもできます。 fvwm が終了する よう命令されたときにモジュールがまだ有効な場合、 fvwm は通 信用のパイプを閉じてモジュールからの SIGCHLD シグナルが 来 るのを待ちますが、それは、パイプが閉じたことをモジュールが 検出し、そして終了した、ということを示しています。モジュー ル が パイプが閉じたことの検出に失敗した場合、 fvwm はほぼ 30 秒後に取りあえず終了します。同時に実行できるモジュー ル の数は、同時に開けるファイルの最大数という OS の制限によっ て限定されますが、通常は 60 から 256 の間です。 モジュールは単にテキストコマンドを fvwm の組み込みコマンド エ ン ジンに送信するだけで、このテキストコマンドとは、設定 ファイル .fvwm2rc の丁度マウス割り当ての場合のような書式で す。 サンプルモジュール FvwmButtons の中にあるように、ある 補足の情報も送信されます。モジュール FvwmButtons に関し て は、そのマニュアルページに書かれています。 詳 細については、 「モジュールコマンド」のセクションも参照 してください。 |
fvwm は ICCCM 2.0 への準拠を試みています。さら に、 ICCCM は、アプリケーションが任意のキーストロークを 受け取ることが 可能であるべきだと述べていますが、しかしこれは fvwm、お よ び他のほとんどのウィンドウマネージャで利用されているショー トカットキーの手法と両立しません。特に、 あ な た の fvwm と、Xnest (一つのウィンドウ内で動作する入れ子の X サーバ) 内で動作する他の fvwm で機能する同じキーボードショートカッ トを持つことはできません。同じ問題は、マウスボタン割り当て にも存在します。 ICCCM は、以下のプロパティを所有するウィンドウ: WM_HINTS(WM_HINTS): クライアントがウィンドウマネージャからの入力、 または入力フォーカスを受けつける: False は、ウィンドウマネージャがキーボードフォーカスを与えるべき ではない、と言っていますが、そういったウィンドウは自分自身 で入力フォーカスを取得します。多くのアプリケーションがこの プロパティを設定していて、その上ウィンドウマネージャがキー ボードフォーカスを与えてくれる、と思っているのです。だから fvwm は Lenience (Lenience = 寛大) というウィンドウスタイ ルを用意し、 fvwm がこの ICCCM の規則を大目に見ることが で きるようにしています。しかしこのウィンドウスタイルでも、そ のアプリケーションがフォーカスを認めるかどうかは保証されま せん。 ICCCM 1.1 と 2.0 の違いには、動作中の ICCCM 2.0 準拠のウィ ンドウマネージャからの引き継ぎの能力が含まれます。す な わ ち、 fvwm2; vi .fvwm2rc; fvwm2 -replace は Restart コマンドと似たものになります。しかしこれらは完 全に同じではありません。それは、そのウィンドウマネージャが あなたの .Xclients や .Xsession ファイルの最後のクライアン トとして起動したものであれば、最初に動作していたウィンドウ マ ネー ジャ を殺すことは X との対話を終了してしまうからで す。 さらに追加されているのは、クライアント側のカラーマップの導 入 (詳細は ICCCM を参照) のサポートと、urgency (緊急) のヒ ント情報のサポートです。クライアントは、このヒント情報をそ のウィンドウの WM_HINTS プロパティの中に設定でき、その場合 ウィンドウマネージャに、そのウィンドウへのユーザの注意を引 き付けることを期待します。この目的のために、fvwm は 2 つの 再定義可能な関数 "UrgencyFunc" と "UrgencyDoneFunc" を持っ ていて、それらはそれぞれこのフラグがセット、クリアされたと きに実行されます。これらのデフォルトの定義は以下の通 り で す。 AddToFunc UrgencyFunc + I Iconify off + I FlipFocus + I Raise + I WarpToWindow 5p 5p AddToFunc UrgencyDoneFunc + I Nop |
fvwm は GNOME への準拠を試みています。それが何を意味するか については http://www.gnome.org をチェックしてくだ さ い。 GNOME サポートは、コンパイル時のオプションとして、デフォル トで ON になっています。いくつか、あるいはすべてのウィンド ウ に 対 す る GNOME ヒ ン ト 情 報 を 無効にするには、 GNOMEIgnoreHints スタイルを使うことができます。 |
fvwm は Motif Window Manager (Mwm) を可能な限りまねるた め の オ プ ションを提供しています。詳細については、 Style や MenuStyle コマンドの Mwm 特有のオプション、および Emulate コマンドの項をよく参照してください。 |
fvwm は、Open Look の装飾ヒント情報をすべて (ごくささいな もの以外) サポートしています。そのようなアプリケーションを 使う場合は、以下の行を .fvwm2rc に追加してください: Style * OLDecor 大 抵 ( 多分すべて) の Open Look アプリケーションは、キー ボードフォーカスの扱いが少し変っています。それらがうまく機 能するように、多くの仕事が fvwm に入ったのに、まだ問題に遭 う場合があるでしょう。そのようなすべてのアプリケーション ( フォー カ スを持ち続けてしまうようなウィンドウが) に対して は、NeverFocus のフォーカス方法と NoLenience スタイルを 使 うことを勧めます: Style <アプリケーション名> NeverFocus, NoLenience しかしそのフォーカス方法ではやっていけない場合、他のフォー カス方法と Lenience スタイルの組合せのうちの一つを使ってみ てください: Style <アプリケーション名> MouseFocus, Lenience Style <アプリケーション名> SloppyFocus, Lenience Style <アプリケーション名> ClickToFocus, Lenience |
m4 による前処理は fvwm ではモジュールとして提供されていま す。詳細は man FvwmM4 を見てください。簡単に言 う と、fvwm にあなたのファイルを m4 で処理させたい場合、 .fvwm2rc ファ イル内の Read というコマンドを (すべて) FvwmM4 に置き変 え て、fvwm を次のように実行します: fvwm2 -cmd "FvwmM4 .fvwm2rc" |
cpp は C 言語のプリプロセッサです。 fvwm は m4 による前処 理と全く同様の cpp による前処理も提供しています。それに 関 し ては、上の「M4 による前処理」のセクションを、 "m4" の部 分を "cpp" と置き変えて読んでみてください。 |
ウィンドウはそれがフォーカスを得たとき、あるいはフォーカス を得て数ミリ秒後に自動的に一番上に来るようにすることができ ます。それには auto-raise モジュールである FvwmAuto を使用 します。 |
設定ファイルはキー割り当て、マウスボタン割り当て、色、仮想 ディスプレイサイズ、そしてそれらに関連する項目等を記述する のに使われます。初期設定ファイルの典型的な名前は .fvwm2rc で す。組み込み関数 Read を使えば、容易に別の設定ファイル をあなたのしたいように読み込ませることが可能です。 ´#’ で始まる行は fvwm は無視します。’*’ で始まる行は (fvwm 自身の設定コマンドではなく) モジュールの設定コマンドが含ま れる行とみなされます。シェルスクリプト内と同様に、改行の前 にバックスラッシュ ’\’ を書くことで、設定ファイルの 1 行に 改行を含めることができます。この方法によりでつなげられる行 は 1 行であるとして扱われ、改行それ自体は無視されます。 fvwm の設定コマンドと組み込みコマンドとの間には特に違いは なく、「組み込みコマンド」のセクションで説明されているもの はいずれも、それを一つの行に書くことでそれが設定ファイルか ら読み込まれるときに fvwm に実行させることも可能ですし、ま たはメニュー内やマウスボタンやキーボードのキーに割り当てた 実行コマンドとすることも可能です。どの関数が初期化用の意味 を持ち、どの関数が実行時に意味があるのか、ということを決め るのはユーザへの課題として残されています。 |
fvwm の配布には、設定ファイル .fvwm2rc のサンプルが含ま れ ています。それらにはコメントが丁寧に書かれていて、 fvwm の 設定の元のサンプルとして利用できます。 |
ウィンドウマネージャのほとんどすべての操作は、キーボードか ら 行 うことができ、マウスを使わない操作が可能です。適当な キーに Scroll 組込み関数を割り当てることで、仮想デスクトッ プ の ス ク ロー ルが可能になりますし、さらに Popup, Move, Resize, その他ほとんどの組込み関数をキーに割り当てることが 可能です。これらの組込み関数が一度起動すると、マウスポイン タは上、下、左、右の矢印キーで移動でき、 そ し て そ れ は return を打つことで終了します。 Shift キーを押しながらの場 合は、ポインタの移動の歩幅が長くなり、 Ctrl キーを押しなが らの場合は、ポイの移動の歩幅が短かくなります。 emacs や vi の標準的なカーソル移動制御法 ( n, p, f, b, そして j, k, h, l ) も矢印キーの代わりに使えます。 |
fvwm は X セッション管理プロトコルに従うセッション管理をサ ポートしています。それは、ウィンドウの位置、サイズ、重なり 順、 デスクトップ、 sticky であるかどうか、日陰 (shade) で あるかどうか、最大化されているかどうか、アイコン化されてい るかどうか、などの情報をすべてのウィンドウに対して保存し、 そして復帰します。さらにその他の大域的な状態も保存します。 fvwm はスタイル、装飾、関数、メニューなどに関するどんな情 報も保存しませんので、セッションの間にこれらのリソースのい ず れかを (例えば Style コマンドを発行したり様々なモジュー ルを使うことで) 変更する場合は、それらの変更はセッションの 保存と再起動の後では失われてしまいます。それらを永続させた いならば、そのような変更は設定ファイルに書き加えるべ き で す。 さらに注意すべきことは、現在の実装では、マルチスクリーン表 示を使っている場合は以下のような例外があることで す: fvwm を最初に起動したときは、 fvwm は各スクリーンに対して自分自 身のコピーを起動 (fork) することですべてのスクリーンを管理 します。それらすべてのコピーはその親を知っていて、任意のコ ピーに Quit コマンドを発行するとそれはその親を終了し、それ に よっ て fvwm のすべてのコピーが終了させられます。しかし セッションを保存して再起動すると、セッションマネージャはそ のスクリーンに対して fvwm のコピーを生成するのですが、この 場合はそれらがそれぞれひとつのスクリーンのみを管理するもの として起動するので、 Quit コマンドはそれが送られたコピーの みを終了させます。ただ、セッション管理の元では、セッション マネージャを通じてセッションを終了しようとするでしょうから これは多分それほどたいした問題ではないと思います。もしどう しても一度に全部を終了させたいなら、 Exec exec killall fvwm2 とすれば、これなら fvwm のコピーすべてを終了してくれます。 ただし、あなたのシステムが killall コマンドを持っている 必 要があります。 |
多くのコマンドが一つ、または複数のブール値 (真偽値) の引数 を取ります。これにはいくつか同等の入力の形式があ り ま す: "yes", "on", "true", "t", "y" はすべて真を意味し、一方 "no", "off", "false", "f", "n" がすべて偽を意味します。 さ らに "toggle" を受け付けるコマンドもありますが、これは現在 その機能が有効ならばそれを無効にし、またはその逆を行う、と いうことを意味します。 |
以下のコマンドが fvwm に組み込まれています: Key Help R A Popup MenuFvwmRoot Key F1 R A Popup MenuFvwmRoot Key Tab A M WindowList Root c c NoDeskSort Key Escape A MC EscapeFunc Mouse 0 R N Menu MenuFvwmRoot Mouse 1 TS A FuncFvwmRaiseLowerX Move Mouse 1 F A FuncFvwmRaiseLowerX Resize AddToFunc FuncFvwmRaiseLowerX I Raise + M $0 + D Lower Help と F1 キーは、fvwm が生成する組み込みメニューを呼び出 します。これは、主として自分用の設定ファイルを作っていない 新規ユーザのためのものです。ルート (背景) ウィンドウ上でど ちらかのキーを押すと、そのファイルの作成を手伝ってくれるメ ニューが立ち上がります。 ど こ であっても Tab キーを Meta キー (PC のキーボードでは Alt キーと同じ) を押し下げた状態で押した場合は、ウィンドウ リストが立ち上がります。 タイトルバーかサイドフレーム (横の枠) の上では、マウスボタ ン 1 でウィンドウを移動したり、上 (手前) に上げる、下 (奥) に下げる、といったことができます。 ウィ ンドウの角では、マウスボタン 1 でウィンドウの大きさを 変えたり、上 (手前) に上げる、下 (奥) に下げる、といったこ とができます。 これらの割り当ては、上書きしたり削除したりできます。例えば ウィンドウリストの割り当てを削除するには、以下のようにしま す: Key Tab A M - |
fvwm は、キーボードやマウスボタンに割り当てることのできる 組み込み関数を一通り用意しています。 fvwm は、命令の中に組 み込み関数と思われるものがあった場合にそれを探しますが、そ れが見つからない場合は、その指定されたコマンドが Function (コマンドの残り) か、 Module (コマンドの残り) ではないかどうかをチェックします。これは、設定ファイルに対 してとても明快な方法で、複雑な関数やモジュールを呼び出すこ とを可能にしてくれます。 例: .fvwm2rc ファイルが以下の行を含むとします: HelpMe この場合、fvwm はまず "HelpMe" という名前の組み込みコマ ン ド を 探しますが、それは失敗します。次に、ユーザが定義した "HelpMe" という名前の複雑な関数を探します。そしてそのよ う なユーザ定義関数が存在しなければ、 fvwm は "HelpMe" という 名前のモジュールを実行しようとします。 注: fvwm には、 Style, Mouse, FvwmTheme モジュールやその他 多くのもののような指定したウィンドウのみ、あるいはいくつか のウィンドウやまたはすべてのウィンドウの見た目に影響を与え るたくさんのコマンドがあります。軽快に動作するために、それ らの変更はただちに適用されるのではなく、 fvwm に余裕がある とき、すなわちユーザとの対話やモジュールからの入力がすべて かたずいているときに適用されることになっています。特に、あ る 関数の中で設定される新しい Style オプションは、その関数 が終了するまでは適用されません。これは、ときどき予期せぬ効 果を導く恐れがあります。 す べ て の 未 適 用の変更を強制的にすぐに適用させるには、 UpdateStyles, Refresh, RefreshWindow コマンドのいずれか を 使ってください。 |
引用文字列化 |
引用符による引用文字列化は、fvwm に 2 つ以上の単語を単一の 引数と見なさせたいときのみに必要です。不必要なところの引用 符 も 許されます。文字列の中に引用符文字を入れたい場合は、 バックスラッシュを使ってその意味を無くさなければいけ ま せ ん。 例えば、"Window-Ops" という名前のポップアップメニュー に対しては、引用符を使う必要はありません: Popup Window-Ops しかし、このダッシュ (-) をスペースに変えた場合は、引用 符 が必要になります: Popup "Window Ops" サポートされている引用符は、二重引用符、単一引用符、逆引用 符で、この 3 種類の引用符はいずれも同じ方法で取り扱われ ま す。一つの文字は、バックスラッシュを前に置けば引用文字列化 されます。一つの文字の引用文字列化は、他の引用符内の文字に 対しても有効です。 |
コマンドの展開 |
fvwm は、fvwm のコマンドラインが実行されるところであればど こでもパラメータの展開を行えます。パラメータは、’$’ の後ろ に 角カッコで囲んだ単語 ($[...])、または特殊文字一つをつけ たものです。 fvwm は、コマンドライン上に引用文字列化されて いないパラメータを見つけると、それをそのパラメータ名が指す 文字列に展開します。未知のパラメータはそのままにされます。 パ ラメータの展開は引用文字列化の前に行われます。 ´$’ 自体 を引用文字列化するには "$$" とします。 以前はいくつかの単一文字によるのパラメータがサポートされて いましたが、それらは色んな問題を引き起こすので、現在ではそ の使用は推奨されていません。代わりに長い代用文字列によるパ ラメータを使うべきです。 例: # 現在のデスクトップ番号、水平ページ位置番号と # ウィンドウクラス名を表示 Echo $[desk.n] $[page.nx] $[w.class] 注: コマンドがウィンドウ以外の上で呼びだされた場合、これは クラス名の代わりに "$[w.class]" という文字列自体を表示しま す。対象となるウィンドウ (コンテキストウィンドウ) を取得す るには、普通はウィンドウの上にマウスポインタがあるだけでは 不 十 分です。そのウィンドウにフォーカスを強制的に与えるに は、 Current コマンドが使えます: Current Echo $[desk.n] $[page.nx] $[w.class] fvwm が認識するパラメータは以下の通りです: |
$$ |
文字 ’$’ 自身。 |
$. |
現在 Read しているファイルのディレクトリの絶 対 パ ス。 こ れは相対的に、そして再配置可能なように設定 ファイルのツリーを作成するためのものです。ファイル の読み込み以外のところで使った場合は、’.’ という値 を返します。 |
$c |
ウィンドウのリソースクラス名、コマンドに関連 す る ウィンドウがなければ "$c" 自身。 (非推奨、代わりに $[w.class] を使うこと) |
$d |
現在のデスクトップ番号。 (非推奨、代わりに $[desk.n] を使うこと) |
$n |
ウィンドウ名、コマンドに関連するウィンドウがなけれ ば "$n" 自身。 (非推奨、代わりに $[w.name] を使うこと) |
$r |
ウィンドウリソース名、コマンドに関連するウィンドウ がなければ "$r" 自身。 (非推奨、代わりに $[w.resource] を使うこと) |
$v |
コマンドラインオプション -version で表示される最初 の行。 (非推奨、代わりに $[version.line] を使うこと) |
$w |
そのコマンドが呼び出されたウィンドウ の window-id (16 進 数表示、例: 0x10023c)、コマンドに関連する ウィンドウがなければ "$w" 自身。 (非推奨、代わりに $[w.id] を使うこと) |
$x |
現在のビューポートの x 座標。 (非推奨、代わりに $[vp.x] を使うこと) |
$y |
現在のビューポートの y 座標。 (非推奨、代わりに $[vp.y] を使うこと) |
$0 から $9 まで |
複雑な関数 ( AddToFunc コマンドで定義された 関 数) に与えられた位置パラメータ。 "$0" は最初のパラメー タで置き換えられ、 "$1" は 2 つ目のパラメータで 置 き換えられ、以下同様です。対応するパラメータが未定 義の場合、 "$..." はコマンドラインから削除さ れ ま す。 |
$* |
複雑な関数に与えられた位置パラメータすべて。これは "$9" の後に続くパラメータも含みます。 |
$[version.num] |
バージョン番号。"2.6.0" など。 |
$[version.info] |
バージョン情報。" (from cvs)" など。公式リリースの 場合は空文字列 (このリリースブランチでは常に空文字 列)。 |
$[version.line] |
コマンドラインオプション -version で表示される最初 の行。 |
$[vp.x] $[vp.y] $[vp.width] $[vp.height] |
現在のビューポートの座標、横幅、縦幅。 |
$[desk.n] |
現在のデスクトップ番号。 |
$[desk.width] $[desk.height] |
デスクトップ全体の横幅と縦幅、すなわち、横幅、縦幅 にそれぞれ x 方向、y 方向のページ数をかけたもの。 |
$[desk.pagesx] $[desk.pagesy] |
デスクトップの x 方向、y 方向の全ページ数。これ は DesktopSize で設定される値に等しくなります。 |
$[page.nx] $[page.ny] |
X, Y 軸方向の現在のページ番号。番号は 0 から数えま す。ページ ( page ) は、GNOME の用語での「領 域」( area ) と同等です。 |
$[w.id] |
そ の コマンドが呼び出されたウィンドウの window-id (16 進数表示、例: 0x10023c)、コマンドに関 連 す る ウィンドウがなければ "$[w.id]" という文字列自身。 |
$[w.x] $[w.y] $[w.width] $[w.height] |
現在のウィンドウがアイコン化されていなければ、その 座標、横幅、縦幅。コマンドに関連するウィンドウがな いか、ウィンドウがアイコン化されている場合は、それ らの文字列そのもの。 |
$[w.name] $[w.iconname] $[w.class] $[w.resource] |
それぞれウィンドウ名、アイコン名、リソースクラス、 リソース名。コマンドに関連するウィンドウがなければ "$[w.<属性>]" という文字列そのもの。 |
$[screen] |
fvwm が動作しているスクリーン番号。これはマルチ ス クリーンでの設定に有用です。 |
$[fg.cs<n>] |
$[bg.cs<n>] |
$[hilight.cs<n>] |
$[shadow.cs<n>] |
こ れらのパラメータのクラスは、カラーセット <n> で 定義されている前景色 (fg)、背景色 (bg)、ハイライト 色 (hilight)、 影の色 (shadow) (<n> は 0 以上の整 数)。例えば、"$[fg.cs3]" はカラーセット 3 の前景色 名 (rgb:rrrr/gggg/bbbb の形式) に展開されます。カ ラーセットの詳細に関しては、 FvwmTheme モジュー ル のオンラインマニュアルを参照してください。他のパラ メータはモジュール設定行では使うことができま せ ん が、このパラメータのクラスは使えることに注意してく ださい。これらは、モジュールに色名を与えられるとこ ろならどこでも使用できます。 fvwm が最初にその設定 ファイルを読むときは FvwmTheme モジュールは動作 し ていませんので、これを以下のようなコマンドで使用し ている場合は、期待した結果が得られないかもしれませ ん: Style * HilightFore $[fg.cs0], HilightBack $[bg.cs0] |
$[...] |
上 記 以外の文字列が角カッコ内に入っている場合は、 fvwm はその文字列名の環境変数を見つけ、もしそれ が あ れ ば そ の 値 に 置 き換えようとします (例えば "$[PAGER]" は "more" が置き換えられたりします)。そ の他の文字列の場合はそのまま残ります。 |
い く つ かの例が AddToFunc コマンドの説明のところにありま す。 |
組み込みコマンドの一覧 |
これ以降のセクションのコマンドの説明は、以下のようにグルー プ化してあります。セクションは、一応重要なものほど先に来る ようにしてあります。 - メニューコマンド - 雑多なコマンド - ウィンドウの移動と配置に影響を与えるコマンド - フォーカスとマウス移動に関するコマンド - ウィンドウの状態を制御するコマンド - マウス、キー、キーストロークの割り当てのためのコマンド - ウィンドウスタイルを制御するスタイルコマンド - ウィンドウスタイルを制御するその他のコマンド - 仮想デスクトップを制御するコマンド - ユーザ関数とシェルコマンドのためのコマンド - 条件付きコマンド - モジュールコマンド - 終了、再起動、セッション管理のコマンド - 色勾配 (グラデーション) |
メニューコマンド |
AddToMenu menu-name [menu-label action] |
これはメニューの定義を開始、あるいはメニュー定義へ の追加を行います。典型的なメニュー定義は例えば以下 のようになります: AddToMenu Utilities Utilities Title + Xterm Exec exec xterm -e tcsh + Rxvt Exec exec rxvt + "Remote Logins" Popup Remote-Logins + Top Exec exec rxvt -T Top -n \ Top -e top + Calculator Exec exec xcalc + Xman Exec exec xman + Xmag Exec exec xmag + emacs Exec 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 関数は、メニューに仕切り線を入れるのに使 わ れます。 キー ワー ド DynamicPopUpAction と DynamicPopDownAction はそれがメニュー項目の名前 と し て 使われるときは特別な意味を持ちます。そのキー ワードに続くアクションは、メニューがポップアップ、 あるいはポップダウンされたときはいつでも実行されま す。この方法で動的なメニューを実装することが可能で す。 DestroyMenu を使ってそれ自身を破壊してまた一 から再構築することすら可能です。メニューが破壊され た と きに (メニューを破壊したときに recreate オプ ションを使わなかった場合)、動的なアクションを再 び 追加することを忘れないでください。 注意: ユーザとの対話を要求するアクションを呼びだす ようにはしないでください。それは多分 失 敗 し、 メ ニュー をめちゃくちゃにするかもしれません。 Silent コマンドを参照してください。 警告: MenuStyle コマンドを動的メニューアクションと して呼びだしてはいけません。これは fvwm を落してし まう可能性があります。 例 (ファイルブラウザ): # 配布物の utils ディレクトリ内に # fvwm_make_browse_menu.sh というシェル # スクリプトが入っています。 AddToMenu BrowseMenu + DynamicPopupAction Piperead \ ’fvwm_make_browse_menu.sh BrowseMenu’ 例 (画像メニュー): # $HOME/Pictures 内のすべての .jpg ファイルの # メニューを構成 AddToMenu JpgMenu foo title + DynamicPopupAction Function MakeJpgMenu AddToFunc MakeJpgMenu + I DestroyMenu recreate JpgMenu + I AddToMenu JpgMenu Pictures Title + I PipeRead ’for i in $HOME/Pictures/*.jpg; \ do echo AddToMenu JpgMenu "‘basename $i‘" Exec xv $i; done’ キーワード MissingSubmenuFunction は同様の意味を持 ちます。これは、存在しないようなサブメニューをポッ プアップしようしたときにいつでも実行されます。この 関 数 を使えば、実行中にメニューを定義し破壊できま す。このキーワードの後に任意のコマンドを使え ま す が、 AddToFunc で定義される関数の名前がそれに続く と fvwm は以下のコマンドを実行します: Function <function-name> <menu-name> すなわち、その名前はその関数に最初の引数として渡さ れ、それは "$0" で参照できます。 例: # 配布物の utils ディレクトリに、 # fvwm_make_directory_menu.sh という別のシェルスクリプトが # 入っています。それを使うには、あなたの設定ファイルに以下 # の関数を定義します: AddToFunc MakeMissingDirectoryMenu + I Exec fvwm_make_directory_menu.sh $0 AddToMenu SomeMenu + MissingSubmenuFunction MakeMissingDirectoryMenu + "Root directory" Popup / これは、各サブディレクトリに対してサブメニューを使 用するファイルブラウザの別の実装になっています。 メニュー内ではタイトルを使用できます。キー ワー ド Title の後ろにオプション top を追加すれば、タイト ルはメニューの一番上に追加されますが、既にタイトル がある場合は、それは上書きされます。 AddToMenu Utilities Tools Title top メ ニューラベル内の最初の タブ までのすべての文字列 は、メニューの左端に揃えられて置かれ、最初の タ ブ の 右 の 文字列はすべて第 2 列の左に揃えられて置か れ、その後の文字列はすべて第 3 列の右に揃えて置 か れ ます。他の タブ はすべてスペースに置き換えられま す。この書式は、 MenuStyle コマンド の ItemFormat オプションで変更できることに注意してください。 メ ニューラベルがアンパーサンド (’&’) を含む場合、 その次の文字はそのメニュー項目へのホットキーと見な されます。ホットキーはラベル内で下線つきで表示され ます。文字としての ’&’ を使いたい場合は "&&" と し てください。ホットキーを押すと、メニューリストの項 目のうち、このホットキーに関連づけられた項目の上を 動くか、またはそのような項目が一つしかない場合は、 それを選択することになります。 メニューラベルが ’*’ で区切られた部分文字列を含 ん でいる場合、 ´*’ で囲まれた文字列は xpm アイコンか ビットマップファイルの名前であるとみ な さ れ、 メ ニュー に挿入されます。文字としての ’*’ を使いたい 場合は "**" としてください。例えば、 + Calculator*xcalc.xpm* Exec exec xcalc は、"Calculator" というラベルのついたメニュー項 目 を作り、その上に計算機の絵がつきます。以下の例: + *xcalc.xpm* Exec exec xcalc は、"Calculator" というラベルを省略しますが、絵は 残ります。 メニューラベルが ’%’ で区切られた部分文字列を含 ん でいる場合、 ´%’ で囲まれた文字列は xpm アイコンか ビットマップファイルの名前であるとみ な さ れ、 メ ニューラベルの左に挿入されます (いわゆるミニアイコ ン)。メニューの右側に書かれる第 2 ミニアイコンも同 様 にして与えることができます。文字としての ’%’ を 使いたい場合は "%%" としてください。例えば、 + Calculator%xcalc.xpm% Exec exec xcalc は、"Calculator" というラベルのついたメニュー項 目 を作り、その左に計算機の絵がつきます。以下の例: + %xcalc.xpm% Exec exec xcalc は、"Calculator" というラベルを省略しますが、絵は 残ります。これに使用される画像は小さいものであるべ きです (できれば 16x16)。 メニュー名 (ラベル名ではない) がアットマーク (’@’) で区切られた部分文字列を含んでいる場合、その文字列 は メ ニュー の左側に書かれる xpm ファイルかビット マップファイル (サイドピクスマップ) のファイル名で あ ると見なされます。この代わりに、 MenuStyle コマ ンドの SidePic オプションを使用することも で き ま す。文字としての ’@’を使いたい場合は "@@" としてく ださい。例えば、 AddToMenu StartMenu@linux-menu.xpm@ は、その左下に画像を持つメニューを生成します。 メニュー名が ’^’ で区切られた部分文字列も 含 む 場 合、 その文字列は X11 の色名であると見なされ、サイ ドピクチャを含む列がその色で塗られます。この色は、 MenuStyle コマンドの SideColor オプションで指定す ることもできます。文字としての ’^’ を使いたい場 合 は "^^" としてください。例: AddToMenu StartMenu@linux-menu.xpm@^blue^ これは、その左下に画像を持つメニューを生成し、その 画像を含む領域を青に塗ります。 以上のすべての場合において、結果としてメニューの名 前は、それらの区切り文字で囲まれた部分文字列を取り 除いたものになります。 |
ChangeMenuStyle menustyle menu ... |
これは、 menu のメニュースタイルを menustyle に 変 更 します。一回の ChangeMenuStyle の呼び出しで、複 数のメニューを指定することができます。 ChangeMenuStyle pixmap1 \ ScreenSaverMenu ScreenLockMenu |
CopyMenuStyle orig-menustyle dest-menustyle |
これは orig-menustyle を dest-menustyle にコピーし ま す。 こ こ で、 orig-menustyle は既に存在するメ ニュースタイルです。 dest-menustyle が存在していな い場合、それは新規に生成されます。 |
DestroyMenu [recreate] menu |
これはメニューを削除し、その後のそのメニューへの参 照が無効になるようにします。これは、fvwm を動作 さ せながらメニューの内容を変更する場合に使えます。そ のメニューは AddToMenu を使って再構成できます。 省 略 できるパラメータ recreate は、fvwm に、メニュー を完全には捨てないが、すべてのメニュー項目 (タイト ルも含む) を捨てることを指示します。 DestroyMenu Utilities |
DestroyMenuStyle menustyle |
こ れは、 menustyle という名前のメニュースタイルを 削除し、このスタイルを使用するすべてのメニューをデ フォルトスタイルに変更します。よって、デフォルトメ ニュースタイルは削除できません。 DestroyMenuStyle pixamp1 |
Menu menu-name [ position ] [ double-click-action ] |
これは、あらかじめ定義されたメニューを sticky な ( くっついた) 方式でポップアップさせます。すなわち、 ユーザがメニューをドラッグではなくクリックで呼び出 し た 場合、メニューは消えずに出続けます。コマンド double-click-action は、表示されているメ ニュー で ユー ザ がボタンをダブルクリックした場合 (またはメ ニューがキーに割り当てられている時にそのキー を 2 度速く打った場合) に呼び出されるものです。ダブルク リック動作を設定しなければ、メニューの上でダブルク リッ ク し て も何もしません。しかし、メニューがメ ニュー項目から始まっていて (つまりタイトルや セ パ レー タから始まっていない)、ダブルクリック動作を設 定しなかった場合は、ダブルクリックによってメニュー の最初の項目が呼びだされます (しかし、ポインタが真 にその項目の上にあった場合のみ)。 ほかにいくつかメニュー操作に影響を与えるコマンドが あ ります。 MenuStyle と SetAnimation を参照してく ださい。メニュー内では、キーボードショートカットが 期待通りに動作しますし、矢印キーの操作も行えます。 特に、 Tab, Meta-Tab, 下矢印キー, Ctrl-N, Ctrl-J は次の項目へ移動、 Shift-Tab, Shift-Meta-Tab, 上矢 印キー, Ctrl-P, Ctrl-K は前の項目へ移動、 左 矢 印 キー と Ctrl-B は前のメニューへ戻り、 右矢印キー と Ctrl-F は次のメニューをポップアップします。 Ctrl- 上矢印キー, Shift-Ctrl-Meta-Tab, Page-Up は 5 項目 上へ、 Ctrl-下矢印キー, Ctrl-Meta-Tab, Page-Down は 5 項目下へ移動します。 Home, Shift-上矢印キー は 最初の項目へ、 End, Shift-下矢印キー 最後の項目へ、 Meta- 上矢印キー と Meta-下矢印キー はそれぞれ前、あ るいは次の区切りのすぐ向 こ う へ 移 動 し ま す。 Shift-Ctrl-Tab と Ctrl-Tab も全く同じです。 Enter, Return, Space は現在の項目を実行し ま す。 Insert は、"More..." というサブメニューがあればそれを開き ます。 Escape と Delete は現在のメニューの列から抜 け出ます。 メニューの呼び出しと終了がいずれもキー操作で行われ た場合、ポインタはそのメニューが呼びだされたときに あった場所へジャンプします。 The 引数 position により、スクリーン上の適当な位置 へメニューを配置することが可能になります。例えば、 表示されているスクリーンの中央やタイトルバーの上な ど。基本的に、以下のように動作します: 背景の長方形 context-rectangle 、およびメニューの左上角がこの長 方形の左上角からどれだけずれているかを示す数値を指 定します。引数 position は以下のようないくつかの部 分から成ります: [context-rectangle] x y [special-options] context-rectangle は以下のいずれか: |
Root |
現在のスクリーンのルート (背景) ウィ ン ド ウ。 |
XineramaRoot |
Xinerama ス クリーン全体のルートウィンド ウ。 Xinemrama を使っていない場合は "root" と同じ。 |
Mouse |
マウス位置の 1x1 の長方形。 |
Window |
フォーカスを持つウィンドウ。 |
Interior |
フォーカスウィンドウの内部。 |
Title |
フォーカスされているウィンドウやアイコンの タイトル。 |
Button<n> |
フォーカスウィンドウの n 番目のボタン。 |
Icon |
フォーカスされているアイコン。 |
Menu |
現在のメニュー。 |
Item |
現在のメニュー項目。 |
Context |
現在のウィンドウかメニューかアイコン。 |
This |
ポインタが乗っている任意の部品 (例えばウィ ンドウの角やルートウィンドウなど)。 |
Rectangle <geometry> |
X の geometry の書式による <geometry> で定 義された長方形。幅と高さが省略された場合は デフォルトでは 1 となる。 |
context-rectangle を省略したか適さなかった場合 (例 えばウィンドウ上で "item" だった場合)、"Mouse" が デフォルトになります。すべての状況で、これらのすべ てが意味があるとは限らない (例えばポイ ン タ が メ ニュー上にあるときの "Icon" など) ことに注意してく ださい。 ずらし位置 x と y は、メニューがデフォルトの位置か ら ど れくらい離れているかを示します。デフォルトで は、与えられた数値は context-rectangle の幅、高 さ に対するパーセンテージであると見なされますが、 ’m’ を最後につけた場合はメニューの幅、高さに対する割合 で あると見なれます。また、 ’p’ がついた場合は、そ の数値がピクセル数であると見なされます。 単一の値でなく、値のリストを指定することも可 能 で す。最初の値に追加する値は、それに符号をつけること でその区切りとします。それ以外の区切り文字を使って はいけません。 x, y が "o<number>" で、<number> が整数であると き、メニューとその長方形は、他のずらしが適用される 前 に、 指定された位置に重なるように移動します。メ ニューと長方形は、その長方形の幅/高さ の <number> パー セントの場所のピクセルが、メニューの幅/高さの <number> パーセントのピクセルに正しく重なるよう に 配置されます。よって、"o0" はメニューと長方形の上/ 左の角が重なり、 "o100" は下/右の角が重なり、"o50" の場合は両者がお互いにセンタリングされます (実際に やってみればこの説明より簡単にわかるでしょう)。 デ フォ ル ト は "o0" で す。"o<number>" は、"+<number>-<number>m" の省略形です。 ’c’ は "o50" を意味します。例: # ウィンドウリストをスクリーンの中央へ WindowList Root c c # メニューをウィンドウの左へ Menu name window -100m c+0 # ポップアップメニューを 8 ピクセルマウスポインタの上に Popup name mouse c -100m-8p # スクリーンのどこか Menu name rectangle 512x384+1+1 +0 +0 # 垂直方向にメニュー項目を中心に AddToMenu foobar-menu + "first item" Nop + "special item" Popup "another menu" item \ +100 c + "last item" Nop # 最初のメニュー項目の上 AddToMenu foobar-menu + "first item" Popup "another menu" item \ +0 -100m サブメニューを現在のメニューから離して置くことも可 能であることに注意してください。その場合はマウスが そのメニューから離れることなくサブメニューに到達す ることはできません。ポインタが現在のメニューからほ ぼサブメニューの方向に離れた場合、そのメニューは居 続けます。 special-options は以下の通り: |
animated、 ま た は Mwm, Win メニュースタイル は、スクリーンのどこか別の場所へメニューを 移 動 します。これを望まない場合、オプションとし て Fixed を指定できます。これは 例 え ば、 メ ニュー をスクリーンの右上角に固定したい場合な どが相当します。 そのメニュー項目をクリックしたときにどこに メ ニュー を現わしたいでしょうか ? デフォルトで は、タイトルがカーソルの下に来るようにしま す が、 それを位置引数が示す場所にしたいときは、 SelectInPlace オプションを指定してくださ い。 ポ インタをメニュータイトルの上に来るようにし たい場合は、 SelectWarp オプションを使用し て ください。これらのオプションは、 MenuStyle オ プション PopupAsRootMenu が使用されている場合 のみ適用されます。 ポ イ ン タ は、 それがある項目にあってサブメ ニューがポップアップしたときには必ず サ ブ メ ニューのタイトルに移動 (fvwm メニュースタイル のとき)、またはそのタイトルには決して移動しま せん (Mwm , Win メニュースタイルのとき)。サブ メニューが開いたときに強制的に移動する (決 し て 移 動 し な いようにする) には、 WarpTitle (NoWarp) オプションを使用します。 special-options は、他の位置引数をを持たな い 普 通のメニューに対して動作することに注意して ください。 |
MenuStyle stylename options |
これは、新しいメニュースタイルを設定、あるいは前に 定 義されたスタイルを変更します。 stylename はその スタイル名で、スペースやタブを入れる場合はそれは引 用 符 で 括る必要があります。 "*" という名前は、デ フォルトメニュースタイル用に予約されていま す。 デ フォ ルトメニュースタイルは、 ChangeMenuStyle でス タイルを割り当てられたことのないすべてのメニュー系 オブジェクト (例えば WindowList コマンドで作られる ウィンドウ等) 用に使用されます。 DestroyMenuStyle も参照してください。白黒 (monochrome) を使用してい る場合は、カラーオプションは無視されます。 options は、以下のキーワードを含むコンマ区切りのリ ス ト で す: Fvwm / Mwm / Win, BorderWidth, Foreground, Background, Greyed, HilightBack / HilightBackOff, ActiveFore / ActiveForeOff, MenuColorset, ActiveColorset, GreyedColorset, Hilight3DThick / Hilight3DThin / Hilight3DOff, Hilight3DThickness, Animation / AnimationOff, Font, MenuFace, PopupDelay, PopupOffset, TitleWarp / TitleWarpOff, TitleUnderlines0 / TitleUnderlines1 / TitleUnderlines2, SeparatorsLong / SeparatorsShort, TrianglesSolid / TrianglesRelief, PopupImmediately / PopupDelayed, PopdownImmediately / PopdownDelayed, DoubleClickTime, SidePic, SideColor, PopupAsRootMenu / PopupAsSubmenu, RemoveSubmenus / HoldSubmenus, SubmenusRight / SubmenusLeft, SelectOnRelease, ItemFormat, VerticalItemSpacing, VerticalTitleSpacing, AutomaticHotkeys / AutomaticHotkeysOff. 上のリストのいくつかのオプションは 2 つ、あるい は 3 つの組が ’/’ で区切られていますが、それらは互い に排他的です。 Fvwm, Mwm, Win は、以前のバージョンの fvwm の同 名 の ス タイルに対するオプションをすべてリセットしま す。新しいメニュースタイルに対するデ フォ ル ト は Fvwm ス タ イ ル で す。 こ れらのオプションは、 Foreground, Background, Greyed, HilightBack, HilightFore, PopupDelay を除く他のすべてのオプショ ンを書き変えるので、それらはメニュースタイルの最初 のオプションとしてのみ使用するか、そのスタイルを定 義されている振舞いにリセットするために使用するべき でしょう。もちろん、他のオプションをすべての一つ一 つ設定することでも同じ効果を得ることはできます。 Mwm スタイルと Win スタイルメニューはサブメ ニュー を 自動的にポップアップします。 Win メニューは、背 景を暗くすることで現在のメニュー項目を示し ま す。 Fvwm スタイルのサブメニューは親メニューに重なりま すが、 Mwm と Win スタイルのメニューは親メニューに は決して重ねません。 Fvwm ス タ イ ル は、 以 下 の 指 定 と同等です: HilightBackOff, Hilight3DThin, ActiveForeOff, AnimationOff, Font, MenuFace, PopupOffset 0 67, TitleWarp, TitleUnderlines1, SeparatorsShort, TrianglesRelief, PopupDelayed, PopdownDelayed, PopupAsSubmenu, HoldSubmenus, SubmenusRight, BorderWidth 2, AutomaticHotkeysOff. Mwm ス タ イ ル は、 以 下 の 指 定 と 同等です: HilightBackOff, Hilight3DThick, ActiveForeOff, AnimationOff, Font, MenuFace, PopupOffset -3 100, TitleWarpOff, TitleUnderlines2, SeparatorsLong, TrianglesRelief, PopupImmediately, PopdownDelayed, PopupAsSubmenu, HoldSubmenus, SubmenusRight, BorderWidth 2, AutomaticHotkeysOff. Win スタイルは、以下の指定と同等です: HilightBack, Hilight3DOff, ActiveForeOff, AnimationOff, Font, MenuFace, PopupOffset -5 100, TitleWarpOff, TitleUnderlines1, SeparatorsShort, TrianglesSolid, PopupImmediately, PopdownDelayed, PopupAsSubmenu, RemoveSubmenus, SubmenusRight, BorderWidth 2, AutomaticHotkeysOff. BorderWidth は、ピクセル単位でのメニューの周囲の境 界線の幅を引数として取ります。それは 0 から 50 ピ ク セルの範囲の数値で、デフォルトは 2 です。不正な 値を使用すると、境界線の幅はデフォルトになります。 Foreground と Background は、色名を引数として取り ます。この色は、それぞれメニューの文字色、メニュー の背景色として使用されます。色名を省略してこれらを 指定することもでき、その場合はこれらの色は、組み込 まれているデフォルトの色にリセットされます。 Greyed は、色名を引数として取ります。この色は、ア プリケーションによって指定される Mwm ヒントによ り 禁止される (または非推奨である) メニュー選択を描画 するのに使用されます。色名を省略した場合、この色付 けされるメニュー項目はの色は、メニューの背景色に基 づいたものになります。 HilightBack と HilightBackOff は、選択 さ れ た メ ニュー項目の背景色のハイライト化を、それぞれ On ま たは Off にします。 HilightBack に引数として色名を 与えることで、特定の背景色を使用できます。このオプ ションを引数なしで使用すると、メニューの背景色に基 づく色が使用されます。 ActiveFore と ActiveForeOff は、選択されたメニュー 項目の前景色のハイライト化を、それぞれ On ま た は Off にします。 ActiveFore に引数として色名を与える ことで、特定の前景色を使用できます。色名を省略した 場合、 ActiveForeOff と同じことになります。 MenuColorset は、 Foreground, Background, MenuFace メニュースタイルの代わりにカラーセットが使うかどう かを制御します。キーワード MenuColorset の後ろに 0 以上の数字をつけた場合、この数字は使用する カ ラー セットの番号として扱われます。番号を省略した場合、 カラーセットはスイッチ off となり、標準のメ ニュー スタイルが再び使用されます。メニュー項目の背景色、 前景色はカラーセットの色で置き換えられます。カラー セットが定義されたピクスマップ画像を持っている場合 は、このピクスマップ画像がメニューの背景として使用 されます。メニュースタイル MenuFace は、メモリの消 費に関して最適化されていて、カラーセットによる背景 よりもメモリの消費が少ないことに注意してください。 カラーセットの形状マスクは、メニューの形状として使 用されます。カラーセットに関する詳細に関しては、コ マンド Colorset に関 す る 説 明 と、 モ ジュー ル FvwmTheme のマニュアルを参照してください。 ActiveColorset は、メニュースタイル ActiveFore で 与えられる色をカラーセットの前景色で置き換え、コマ ンド HilightBack (背景のハイライト化を on にするに は、メニュースタイル HilightBack も使わなければ な りません) で与えられる色をカラーセットの背景色で置 き換えることを除いては、 MenuColorset と全く同様に 機能します。これが指定された場合、カラーセットのハ イライト色と影の色も使われますが、カラーセットのピ クスマップ画像と形状のマスクは使用されません。 GreyedColorset は、メニュースタイル Greyed で与え られる色をカラーセットの前景色で置き換えることを除 い て は、 MenuColorset と全く同様に機能します。カ ラーセットの他の部分は使用されません。 Hilight3DThick, Hilight3DThin, Hilight3DOff は、選 択 されたメニュー項目を 3 次元の浮き彫りでハイライ ト化するかどうかを決定します。太い浮き彫り (thick) は 2 ピクセル幅、細い浮き彫りは 1 ピクセル幅です。 Hilight3DThickness は数値の引数を一つとり、それ は -50 から +50 ピクセルの間の値です。負の値の場合、 メニュー項目は押された見た目になります。前の 3 つ の コ マ ン ドは、このコマンドでその太さをそれぞれ 2,1,0 と指定したのと同じことになります。 Animation と AnimationOff は、メニューのア ニ メー ショ ンをそれぞれ on または off にします。アニメー ションが on の場合、スクリーン上で合わないサ ブ メ ニューが、親メニューを左へずらしてサブメニューが見 えるようにします。 Font はフォント名を引数として取ります。その名前 の フォントが存在する場合、それがすべてのメニュー項目 の文字に使用されます。そのフォントが存在しないか、 または名前が空欄である場合、組み込まれているデフォ ルトのフォントが使用されます。 MenuFace は、メニューに背景の装飾を強制 し ま す。 MenuFace には ButtonStyle に対するものと全く同じオ プションを使用できます。詳細については、コマ ン ド ButtonStyle の説明と 「色勾配 (グラデーション)」の セクションを参照してください。引数なしで MenuFace を使用すると、スタイルは標準のものに戻ります。 MenuFace の例をいくつか紹介します: MenuFace DGradient 128 2 lightgrey 50 blue 50 \ white MenuFace TiledPixmap texture10.xpm MenuFace HGradient 128 2 Red 40 Maroon 60 \ White MenuFace Solid Maroon 注 意: H, V, B, D 付きの色勾配 (グラデーション) は、メニュー内での速度とメモリの使用に関して最適化 されていますが、他の色勾配スタイルはすべてそうでは ありません。よってそれらは遅いし、多くのメモリを使 用する可能性があり、それによって実行速度等に問題が ある場合は、それらを使うことをやめて off にする と いいでしょう。実行速度を改善するには、以下のうちの いずれか、またはすべてを試してみてください: 前景色以外の現在のメニュー項目のハイライト化を off にすること: MenuStyle <style> Hilight3DOff, HilightBackOff MenuStyle <style> ActiveFore <preferred color> サ ブ メニューが親メニューに重ならないようにするこ と。これは、サブメニューがポップアップ、ポップダウ ンされたときにいつでもメニューを再描画しようとする ことを防ぐことができます。 MenuStyle <style> PopupOffset 1 100 X サーバをバッキングストアを行うように実行す る こ と。あなたが X サーバを -bs オプション付きで起動し ていたら、それを off にしてください。そうでなけ れ ば、-wm オプションを試してみてください。 startx -- -wm この例は、あなたのシステムに合わせて (例えばあなた が X を起動するのに xinit を使っている場合など) 書 きかえる必要があるかもしれません。 PopupDelay は、 一つの数値引数を取ります。この値 は、ポインタがサブメニューを持つメニュー項目の上に 移動したときに、サブメニューがポップアップされるま での、ミリ秒単位での時間になります。その値が 0 の 場合、自動的なポップアップは行われません。引数を省 略した場合、組み込まれているデフォルトの値が使用さ れます。オプション PopupImmediately が使用されると サブメニューはすぐにポップアップされるので、その場 合 は このポップアップまでの時間は、意味を持ちませ ん。 PopupImmediately は、ポインタがサブメニューを持 つ メニュー項目に入ったら、すぐにポップアップさせるよ うにします。この場合、オプション PopupDelay は無視 されます。 PopupDelayed が使用された場合 fvwm は、 この自動的なポップアップが起こるかどうか、またいつ 起 こ るかを知るためにオプション PopupDelay を見ま す。 PopdownDelay は、スタイル PopupDelayed のタイム ア ウト時間を決めることを除いては、 PopupDelay と全く 同様に機能します。 PopdownImmediately は、ポインタがサブメニューや 親 メ ニュー の対応する項目から離れたら、直ちにサブメ ニューを消します。 そ れ に 反 対 の オ プ ショ ン PopdownDelayed は、 PopdownDelay で指定した時間が たった後にのみサブメニューを削除します。これは、サ ブメニュー内にポインタを移動しようとして、ポインタ がさまよっているときに便利で しょ う。 ス タ イ ル PopupImmediately, PopupDelayed, PopupDelay と、ス タ イ ル PopdownImmediately, PopdownDelayed, PopdownDelay とが衝突している場合、マウスナビゲー ションを使用しているときはスタイル Popup... が 勝 ち、キーボードナビゲーションを使用しているときはス タイル Popdown... が勝つようになっています。 PopupOffset には 2 つの整数引数が必要で、それら の 値はサブメニューを親メニューに対して配置する場所に 影響を与えます。両方の値が 0 の場合、サブメ ニュー の左端が親メニューの左端に重なります。最初の値が 0 でなければ、サブメニューはその値のピクセルだけ右に (その値が負なら左に) ずらされます。 2 番目の値が 0 でなければ、サブメニューはその値の親メニュー幅に対 す る 割合 (バーセント) だけ右または左にずらされま す。 TitleWarp と TitleWarpOff は、サブメニューが開いた と き、 ま た はそうでないときに、ポインタをそのメ ニュータイトルに移動するかどうかに影響を与えます。 ポインタの下のメニューがポップアップしていない場合 は、この設定にかかわらずポインタは移動しないことに 注意してください。 TitleUnderlines0, TitleUnderlines1, TitleUnderlines2 は、メニュータイトルの下に何本 の 線を引くかを指定します。 SeparatorsLong と SeparatorsShort は、メニューの分 離線 (separators) の長さを設定します。長い分 離 線 (long) は、左端から右端までべったり伸びます。短い 分離線 (short) は、メニューの端から数ピクセルだ け 離れています。 TrianglesSolid と TrianglesRelief は、サブメニュー 用の小さい三角形をどのように書くかに影響を与 え ま す。 塗り潰し (solid) 三角形は色で塗り潰し、浮き彫 り (relief) 三角形は窪みを作ります。 DoubleClickTime には数値引数が一つ必要で、そ の 値 は、 メニュー内での 2 回のマウスクリックがダブルク リックと認識されるためのミリ秒単位の時間間隔を意味 し ます。デフォルトは 450 ミリ秒で、引数を省略した 場合はダブルクリック時間はこのデフォルトにリセット されます。 SidePic は、xpm かビットマップファイルの名前を一つ の引数として取ります。その画像は、メニューの左側に 沿っ て 描 かれます。この SidePic オプションは、メ ニュー専用のサイドピクスマップで上書きできま す ( AddToMenu 参照)。ファイル名を省略した場合、そのメ ニュースタイルに存在するサイドピクスマップを取り除 きます。 SideColor は、X11 の色名を一つの引数として取りま す。この色は、サイドピクチャを含む列を色付けするの に使われます (上を参照)。 SideColor オプションは、 メニュー専用のサイドカラーで上書 き で き ま す ( AddToMenu 参照)。色名を省略した場合、サイドカラー オプションはオフにされます。 PopupAsRootMenu と PopupAsSubmenu は、メニューのサ ブメニューを開く項目上でクリックしたときの振舞いを 変更します。 PopupAsRootMenu では、サブメニュー の 出 る 前 に オ リ ジ ナ ル の メニューは閉じられ、 PopupAsSubmenu ではそうではなく、よって親メ ニュー に 戻っ て 進 む こ と が で き ま す。 さ ら に、 PopupAsSubmenu では、どこにマウスを移動したかに よ ら ず サブメニューが開いたまま (掲示状態) になりま す。あなたのメニュースタイルによっては、これ は メ ニュー の 移動を単純化できます。掲示状態のメニュー は、任意のキーストロークによって通常の振舞いに復帰 します。デフォルトは PopupAsSubmenu です。 RemoveSubmenus は、親メニューに戻ったときにサブメ ニューを fvwm に 削 除 す る よ う 伝 え ま す。 HoldSubmenus では、サブメニューは見えたままになり ます。スタイル PopupDelayed を使っている場合は、多 分 HoldSubmenus を 使 い た く な る でしょう。 RemoveSubmenus は、キーボードでのメニューの移動 に 影響を与えます。 SelectOnRelease は、オプションキー名を一つの引数と して取ります。このスタイルを使用するメニュー内でそ のキーを離すと、現在のメニュー項目が選択されます。 これは、 Alt-Tab による WindowList による移動操 作 用です。キー名は、 /usr/include/X11/keysymdef.h で 定義されている標準的な X11 キー名から先頭の "XK_" を取り除いたものです。この振舞いを無効にするには、 キー名を省略して実行してください。 注意: KeyRelease イベントをサポートしない X サーバ も 中 に は あ り ま す。 そ の ようなマシン上では SelectOnRelease は機能しません。 ItemFormat は、メニュー項目のレイアウトを決定す る 特別な文字列をその引数として取ります。その書式文字 列をそれがメニュー項目であるかのように考えてくださ い。しなければならないことは、そのメニュー項目の別 々のパーツ (ラベル、サブメニュー用の三角指示、ミニ アイコン、サイドピクチャ) を、空白な領域のどこに配 置するかを fvwm に指示することだけです。この文字列 は、スペース、 タブ 文字、および ’%’ で始まる書式命 令からなります。不正な文字や書式命令は警告なしに無 視されます: |
%l, %c, %r |
これは、次の項目ラベルを挿入し、3 つまでの ラベルが使えます。項目列の左合わせは (%l), セ ンタリングは (%c), 右合わせは (%r) とし ます。 |
%i |
これは、ミニアイコンを挿入します。 |
%>, %< |
これは、サブメニュー用の三角指示で、右向き が (%>), 左向きが (%<) です。 |
%| |
最 初の %| は、背景色か浮き彫り (レリーフ) のどちらか (または両方) でハイライト化する 領域の開始を意味します。2 番目の %| はその 領域の終わりの印です。 %| は、文字列内で 2 度 まで使用できます。これらの 1 つ、または 両方を追加しなければ、fvwm は項目全体の 余 白に余白を設定します (サイドピクチャの計算 をしない)。 |
%s |
これは、サイドピクチャを、メニューの開始位 置、または終了位置に置きます。この命令は、 ただ 1 度だけ、そして書式文字列の最初か 最 後でのみ使用できます。 %s が文字列の最初に なければ、その文字の右にあるすべての文字が 警告なしに無視されます。 |
Space, Tab, %Space, %Tab |
メニューフォントの幅で一つのスペース、また は一つのタブの隙間を追加します。タブを使用 した場合、そのタブ位置は、メニューの端から 8 の倍数の位置になるので、隙間の大きさは 8 つ の スペースに相当するものになります。ス ペースかタブを使用する場合は、文字列全体を 引用符で囲まなければいけません。 |
%p |
これは Space や Tab と同様で、 %p は項目内 に空白の領域を挿入しますが、そのサイズをよ りよく制御できます (以下参照) |
以下のようにして、物体の前や後ろに追加スペースを定 義できます: %left.rightp これは、その物体がメニュー内で定義されている場合 ( 例えばそれが %s でサイドピクチャを使用しているか、 または 3 列目用の %l で実際に 3 列を持つような項目 が 定義されているなど)、 left ピクセルをオブジェク トの前に、 right ピクセルをオブジェクトの後ろに 追 加 し ます。もし不要であれば、 left の部分や right の部分は取り除くこともできます。スクリーン幅までの 任意の値が許されていて、注意すれば負の値も使用でき ます。 p は、上に書いた任意の書式命令に置き換え て ください。 注意: 書式文字列で定義された項目のみがメニュー内で 表示されますので、サイドピクチャが指定されて い て も、 %s をそこに入れなければ、それは表示されませ ん。 注意: SubmenusLeft ス タ イ ル は デ フォ ル ト の ItemFormat 文字列を変更しますが、それが手動で設定 されている場合は変更しません。 注意: メニューの整形化されていないタイトルが最も広 いメニュー項目よりも広い場合、そのメニュー項目の別 々のパーツ間のスペースがそのタイトルの幅に一致する ように広げられます。書式文字列内で左に位置合わせさ れた物体の先頭の (%l, %i, %<, 最初 の %|) は メ ニューの左端へ貼り付き、右に位置合わせされた物体の 後ろの (%r, %i, %>, 2 番目の %|) はメニューの右 端 へ貼り付きます。残りの項目との間隔は等しく広げられ ます。 例: MenuStyle * ItemFormat \ "%.4s%.1|%.5i%.5l%.5l%.5r%.5i%2.3>%1|" これは、fvwm が使用するデフォルトの文字列です: (サ イドピクチャ + 4 pixel 空白) (ハイライト領域の開始 + 1 pixel 空白) (ミニアイコン + 5p) (左揃えの 1 列 目 + 5p) (左揃えの 2 列目 + 5p) (右揃えの 3 列目 + 5p) (第 2 ミニアイコン + 5p) (2p + サブメニュー 用 三角 + 3p) (1p + ハイライト領域の終わり) MenuStyle * ItemFormat \ "%.1|%3.2<%5i%5l%5l%5r%5i%1|%4s" こ れは、fvwm が以下の SubmenusLeft オプションで使 用するものです。 VerticalItemSpacing と VerticalTitleSpacing は、 ItemFormat が水平方向の間隔 (spacing) を制御するの と同様、メニュー項目とタイトルの垂直方向の間隔を制 御します。これらはいずれも -100 から +100 までの範 囲の 2 つの数値引数を取り、最初の方はピクセル単 位 で の標準的なメニュー項目 (またはメニュータイトル) の上の間隔、2 つ目のものはピクセル単位でのその下の 間 隔 で す。 負の値にするのはあまり意味がなく、メ ニューを完全に歪めてしまうかもしれません。引数を与 えないか、与えた引数が不正な場合は、組み込まれてい るデフォルトが使用されます。デフォルトは、項目、ま た は タイトルの上は 1 ピクセル、下は 2 ピクセルで す。 SubmenusLeft は、メニューのレイアウトと振舞いを 鏡 像化します。サブメニューはメニューの左にポップアッ プし、サブメニュー用の三角形は左に描かれ、ミニアイ コンとサイドピクチャは右側に描かれます。デフォルト は SubmenusRight です。メニューの位置ヒント情 報、 すなわち item か menu をコンテキスト長方形として使 用する位置ヒント、そして m オフセットを使用する 位 置ヒントも、この設定で影響を受けます。 AutomaticHotkeys と AutomaticHotkeysOff はメニュー の、各メニュー項目のラベルの最初の文字としてのホッ トキーを自動的に提供する機能を制御します。この振舞 いは、 AddToMenu コマンドで明示的にホットキーが 割 り当てられたときは常に上書きされます。 例: MenuStyle * Mwm MenuStyle * Foreground Black, Background gray40 MenuStyle * Greyed gray70, ActiveFore White MenuStyle * HilightBackOff, Hilight3DOff MenuStyle * Font lucidasanstypewriter-14 MenuStyle * MenuFace DGradient 64 darkgray \ MidnightBlue MenuStyle red Mwm MenuStyle red Foreground Yellow MenuStyle red Background Maroon MenuStyle red Greyed Red, ActiveFore Red MenuStyle red HilightBackOff, Hilight3DOff MenuStyle red Font lucidasanstypewriter-12 MenuStyle red MenuFace DGradient 64 Red Black すべてのスタイルオプションが、各スタイル名に対する 単一行上に置けることに注意してください。 |
MenuStyle forecolor backcolor shadecolor font style [anim] |
これは、 MenuStyle コマンドの古い書式です。これ は 非推奨で、将来削除されるかもしれませんので、上に説 明した新しい書式を使用してください。 これは、メニュースタイルを設定します。白黒を使用し ている場合は、色は無視されます。 shadecolor は、メ ニューの選択画面を描画するのに使われますが、これは あ る ア プリケーションが指定した Mwm ヒント情報に よって禁止 (または非推奨) されています。オプション style は、 Fvwm, Mwm, Win のいずれかで、これはメ ニューの見た目と操作を変更します。 Mwm と Win スタイルのメニューはサブメニューを自 動 的 にポップアップします。 Win メニューは、背景を黒 に変更することで現在のメニュー項目を指し示します。 Fvwm の サブメニューは親メニューに重なりますが、 Mwm と Win スタイルのメニューは、親メニューには 決 して重なりません。 オプション anim を与えた場合、スクリーンに当てはま らないサブメニューは、サブメニューが見えるように親 メニューを左にシフトします。 SetAnimation コマンド も参照してください。 |
Popup PopupName [position] [default-action] |
この組み込み関数は、2 つの目的を持っています: 一つ は、メニューをキーやマウスボタンに割り当てること、 もう一つは、メニューに子メニューを割り当てることで す。 そ れ ぞ れの書式は、少し違いがあります。引数 position は Menu のものと全く同じです。コ マ ン ド default-action は、ユーザがメニューを呼び出すため にボタンをクリックして、それを再び直ちにはなした場 合 (またはそのメニューがキーに割り当てられていれば キーを素早く 2 度打った場合) に 呼 び 出 さ れ ま す。default-action が 指 定 されていなければ、メ ニューのダブルクリックでは何も起きません。しかし、 メニューがメニュー項目から始まる場合 (すなわちタイ トルが な く、 分 離 線 も な い 場 合)、 そ し て default-action が与えられなかった場合は、ダブルク リックはメニューの最初の項目を呼び出します ( た だ し、 ポ イ ン タが実際にその項目の上にあった場合の み)。 あらかじめ定義されたポップアップメニューを、キーま たはマウスボタンに割り当てる方法: |
次 の例は、"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 Fvwm" Restart + "Restart Fvwm 1.xx" Restart fvwm1 -s + "" Nop + "No, Don’t Quit" Nop AddToMenu RootMenu "Root Menu" Title + "Open XTerm Window" Popup NewWindowMenu + "Login as Root" Exec 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 (AcceptsFocus) Focus + "Next Focus" Next (AcceptsFocus) 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 と異なります。それがポップアップメニューなの ですが、これはやや手首に負担となります。 Menu は、 単一クリック動作で居続けます。メニューの対話型の挙 動に関する説明は、 Menu コマンドを参照してく だ さ い。一つのメニューは一度に 10 回まで開けますが、メ ニューはそれ自身、またはその先祖の任意のものをサブ メニューとして使うことさえできます。 |
Title |
これは何もしません。これは popup や menu に タイトル行を挿入するのに使われます。 |
雑多なコマンド |
BugOpts [option [bool]], ... |
このコマンドは、外部プログラムのバグの回避を制御し ます。個々のオプションはコンマ区切りです。追加引数 bool はブール値引数で、バグの回避が可能かどうか を 制 御し、それが "True", "False" の場合はオプション をオン、オフにし、"toggle" はスイッチを前後に切 り 替えます。 bool を省略した場合は、デフォルトの設定 が復帰されます。 FlickeringMoveWorkaround は、ConfigureNotify イ ベ ントを無効にします。このイベントは、アプリケーショ ンが移動している間、通常そのアプリケーションに送ら れます。移動中にやかましく点滅するようなウィンドウ に対しては、このオプションが役立つでしょう。この問 題が起きた場合、それは fvwm のバグではなく、そのア プリケーションの問題であることに注意してください。 MixedVisualWorkaround は、それがルートウィンドウビ ジュアルを使用するようなある操作をする前に、 fvwm に ルー トカラーマップをインストールさせます。これ は、fvwm を起動するときに -visual オプションを使用 していて、そしてある種サーバのある設定の状態でのみ (例えば 8 bit PseudoColor ルートの Exceed 6.0 上、 24 bit TrueColor ビジュアルを使用している fvwm の 場合) 有用です。 ModalityIsEvil オプションは、Motif アプリケー ショ ンがモーダルダイアログ (他の何かを行う前にまず強制 的にそれをクローズすることしかできないようなダイア ログ) を持つことを可能にするかどうかを制御します。 デフォルトは、アプリケーションにモーダルダイアログ を持つことを許しません。このオプションは注意して使 用してください。このオプションが一度 ON になると、 そ れを OFF にするには fvwm を再起動する必要があり ます。 RaiseOverNativeWindows は、X サーバを提供するシ ス テムの直接管理する (ネイティブ) のウィンドウに対し て、fvwm が管理するウィンドウを手前に上げようと し ます。これは、MS-Windows や MS-Windows NT で動作す る X サーバで必要となります。 fvwm は、そのよう な X サーバで動作しているのかを検出しようとし、そして このフラグをそれに従って初期化します。 RaiseOverUnmanaged は、ウィンドウマネージャへの リ ダ イレクトが無効である (override_redirect) ウィン ドウに対して、fvwm が管理するウィンドウを手前に 上 げ ようとします。これは、 ICCCM 勧告に反するような 長く存在するウィンドウを使用するマナーの悪いアプリ ケーションに対処するのに使用されます。 FlickeringQtDialogsWorkaround は、KDE か Qt アプリ ケーションをモーダルダイアログウィンドウのア プ リ ケーションとともに使用しているときに、あるモジュー ルでフォーカスされたウィンドウの点滅 (フリッ カー) を 抑制します。デフォルトでは、このオプションは ON になっています。このオプションは、fvwm が管理し な いウィンドウを使用する他のアプリケーションを、視覚 的に妨害するかもしれません。そのようなアプ リ ケー ショ ン はほとんどないので、多分このオプションをデ フォルトのままにしておいても安全でしょう。 |
BusyCursor [Option bool], ... |
このコマンドは、特定のコマンドの実行の間のカーソル を 制 御 し ま す。 Option は、 DynamicMenu, ModuleSynchronous, Read, Wait, * のいずれかで、 そ れぞれのオプションは、一つのブール値引数 bool を伴 う必要があります。オプションそれぞれの区切りにはコ ンマを使用します。一つのオプションを "True" にする と、fvwm は対応 す る コ マ ン ド の 動 作 中 に、 CursorStyle コマンドの WAIT コンテキストのカーソル を表示します。"False" にするとカーソルを表示しませ ん。デフォルトは以下の通り: BusyCursor DynamicMenu False, \ ModuleSynchronous False, Read False, \ Recapture True, Wait False オ プション * は、有効なすべてのオプションを意味し ます。 オプション Read は、 PipeRead コマンドも制御 し ま す。 オプション DynamicMenu は、 AddToMenu コマンドのオ プ ショ ン DynamicPopupAction と MissingSubmenuFunction に影響を与えます。このオプ ションが "False" にセットされると、動的なメ ニュー コマンド (dynamic menu command) の間、もしこのコマ ンドが Read か PipeRead で、かつオプション Read が "True" にセットされていても、ビジー (busy) カーソ ルは表示されません。 オプション Wait は、ルートカーソルにのみ影響を与え ます。一時休止待ちの間、ルートカーソルはビジーカー ソルに置き換わりますが、 fvwm は完全に機能し続けま す ( 一 時 休 止 か ら 抜 け だすこともできます。 EscapeFunc コマンド参照)。このオプションを使用した くて、かつデフォルトのルートカーソルを使いたくない 場合、 CursorStyle コマンドで別なルートカーソル を セットする必要があります。 |
ClickTime [delay] |
これには、組み込み関数 Function が、マウスクリック 動作と認識する、ボタンを押してからはなすまでの最大 の時間間隔 (ミリ秒単位) を指定します。デフォルトの 時間間隔は 150 ミリ秒です。時間間隔指定を省略す る と、 ClickTime はデフォルトにリセットします。 |
ColorLimit limit |
こ れには、fvwm が使用するピクスマップで使われる色 数の限界値 limit を指定します。0 (デフォルト) を設 定すると、制限なしとなります。 fvwm は、アイコン、 ミニアイコン、ピクスマップ境界、そしてメニューの背 景とタイトルにピクスマップを使用します。このコマン ドは、ピクスマップカラーを共有色で始まる色の集合に 制限します。現在の一覧には約 60 色が含まれ、それは 以下で始まっています: white, black, grey, green, blue, red, cyan (水色), yellow, magenta (赤紫)。コ マンド ColorLimit 9 は、ピクスマップをこの 9 色に制限します。 このコマンドを .fvwm2rc ファイルの先頭に置くことは とても意味があります。このコマンドは、ミニアイコン を含むどんなメニュー定義よりも前に置いてください。 こ の コマンドでは、フレームの塗り潰しとタイトルカ ラー (影、色勾配を含む) は制御できません。 このコマンドは、制限された数の色を一度だけ表示する ようなスクリーンにのみ意味があります。あなたのディ スプレイが 200 万を超える色を一度に表示で き る な ら、 このコマンドは無視されます。 256 色しか一度に 表示できないディスプレイは 8 ビットディスプレイ と 言 います。 200 万色の切れ目は 21 ビットカラーに対 応しますが、この制限を越える最も一般的なスクリーン は 24 ビットでしょう。 8 ビットディスプレイでは、デフォルト色の制限は組み 込み表のサイズ (約 60) にセットされています。そ の 場 合 .fvwm2rc にはこのコマンドは入れずに、このデ フォルト値で起動することをお勧めします。 |
ColormapFocus FollowsMouse|FollowsFocus |
デフォルトでは、fvwm はカーソルが入っているウィ ン ドウにカラーマップを割り当てます。 ColormapFocus FollowsFocus を使うと、カラーマップは、現在キーボードフォーカス のあるウィンドウのものになります。 |
CursorStyle context [ number | name | xpm | None | Tiny [ fore back ]] |
これは、、指定されたコンテキスト (状況) に対する新 しいマウスカーソルを定義します。以下のようなコンテ キストが指定できます。 |
POSITION (top_left_corner) |
ウィンドウの初期配置時に使用 |
TITLE (top_left_arrow) |
ウィンドウタイトルバー内で使用 |
DEFAULT (top_left_arrow) |
カーソル設定のないウィンドウ内で使用 |
SYS (hand2) |
タイトルバーボタン上で使用 |
MOVE (fleur) |
ウィンドウの移動とリサイズ時に使用 |
RESIZE (sizing) |
ウィンドウの移動とリサイズ時に使用 |
WAIT (watch) |
特定の fvwm コマンド時に 使 用 ( 詳 細 は BusyCursor 参照) |
MENU (top_left_arrow) |
メニュー上で使用 |
SELECT (crosshair) |
ユーザにウィンドウの選択を要求したときに使 用 |
DESTROY (pirate) |
DESTROY, CLOSE, DELETE 組込みコマンド用 |
TOP (top_side) |
ウィンドウの上端の境界線上で使用 |
RIGHT (right_side) |
ウィンドウの右端の境界線上で使用 |
BOTTOM (bottom_side) |
ウィンドウの下端の境界線上で使用 |
LEFT (left_side) |
ウィンドウの左端の境界線上で使用 |
TOP_LEFT (top_left_corner) |
ウィンドウの左上角で使用 |
TOP_RIGHT (top_right_corner) |
ウィンドウの右上角で使用 |
BOTTOM_LEFT (bottom_left_corner) |
ウィンドウの左下角で使用 |
BOTTOM_RIGHT (bottom_right_corner) |
ウィンドウの右下角で使用 |
TOP_EDGE (top_side) |
スクリーンの上端で使用 |
RIGHT_EDGE (right_side) |
スクリーンの右端で使用 |
BOTTOM_EDGE (bottom_side) |
スクリーンの右端で使用 |
LEFT_EDGE (left_side) |
スクリーンの左端で使用 |
ROOT (left_ptr) |
ルートカーソルとして使用 |
STROKE (plus) |
コマンド StrokeFunc 中に使用 |
それぞれのデフォルトは上のかっこの中に書いてありま す。特定のコンテキストに対するデフォルトカーソルを 復帰したい場合は、 2 番目の引数なしで指定してく だ さい。 2 番目の引数はヘッダーファイル X11/cursorfont.h で 定義されているカーソルの数値か、その名前 (から接頭 辞 XC_ を取り除いたもの)、またはマスクとオプション のホットスポットを持つ深さ 1 のピクスマップを持 つ xpm ファイルの名前 (ホットスポットが定義されていな ければ、画像の中央にホットスポットが置かれます) の い ずれかです。さらに、その名前には、 None (カーソ ルなし)、および Tiny (単一ピクセルのカーソル) も指 定できます。例: # kill カーソルを XC_gumby に (どちらの形式も可): CursorStyle DESTROY 56 CursorStyle DESTROY gumby CursorStyle TOP_LEFT topl.xpm CursorStyle ROOT hand1 yellow black 追加引数の fg と bg は、カーソルに対して前景色と背 景色を設定します。デフォルトは、黒と白です。 |
DefaultColors [foreground background] |
DefaultColors は、例えば、移動やサイズ変更操作のと き の幾何的なフィードバックウィンドウ内などに fvwm が生成する種々のウィンドウの、デフォルトの前景色と 背景色を設定します。いずれか一方を変更したくない場 合は、その色名として - を使用してください。組み 込 まれているデフォルトの色に戻したい場合は、色名を両 方とも省略して指定します。このデフォルト色 は、 メ ニューや、ウィンドウタイトル、アイコンタイトルでは 使用されないことに注意してください。 |
DefaultColorset [num] |
DefaultColorset は、 DefaultColors コマンドで制 御 されるウィンドウで使用されるカラーセットを設定しま す。 DefaultColors のカラーに戻るには、 DefaultColorset -1 とするか、 DefaultColors コマンドの任意の変種を 使 用します。 |
DefaultFont [fontname] |
DefaultFont は、 デ フォ ル トのフォントを、名前 fontname のフォントに設定します。デフォルトフォ ン トは、他のフォントが指定されていないときはいつでも fvwm が使用します。デフォルトフォントを組み込ま れ ているデフォルトに戻したい場合は、引数を省略して指 定します。このデフォルトフォントは、移動やサイズ変 更操作のときの幾何的なフィードバックウィンドウやメ ニュー、ウィンドウタイトル、アイコンタイトルで使用 されます。デフォルトフォントを特定のコンテキストで 変更するには、 Style * Font, Style * IconFont, MenuStyle コマンドを使用してください。 |
DefaultIcon filename |
あるウィンドウが、クライアントから供給されるアイコ ンも、 Style コマンドのオプション Icon を通して 提 供されるアイコンも持っていない場合に、これで設定す るデフォルトアイコンが使用されます。 |
DefaultLayers bottom put top |
これは、 Style オプション StaysOnBottom, StaysPut, StaysOnTop に使用されるレイヤ (層) を変更します。 最初は、レイヤは 2, 4, 6 が使用されています。 |
Emulate Fvwm|Mwm|Win |
このコマンドは、種々のものを fvwm でどのようにさせ るかをすべてまとめたものです。今のところこのコマン ドは、移動/サイズ変更のフィードバックウィンドウ を どこに表示するか、どのようにしてウィンドウの配置を 中止するかに影響を与えます。より Mwm あるいは Win に 似 た振舞いをさせるには、 Emulate を引数 Mwm や Win 付きで呼び出してください。 Mwm を付けた場 合、 移動とサイズ変更のフィードバックウィンドウは、スク リーンの左上角ではなく、中心に来ます。これは、手動 の 配 置をどのように中止するかにも影響を与えます。 ManualPlacement の説明を参照してください。 |
EscapeFunc |
デフォルトではキー列 Ctrl-Alt-Escape は、 Wait の 一 時停止、およびロックされた ModuleSynchronous か ら抜けだすのに使えます。 EscapeFunc コマン ド は、 Key コマンドとともに使用してこのキー列を設定できま す。例: Key Escape A MC - Key Escape A S EscapeFunc は、 Wait の一時停止、および ModuleSynchronous コ マ ン ド を 中 止 す るキー列 Ctrl-Alt-Escape を、 Shift-Escape に置き換えます。 Key コマンド外 で の EscapeFunc コマンドは何もしません。 |
FakeClick [command value] ... |
このコマンドは主に fvwm のデバッグ用で、その動作に 関しては無保証です。 FakeClick は、マウスボタン 押 しとはなしたときのイベントをシミュレートし、それを fvwm や他のアプリケーションに送ります。パラメー タ は、 command トークンと整数の value の組からなるリ ストです。 press と release コマンドは、後ろにマウ スボタン番号を伴い、ボタン押しイベントやボタンはな しイベントをポインタのあるウィンドウ上で生成 し ま す。 wait コマンドは、与えられるミリ秒数間 fvwm を 一時停止します。 modifiers コマンドは、修飾キー の 押し、はなしをシミュレートします。 value の 1 から 5 は、 Mod1 から Mod5 に対応し、6, 7, 8 はそれぞれ Shift , Lock , Control に対応します。 modifiers は、さらに任意ボタンイベントにもセットされます。修 飾キーを離すには、対応する値の負の値を使用します。 depth コマンドは、ボタンイベントをどのウィンドウに 送るかを決定します。 depth が 1 のときは、ポインタ の位置に関わらずすべてのイベントがルートウィンドウ に 送られます。 2 の場合は、イベントはポインタの下 にあるトップレベルのウィンドウ (通常はフレームウィ ンドウ) に送られます。それより大きな値は、それに続 くサブウィンドウに送られます。 0 は、ポインタを 含 む 最 も小さなウィンドウに送られます。そのイベント は、上方向に伝播することに注意してください。 FakeClick depth 2 press 1 wait 250 release 1 これは、親ウィンドウ (depth 2) に、250 ミリ秒の 間 隔 でのボタン押し、はなしによるボタン 1 でのクリッ クをシミュレートします。 |
GlobalOpts [options] |
既にアナウンスした通り、このコマンドは削除されてい ます。設定ファイル内のグローバルオプションは、以下 の表に従って置き換えてください: GlobalOpts WindowShadeShrinks --> Style * WindowShadeShrinks GlobalOpts WindowShadeScrolls --> Style * WindowShadeScrolls GlobalOpts SmartPlacementIsReallySmart --> Style * MinOverlapPlacement GlobalOpts SmartPlacementIsNormal --> Style * TileCascadePlacement GlobalOpts ClickToFocusDoesntPassClick --> Style * ClickToFocusPassesClickOff GlobalOpts ClickToFocusPassesClick --> Style * ClickToFocusPassesClick GlobalOpts ClickToFocusDoesntRaise --> Style * ClickToFocusRaisesOff GlobalOpts ClickToFocusRaises --> Style * ClickToFocusRaises GlobalOpts MouseFocusClickDoesntRaise --> Style * MouseFocusClickRaisesOff GlobalOpts MouseFocusClickRaises --> Style * MouseFocusClickRaises GlobalOpts NoStipledTitles --> Style * StippledTitleOff GlobalOpts StipledTitles --> Style * StippledTitle GlobalOpts CaptureHonorsStartsOnPage --> Style * CaptureHonorsStartsOnPage GlobalOpts CaptureIgnoresStartsOnPage --> Style * CaptureIgnoresStartsOnPage GlobalOpts RecaptureHonorsStartsOnPage --> Style * RecaptureHonorsStartsOnPage GlobalOpts RecaptureIgnoresStartsOnPage --> Style * RecaptureIgnoresStartsOnPage GlobalOpts ActivePlacementHonorsStartsOnPage --> Style * ManualPlacementHonorsStartsOnPage GlobalOpts ActivePlacementIgnoresStartsOnPage --> Style * ManualPlacementIgnoresStartsOnPage GlobalOpts RaiseOverNativeWindows --> BugOpts RaiseOverNativeWindows on GlobalOpts IgnoreNativeWindows --> BugOpts RaiseOverNativeWindows off |
HilightColor textcolor backgroundcolor |
このコマンドは、 Style オプションの HilightFore と HilightBack により過去のものとなっています。代わり に、以下を使用してください。 Style * HilightFore textcolor, \ HilightBack backgroundcolor |
HilightColorset [num] |
こ の コ マ ン ド は、 Style オ プ ショ ン の HilightColorset により過去のものとなっています。代 わりに、以下を使用してください。 Style * HilightColorset num |
IconFont [fontname] |
このコマンドは、 Style オプションの IconFont に よ り過去のものとなっています。代わりに、以下を使用し てください。 Style * IconFont fontname |
IconPath path |
これは古いコマンドです。代わりに、 ImagePath を 使 用してください。 |
ImagePath path |
これは、画像 (白黒、ピクスマップの両方) を検索する ディレクトリのコロン区切りの一覧を指定します。相対 的 なパス名で与えられた画像を見つけるときは、 fvwm はこの一覧の各ディレクトリ内を順番に探し、最初に見 つかったものを使用します。 path には、 $HOME (または ${HOME}) のような環境変 数を入れることもできます。さらに、 path 内 の ’+’ は、パスの前の値に展開されますので、容易にパスの前 後に追加することができることになります。 例: ImagePath $HOME/icons:+:/usr/include/X11/bitmaps 注意: .fvwm2rc ファイルを読ませるのに FvwmM4 モ ジュー ルを使っている場合は、 ImagePath コマンドで よく現れる単語 "include" を m4 がつぶしてしまう 可 能 性があります。これを解決するには、 ImagePath コ マンドの前に undefine(‘include’) を追加するか、またはよりよい解 決 策 と し て は、 -m4-prefix オプションを使って、すべての m4 命令に "m4_" 接頭辞をつけるかです ( FvwmM4 のマニュアルを 参照)。 |
PixmapPath path |
こ れは古いコマンドです。代わりに ImagePath を使っ てください。 |
WindowFont [fontname] |
このコマンドは、 Style オプションの Font によっ て 過去のものとなっています。代わりに、以下を使用して ください。 Style * Font fontname |
WindowList [( conditions )] [ position ] [ options ] [ double-click-action ] |
これは、現在のデスクトップの個々のウィンドウのタイ トルや位置情報が表示されるポップアップメニューを生 成 (そしてそれをポップアップ) します。 位置情報部分の書式は以下の通りで す: desk(layer): x-geometry sticky, ここで、 desk と layer は、対応 する番号で、 sticky は空か文字 S のいずれかで す。 アイコン化されたウィンドウの位置情報はカッコ内に表 示されます。そのウィンドウの一覧のポップアッ プ メ ニューから一つの項目を選択すると、 $0 として渡され るウィンドウのウィンドウ ID を与えてそれを解釈する 関数 "WindowListFunc" を実行させます。デフォルトの "WindowListFunc" は以下のようになっています: AddToFunc WindowListFunc + I Iconify off + I FlipFocus + I Raise + I WarpToWindow 5p 5p これらのデフォルトが気にいらなければ、組み込まれて いる "WindowListFunc" 関数を破棄し、自分で作って構 いません。 ウィンドウリストメニューは、定義 さ れ て い れ ば "WindowList" メ ニュー ス タ イ ルを使用します ( MenuStyle コマンド参照) が、定義されていなければデ フォルトのメニュースタイルを使用します。デフォルト のメニュースタイルに戻すには、以下のコマンドを発行 してください。 DestroyMenuStyle WindowList 例: MenuStyle WindowList SelectOnRelease Meta_L 条件 conditions は、ウィンドウリストからあるウィン ドウを除外するのに使用できます。詳細は Current コ マンドを参照してください。ウィンドウリストには、与 えられた条件を満たすウィンドウのみが表示されます。 options は逆に機能し、ウィンドウリストに含めない ウィンドウをそれによって選択できます。 conditions は常に options を無効にします。 引数 position は、 Menu のものと全く同じです。コマ ンド double-click-action は、ウィンドウリストが 出 ているときにユーザのダブルクリック (またはメニュー がキーに割り当てられている場合にはキーを素早 く 2 回 打っ た 場 合) に 呼 び 出 さ れ ま す。 double-click-action は、それが複数の単語からなる場 合には引用符で囲む必要があります。 double-click-action は、ウィンドウリストをキー (あ るいはボタン) に以下のように割り当てている場合に、 デフォルトのウィンドウを定義するのに便利です: # ここでは存在する関数を呼び出しているが、 # 違っていても構わない AddToFunc SwitchToWindow + I WindowListFunc Key Tab A M WindowList "Prev SwitchToWindow" Alt-Tab を一度打つと、ウィンドウリストが出ますが、 2 回打つと、フォーカスが現在のウィンドウと直 前 に フォーカスされたウィンドウの間を行ったりきたりしま す。正式な SelectOnRelease メニュースタイル (上 の 例 を参照) では、ウィンドウは Alt キーをはなした直 後に選択されます。 WindowList に渡されるオプション options は、以下の 通 り で す。 NoGeometry, NoGeometryWithInfo, Function funcname, Desk desknum, CurrentDesk, NoIcons / Icons / OnlyIcons, NoNormal / Normal / OnlyNormal, NoSticky / Sticky / OnlySticky, NoOnTop / OnTop / OnlyOnTop, NoOnBottom / OnBottom / OnlyOnBottom, Layer m [n], UseListSkip / OnlyListSkip, NoDeskSort, CurrentAtEnd, ReverseOrder, UseIconName, Alphabetic / NotAlphabetic, NoHotkeys, SelectOnRelease. ( 注 意 - Normal は、NoIcons かつ NoSticky かつ NoOnTop を意味します。) オプション SelectOnRelease は、 MenuStyle の同名の オプションと全く同様に機能しますが、メニュースタイ ルで与えられたオプションは無効にします。デフォルト で は、このオプションは左 Alt キーに設定されていま す。これを オ フ に す る に は、 キー 名 な し で SelectOnRelease を使用してください。 Function funcname によってある関数を渡す場合、それ は選択されたウィンドウのウィンドウコンテキスト内で 呼び出されます: AddToFunc IFunc I Iconify toggle WindowList Function IFunc, NoSticky, \ CurrentDesk, NoIcons オプション Layer m [n] を使う場合、m と n の間のレ イヤ内のウィンドウのみが表示されます。 n はデ フォ ル ト で は m です。オプション ReverseOrder を使う と、リスト内のウィンドウの順番は逆になります。 オプション CurrentAtEnd をつけると、現在フォーカス されているウィンドウは (それがあれば) リストの一番 下に現れます。これは、ほぼ他の GUI 内での Alt-Tab の挙動のシミューレション用です。 WindowList をアイコンマネージャとして使いたい場合 は、以下のようにすればいいでしょう: WindowList OnlyIcons, Sticky, OnTop, Geometry (注意 - Only のつくオプションは実質的に他のもの す べ て を一掃しますが、オプション OnlyListSkip は、 WindowList に WindowListSkip スタイルのウィンド ウ のみを見させるのみです。) |
+ |
これは、直前に指定した装飾や関数、メニューに追 加を継続 す る の に 使 用 し ま す。 AddToDecor, AddToFunc, AddToMenu の説明を参照してください。 |
ウィンドウの移動と配置に影響を与えるコマンド |
AnimatedMove x y [Warp] |
これは、あるアニメーションのような仕組みでウィンド ウを移動し、下の Move コマンドとほぼ同等です。オプ ションに関しては、こちらはオプションが必要であるこ とを除けば同じです。それは、ユーザにウィンドウを対 話的にかつアニメーション的に動かさせるのは意味がな いからです。追加オプション引数 Warp を指定すると、 ポインタがウィンドウと一緒に移動 (warp) します。 |
HideGeometryWindow [Never | Move | Resize] |
これは、通常対話的にウィンドウが移動、またはサイズ 変更した場合は位置とサイズが表示されるのに対して、 ウィンドウの位置とサイズを隠します。これを移動、あ るいはサイズ変更の操作の一方のみオフにするには、追 加パラメータ Move, Resize をそれぞれ使用します。こ の両方を再びオンにするには、オプション Never を 使 用してください。 |
Layer [arg1 arg2] | [default] |
これは、現在のウィンドウを新しいレイヤ (層) に置き ます。 arg1 が 0 でなければ、次のレイヤは現在の レ イ ヤの番号と arg1 の和になります。 arg1 が 0 の場 合は、新しいレイヤは arg2 になります。 特別な場合として、 default は、ウィンドウをその デ フォルトのレイヤ、つまり最初にそれがあったレイヤに 置きます。引数を指定しなかった場合、あるいは引数が 無効な場合もこれと同じになります。 |
Lower |
これによりユーザがウィンドウを下 (奥) に下 げることができます。これはウィンドウをそのレイヤ内 のみで下げることに注意してください。ウィンドウを一 番下に持っていくには、以下のようにします: |
AddToFunc lower-to-bottom |
Move [[ w | m ] x [ p ] [ w | m ] y [ p ] [ Warp ]] | [ pointer ] |
これによりユーザがウィンドウを移動できます。 あ る ウィンドウ、またはその境界のどこかからこれが呼び出 された場合、そのウィンドウが移動します。ルートウィ ンドウから呼び出された場合は、対象となるウィンドウ をユーザに選択させます。追加オプション Warp が指定 されると、ポインタはそのウィンドウとともに移動しま す。引数を pointer だけ指定した場合、この操作の 前 に ウィ ンドウの左上の角をポインタの位置に移動しま す。これは主に、 FvwmPager のようなモジュールで の 内部使用のためのものです。 この操作は、Escape キーまたは、マウスボタン 2 を押 すことで中断でき ま す。 マ ウ ス ボ タ ン 3 は PlacedByButton3 条件に設定します ( Current コマン ド参照)。 追加引数 x と y が与えられていれば、そのウィンドウ はユーザへの問い合わせなしに直ちに移動します。各引 数は、スクリーンの左/上、または右/下のいずれかの位 置からの絶対的、または相対的な位置を指定できます。 デフォルトでは、与えられた数値はスクリーンの幅/ 高 さの割合 (%) であると解釈されますが、 ’p’ がついて いれば、それはピクセルと解釈されます。ウィンドウを そ の現在の位置に対して相対的に移動するには、 x や y の値の前に ’w’ ("window" を意味する) 接頭辞を 付 けます。ウィンドウを、ポインタの現在の位置に対して 相対的に移動するには、 ’m’ ("mouse" を意味する) 接 頭辞を付けます。一方の座標を変更しないようにするに は、 x か y の代わりに "keep" を指定します。 簡単な例: # 対話モード Mouse 1 T A Move # ウィンドウの左上が (10%,10%) になるように移動 Mouse 2 T A Move 10 10 # 左上が (10pixels,10pixels) になるように移動 Mouse 3 T A Move 10p 10p より複雑な例 (これらはキーストロークなどの動作に割 り当てることもできますが、ここではそのコマンドのみ 示します): # ウィンドウを右下がスクリーンの右下になるように移動 Move -0 -0 # ウィンドウを 5% 右へ、垂直方向には真ん中へ Move w+5 50 # ウィンドウを 10 ピクセル上へ、 # 左端を x=40 ピクセルへ Move 40p w-10p # ウィンドウをマウスポインタの位置へ # Move m+0 m+0 上の AnimatedMove コマンドも参照してください。 |
MoveToDesk prev | arg1 [arg2] [min max] |
これは、選択されたウィンドウを他のデスクトップに移 動します。引数は、 GotoDesk コマンドのものと同じで す。 MoveToDesk は、以前の WindowsDesk コマンド を 置き変えるもので、これはもはや使われていません。 |
MoveThreshold [pixels] |
ユーザがあるオブジェクトの上でマウスボタンを押した ときに fvwm は その動作がクリックかドラッグであ る か を 知 る た め に少し待ちます。マウスがこの引数 pixels ピクセルより多く動いた場合、それをドラッ グ であると判断します。 fvwm の以前のバージョンでは、この pixels は 3 と ハードコードされていました。これは今もデフォルト値 となっています。 pixels が負であるかまたは省略され ている場合は、デフォルト値 (この 値 は、16000x9000 ピクセルディスプレイが手頃になれば増やした方がいい でしょう) が使用されます。 |
MoveToPage [ x [ p ] y [ p ]] | [prev] |
これは、選択されたウィンドウを他のページ (x,y) に 移 動します。左上のページは (0,0) で、右上は (M,0) です。この M は、 DeskTopSize コマンドで指定される 現 在の水平ページ数から 1 引いた値です。同様に、左 下のページは (0,N) で、右下のページは (M,N) となり ま す。負のページ番号は、最も右/下からのページ数を 見ます。 x と y を与えなかった場合、ウィンドウは現 在 の ページに移動します (これによってフォーカスを 持っているのにスクリーンにはないウィンドウに復帰で き ます)。ウィンドウを現在のページから相対的に移動 したいときには、 ’p’ を一方、または両方の数値引 数 の後につけることでできます。前のページにウィンドウ を移動するときは、 prev を単一の引数として使 い ま す。 sticky なウィンドウの上で MoveToPage を使う と、そのウィンドウを sticky でない状態にしま す ( Stick コマンド参照)。 例: # ウィンドウを ページ (2,3) へ移動 MoveToPage 2 3 # ウィンドウを最も右下のページへ移動 MoveToPage -1 -1 # ウィンドウを最後に訪れたページへ移動 MoveToPage prev # ウィンドウを 2 ページ右、1 ページ上へ移動 MoveToPage +2p -1p |
MoveToScreen [ screen ] |
これは、選択されたウィンドウを、他の Xinerama スク リーンへ移動します。引数 screen は、’p’ ならばプラ イ マリスクリーン、 ´c’ ならば現在の (マウスポイン タがある) スクリーン、 ´g’ ならばスクリーン全体 と なりますが、スクリーン番号 (0 から数える) を直接指 定することもできます。 |
OpaqueMoveSize [percentage] |
これは、fvwm に、不透明なウィンドウ移動を使用す る ウィ ン ド ウの最大サイズを指示します。 percentage は、全スクリーン面積に対する割合 (%) です (100 よ り大きい数字も可)。 OpaqueMoveSize 0 では、すべてのウィンドウが従来のゴムひも形式の外枠 を使って移動します。 OpaqueMoveSize unlimited または負の percentage を与えた場合は、すべてのウィ ン ド ウは実体のあるウィンドウのまま移動します。デ フォルトは OpaqueMoveSize 5 で、これは小さいウィンドウは不透明な方法で、大きな ウィ ンドウはゴムひも形式で移動します。 percentage を省略するか無効な値を指定すれば、デフォルトの値が セットされます。ウィンドウのサイズ変更を不透明な方 法で行うには、 ResizeOpaque が使えます。 Style コ マンドを参照してください。 |
PlaceAgain [Anim] |
これは、現在のウィンドウの位置を、初期ウィンドウ配 置決定方法を使用して再計算させますので、そのウィン ドウは、それが新しいウィンドウで今それが現れた直後 であるときに置かれる位置に移動することになります。 こ れは、 Smart または Clever (ReallySmart) 配置と ともに使用すると便利でしょう。オプショ ン 引 数 の Anim を指定すると、ウィンドウを新しい位置へ置くと きに、アニメーションモードが使われます。 |
Raise |
これで、ユーザがウィンドウを (手前に) 上 げ ることができます。このウィンドウを上げる操作は、そ のレイヤ (層) の中でしかできないことに注意してくだ さい。ウィンドウを絶対的な一番手前の位置に持ってく るには、以下のようにしてください: |
AddToFunc raise-to-top ここで、ontop はあなたの設定で使用されている最も上 のレイヤを意味しています。 |
RaiseLower |
ウィンドウを上げ下げする別の方法です。そのウィンド ウが他のウィンドウに隠されて見えない場合、そのウィ ン ド ウ が ( 手 前 に) 引 き 上 げ ら れます ( RaiseTransient スタイルが使用されていて、それ自 身 が 一時的 (transient) である場合を除く; Style コマ ンド参照)。それ以外の場合は下げられます。 |
Resize [ width [ p | c ] height [ p | c ]] | [ bottomright | br x y ] |
これにより、ウィンドウのサイズ変更 (resize) ができ ます。あるウィンドウ、またはその境界のどこかから呼 び出された場合、そのウィンドウがサイズ変更さ れ ま す。ルートウィンドウから呼び出された場合は、対象と なるウィンドウをユーザに選択させます。 この操作は、Escape か (それを確認するボタン 1 を除 く) 任意のマウスボタンを押すことで中止します。 オ プション引数 width と height を与えると、ウィン ドウはその大きさが width × height になるようにサイ ズ 変 更 されます。 width と height の単位は、スク リーンに対する割合 (%) ですが、文字 ’p’ を一方、ま たは両方の座標に付けた場合はピクセル単位で指定され たことになります。 ’c’ という文字を付けた場合 は、 クライアントアプリケーション (だから c) で定義され ている単位が使用されます。よって、 Resize 80c 24c は、ターミナルウィンドウを 80x24 文字表示に丁度 い い 大きさにします。 width と height の両方が負でも 構いません。この場合は、スクリーンサイズから与えら れた値を引いたものが新しいサイズになります。一方の 値が "keep" の場合、ウィンドウの対応する大きさは変 更されません。 キー ワード bottomright または短く br をコマンド名 の後ろにつけると、別な書式が利用できます。こ の 場 合、引数 x と y は、ウィンドウの右下の角の位置の指 定となります。これは、ちょうど Move コマンド の x と y の引数と同じように解釈されます。 |
ResizeMove resize-arguments move-arguments |
このコマンドは Resize と Move コマンドの両方を合わ せた動作と同じですが、見た目の困惑が少ない単一の呼 び出しです。 resize-arguments は、 Resize コマンド の引数と全く同じで、 move-arguments は、 Move コマ ンドの引数と全く同じですが、 ResizeMove コマンドで は、 pointer はサポートされていません。 例: # ウィンドウを左上の角に移動 ResizeMove w+0 -10p 0 -20p |
SetAnimation milliseconds-delay [fractions-to-move-list] |
これは、 AnimatedMove コマンドのアニメーション移動 とメニューのアニメーション (メニュースタイルがアニ メーションに設定されている場合; MenuStyle コマンド 参照) をカスタマイズするための、フレーム間の時間間 隔 と 比 率 の オ フ セッ トのリストを設定します。 fractions-to-move-list を省略すると、フレームの 時 間 間 隔 のみが変わります。 fractions-to-move-list は、引き続く各フレームでそのウィンドウがどれくらい ずれるか (オフセット) を、開始位置と終了位置の間隔 に対する比として指定します。例: SetAnimation 10 -.01 0 .01 .03 .08 .18 .3 \ .45 .6 .75 .85 .90 .94 .97 .99 1.0 これは、フレーム間の時間間隔を 10 ミリ秒とし、アニ メー ショ ン動作の 16 フレームの位置を設定していま す。負の値も許されていて、目的となる方向の反対の方 向に少しだけ短時間移動することによって、特により漫 画チックな移動効果を生むのに使えます。上の設定はデ フォルトです。 |
SnapAttraction [ proximity [ behavior ] [ Screen ]] |
対 話 型移動の間に、そのウィンドウやアイコンが他の ウィンドウやアイコンの proximity ピクセル内側に 来 た 場 合、境界が隣接するように移動されます (スナッ プ)。デフォルトは 0 で、それはスナップをしないこと を 意 味します。このコマンドを引数なしで呼ぶと、ス ナップ動作はオフになり、デフォルトの挙動に復帰しま す。 SnapGrid コマンドも参照してください。 引 数 behavior はオプションで、これには以下の 4 つ のうちの一つを設定します: All の場合は、アイコンも ウィ ン ドウもいずれも他のウィンドウやアイコンにス ナップします。 SameType の場合は、ウィンドウを他の ウィンドウのみにスナップさせ、アイコンは他のアイコ ンのみにスナップさせます。 Windows の場合は、 ウィ ンドウを他のウィンドウにスナップさせるだけで、アイ コンはスナップさせません。同様に、 Icons の 場 合 は、アイコンを他のアイコンにスナップさせるだけで、 ウィンドウはスナップさせません。 オプション behavior を与えない場合は、スナップの挙 動は変更されません。behavior のデフォルトは All で す。 オプション Screen を与えると、ウィンドウやアイコン がスクリーンの端にもスナップします。 |
SnapGrid [x-grid-size y-grid-size] |
対話型の移動の間、ウィンドウかアイコンはその位置 ( 左上の角) が最も近い格子 (grid) 点に一致するように 配 置 さ れ ま す。 デ フォ ル トの x-grid-size と y-grid-size の設定は両方とも 1 で、これは事実上 格 子 が な い の と 同 じ で す。 SnapGrid でかつ SnapAttraction での対話移動は、ウィンドウが最も 近 い ウィンドウの境界 (スナップの proximity 内部の場 合) か、格子位置にくっついて移動することにな り ま す。 い いかえれば、そのウィンドウは、 SnapGrid と SnapAttraction の両方を満たす最も短い距離を移動 す ることになります。 x と y 座標は対ではないことに注 意してください。例えば、x 方向に関してはそのウィン ド ウは他のウィンドウにスナップする一方で、 y 方向 に関しては格子点にスナップすることがあり得ます。引 数なしでこのコマンドを呼びだすと、デフォルトの設定 を回復します。 |
WindowsDesk arg1 [arg2] |
これは、選択されたウィンドウを他のデスクトップへ移 動します。 このコマンドは削除されていて、 MoveToDesk で置き換 えなければいけません。引数は、 GotoDesk コマンドの も のと同じです。 重要な注意: 単にこのコマンドの名 前だけ変更してはいけません。書式も変更されて い ま す。ウィンドウをデスク n に移動するのに WindowsDesk n を使っていた場合は、それを MoveToDesk 0 n と変えなければいけません。 |
XorPixmap [pixmap] |
こ れは、ゴムひも形式のウィンドウ移動/サイズ変更を 行っているときにそのビットを XOR するピクスマッ プ を選択します。これは、 XorValue が良い結果を与えな い場合に、ゴムひもの見た目をより良くするチャンスを 与えてくれます。サンプルのピクスマップとして、アイ コン配布とともに resize.rainbow.xpm が提供されてい ま す。 XorPixmap をオフに戻すには、 XorValue コマ ンドを使うか、引数 pixmap を省略してください。 |
XorValue [number] |
これは、ゴムひも形式のウィンドウ移動/サイズ変更 を 行っ ているときにそのビットを XOR する値を変更しま す。有効な値の範囲は、0 から、あなたのシステム上の unsigned long 整数の最大値までです。この値の設定 は、試行錯誤で行ってください。デフォルトの値 は 0 で、これは白黒の良いコントラストを与える値を見つけ ようとします。 number を省略するか不正な値に す る と、デフォルトの値が使用されます。 |
フォーカスとマウス移動に関するコマンド |
CursorMove horizontal[p] vertical[p] |
こ れ は マウスポインタを X 方向に horizontal ペー ジ、Y 方向に vertical ページ移動します。いずれか一 方、 あ るいは両方とも負の値を指定することができま す。水平方向、垂直方向の値はページの割合 (%) で 指 定しますので、 CursorMove 100 100 は、 丸 々 1 ページのサイズ分だけ右と下へ移動しま す。 CursorMove 50 25 は、半ページ分右に、1/4 ページ分下に移動します。そ の 一方で、水平方向、垂直方向の指定に ’p’ を付ける ことで距離をピクセル単位で指定もできます。例えば、 CursorMove -10p -10p は、10 ピクセルだけ上に、10 ピクセルだけ左に移動し ます。 CursorMove 関数は、ポップアップメニューから は呼び出してはいけません。 |
FlipFocus [NoWarp] |
これは、あたかもユーザがポインタを使ってウィンドウ を選択したかのように Focus コマンドを実行しま す。 このコマンドは、ウシンドウをフォーカスするためにク リックしたのと同じように WindowList の順番を変更し ま す。すなわち、ターゲットウィンドウが WindowList から削除され、その先頭に置かれます。このコマ ン ド は、 Direction コマンドと一緒に、そして WindowList から呼び出される関数の中で使用されることが推奨され ています。 |
Focus [NoWarp] |
これは、キーボードフォーカスを選択したウィンドウに セットします。 NoWarp 引数を与えた場合は行うのはそ れだけですが、そうでない場合は、選択したウィンドウ が見えるように必要なだけビューポートやウィンドウを 移動もします。このコマンドは、自動的にはウィンドウ を手前に上げることはしません。ポインタを選択 し た ウィ ン ド ウ に は 移動 (warp) しないでください ( WarpToWindow 参照)。非アイコン化もしないでく だ さ い。このコマンドは、 WindowList の順番を前後には変 えませんが、 WindowList の順番をターゲットウィンド ウが一番最初になるように巡回させます。 NoWarp 引 数を与えた場合、フォーカスはキーボード フォーカスから他のデスクのウィンドウには移り ま せ ん。 Focus や FlipFocus と一緒にウィンドウを手前に上げ る、またはポインタをウィンドウに移動するには、以下 のように関数を使用します: AddToFunc SelectWindow + I Focus + I Iconify false + I Raise + I WarpToWindow 50 8p |
WarpToWindow x[p] y[p] |
こ れは、カーソルを指定したウィンドウに移動 (warp) します。パラメータ x と y は、デフォルトではウィン ドウの左上角からその内部にそのパーセンテージだけ下 がって中に (または ’p’ を数字の後につければその ピ クセル数だけ下がって中に) 入ります。数値が負であれ ば、逆に反対の端、反対の方向が使用されます。このコ マ ンドは、fvwm が管理していないウィンドウに対して も動作します。その場合 fvwm は、ウィンドウが見えな いときはそのウィンドウをスクリーン上に持って移動す ることはしません。例えば、ポインタをスクリー ン 1 のルートウィンドウの真ん中に移動するには: WindowId root 1 WarpToWindow 50 50 |
ウィンドウの状態を制御するコマンド |
Close |
ウィンドウを優雅に削除するために、そのウィ ンドウが削除ウィンドウプロトコルを受けつけるかどう かを尋ねるメッセージを送ります。削除ウィンドウプロ トコルを理解しなければ、そのウィンドウ は Destroy コマンドの場合と同じように破壊されます。注意: ウィ ンドウが削除ウィンドウプロトコルを受けつけるけれど その反応としてクローズしてくれない場合は、そのウィ ンドウは削除されません。 |
||
Delete |
これは、ウィンドウにそれを削除することを尋 ね る メッセージを送り、それにより多くはそのアプリ ケーションを中止させます。 |
Destroy |
アプリケーションウィンドウを破壊し、通常そのアプリ ケーションを異常終了させます。 |
Iconify [bool] |
これは、アイコンではないウィンドウをアイコン化し、 アイコン化されたウィンドウを元に戻します。オプショ ン 引数 bool はブール値に引数で、"True" はアイコン 化のみ許され、一方 "False" は強制的にアイコンを 復 帰 します。"toggle" とすると、アイコン化とアイコン の復帰の状態を切り替えます。 アイコンの見た目と振舞いに影響を与える 数 多 く の Style オ プ ションがあります (例えば StickyIcon, NoIcon など)。 後方互換性のため、オプション引数には "True" の代わ りに正の数値を、"False" の代わりに負の数値を与える ことも可能です。しかしこの書式は非推奨で、今後無効 となるかもしれないことに注意してください。 |
Maximize [screen screen-spec] [bool] [horizontal[p] vertical[p]] |
オ プ ショ ン 引 数 がない (または bool ビットが値 "toggle" を持つ場合)、 Maximize はウィンドウを、フ ルスクリーンサイズとその通常のサイズに交互に切り替 えます。強制的にウィンドウを最大サイズ (通常 サ イ ズ) の 状 態 に す る に は、 bool 引数を "True" ("False") の値にします。 オプション引数 horizontal と vertical は、フルスク リー ンに対する割合 (%) を表していて、これでユーザ はウィンドウの新しいサイズを制御できます。接 尾 辞 ’p’ を追加すると、スクリーンサイズの割合の代わりに ピクセル数を指定することができます。 horizontal が 正 の 場 合、 そ の ウィンドウの水平方向の長さは、 horizontal*screen_width/100 にセットされます。その 値が負の場合、そのサイズがスクリーン幅から引き算さ れます。例えば -25 は 75 と同じで す。 horizontal を "grow" とした場合、任意の物体に行き当たるまでの 現在の有効なスペース内で最大化されます。 vertical に よ る サ イ ズ 変 更 も同様です。 horizontal と vertical の両方の値が "grow" の場合は、先に垂直 方 向 に 拡張され、それから水平方向にスペースを探しま す。 horizontal では "grow" 引数を "growleft" や "growright" に、 vertical で は "growup" や "growdown" に置き換えることも可能です。例えば、 以 下の例は、ウィンドウを垂直方向にフルスクリーンサイ ズにすることを切り替えるタイトルバーボタンを追加し ます。 Mouse 0 4 A Maximize 0 100 以下は、ウィンドウ幅をフルサイズに拡張します: Mouse 0 4 A Maximize 100 0 以下は、ウィンドウをそれぞれの方向にスクリーンサイ ズの半分にします: Mouse 0 4 A Maximize 50 50 他のウィンドウが見つかるまで水平方向にウィンドウを 拡張するには: Mouse 0 4 A Maximize 0 grow ウィンドウを拡張するけどスクリーンの下 60 ピクセル はふさがない: Mouse 0 4 A Maximize 100 -60p 100 より大きい値も使えますが警告がでます。 最初の引数が単 語 screen で あ る 場 合、 引 数 screen-spec は、その操作を実行する Xinerama スク リーンを指定します。それには、プライマリスクリーン には ’p’、 (マウスポインタを含む) 現在のスクリーン には ’c’、スクリーン全体には ’g’、またはスクリーン 番 号 (0 から始まる) を指定します。このオプション は、複数の Xinerama スクリーンにしか有用ではありま せん。 |
Recapture |
こ れ は、fvwm に す べ て の ウィンドウを再捕獲 (recapture) させます。これは、確実に最新のスタイル パラメータを適用させます。再捕獲の操作は見た目には 邪魔です。 fvwm のバージョン 2.4 以降は、 Style オプション が 効 果を得るのに Recapture が必要なものはごくわずか なもののみ (例えば UseStyle) となっています。 |
RecaptureWindow |
選択したウィンドウを fvwm に再捕獲させます。 上 の Recapture コマンドを参照してください。 |
Refresh |
これは、そのスクリーン上のすべてのウィンドウをそれ ら自身再描画させます。すべてのウィンドウの更新が行 わ れ ていないスタイルと見た目は、直ちに適用されま す。例えば、 Style や TitleStyle コマンド が、fvwm 関数内が発行された場合など。 |
RefreshWindow |
選 択 したウィンドウをそれ自身再描画させます。その ウィンドウの更新が行われていないスタイルと見 た 目 は、 直 ち に 適 用 さ れ ま す。例えば、 Style や TitleStyle コマンドが、fvwm 関数内が発行された場合 など。 |
Stick [bool] |
引 数 bool が空、または "toggle" の場合、 Stick コ マンドは sticky でないウィンドウ を sticky に、 sticky のウィンドウを sticky でないようにします。 現在の状態とは無関係にウィンドウを sticky にするに は、 引数 bool を "True" にし、sticky でないように するには "False" とします。 |
WindowShade [bool] |
これは、タイトル付きウィンドウの日陰機 能 (shade) を切り替えます。日陰状態にあるウィンドウはタイトル バーしか表示しません。 bool を与えないか、ま た は "toggle" である場合は、ウィンドウの日陰状態が切り 替わります。 bool が "True" の場合は、そのウィンド ウ が強制的に日陰状態になり、 bool が "False" の場 合は、そのウィンドウが強制的に日向状態になります。 タ イ ト ル のないウィンドウも日陰状態にできます。 Style コマンドの WindowShadeSteps オプションも参照 してください。 後 方互換性のため、オプション引数は 1 ("on" を意味 する)、または 2 ("off" を意味する) でも構 い ま せ ん。ただしこの書式は非推奨で、今後無効となるかもし れないことに注意してください。 |
WindowShadeAnimate [steps[p]] |
これは古いコマンドです。代わりに Style コマンド の WindowShadeSteps オプションを使用してください。 |
マウス、キー、キーストロークの割り当てのためのコマンド |
IgnoreModifiers [Modifiers] |
これは、マウス、またはキー割り当てがマッチしたとき にどの修飾キーを無視するかを fvwm に 伝 え ま す。 IgnoreModifiers は、 ClickToFocus スタイルにも影響 を与えます。このコマンドは、あなたの .fvwm2rc に入 れます。既に fvwm セッションが立ち上がっていて動作 しているときにこれを発行すると、その結果は予期しな いものとなります。このコマンドは、任意のアプリケー ションやモジュールを .fvwm2rc ファイルから起動する ( 例えば Exec コマンドにより) 前に書く必要がありま す。 Modifiers は、 Mouse や Key 割り当てと同じ書式で、 caps lock を意味する ’L’ が追加されています。デ フォルトは "L" です。 Modifiers は省略でき、その場 合はどの修飾キーも無視されません。このコマンドは、 num-lock キーや scroll-lock キーがショートカットの 設 定 を 邪魔する場合に便利です。 XFree86 では通常 ’2’ が num-lock 修飾キー で、’5’ が scroll-lock キーを参照します。これらのやっかいな修飾キーをすべ てオフにするのに以下のコマンドを利用できます: IgnoreModifiers L25 重要な注意: このコマンドは、CPU やネットワークの接 続状態、設定ファイルの Key や Mouse コマンドの数、 そして無視させたい修飾キーの数に依存して、たくさん の 余 分なネットワークトラフィックを生みます。よっ て、軽い速いマシンを持っていないか、キー割り当てが 少 なくはない場合は、 3 つ以上の修飾キーを無視させ るべきではありません。すなわち、問題がないな ら ば scroll-lock を無視させないでください。この問題に対 するいい解決法が FAQ 内に見つかるでしょう。 |
GnomeButton |
これは、ルートウィンドウ上のマウ ス ボ タ ン 押 し を、(GMC のような) GNOME プログラムに渡すために、 Mouse と組み合わせて使用します。以下の例 は、1, 3 の マ ウスボタン押しをそのようなプログラムに渡しま す。 Mouse 1 R A GnomeButton Mouse 3 R A GnomeButton |
Key Keyname Context Modifiers Function |
これは、キーボードのキーを、指定された fvwm の組み 込 み関数に割り当てますが、 Function が ’-’ の場合 はその割り当てを削除します。その書式は、 Mouse の 割 り当てとほぼ同じで、そのマウス番号が Keyname に 変 わ る だ け で す。 Keyname は、 /usr/include/X11/keysymdef.h の中に書かれている項 目のうちの一つで、その先頭の XK_ を取り除いたも の で す。 引数 Context と Modifiers の部分は、 Mouse の割り当てと全く同じに定義されます。しかしあるキー を押したときのそのコンテキストウィンドウはキーボー ドフォーカスを持つウィンドウであり、これは必ずしも ポ インタがその上にあるウィンドウ ( SloppyFocus か ClickToFocus の場合) とは一致しません。そして ’R’ ( ルートウィンドウ) コンテキストに関するキー割り当 ては、 SloppyFocus や ClickToFocus では正しくは 動 作しないことに注意してください。この問題に出会った 場合は、代わりに PointerKey コマンドを使用してくだ さい。ポインタがウィンドウの上にないときに動作させ ることになっているウィンド ウ を SloppyFocus か ClickToFocus の元でキーに割り当てたいなら、 fvwm はポインタがクライアントウィンドウの上にあると仮定 し ま す (すなわち ’W’ 修飾キーを使う必要がありま す)。 以下の例は、マウスポインタが ど こ に あっ て も、 Alt-Ctrl-Shift-F11 が押された場合に、組み込みウィ ンドウリストをポップアップメニューに割り当てます: Key F11 A SCM WindowList あるキーをあるタイトルバーボタンに割り当てると、そ の ボタンが表示されます。詳細は、 Mouse コマンドを 参照してください。 |
Mouse Button Context Modifiers Function |
これは、マウス割り当てを定義しますが、 Function が ’-’ の 場 合 は 逆にマウス割り当てを削除します。 Button はボタン番号です。 Button が 0 の場合は、任 意のボタンで指定された関数が実行されます。 Context (コンテキスト) は、どこに割り当てが適用されるか を 記述します。有効なコンテキストは ’R’ (ルートウィン ドウ)、’W’ (アプリケーションウィンドウ)、’T’ (ウィ ンドウタイトルバー)、’S’ (上下左右のウィンドウの境 界にあるサイドバー)、’F’ (ウィンドウの角にあ る L 字 型 のウィンドウフレーム)、’I’ (アイコンウィンド ウ)、’0’ から ’9’ までの数字 (タイト ル バー ボ タ ン)、またはこれらの文字の任意の組み合わせです。’A’ は、タイトルバーを除く任意のコンテキストを意味しま す。 例 えば、"FST" というコンテキストは、タイトル バーボタン以外の、ウィンドウの境界全てに適用される ことになります。装飾されていないウィンドウに有効な のは ’S’ と ’W’ のみです。 Modifiers (修飾キー) は、’N’ (修飾キー な し)、’C’ (Ctrl キー)、’S’ (Shift キー)、’M’ (Meta キー)、’L’ (Caps-Lock キー)、’A’ (任意の修飾 キー) の 任 意 の 組 み 合 わせです。例えば、"SM" という Modifier は Meta キーと Shift キーの両方が押された 場合に適用されます。 X11 で定義される修飾キー mod1 から mod5 も、数字の ’1’ から ’5’ で表現されます。 修 飾キー ’L’ はデフォルトでは無視されますが、それ を有効にするには、 IgnoreModifiers コマンドを使 用 してください。 Function には、fvwm の組み込み関数の一つを与えま す。 タイトルバーボタンは、奇数番号は左に、偶数番号は右 に番号づけされています。小さい番号のボタンがウィン ドウの外側へ、大きい番号のボタンがウィンドウの真ん 中 に来るように表示されます (0 は 10 の省略形)。要 するに、以下のようになります: 1 3 5 7 9 0 8 6 4 2 動作が割り当てられた最も大きい奇数番号のボタンは、 タイトルバーの左側に表示されるボタンの数を決定し、 最も大きい偶数番号のボタンは右側に表示されるボタン の数を決定します。動作はマウスボタンにも、キーボー ドのキーにも割り当て可能です。 |
PointerKey Keyname Context Modifiers Function |
このコマンドは完全に Key コマンド同様の動作をし ま すが、唯一の違いは、ポインタのあるウィンドウ上で割 り当てが機能することです。標準的なキー割り当ては、 これとは違いフォーカスされているウィンドウ上で機能 します。 PointerKey コマンドは、例えば SloppyFocus か ClickToFocus を使っているときにキーをルートウィ ンドウに割り当てるのに使えます。しか し、 例 え ば xterm がその一つですが、現在はアプリケーションに よっては、このキーを扱えないものがあります。 こ れ は、 例えばポインタが xterm のウィンドウの上にある 場合でもです。 PointerKey コマンドは、どのア プ リ ケーションウィンドウ内でも不要なキーの組み合わせに のみ使用することが推奨されています。 例: Style * SloppyFocus PointerKey f1 a m Menu MainMenu |
Stroke Sequence Button Context Modifiers Function |
これは、マウスストローク列を特定の fvwm 組み込み関 数 に割り当てますが、 Function が ’-’ の場合は逆に 割り当てを削除します。書式は Mouse の割り当てと ほ ぼ同じですが、 Sequence がボタン番号の前に挿入され ていること、および Button の 0 と い う 値 が StrokeFunc コ マンドに関連している点が違っていま す。 Context と Modifiers の部分は Mouse 割り当 て と全く同じに定義されます。しかし、実際には Context が ’R’ の場合のみ動作します (他のコンテキストも 使 用したい場合は、下の StrokeFunc を使用する必要があ ります)。 ストローク列は、以下のように電話のボタン並び の 定 義: 1 2 3 4 5 6 7 8 9 またはテンキーパッド並びで定義されます: 7 8 9 4 5 6 1 2 3 デフォルトでは電話のボタン並びを使用しますが、テン キー並びを使いたい場合はストローク列を ’N’ で始 め ます。複雑な動きは、いくつかの異なる列を与える可能 性があることに注意してください (そのような移動操作 で あ る 下の "netscape" の例を参照)。さらに、スト ローク列は 20 個の要素に制限されていますが (現在の バージョンの libstroke では)、実際にはむしろ 11 個 以下の要素の列を使うのがいいでしょう。 fvwm のデフォルトのボタンメニューのため、スト ロー ク Mouse 3 R N を使用する前にマウスボタン割り当てを削除する (空の 動作を使用して) 必要があるかもしれません。また、一 つ の ク リッ クをシミュレートするようなストローク "sequence 0" をまだ使うこともできます: Stroke 0 3 R N Menu WindowList Nop 以下の例は、ルートウィンドウでボタン 3 が押し下 げ られるとともに ’I’ をドラッグすると xterm を起動し ます: Stroke 258 3 R N Exec exec xterm Netscape 用の例: Stroke 7415963 3 R N Exec exec netscape Stroke 74148963 3 R N Exec exec netscape Stroke 74158963 3 R N Exec exec netscape Stroke 7418963 3 R N Exec exec netscape Stroke 415963 3 R N Exec exec netscape マシンにテンキーパッドがついていてそのような並びを 使いたいと思うかもしれません。そのような例: Stroke N78963314 3 R N FvwmForm FvwmForm-QuitVerify Stroke N789633147 3 R N FvwmForm FvwmForm-QuitVerify こ の 例 は、 左上の角から始めて長方形を書くことで "QuitVerify" フォームを開始します。 注意: これは、 libstroke がインストールさ れ て い て、fvwm が stroke をサポートしてコンパイルされて いる必要があります。 libstroke は、以下から取得 で きます: http://www.etla.net/~willey/projects/libstroke/ |
StrokeFunc [Options] |
こ れ は、fvwm に マウスストローク列を記録させ、 Stroke コマンドで定義された対応する動作を実行し ま す。 記 録 中は、カーソルが CursorStyle コマンドの STROKE コンテキストに変化します。ストロー ク が 終 わったときに、 StrokeFunc は Stroke sequence 0 Context Modifiers action の形式で割り当てられているストロークを探し、そして 対応する動作 (action) を実行します (0 に注意)。 こ の関数は通常は Mouse か Key コマンドを通して使用さ れます。例: Mouse 3 A M StrokeFunc Key x R N StrokeFunc 任意の場所でマウスボタン 3 と Alt を押している場合 (カーソルがルートウィンドウ上で、キー x を押してい る場合)、 fvwm はマウスの移動をマウスボタ ン 3 ( キー x) がはなされるまで記録し、そして記録した列 sequence が以下の形式のストロークの割り当てに対 応 するかをチェックします: ’Stroke sequence 0 A M action’ ’Stroke sequence 0 R N action’ Context と Modifiers は StrokeFunc コマンドの実行 の開始時に取られることに注意してください (よって、 マウス割り当ての場合はストロークの記録の終了前に修 飾キーをはなすことができますし、例えばタイトルバー コンテキストを使用している場合はマウスの移動はアプ リケーションウィンドウを通り過ぎること が で き ま す)。 Escape キーと Delete キーは、このコマンドを 中止するのに使用できます。 StrokeFunc コマンドは、次の 5 つのオプションを取り ま す: NotStayPressed, EchoSequence, DrawMotion, FeedBack, StrokeWidth. これらのオプションはデフォ ルトでは無効になっています。 EchoSequence は、fvwm が記録したストローク 列 を 表 示 (Echo) さ せ、 DrawMotion は、マウス動作をスクリーンに描画させ、 FeedBack は、記録したストローク列がストローク割 り 当 てに対応する場合 CursorStyle コマンドの WAIT コ ンテキストのカーソルをごくわずかの時間表示さ せ ま す。 StrokeWidth は 0 以上 100 以下の整数引数を取 り、それは DrawMotion オプションのための線の幅を定 義します。 NotStayPressed は、 StrokeFunc が Mouse コマンドか Key コマンドを通して使用されたときにのみ機能し、こ のオプションはストロークの間に押されたボタンやキー を持つ必要性を削除しますが、マウスの動きの記録を終 了 す るには、マウスをクリックするか Return キーか Space キーを押さなければいけません (これら の キー は、 NotStayPressed オ プションなしでも機能しま す)。 StrokeFunc は "単独で" 使用することもできます。 そ の場合それは、 NotStayPressed オプションが有効な状 態で上のように動作します。し か し、 一 般 に は、 Modifiers は期待通りには機能しないでしょう (すなわ ち、この場合ストローク割り当てでは Modifiers と し て ’A’ か ’N’ を使用してください)。 キー リ リース (解放) イベントをサポートしないコン ピュータもあることに注意してください。そのような場 合、 Key コ マンドを通して使用された StrokeFunc は、 NotStayPressed オプションが有効であるかのよう に動作します。 |
ウィンドウスタイルを制御するスタイルコマンド |
UpdateStyles |
すべてのウィンドウのスタイルと見た目に関する待機中 の更新をすべて直ちに適用します。例えば、 Style や TitleStyle コマンドが fvwm 関数内で発行された場合 など。 |
Style stylename options |
このコマンドは古い fvwm 1.xx の大域的なコマ ン ド: NoBorder, NoTitle, StartsOnDesk, Sticky, StaysOnTop, Icon, WindowListSkip, CirculateSkip, SuppressIcons, BoundaryWidth, NoBoundaryWidth, StdForeColor, StdBackColor を、柔軟で包括的な ウィ ンドウ毎の単一のコマンドに置き換えようとします。こ のコマンドは、ウィンドウの属性にデフォルトとは異な る値を設定したり、ウィンドウマネージャのデフォルト スタイルを設定したりするのに使われます。 stylename は、ウィンドウ名、ウィンドウクラス、また はリソース文字列のいずれでも構いません。これにはワ イルドカード ’*’, ’?’ を含めることも可能ですが、こ れらは通常の Unix のファイル名に使われる場合と同じ 意味です。これらは上に述べたことの逆順に検索されま す。 2 つの衝突するスタイルが、同じウィンドウに適 用されると、最後に変更されたスタイルの方が勝 ち ま す。 注 意: 名 前 (WM_NAME) を持たないウィンドウには "Untitled" とい う 名 前 を、 ク ラ ス (WM_CLASS, res_class) を持たないウィンドウには "NoClass" とい うクラスを、リソース (WM_CLASS, res_name) を持たな いウィンドウには "NoResource" というリソースを与え ます。 options は、以下のキーワードの一つ、または複数を含 む、 コ ン マ で区切られたリストです: BorderWidth, HandleWidth, NoIcon / Icon, MiniIcon, IconBox, IconGrid, IconFill, NoTitle / Title, TitleAtBottom / TitleAtTop, StippledTitle / StippledTitleOff, NoHandles / Handles, WindowListSkip / WindowListHit, CirculateSkip / CirculateHit, CirculateSkipShaded / CirculateHitShaded, Layer, StaysOnTop / StaysOnBottom / StaysPut, Sticky / Slippery, StartIconic / StartNormal, Color, ForeColor, BackColor, Colorset, HilightFore, HilightBack, HilightColorset, BorderColorset, HilightBorderColorset, Font, IconFont, StartsOnDesk / StartsOnPage / StartsAnyWhere, StartsOnScreen, ManualPlacementHonorsStartsOnPage / ManualPlacementIgnoresStartsOnPage, CaptureHonorsStartsOnPage / CaptureIgnoresStartsOnPage, RecaptureHonorsStartsOnPage / RecaptureIgnoresStartsOnPage, StartsOnPageIncludesTransients / StartsOnPageIgnoresTransients, IconTitle / NoIconTitle, MwmButtons / FvwmButtons, MwmBorder / FvwmBorder, MwmDecor / NoDecorHint, MwmFunctions / NoFuncHint, HintOverride / NoOverride, NoButton / Button, ResizeHintOverride / NoResizeOverride, OLDecor / NoOLDecor, GNOMEUseHints / GNOMEIgnoreHints, StickyIcon / SlipperyIcon, ManualPlacement / CascadePlacement / MinOverlapPlacement / MinOverlapPercentPlacement / TileManualPlacement / TileCascadePlacement, DecorateTransient / NakedTransient, RaiseTransient / DontRaiseTransient, LowerTransient / DontLowerTransient, StackTransientParent / DontStackTransientParent, SkipMapping / ShowMapping, ScatterWindowGroups / KeepWindowGroupsOnDesk, UseDecor, UseStyle, NoPPosition / UsePPosition, NoUSPosition / UseUSPosition, NoTransientPPosition / UseTransientPPosition, NoTransientUSPosition / UseTransientUSPosition, NoIconPosition / UseIconPosition, Lenience / NoLenience, ClickToFocus / SloppyFocus / MouseFocus|FocusFollowsMouse / NeverFocus, ClickToFocusPassesClickOff / ClickToFocusPassesClick, ClickToFocusRaisesOff / ClickToFocusRaises, MouseFocusClickRaises / MouseFocusClickRaisesOff, StartsLowered / StartsRaised, GrabFocus / GrabFocusOff, GrabFocusTransient / GrabFocusTransientOff, IgnoreRestack / AllowRestack, FixedPosition / VariablePosition, IconOverride / NoIconOverride / NoActiveIconOverride, DepressableBorder / FirmBorder, MaxWindowSize, IconifyWindowGroups / IconifyWindowGroupsOff, ResizeOpaque / ResizeOutline, BackingStore / BackingStoreOff, Opacity / ParentalRelativity, SaveUnder / SaveUnderOff, WindowShadeShrinks / WindowShadeScrolls, WindowShadeSteps. 上のリストにおいて、いくつかのオプションはスタイル オ プション/反スタイルオプションの形式になっていま す。反スタイルオプションが含まれている項目では、そ れが fvwm でのデフォルトを意味し、それらは fvwm の デフォルトの振舞いを変更したい場合に利用できます。 |
フォーカスの種類 |
ClickToFocus は、そのウィンドウがクリックされたと きにフォーカスをそのウィンドウに与えるように fvwm に 指示します。デフォルトである MouseFocus (または その別名である FocusFollowsMouse) は、マウスポイン タがそのウィンドウに入ったときに直ちにフォーカスを そのウィンドウに与え、ポインタがウィンドウから出た ら フォー カスも持ち去るように fvwm に指示します。 SloppyFocus も同様ですが、ポインタがウィンドウから 出てもルートウィンドウや ClickToFocus ウィンドウ上 を通過している間 (そこでクリックしていない場合) は フォーカスを手放しません。 ClickToFocus は、フォー カスを失わずにマウスを外に出すことを可能にします。 NeverFocus ス タ イ ルを持つウィンドウは、決して フォーカスを受けとりま せ ん。 こ れ は、 例 え ば FvwmButtons のようなモジュールに有用です。 フォーカスの型は、いくつか追加オプションによって増 強 で き ま す。 ClickToFocusPassesClickOff と ClickToFocusPassesClick は、 ClickToFocus の型を 使ってウィンドウをフォーカスするマウスクリックを、 そのアプリケーションに送るかどうかを制御します。同 様に、 ClickToFocusRaisesOff と ClickToFocusRaises は、ウィンドウを手前に上げるかどうかを制御します。 MouseFocusClickRaises と MouseFocusClickRaisesOff も同等ですが、 SloppyFocus, MouseFocus, NeverFocus を使用してウィンドウに適用するだけです。デフォルト は ClickToFocusPassesClick, ClickToFocusRaises, MouseFocusClickRaisesOff です。 GrabFocus は、新しく配置されたウィンドウにフォーカ スをつかませ、 GrabFocusOff はこれをオフにします。 GrabFocus は ClickToFocus のウィンドウに関し て デ フォ ル ト で、 GrabFocusOff は MouseFocus と SloppyFocus のウィンドウに関してデフォルトです。こ のオプションは、フォーカスの種類を変更した場合はい つでもデフォルトに戻ることに注意してください。よっ てこれは最初に ClickToFocus/MouseFocus/SloppyFocus をした後に使わなければいけません。このスタイルは、 一 時的 (transient) なウィンドウには適用されません ので、 GrabFocusTransient と GrabFocusTransientOff スタイルがこのために用意されています。デフォルトで は、 GrabFocusTransient がオンになっています。 Lenience は、 ICCCM の勧告を無視するように fvwm に 指 示 し ま す。 こ れ は、 あるアプリケーションが wm_hints 構造体の input フィールドを False に セッ トした場合は、それはウィンドウマネージャがそれに入 力フォーカスを渡すことを決して望まない、と述べてい ます。我々が知る、これを必要とする唯一のアプリケー ションは sxpm ですが、それは簡単に修正されるばかげ たバグであり、そのプログラムへの全体的な効果は全く 何もありません。他にも問題を持つ古いアプリケーショ ンがあるという噂です。 |
ウィンドウタイトル |
オプション Title と NoTitle は、ウィンドウがタイト ルバーを持つか持たないかを決定します。デフォルトで はすべてのウィンドウがタイトルバーを持ちます。 通 常 はタイトルバーをウィンドウの上に持ちますが、 TitleAtBottom スタイルを持つウィンドウは、代わりに 下に持ちます。 TitleAtTop スタイルは、デフォルトの 位置に復帰します。ウィンドウに NoTitle スタイル が セッ トされていても、これは WindowShade コマンドに 影響を与えます。 StippledTitle スタイルを持つウィンド ウ は、 通 常 Sticky スタイルを持つウィンドウに用意されているの と同じ効果で描画されます。 StippledTitleOff は普通 のタイトルに復帰します。 Color は 2 つの引数を取ります。最初の引数は、ウィ ンドウラベル文字列色で、 2 番目のものはウィンド ウ の 飾 り の通常の背景色です。この 2 つの色はスラッ シュ (/) で分離して指定します。スラッシュを使う と 問 題 が ある場合は、別々にオプション ForeColor と BackColor を使用することもできます。 Colorset は、カラーセット番号を唯一の引数として 取 り、 それは Color でセットされる色を上書きし、代わ りに与えられたカラーセットの対応する色が使用されま す。カラーセットの他のすべての機能は、まだサポート されていないことに注意してください。カラーセットの 使用をやめるには、カラーセット番号を省略して使用し ます。 スタイル オ プ ショ ン HilightFore, HilightBack, HilightColorset は、 ほ ぼ ForeColor, BackColor, Colorset と同様に機能しますが、これらはウィンド ウ がフォーカスを持つ場合にのみ使用されます。これらの スタ イ ル は 古 い コ マ ン ド HilightColor と HilightColorset を置き換えます。 BorderColorset は、カラーセット番号を唯一の引数と して取り、それはウィンドウの境界に対して Color や Colorset で セットされる色を上書きします。カラー セットの使用をやめるには、引数を省略して使用 し ま す。 ス タ イ ル オ プ ショ ン HilightBorderColorset は BorderColorset と同等に機能しますが、ウィンドウ が フォーカスを持つときに使用されます。 オプション Font と IconFont は、フォント名をその唯 一の引数として取ります。このフォントはウィンドウタ イトルとアイコンタイトルに使います。デフォルトでは DefaultFont コマンドで与えたフォントを使用します。 デフォルトに戻すには、名前引数なしでこのスタイルを 使用してください。これら の ス タ イ ル は、 古 い WindowFont と IconFont コマンドを置き換えます。 |
タイトルボタン |
Button と NoButton は、タイトルバーに含まれる/取り 除かれるボタンの個数を引数として取ります。 MwmButtons は、そのウィンドウが最大化され た と き に、 Maximize ボタンを押しこまれた見た目にします。 詳細は、 ButtonStyle の MwmDecorMax フラグの項を参 照してください。このスタイルを再びオフにするには、 FvwmButtons スタイルを使用してください。 |
境界部分 |
MwmBorder は、より mwm のものに近い 3 次元の斜面を 作ります。 FvwmBorder は以前のオプションをオフにし ます。 HandleWidth は数値引数を取り、それはウィンドウがリ サイズハンドルを持つ場合、そのウィンドウを置く境界 の幅を意味します。 BorderWidth は数値引数を取り、それはウィンドウがリ サイズハンドルを持たない場合のそのウィンドウを置く 境界の幅を意味します。 DepressableBorder は、ボタンがウィンドウの装飾の境 界 部 分で押されたときに、その見た目を沈み込ませま す。これは再び FirmBorder スタイルで無効にで き ま す。 |
アイコン、日陰化、最大化、移動、サイズ変更 |
Icon は、使用されるアイコンビットマップ、またはピ クスマップ画像ファイル名を一つ引用符で囲まれない文 字列引数 (必須ではない) として取ります。この方法で 指定したアイコンは、ピクスマップアイコンを上書きし ま すが、アプリケーション内で (WM_HINTS プロパティ で) クライアントによって用意されるアイコンウィンド ウは対象外です。スタイル IconOverride は、その挙動 を、クライアントが用意した任意のアイコンを上書きす るように変更し、スタイル NoIconOverride は、クライ アントが用意したアイコンを上書きしないように変更し ま す。 デ フォ ル ト の 上 書きの挙動は、スタイル NoActiveIconOverride で有効にできます。このスタ イ ルを使うと、アイコンが変更されていてそのときまで設 定ファイルで提供されるアイコンを使用している場合、 fvwm はアプリケーションの提供するアイコンを使用し ます。 これらのルールには一つの例外があり、 Style * Icon unknown.xpm はアイコン unknown.xpm をすべてのウィンドウに強 制 す ることはせず、ただ DefaultIcon コマンドと同様に デフォルトアイコンを設定するだけです。本当にすべて の ウィ ンドウに対して同じアイコンを使わせたい場合 は、 Style ** Icon unknown.xpm とします。属性 NoIcon を設定すると、指定されたウィ ンドウはアイコン化されたときに単に現れません。その ようなウィンドウはウィンドウリストを通して復帰でき ます。 Icon を引数なしで設定すると、属性 NoIcon が 解除されますが、アイコン指定はしません。 FvwmPager モジュールアイコンのみの存在を許す設定の例: Style * NoIcon Style FvwmPager Icon IconBox は、引数なしか 4 つの数値引数 (スクリーン 指定も追加できる)、 X11 の位置指定 (geometry) 文字 列、あるいは文字列 "none" を引数として取ります。 IconBox [screen scr-spec] l t r b または IconBox geometry で、 l は左の座標、 t は上の座標、 r は右の座標、 b は下の座標です。負の座標はスクリーンの右、または 下からの距離を示します。最初の引数が単語 screen の 場合、引数 scr-spec は IconBox が定義され て い る Xinerama ス クリーンを指定します。それには通常の Xinerama スクリーン指定である ’p’, ’c’, ’g’, ス ク リーン番号か、さらにそのウィンドウの中心が置かれて いるスクリーンを意味する ’w’ を使用できます。こ れ は複数の Xinerama スクリーンを使用しているときのみ 意味がありますが、多分 X11 位置指定文字列を使う 方 が楽でしょう: IconBox -80x200-1-1 こ れ は、80x200 ピクセルのアイコンボックスをスク リーンの右下角に置きます。アイコンボックスとは、任 意のウィンドウにマッチするアイコンを、それらが他の アイコンに重ならない限り fvwm が置こうとする ス ク リーン上のある領域です。満杯の領域用に複数のアイコ ンボックスを定義でき、最初のアイコンボックスが満杯 になったら、次のに埋めていきます。ひとつのスタイル に対するアイコンボックスはすべて一つの Style コ マ ンドで定義する必要があります。例: Style * IconBox -80x200-1-1, \ IconBox 1000x70-1-1 IconBox オプションを伴う Style コマンドは、同じス タイルで前に定義した任意のアイコンボックスを置き換 えます。それが前の例でバックスラッシュが必要となる 理由です。 注意: アイコンボックスコマンド の 位 置 情 報 は、 Xinerama セットアップが使われている場合は、追加の スクリーン指定 "@w" を取ります。これは、そのウィン ドウの中央が置かれているスクリーンを意味します。そ れ以外に追加されているスクリーン指定はありません。 アイコンボックスを定義しない、あるいはアイコンボッ クス全体を埋めると、 fvwm はそのスクリーンを覆うデ フォルトアイコンボックスを使用します。それは上から 下へ、そしてそれが左から右へ伸び、 80x80 のピク セ ル格子を持ちます。デフォルトのアイコンボックスを除 くすべてを無効にしたい場合は、孤立した Style コ マ ン ドで IconBox を引数なしで指定します。デフォルト アイコンボックスも含めすべてのアイコンボックスを無 効にしたい場合は、引数 "none" を指定します。 ヒント: 簡単な fvwm 関数を使って、アイコンボックス 内のアイコンを自動的に配置でき ま す。 下 の 関 数 "DeiconifyAndRearrange" を設定ファイルに入れ: AddToFunc DeiconifyAndRearrange + C Iconify off + C All (CurrentPage Iconic) RecaptureWindow そ れから Iconify 組み込み関数を呼んでアイコンを非 アイコン化している箇所を、すべて新しい関数に置き換 えます。例えば、 AddToFunc IconFunc + C Iconify off + M Raise + M Move + D Iconify off Mouse 1 I A Iconify off を AddToFunc IconFunc + C DeiconifyAndRearrange + M Raise + M Move + D DeiconifyAndRearrange Mouse 1 I A DeiconifyAndRearrange のように置き換えます。 IconGrid は、2 つの正の数値引数を取ります。 IconGrid x y アイコンは、アイコンの格子用の値 x と y を使ってア イコンボックス内に空いているスペースを探しながら一 つずつ順番に並べていきます。デフォルトの格子は 3x3 ピクセルで、これはきつ目に詰め込んだような見た感じ になります。より普通の見た目にするには、最も大きい アイコンより大きい格子を使用してください。今のとこ ろ、あるアイコンを最大のサイズにクリップする方法は ありません。 IconGrid の定義は、それを 適 用 す る IconBox の定義の後ろに置く必要があります: Style * IconBox -80x240-1-1, IconGrid 90 90 IconFill は 2 つの引数を取ります。 IconFill Bottom Right アイコンは、アイコンボックス内に埋めていく方向を制 御する引数を使って、一つずつ順番に並べていきます。 デフォルトでは、その方向は左から右で、それが上から 下に伸びます。これは、以下のように表現されます: IconFill left top アイコンボックスを行の代わりに列を埋めるようにする に は、垂直方向 (top または bottom) を先に指定しま す。方向は、以下のように省略したり、略さずに書いた りできます: "t", "top", "b", "bot", "bottom", "l", "lft", "left", "r", "rgt", "right"。 IconFill の定 義 は、それを適用する IconBox の定義の後ろに置く必 要があります: Style * IconBox -80x240-1-1, IconFill b r MiniIcon は、ウィンドウに対するミニチュアアイコ ン として使用とするピクスマップ画像を指定します。この ミニチュアアイコンはタイトルバーボタン内に書かれ ( ButtonStyle 参 照)、 (FvwmWinList, FvwmIconMan, FvwmTaskBar などの) fvwm モジュールで利用 で き ま す。この引数は、ピクスマップファイルの名前です。 WindowShadeShrinks と WindowShadeScrolls は、 WindowShade コマンドで日陰になっているウィンドウの 内容をスクロールするか (デフォルト) そこに置いたま まにするかどうかを制御します。 オプション WindowShadeSteps は、 WindowShade で ウィンドウを日陰にしているときのアニメーションのス テップ数を選択します。引数は数値一つです。数 値 に ’p’ が続いている場合、それは固定されたステップ数の 代わりに、ステップサイズとして使用するピクセル数を 設 定します。 0 はアニメーションを無効化します。引 数を省略したり、不正な値の場合もそうなります。 ResizeOpaque は、対応するウィンドウのサイ ズ 変 更 を、外枠を使う代わりにその内容を見せたままの形式で fvwm に行わせます。これは、アプリケーションに頻 繁 な再描画を行わせますので、そのアプリケーションが再 描画に使用するグラフィックの総量に依存してかなり遅 く なっ たりウィンドウがかなりちらつくかもしれませ ん。スタイル ResizeOutline (デフォルト) はスタイル ResizeOpaque を 打 ち 消します。例えば XEmacs や Netscape, あるいはピクスマップの背景を持つよ う な ターミナルソフトのようなアプリケーションの多くは、 そのウィンドウのサイズ変更の不透明化 (Opaque) を好 み ま せん。その結果が好ましくなければ、そのような ウィンドウにはスタイル ResizeOpaque を使用しないで ください。特定のウィンドウに対して不透明のサイズ変 更を免除させるには、以下の行を設定ファイルに書いて ください: Style * ResizeOpaque Style rxvt ResizeOutline Style emacs ResizeOutline Sticky はウィンドウを sticky、つまりすべてのデスク トップ、すべてのページに常に現れるようにします。そ の反対のスタイルである Slippery は、デフォルトに戻 します。 StickyIcon は、ウィンドウがアイコン化されたとき に sticky な ウィンドウにします。それは有効なデスク トップの一番上に非アイコン化されます。 SlipperIcon はそれをデフォルトに戻します。 IgnoreRestack は、クライアントが自分自身のウィンド ウを上げたり下げたりしようとする試みを fvwm に無視 さ せ ま す。 デ フォ ルトでは、その反対のスタイル AllowRestack が有効になっています。 FixedPosition は、ユーザがウィンドウを移動しようと する試みを fvwm に無視させます。ユーザのウィンドウ の移動を許可するには、スタイル VariablePosition を 使用します。 ResizeHintOverride は、最小と最大のサイズが与えら れたプログラムを fvwm に無視させます。これは、サイ ズ変更を拒絶するアプリケーションを破壊するのに便利 です。必要なければ使用しないでください。デフォルト (反対) のスタイルは NoResizeOverride です。 MaxWindowSize [ width [ p ] height [ p ] ] これ は、fvwm にあるウィンドウの最大の幅 (width) と高さ (height) を伝えます。その値は全スクリーン領域に対 する割合 (%) です。文字 ’p’ をそのいずれかの値に追 加 す ると、その数値はピクセル数であると解釈されま す。このコマンドは、大きなアプリケーションウィンド ウを全体が見えるようにするのに便利です。 height と width はどちらも 100 ピクセルより小さくてはいけ ま せん。パラメータを省略するか、その値が不正な場合は その制限を 32767 ピクセル (デフォルト) に設定し ま す。 IconifyWindowGroups では、同じウィンドウグループの リーダウィンドウがアイコン化されると、そのグループ のすべてのウィンドウが同時にアイコン化されます。デ フォルトは IconifyWindowGroupsOff で、これはこの挙 動を無効にします。多くのアプリケーションがウィンド ウグループヒント情報を使用しますが、それが正しい方 法 で 使 用 さ れ る の は ご く ま れ で、 多 分 IconifyWindowGroups をアプリケーションの選択のため にのみ使用するのが最もいいでしょう。 |
ウィンドウマネージャの配置 |
アプリケーションは、ウィンドウマネージャヒント情報 か位置情報 (geometry) 指定を用いて、ウィンドウをス クリーン上の特定の地点に置くことができます。そのど ちらもしない場合、ウィンドウマネージャは、そのウィ ン ドウの置き場所を見つけ始めます。fvwm はこの状況 を取り扱う 6 つの方法を知っています。デフォルト は TileCascadePlacement です。 CascadePlacement は、新しいウィンドウをカスケード 流に自動的に配置します。 TileCascadePlacement は、新しいウィンドウをス マー トな位置、すなわちスクリーン上の他のウィンドウに重 ならない場所に自動的に配置します。そのような場所が 見つからなかった場合は、 CascadePlacement が最後の 手段として使われます。 TileManualPlacement これは、 TileCascadePlacement とほぼ同じですが、最後の手段として ManualPlacement を使用します。 MinOverlapPlacement これは、新しいウィンドウを他の ウィンドウと重なる領域のピクセル数が最小となる場所 に自動的に配置します。この配置方針は、特にアイコン や上位のレイヤのウィンドウとの重なりを避けようとし ます。 MinOverlapPercentPlacement は MinOverlapPlacement とほぼ同等ですが、他のウィンドウと重なる領域のピク セル数の代わりに他のウィンドウと重なりの割 合 (%) を最小にしようとします。この配置方針は、他のウィン ドウを完全に覆うことを避け、小さいウィンドウにはよ り一層覆わないようにします。 ManualPlacement (active placement の別名) これは、 新しいウィンドウをすべて手動でユーザに配置さ せ ま す。そのウィンドウはその配置を手動で選択するまで、 ゴム紐枠のみを表示します。ウィンドウはマウスボタン か Escape 以外の任意のキーが押されたときに確定され ます。 Escape は手動配置を中断し、スクリーンの左上 の角に配置します。あるウィンドウの最初の配置のとき にマウスボタン 2 を押した場合 (または Emulate コマ ン ドで Mwm エミュレーションが有効になっているとき に Shift とマウスボタン 1 を押した場合)、その ウィ ン ド ウをサイズ変更も行うかをユーザに問い合わせま す。ボタン 3 押しは条件 PlacedByButton3 を設定しま す ( Current コマンド参照)。 例: Style * ManualPlacement *FvwmEvent: PassID *FvwmEvent: add_window GrowDownFunc AddToFunc StartFunction + I FvwmEvent AddToFunc GrowDownFunc + I windowid $0 (PlacedByButton3) \ Resize bottomright keep -0p この場合、あるウィンドウが生成され、ユーザが初期配 置を終了するのにボタン 3 を押したときは、常に ウィ ンドウは自動的にスクリーンの境界の下にぶつかるまで 拡大されます。 古い配置スタイル DumbPlacement / SmartPlacement / SmartPlacementOff, ActivePlacement / RandomPlacement, ActivePlacementsHonorsStartsOnPage / ActivePlacementsHonorsStartsOnPageOff, GlobalOpts SmartPlacementIsReallySmart / GlobalOpts SmartPlacementIsNormal は、今でもサポートされて い ますが、将来削除されるかもしれません。古いスタイル と新しいスタイルは、以下の表に従って変換できます: GlobalOpts SmartPlacementIsReallySmart Style * SmartPlacement --> Style * SmartPlacement, CleverPlacement Global SmartPlacementIsNormal Style * SmartPlacement --> Style * SmartPlacement, CleverPlacementOff Style * DumbPlacement, RandomPlacement --> Style * CascadePlacement Style * DumbPlacement, ActivePlacement --> Style * ManualPlacement Style * SmartPlacement + RandomPlacement + CleverPlacementOff --> Style * TileCascadePlacement Style * SmartPlacement + ActivePlacement + CleverPlacementOff --> Style * TileManualPlacement Style * SmartPlacement + CleverPlacement --> Style * MinOverlapPlacement Style * SmartPlacement, ActivePlacement, CleverPlacement --> Style * MinOverlapPercentPlacement Style * ActivePlacementsHonorsStartsOnPage --> Style * ManualPlacementsHonorsStartsOnPage Style * ActivePlacementsHonorsStartsOnPageOff --> Style * ManualPlacementsHonorsStartsOnPageOff |
配置方針オプションとウィンドウの積み上げ |
NoPPosition は、新しいウィンドウを追加したときに、 プログラム指定位置 (PPosition ヒント情報) を無視す るように fvwm に指示します。 PPosition の使用を 要 求するアプリケーションもありますが、そういったもの を持っていなければ、これは頭の痛い問題です。多くの プログラムは、PPosition を 0,0 (左上角) のような何 かしらいやなものに設定しています。 NoUSPosition は NoPPosition と同等に機能しますが、 プ ログラムに示されたユーザ指定位置 (USPosition ヒ ント情報) の使用を抑制します。一般的にユーザの選択 を無効にするのはよくないことですが、 USPosition ヒ ントを悪用して、そのウィンドウをユーザの同意なしに ス ク リーンのある地点に強制的に配置するアプリケー ションがあるのです。 NoTransientPPosition と UseTransientPPosition は NoPPosition と UsePPosition と同等に機能しますが、 一時的 (transient) なウィンドウにのみ適用 さ れ ま す。 NoIconPosition は、 ウィンドウのアイコン化のとき に、プログラム指定のアイコン位置 (IconPosition ヒ ント情報) を無視するように fvwm に指示します。 StartsOnDesk は、そのウィンドウが最初に置かれるべ きデスクトップ番号を引数に取ります。標準的な Xt プ ログラムではそれをリソースを使っても指定できる (例 えば "-xrm ’*Desk: 1’") ことに注意してください。 StartsOnPage は 1 つか 2 つか 3 つの数値引数を取り ま す。1 つか 3 つの引数を与えた場合は、最初 (また は一つだけ) の引数はデスクトップ番号です。 3 つ の 引 数 を 与えた場合は、2 番目と 3 番目の引数は仮想 ウィンドウの x, y ページ位置を意味します。2 つの引 数を与えた場合は、それはページ位置の指定で、デスク 情報がないことを意味します。 1 つの引数のみ与え た 場合は StartsOnPage 関数は完全に StartsOnDesk と同 じです。この使用法を理解する標準的な Xt プログラム に 対しては、起動デスク/ページはリソースを使って指 定することもできます (例えば "-xrm ’*page: 1 0 2’")。あるアプリケーションを他のページ上で起動し、 それが現れるまで待つ代わりに今までの作業を続けたい と きは、 StartsOnPage を SkipMapping と組み合わせ るのが便利な方法です。 StartsOnScreen は、引数を一つ取り、それが ’p’ なら ばプライマリスクリーンを、’c’ は (マウスポインタが 含まれる) 現在のスクリーン、’g’ はグローバル ス ク リーンを意味し、またはスクリーン番号自体 (0 から数 える) を指定します。新しいウィンドウは、指定された Xinerama スクリーンに置かれます。デフォルトでは、 ウィンドウが作られたときにマウスポインタが含まれる ス クリーンに置かれます。しかし、FVMW によって配置 されるのではないウィンドウ (つまりユーザ指定位置情 報からの USPosition ヒント情報を伴う場合) は通常は グローバルスクリーンに対して相対的な位置に置かれま す。スタイル StartsOnScreen は、ウィンドウを特定の Xinerama スクリーンに相対的なところに置きたい場 合 にも便利です。例: Style * StartsOnScreen c これは、自分自身で位置情報を持つものも含みすべての ウィンドウを、グローバルスクリーンに対してで は な く、現在の Xinerama スクリーンに対して相対的な位置 に置きます。この使用法を理解する標準的な Xt プログ ラ ムに対しては、起動デスク/ページはリソースを使っ て指定する こ と も で き ま す ( 例 え ば "-xrm ’*fvwmscreen: c’")。(’fvwmscreen’ という名前は、既 にほかのアプリケーションが別の目的で ’.screen’ と いう名前を使っていたために選ばれたものです。) StartsOnPageIncludesTransients は、 一 時 的 (transient) なウィンドウにもスタイル StartsOnPage を 適 用させます。一時的なウィンドウは、通常ビュー ポートに出したいときにポップアップさせるもの な の で、これは普通は別に便利なものでもありませんが、ア プリケーションが、配置を強制する起動ウィンドウのよ うなものを一時的ウィンドウとして使用する場合がある のです。 ManualPlacementIgnoresStartsOnPage は、ウィンド ウ が 生 成 さ れ た と き に、 ManualPlacement と SkipMapping の両方が有効で あ る イ ベ ン ト で の StartsOnPage や StartsOnDesk の配置を抑制します。 これは、ウィンドウの対話的な配置をして、それが別の デスクかページに置かれることによって、どこに消えた のかしらと思う、ということが起こらないように し ま す。 ManualPlacementHonorsStartsOnPage は、これが 起こることを許可します。 SkipMapping が無効の場 合 に は、fvwm が対話型の配置を実行することで、正しい デスク/ページを切り替えるので、このオプションは 何 も し ま せ ん。 デ フォ ル ト は ManualPlacementIgnoresStartsOnPage で す。 ManualPlacementHonorsStartsOnPage は、その状況を取 り扱うのに使われた古い StartsOnDesk スタイルに合っ ています。 CaptureHonorsStartsOnPage は、起動時の初期キャプ チャ (既に存在するウィンドウ) に StartsOnPage と StartsOnScreen のデスク、ページ と Xinerama スク リーン指定に従ってそのウィンドウを配置させ ま す。 CaptureIgnoresStartsOnPage は、fvwm に初期キャプ チャでのこれらの設定 ( StartsOnDesk も含む) を無視 さ せます。デフォルトは CaptureIgnoresStartsOnPage です。 RecaptureHonorsStartsOnPage は、あるウィンドウに、 Restart か Recapture のときに StartsOnPage と StartsOnScreen のデスク、ページ と Xinerama ス ク リーン指定に従って (あるいは戻って) そのウィンドウ を配置します。 RecaptureIgnoresStartsOnPage は、 Restart か Recapture 時に現在のウィンドウ位置に置 きます。デフォルトは RecaptureIgnoresStartsOnPage です。 Layer は、正の整数の引数を一つ追加でき、それはその ウィンドウを置くレイヤ (層) です。引数をつけない場 合、その前にセットした値が削除され、デフォルトのレ イヤが適用されます。 StaysOnTop は、ウィンドウを最上位のレイヤに置き ま す。 このレイヤは組み込みコマンド DefaultLayers で 変更できます。デフォルトは 6 です。 StaysPut はウィンドウをプットレイヤに置きます。 こ の レイヤは、組み込みコマンド DefaultLayers で変更 できます。デフォルトは 4 です。 StaysOnBottom はウィンドウを最下位のレイヤに置きま す。 こ のレイヤは、組み込みコマンド DefaultLayers で変更できます。デフォルトは 2 です。 StartsLowered は、そのウィンドウを最初に、デフォル トの StartsRaised ではなく、そのレイヤの下に置くよ う fvwm に指示します。 SkipMapping は、fvwm にそのウィンドウが最初に配 置 されるときに、それが乗っているデスクトップを変更し ないように伝えます ( StartsOnDesk や StartsOnPage で有用です)。 KeepWindowGroupsOnDesk は、同じグループの他のウィ ンドウと同じデスクに現れるウィンドウグループヒント 情報集合を持つ新しいウィンドウを作成します。この挙 動は困惑させる可能性がありますので、デフォルトの設 定 は ScatterWindowGroups となっています。この場 合、ウィンドウの配置のときには、ウィンドウグループ ヒント情報は無視されます。 |
一時的なウィンドウ |
DecorateTransient は、普通は左が装飾されていない一 時的なウィンドウに、通常の fvwm の装飾 (タイ ト ル バー やボタン等) を与えます。 xterm メニューなどの ようなある種のポップアップウィンドウは、ウィンドウ マネージャでは管理されず、よってこれによっても装飾 を得ることはないこ と に 注 意 し て く だ さ い。 NakedTransient (これがデフォルト) は、一時的なウィ ンドウに標準的な装飾を与えません。この場合、非装飾 ウィンドウの両側と、そのクライアントウィンドウ (割 り当ての ’S’ と ’W’ のコンテキスト。 Mouse と Key コマンド参照) にキーやマウスボタンを割り当てること のみ可能です。 一時的なウィンドウを持ち、スタイル RaiseTransient のついたウィンドウは、それが上げられたときにその一 時的なウィンドウをすべて前面に上げます。スタ イ ル DontRaiseTransient はこの挙動を無効にします。この 場合、すべてのウィンドウはそれが一時的なウィンドウ を一つも持たないものとして扱われます。 一 時的なウィンドウを持ち、スタイル LowerTransient のついたウィンドウは、それが下げられたときにその一 時 的 な ウィ ンドウをすべて奥に下げます。スタイル DontLowerTransient はこの挙動を無効にします。こ の 場合、すべてのウィンドウはそれが一時的なウィンドウ を一つも持たないものとして扱われます。 スタイ ル StackTransientParent は、 ス タ イ ル RaiseTransient と LowerTransient を補強します。ス タイル StackTransientParent のついたウィンドウを上 げると、その上げられたウィンドウが一時的でかつその 主ウィンドウがスタイル RaiseTransient を持っている 場合は、その上げる動作を主ウィンドウへ転送します。 その結果、その一つの一時的ウィンドウを上げる 動 作 が、その主ウィンドウを上げ、そしてグループ全体が引 き上げられることになります。主ウィンドウがスタイル LowerTransient を 持つ場合に一時的ウィンドウのグ ループ全体を下げることに関しても、同様のことが言え ます。 DontStackTransientParent は、この挙動をオフ に し ま す。 (Dont)StackTransientParent は、 RaiseTransient と LowerTransient が使われていない 場合には何の効力も持ちません。 以下のようにすれば、一時的ウィンドウ グ ルー プ の Motif での上げ/下げの適当なエミュレーションが可能 になります: Style * RaiseTransient Style * LowerTransient Style * StackTransientParent |
その他 |
スタイル BackingStore と SaveUnder は、X サーバの、その名前に対応するウィンドウ属性を有効に します。 BackingStore は、ウィンドウの隠されてしま う 部分を X サーバに記憶させることを意味しますが、 SaveUnder は、それを持つウィンドウはその下に隠して し まっ たグラフィックスを保存します。いずれのオプ ションも、X サーバとの通信が遅い場合 (例えばモデム 通 信 など) には fvwm をスピードアップできます。デ フォルトではいずれのスタイルもオフです。これらを明 示 的にオフにするには、スタイル BackingStoreOff と SaveUnderOff を使用できます。 |
ParentalRelativity は、 ParentRelative の方の背 景 ピクスマップを使用するクライアントに、透明化させる ことを可能にします。透明化カラーセットをサポートす る fvwm モジュールはこの設定を必要とします。デフォ ルトは Opacity で、より軽快な動作を行うため、す べ ての非透明化クライアントがこれを使うべきでしょう。 MwmDecor は、fvwm に、mwm の装飾ヒント情報を認識さ せ、考慮させようとします。ときどきそれを利用するア プリケーションがあります。このスタイルをオフにする には、スタイル NoDecorHint を使用してください。 MwmFunctions は、fvwm に、mwm 禁止操作ヒント情報を 認識させ、考慮させようとします。ときどきそれを利用 す る アプリケーションがあります。 HintOverride は fvwm に mwm が禁止する操作を隠させますが、これはあ な たにとにかくその操作を行わさせます。 NoFuncHint は、mwm ヒント情報を完全にオフにします。 OLDecor は、fvwm に olwm や olvwm のヒント情報を認 識 さ せ、考慮させようとします。これらは大くの古い XView や OLIT アプリケーションが使用します。このオ プションをオフにするには NoOLDecor を使います。 GNOMEIgnoreHints を つ け ると、そのウィンドウが GNOME 対応でコンパイルされていたとしても、 fvwm は そ のウィンドウに対するすべての GNOME ヒント情報を 無視します。これは、そのようなごてごてしたプリケー ションに対して、そのユーザよりも賢くさせようとする のに、そしてユーザの好みを無視してウィンドウマネー ジャ に GNOME ヒント情報を強制させるように使うのに 便利でしょう。スタイル GNOMEUseHints は、それを デ フォルトの挙動に戻します。 UseDecor は AddToDecor で生成された装飾の名前を一 つの引数として受け取れます。装飾名を指定しな い 場 合、"Default" の装飾を使用します。ウィンドウは実際 には装飾を含みませんが、常にその一つに結びつけられ ています。装飾が後で AddToDecor で変更された場合、 それに結びつけられたすべてのウィンドウの見た目が変 わ ります。あるウィンドウの装飾は、 ChangeDecor で 再割り当てすることができます。 UseStyle は引数を一つ取り、それは他のスタイルの 名 前です。この方法では無関係なウィンドウ名を使うこと ができますが、これにより新ためて設定し直すことなし にそれと同様の性質を継承することができます。例: |
Style rxvt UseStyle XTerm 警告: あるスタイルが一つ、あるいは複数の親スタイル から作られていてその親スタイルが変更された場合、そ の 派 生スタイルは変化しません。それも変化させるに は、再び UseStyle 行を実行する必要があります。 |
例 |
# fvwm のデフォルトの挙動を、タイトルバーなし # ウィンドウ毎の変更: # タイトルバーを xterm にのみ復活 Style rxvt Icon term.xpm # Netscape を、3x3 仮想デスクトップの真ん中の ウィンドウに対する全ての属性は、OR で認識される こ と に 注意してください。上の例では、"FvwmPager" は ウィンドウ名が完全に 一 致 す る 行 に よ り 属 性 StaysOnTop を取得しますが、"Fvwm*" にもマッチする ために NoHandles, Sticky, WindowListSkip も 取 得 し、"*" に もマッチするために NoTitle も取得しま す。一つのウィンドウに対して相反するスタイルが指定 さ れ た場合は、最後に指定されたスタイルが使われま す。 NoIcon 属性がセットされると、指定されたウィンド ウ は そ れがアイコン化されたときに単に消えてしまいま す。そのウィンドウはウィンドウリストから復帰できま す。 Icon が引数なしにセットされた場合、 NoIcon 属 性が解除されますがアイコンは何も指定されていないこ と になります。 FvwmPager モジュールアイコンのみ存 在することを許す例: Style * NoIcon Style FvwmPager Icon |
DestroyStyle style |
これは style という名前のスタイルを削除します。 そ の 変更は直ちに効力を持ちます。 style は、ワイルド カード検索文字列ではなく、むしろ大文字小文字をも区 別 する文字列で、元の Style コマンドに完全に一致す る必要があることに注意してください。 スタイル "*" の削除もできますが、それはお勧めで き ません。例えば DestroyStyle Application* こ れは、"Application*" という名前のスタイルの設定 をすべて削除しますが、それは「"Application" で始ま るすべてのスタイル」ではありません。 |
ウィンドウスタイルを制御するその他のコマンド |
AddButtonStyle button [ state ] [ style ] [-- [!] flag ...] |
こ れ は一つのボタンスタイルを button に割りあてま す。 button は、ボタン 番 号 か、 ま た は "All", "Left", "Right" の い ず れ か です。状態 state は、"ActiveUp", "ActiveDown", "Inactive", またはこ れら 3 つの前に "Toggled" をつけたもののいずれかで す。 "ActiveUp" は、ウィンドウがフォーカスを持ち、 かつボタンが押されていないときのボタンスタイルを選 択します。 "ActiveDown" も同様ですが、ボタンが押さ れたときに適用され、 "Inactive" スタイルは、フォー カスがないウィンドウに対して使用されます。接 頭 辞 "Toggled" は、最大化、または日陰、sticky のいずれ かのウィンドウで対応する MwmDecor... ボタンスタイ ル の組を持っているものを参照します。 state を省略 すると、そのスタイルがすべての状態に追加されます。 style と flag をカッコでくくれば、一行に複数の state の定義を書くことができます。追加ボタンスタイ ルのための flag は、定義後に変更はできません。 ボタンは、定義された順に書かれます。つまり、一番最 近定義されたボタンスタイルに始まり、それに追加した AddButtonStyle がそれに続きます。ボタンスタイルの 定義の積み重ねを消去するには、スタイルフラグを変更 してください。有効なスタイルとフラグに関する詳細に ついては、 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", またはこれらの前に "Toggled" をつけ た も ののいずれかです。状態 state を省略すると、全て の状態にそのスタイルが追加されます。 style と flag を カッコでくくれば、一行に複数の state の定義を書 くことができます。このコマンドは、 AddButtonStyle コマンド (上を参照) と全く同様です。 タイトルバーは、定義された順に書かれます。つまり、 一番最近定義された TitleStyle に始まり、それに追加 し た AddTitleStyle がそれに続きます。タイトルスタ イルの定義の積み重ねを消去するには、スタイルフラグ を変更してください。有効なスタイルとフラグに関する 詳細については、 TitleStyle と ButtonStyle コマ ン ドの項を参照してください。 |
AddToDecor decor |
こ れは、 decor という名前の装飾にコマンドを追加、 転換します。装飾 (decor) とは、ボタ ン ス タ イ ル (ButtonStyle)、 タ イトルバースタイル (TitleStyle) 、ボーダースタイル (BorderStyle) に影響を与える 複 数 のコマンドの集合につけられた名前です。 decor が 存在しなかった場合は作られますが、そうでなければ既 に 存在する decor が変更されます。注意: 以前の版で は、 HilightColor, HilightColorset, WindowFont コ マンドを装飾で使うこともできましたが、それらは既に 不可となっています。それらには、代わりに Style コ マンドにオプション Hilight... と Font をつけて使用 してください。 新しい装飾は、任意のスタイル定義を除いた "デフォル ト" の装飾と丁度同じものとして出発します。与えられ た装飾は、 Style コマンドの UseDecor オプション に より、ウィンドウの集合に適用できます。既に存在する 装飾を修正すると、現在それが割り当てられているウィ ンドウも影響を受けます。 AddToDecor の使用法は、 AddToMenu や AddToFunc コ マンドと同様で、違いはそれらのメニュー や 関 数 が ButtonStyle, AddButtonStyle, TitleStyle, AddTitleStyle, BorderStyle コマンドに変わるだけ で す。 AddToDecor で生成された装飾は、 ChangeDecor, DestroyDecor, UpdateDecor コマン ド や、 UseDecor Style オプションで操作できます。 以下は、装飾 "FlatDecor" とスタイル "FlatStyle" を 生成する例です。それらの実体は別物です: AddToDecor FlatDecor + ButtonStyle All ActiveUp (-- flat) \ Inactive (-- flat) + TitleStyle -- flat + BorderStyle -- HiddenHandles NoInset Style FlatStyle UseDecor FlatDecor, \ Color white/grey40,HandleWidth 4 Style xterm UseStyle FlatStyle 既に存在するウィンドウの装飾は ChangeDecor で割 り 当て直すことができますし、装飾は、 DestroyDecor で 破棄できます。 DestroyDecor FlatDecor AddToDecor FlatDecor ... Style FlatStyle UseDecor FlatDecor, \ Color white/grey40,HandleWidth 4 そしてそのスタイルをここで再び適用: Style xterm UseStyle FlatStyle |
BorderStyle [ state ] [ style ] [-- [!] flag ...] |
これは、ウィンドウの境界のスタイルを定義します。状 態 state は、"Active" か "Inactive" のいずれかで す。状態 state を省略した場合、そのスタイルは両 方 の 状態に対して設定されます。 style と flag をカッ コでくくれば、一行に複数の state の定義を書くこ と ができます。 style は、有効なボタンスタイルの部分集合で、それは TiledPixmap (斜面の色にマッチする一様なピクス マッ プ 画 像がこの方法で最も良く合います) のみが可能で す。任意の flag の前に ’!’ をつけた場合、その意 味 は 否定されます。 style を指定しなければ、スタイル をリセットせずにフラグを変更できます。 フラグ HiddenHandles は、ウィンドウ上で線で分離 さ れ ている角のハンドル (corner handle) をハンドルで 隠します (このオプションは NoHandle のウィンドウに は 何 の 効 果 も 持 ち ま せ ん)。 デフォルトでは HiddenHandles は無効になっています。 フラグ NoInset は、 HiddenHandles を補足します。こ れが指定された場合、ウィンドウの枠の内側の斜面は描 画されません。 HiddenHandles を指定しないと、枠 は やや変に見えるでしょう。 Raised は、浮び上がったレリーフパターン (浮き彫り 模様) を描画します (default)。 Sunk 沈み込ん だ レ リー フ パターンを描画します。 Flat は、レリーフパ ターンの描画を抑制します。 アクティブ、非アクティブなウィンドウの境界を生地の ピ ク スマップ画像で飾るには、以下のように指定しま す: BorderStyle Active TiledPixmap marble.xpm BorderStyle Inactive TiledPixmap granite.xpm BorderStyle Active -- HiddenHandles NoInset 両方の状態にスタイルをクリアするには: BorderStyle Simple 一つの状態の方をクリアするには: BorderStyle Active Simple 与えられた状態のフラグのセットを解除するには: BorderStyle Inactive -- !NoInset タイトルバーボタンは、 UseBorderStyle フ ラ グ ( ButtonStyle 参照) を使って、ボーダースタイルを継承 することができます。 |
ButtonState [ActiveDown bool] [inactive bool] |
ButtonState コマンドは、ウィンドウタイトルとタイト ル ボタンにどの状態 (state) を使用するかを制御しま す。デ フォ ル ト は、3 つ の 状 態 "ActiveUp", "ActiveDown", "Inactive" ( ButtonStyle と TitleStyle コマンド参照) をすべて使用できるよう に します。キーワードの後ろのブール値引数 bool は、指 定された状態を使用する ("True") か使用 し な い か ("False") を制御します。状態 "ActiveUp" は停止でき ません。引数を与えないか、与えた引数が不正な 場 合 は、デフォルト値を復帰します。 状態 "ActiveDown" は、有効 (active) なウィンドウ上 で押し下げられたボタンとタイトルに、異なるボタンス タ イ ル を 使えます。その他の場合は、代わりに状態 "ActiveUp" を使用します。状態 "Inactive" は、有 効 でない (inactive) ウィンドウに異なるボタン、タイト ルスタイルを使用できます。その他の場合は、代わりに 状態 "ActiveUp" を使用します。 |
ButtonStyle button [ state ] [ style ] [-- [!] flag ...] |
これは、タイトルバーボタンのボタンスタイルを設定し ま す。 button は、0 から 9 までのタイトルバーボタ ン番号、または "All", "Left", "Right", "Reset" の う ちのいずれかです。ボタン番号については Mouse コ マンドのセクションで説明します。 style と flag を カッ コでくくれば、一行に複数の state の定義を書く ことができます。 状態 state は、ボタンのどの状態にセットするのか を 指示します。ボタンの状態は以下のように定義されてい ます: 状態 "ActiveUp" と "ActiveDown" は、 有 効 (active) なウィンドウのボタンが、それぞれ押されて いない、押されている状態を、状態 "Inactive" は非有 効 (inactive) なウィンドウ上のボタンを示していま す。状態 "ToggledActiveUp", "ToggledActiveDown", "ToggledInactive" は、 ウィ ン ド ウが最大化、日 陰、sticky のいずれかの場合、それぞれ MwmDecorMax, MwmDecorShade, MwmDecorStick のヒント情報を持つボ タンの代わりに使用されます。 AddToDecor Default + ButtonStyle 6 \ Vector 4 50x25@1 85x75@0 15x75@0 50x25@1 + ButtonStyle 6 ToggledActiveUp \ Vector 4 50x75@0 85x25@1 15x25@0 50x75@0 + ButtonStyle 6 ToggledActiveDown \ Vector 4 50x75@0 85x25@1 15x25@0 50x75@0 + ButtonStyle 6 ToggledInactive \ Vector 4 50x75@0 85x25@1 15x25@0 50x75@0 + ButtonStyle 6 - MwmDecorShade Mouse 0 6 N WindowShade 状 態 state が "ActiveUp", "ActiveDown", "Inactive", ま たは "Toggled" のついたものの場合 は、その特定のボタンの状態に対して設定され ま す。 state が省略された場合は、全ての状態に設定されま す。スタイルを指定すると、現在のスタイルは破棄され ます (これを避けるには AddButtonStyle を使用してく ださい)。 style を省略すれば、現在のスタイルを破壊せずに、前 のボタンスタイルに対する状態依存フラグを設定できま す。例 (各行は独立に考慮されます): ButtonStyle Left -- flat ButtonStyle All ActiveUp (-- flat) \ Inactive (-- flat) 最初の行は全ての状態の左のボタンを平ら (flat) に設 定しますが、 2 行目は、"ActiveUp" と "Inactive" な 状態にだけ、その全てのボタンを平らに設定します (フ ラグのみが変更され、その個々のスタイルは変更されま せん)。 全てのボタンをそのデフォルトにリセットしたいなら: ButtonStyle Reset ボタン 1 の "ActiveUp" の状態をデフォルトにリ セッ トしたいなら: ButtonStyle 1 ActiveUp Default ボタン 1 の全ての状態を、ボタン番号 2 のデフォルト にリセットしたいなら: ButtonStyle 1 Default 2 任意のボタンに対して、 style と flag をカッコで く く れば一行で複数の state に対する定義を指定できま す。 1 行に 1 つの定義しかしないなら、カッコは不要 です。 フ ラ グ flag は指定した状態 state に影響を与えま す。任意の flag ’!’ をつけるとその振舞いは否定 さ れます。利用できる、全てのスタイルに対する状態依存 フラグを、以下に記します ( ButtonStyle の項では 状 態非依存フラグを扱います)。 Raised は、浮び上がったレリーフパターン (浮き彫り 模様) を描画します。 Sunk は、沈み込んだレリーフパターンを描画します。 Flat は、レリーフパターンの描画を抑制します。 UseTitleStyle は、与えられたボタン状態に対して、ボ タン自身のスタイルの前に現在のタイトルスタイルを描 画させます。 TitleStyle の Raised, Flat, Sunk のフ ラグは、この文脈では冗長であり無視されます。 UseBorderStyle は、ボタンに装飾された BorderStyle のオプションを継承させます。 Raised, Sunk, Flat はお互いに排他 的 で、 最 初 の ButtonStyle にだけ指定できます。 UseTitleStyle と UseBorderStyle も排他的です (しかし両方を同時に 無 効 に は で き ま す)。 デ フォ ルトは Raised で、 UseBorderStyle と UseTitleStyle はどちらも設定され ていません。 状態 "ActiveDown" に対する 重要な注意 : ボタンが押 された場合、そのレリーフは逆転されま す。 こ の た め、"ActiveDown" の 状態で沈みこんだ状態にするに は、望んだレリーフの正反対のものを指定する必要があ るのです (すなわち、盛り上がっているような、押し込 まれた見た目を作るには、"ActiveDown" に Sunk を 指 定 しなければいけません)。この仕様は首尾一貫したも のなのですが、最初は紛らわしく見えるかもしれ ま せ ん。同じことが "Toggled" 状態にも適用されます。 ボタンスタイルは、非破壊的なもの、部分的に破壊的な もの、完全に破壊的なもの、に分類されます。非破壊的 なスタイルは、画像に影響を与えません。部分的に破壊 的なスタイルは、下に横たわる画像 ( Pixmap 画像) を 部分的、または全ての部分を覆い隠すことができます。 完全に破壊的なスタイルは下に横たわる画像全体を覆い 隠します ( Solid または グラデーションスタイルの一 つ)。よって、 AddButtonStyle (またはタイトルバーに 対 する AddTitleStyle ) でスタイルを積み上げている 場合は、それが最小限の重ね塗りになるように並べ方に 注意してください。 利用できるスタイルとその引数を、以下に記します。 Simple スタイルは、何もしません。これには引数もあ りませんし、このスタイルは非破壊的なボタンスタイル の一例です。 Default スタイルは、条件的に一つの引数を受け付けま す: それは読み込むデフォルトのボタン番号を指定する 番 号 で す。このスタイルコマンドが ButtonStyle か AddButtonStyle で与えられると、引数は必須ではな く なります (与えた場合は現在のボタン番号に上書きしま す)。 ButtonStyle と AddButtonStyle 以外で使われた 場合は、番号は必ず指定しなければいけません。 Solid スタイルは、ボタンを非透過色で塗り潰します。 レリーフの境界色は影響を受けません。その色は一つの 引数で指定します。このスタイルは完全に破壊的です。 Vector num XxY@C ... スタイルは、直線による模様を 描 画 します。これは標準的なボタンスタイルなので、 キーワード Vector は省略でき、 num は XxY@C の形式 での点の個数の指定です。ここで、 X と Y はボタンの 内部の点の座標で、パーセント (0 から 100) 単位で与 え、 C は直線の色の指定です (0 - 影の色、1 - ハイ ライト色、2 - 背景色、 3 - 前景色)。最初の点の色は 使 用されません。線のパターンには、32 点まで使用す ることができます。このスタイルは部分的に破壊 的 で す。 その指定は少し厄介です: ButtonStyle 2 Vector 4 50x30@1 70x70@0 \ 30x70@0 50x30@1 この指定は、ボタン 2 の装飾に 4 点パターンを使用し ていて、影の色 (@0) の (x=50,y=30) から (70,70) へ の 線分、そこから影の色の (30,70) への線分、最後に 明るい色 (@1) の (50,30) への線分から作られてい ま す。難しすぎますか ? いくつかの例とそのスクリーン ショットが fvwm のウェブページにあります。 Vector のもう少し複雑な例: ButtonStyle 8 Vector 10 45x65@2 45x75@3 20x75@3 20x50@3 \ 35x50@3 35x65@1 35x25@1 75x25@1 75x65@0 35x65@0 ButtonStyle 0 Vector 10 45x65@2 45x75@0 20x75@0 20x50@1 \ 45x50@1 45x65@0 75x65@3 75x25@3 35x25@3 35x47@3 ?Gradient スタイルは色勾配 (グラデーション) を記述 します。はてなマークの部分は、色勾配の任意の型を入 れてください。色勾配の書式に関する説明は、「色勾配 (グラデーション)」のセクションを参照してください。 色勾配スタイルは完全に破壊的です。 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 ピクスマップ画像の指定は、絶対パス、相対パスのどち らの指定も可能です ( ImagePath 参照)。ピクスマップ 画像が見つかない場合、ボタンスタイルは Simple に戻 り ま す。 Pixmap ス タイル特有のフラグは Left, Right, Top, Bottom です。これらは、ピクスマップ 画 像の位置合わせに使われます (デフォルトは、両方向に 対する中央合わせです)。ピクスマップ画像の 透 過 性 は、 色 "None" に対して使用されます。このスタイル は、部分的に破壊的です。 MiniIcon スタイルは、 Style コマンドのオプ ショ ン MiniIcon が指定されたボタン内に、ウィンドウのミニ チュアのアイコンを描画します。このボタンスタイルに は引数はありません。例: Style * MiniIcon mini-bx2.xpm Style xterm MiniIcon mini-term.xpm Style Emacs MiniIcon mini-doc.xpm ButtonStyle 1 MiniIcon TiledPixmap スタイルは、ボタンの背景として、ピクス マップ画像をタイル張りします。引数としてピクスマッ プ画像を一つ指定します。ピクスマップ画像の透過性は 使えません。このスタイルは、完全に破壊的です。 |
ButtonStyle button - [!]flag ... |
これは、指定されたボタン button に対し状態に依存し ないフラグを設定します。状態に依存しないフラグは、 ボタンの振舞いに影響を与えます。各フラグ flag はス ペースで区切ります。 ’!’ をフラグにつけると、その 振舞いは否定されます。 Clear は特別なフラグで、 こ れは存在する任意のフラグを消去します。 以 下 の フラグは、通常、mwm function ヒント情報 ( Style コマンドのオプション MwmFunctions 参照) によ りどのボタンが影響を受けるべきなのかを fvwm に通知 するのに使われます。これは、例えば複雑な関数をボタ ンに割り当てられるように、自動的には行われないよう になっています。 MwmDecorMenu は、メニューを表示するタイトルバー ボ タンに割り当てます。デフォルトの割り当ては最も左の ボタンです。 Style オプション MwmFunctions を持 つ ウィンドウがこのボタンを表示しないように要求した場 合、それは隠されます。 MwmDecorMin は、ウィンドウを最小化、あるいはアイコ ン化するタイトルバーボタンに割り当てます。デフォル トの割り当ては、最も右から 2 つ目のボタ ン で す。 Style オプション MwmFunctions を持つウィンドウがこ のボタンを表示しないように要求した場合、それは隠さ れます。 MwmDecorMax は、ウィンドウを最大化するタイトルバー ボタンに割り当てます。デフォルトの割り当ては最も右 の ボタンです。 Style オプション MwmFunctions を持 つウィンドウがこのボタンを表示しないように要求した 場合、それは隠されます。ウィンドウが最大化されたと き、ボタンのベクトルパターンは押し込まれた見た目に なります。 MwmDecorShade は、 ウィ ン ド ウ を 日陰にする ( WindowShade コマンド参照) タイトルバーボタンに割り 当てます。ウィンドウが日陰化されると、ボタンのベク トルパターンが押し込まれた見た目になります。 MwmDecorStick は、ウィンドウを sticky にするタイト ルバーボタンに割り当てます。ウィンドウが sticky に なると、ボタンのベクトルパターンが押し込まれた見た 目になります。 |
ChangeDecor decor |
こ れは、ウィンドウの装飾を decor に変更します。引 数 decor は "Default"、または AddToDecor で定義 さ れ た装飾の名前です。引数 decor が正しくない場合は 何もしません。ウィンドウ内、あるいはその境界上のど こかで呼び出された場合は、そのウィンドウに影響を与 えます。ルートウィンドウ上で呼び出された場 合 は、 ユー ザ に 対 象 と なるウィンドウを選択させます。 ChangeDecor は、 AddToDecor コマンドを使って設定で きる属性にのみ影響を与えます。 ChangeDecor CustomDecor1 |
DestroyDecor [recreate] decor |
こ れ は、 AddToDecor で定義した装飾 decor を削除 し、それにより、この後この decor への参照が無効 に な り ま す。この decor を使用しているウィンドウは "Default" の装飾に戻ります。オ プ ショ ン 引 数 の recreate は、その装飾を完全には廃棄せず、その中味 のみ廃棄することを fvwm に伝えます。その装飾が後で 再び生成された場合、その装飾が recreate オプション 付きで廃棄されたものでなければ、 UseDecor スタイル を再び適用する前にウィンドウがそれを使うことはあり ません。"Default" という名前の装飾は削除でき ま せ ん。 DestroyDecor CustomDecor1 |
TitleStyle [justification] [height [num]] |
こ れ は、 タ イ ト ル バー に対する属性を設定しま す。justification には、 Centered, RightJustified, LeftJustified のいずれかを指定します。 height は、 ピクセル単位でのタイトルバーの高さを設定します。デ フォルトは Centered とウィンドウのフォントの高さで す。フォントの高さをデフォルトの値にリセットするに は、 キーワード height の後ろの引数 num を省略しま す。例: TitleStyle LeftJustified Height 24 |
TitleStyle [ state ] [ style ] [-- [!] flag ...] |
これは、タイトルバーのスタイルを設定します。 状 態 state は、"ActiveUp", "ActiveDown", "Inactive" の いずれかです。 state が省略された場合、そのスタ イ ルはすべての state に対して追加されます。 style と flag をカッコで囲めば、複数の状態に対する定義を 一 行 で指定できます。 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" にべったりした赤を、そ して状態 "Inactive" にタイル張りの木目のピクスマッ プ 画 像 (wood.xpm) を 設定します。そして最後に "ActiveUp" は平らな見 た 目 に 設 定 さ れ、 状 態 "ActiveDown" は 沈みこんだものに設定され (フラグ Raised は状態 "ActiveDown" に対しては、レリーフ の 逆 転 の 仕様により、沈みこんだ形になります)、状態 "Inactive" は平らに設定されます。すべての状態に フ ラグを設定する例: TitleStyle -- flat 平らな見た目を設定するには: TitleStyle -- flat ButtonStyle All ActiveUp (-- flat) Inactive \ (-- flat) |
UpdateDecor [decor] |
このコマンドは、主に後方互換性のために維持されてい ます。装飾のすべての要素は、それが変更されたときに 直ちに更新されるので、このコマンドはほとんど無駄で す。 これはウィンドウの装飾を更新します。装飾 decor は オ プション引数で、これには更新する装飾 decor を指 定します。それが指定された場合、その特 定 の 装 飾 decor に結びつけられたウィンドウのみが更新されま す。この コ マ ン ド は、 例 え ば、 ButtonStyle, TitleStyle, BorderStyle (多分 AddToDecor との組み 合わせで使用されます) の後で有用でしょう。無効な装 飾を指定すると、結果としてすべてのウィンドウが更新 されます。このコマンドは Recapture よりはかき乱 し ま せんが、 Recapture ほどにはウィンドウスタイルオ プションに影響を与えません。 |
仮想デスクトップを制御するコマンド |
Desk arg1 [ arg2 ] [ min max ] |
このコマンドは名前が変更されています。 コ マ ン ド GotoDesk を参照してください。 |
DeskTopSize HorizontalxVertical |
これは、物理スクリーンサイズ単位で、仮想デスクトッ プのサイズを定義します。 |
EdgeResistance scrolling moving [xinerama-moving] |
これは、マウスがスクリーンの端を越えて動くときにデ スクトップビューポートを変更すること、及びスクリー ンの端を越えてウィンドウを動かすことの 困 難 さ を fvwm に指示します。 最初のパラメータは fvwm がビューポートを動かす前に マウスポインタが何ミリ秒、スクリーンの端にいなけれ ばいけないかを意味します。これは、 EdgeScroll 100 100 を 使 うけれど、望まないときに不意にページを自分で ジャンプさせてしまうような人を想定しています。 2 つ目のパラメータは、ウィンドウの端を、それが部分 的 に スクリーンから離れて実際に移動する前に、スク リーンの端を越えて何ピクセル動かさなければいけない か、を指示します。デフォルトではビューポートは、要 求された方向に 1 ページ分丸 々 移 動 し ま す が、 EdgeScroll を使っていて、それが 0 以外の他の値に セットされている場合は、代わりにそれが使われます。 EdgeScroll 0 0 でも、現在のスクリーンの端をまたいでウィンドウの移 動や大きさの変更 (resize) がまだ可能であることに注 意 してください。最初のパラメータを EdgeResistance 10000 にすることで、このような移動等はできなくなり ます。 EdgeResistance を 10000 未満 (しかし 0 より は大) にすると、ページを越えることは難しくはなりま す が不可能ではありません。 EdgeThickness も参照し てください。 3 番目の追加パラメータは、2 つ目と同じことをします が、これは個々の Xinerama スクリーン用のものです。 省略した場合は、 xinerama-moving は moving の値 に セットされます。個々のスクリーンの端を無視させるに は、 xinerama-moving に 0 をセットします。 |
EdgeScroll horizontal[p] vertical[p] |
これは、カーソルがページの端に当たったときにページ を何パーセントスクロールさせるかを指定します。 ’p’ をつけると、ピクセルを意味するように解釈が変わりま す。ページの端に当たっても、何のページの切り変えも スクロールも望まない場合は、あなたの .fvwm2rc ファ イルに EdgeScroll 0 0 と書くか、または多分 EdgeThickness を 0 にセットす る方がいいでしょう。 EdgeThickness コマンドを参 照 してください。ページ全体を丸々スクロールさせたいな ら EdgeScroll 100 100 としてください。 horizontal と vertical は正の数で ある必要があります。 horizontal と vertical のパーセントが 1000 倍され た場合、デスクトップの端でのスクロールは反対の端に 戻ります。例えば EdgeScroll 100000 100000 を 使用すると、fvwm はページを丸々スクロールし、デ スクトップの端では反対の端につながった形式に し ま す。 |
EdgeThickness 0|1|2 |
これは、端のスクロール機能で使用される、スクリーン の端に fvwm が生成する見えないウィンドウの幅と高さ です。 マウスによるページのスクロールを可能にするために、 「鍋枠」(pan frame) と呼ばれる 4 つのウィンドウ が スクリーンのごく端に置かれます。これにより、ウィン ドウの端にマウスがあるかどうかを fvwm が検出 し ま す。これが機能する仕組みのため、その鍋枠は積み上げ の一番上にあって、そしてマウスイベントをもらう必要 が あ ります。よって、もしその線に沿ってある種のエ ラー: "mouse clicks at the edge of the screen do the wrong thing" (スクリーンの端でのマウスクリック は正しいことをしていない) が出たら、その鍋枠には何 か問題があり、 (マウスをページ間の切り替えには使っ ていないと仮定すれば) EdgeThickness を 0 にすべ き でしょう。 値 を 0 にすると、ウィンドウをドラッグしている間で あっても、端でのマウスによるスクロールは完全に不可 能 に な ります。値を 1 にすると鍋枠は最も小さくな り、あるサーバを除いてはそれが最もいいでしょう。 2 がデフォルトです。 鍋枠の 1 または 2 ピクセルは、ときどき混乱します。 例えば、ウィンドウをスクリーンの端に渡ってドラッグ していて、それが鍋枠にもかかっている場合、スクリー ンの端の近くでそのウィンドウ上でクリックすると、そ れはルートウィンドウ上でクリックされたと扱われてし まいます。 |
GotoDesk prev | arg1 [ arg2 ] [ min max ] |
これは、現在のビューポートを他のデスクトップ (作業 空間、部屋とも呼ばれる) に切り替えます。 このコマンドは、1, 2, 3, 4 個の引数を取ります。 引 数 1 つの場合は、それは相対的なデスク番号と見なさ れます。引数 2 つの場合は、それらは相対的な、そ し て 絶対的なデスク番号と見なされます。引数 3 つの場 合は、それらは相対的なデスク番号、そしてそれらの許 される範囲の最小値と最大値であると見なされます。引 数 4 つの場合は、それらは相対的、絶対的なデスク 番 号、そして最小値と最大値であると見なされます。 (デ スクトップ番号は負でも構いません。) 文字列 prev を 1 つの引数として与えると、最後に訪れたデスク番号が 使用されます。 arg1 が 0 でなければ、切り替わる先のデスクトップ番 号は、現在のデスクトップ番号 + arg1 です。 arg1 が 0 ならば、切り替わる先のデスクトップ番号 は、 arg2 です。( arg2 が与えられていなければ、 こ のコマンドは意味を持ちません。) min と max を与えた場合、新しいデスクトップ番号 は、 min 以上で、 max 以下となります。この範囲を越 えた値は、切り捨てられる (絶対的なデスク番号を指定 した場合) か、周期的に巻き戻し (相対的なデスク番号 を指定した場合) されます。 この書式は、ウィンドウを他のデスクトップへ移動する MoveToDesk と全く同じです。 アクティブなデスクトップの個数は、動的に決定されま すが、ウィンドウを持つ、あるいは現在表示されている デスクトップのみがアクティブなデスクトップです。デ スクトップ番号は、-2147483648 から 2147483647 の間 でなければいけません (それで十分でしょう ?) |
GotoDeskAndPage prev | desk xpage ypage |
これは、現在 の ビュー ポー ト を、 GotoDesk と GotoPage コ マンドの組み合わせと同様、他のデスク トップ、他のページへ切り替えます。新しいデス ク は desk で、新しいページは (xpage,ypage) です。 |
GotoPage prev | x [ p ] y [ p ] |
こ れは、デスクトップビューポートをページ (x,y) に 移動します。左上のページが (0,0) で、右上が (M,0) に なります。ここで、M は、 DeskTopSize コマンドで 指定される現在の水平方向のページ数より 1 だけ小 さ い 数です。左下のページは (0,N) で、右下のページが (M,N) です。ここで、N は、 DeskTopSize コマンド で 指 定される現在の垂直方向のサイズより 1 だけ小さい 数です。現在のページから相対的にページを移動するに は、 数値引数の一方、または両方の後ろに ’p’ をつけ ます。最後に訪れたページに移動するには、最初の引数 と し て prev を指定します。この GotoPage 関数は、 ポップアップメニューでは使ってはいけません。 例: # ページ (2,3) へ移動 GotoPage 2 3 # 最も右、最も下のページへ移動 GotoPage -1 -1 # 最後に訪れたページへ移動 GotoPage prev # 2 ページ右、1 ページ上へ移動 GotoPage +2p -1p |
Scroll horizonal [ p ] vertical [ p ] |
これは仮想デスクトップのビューポートを、 x-方向 に horizontal ページだけ、y 方向に vertical ページだ けスクロールします。一方、あるいは両方の指定は負の 値にもできます。 horizontal と vertical の両方の単 位は、ページのサイズに対する百分率 (パーセント) で すから、 Scroll 100 100 は 丸々 1 ページ分だけ右下にスクロールすることを意 味し、 Scroll 50 25 は右にページの半分、下にページの 1/4 だけスク ロー ルします。この Scroll 関数はポップアップメニューか らは呼んではいけません。スクロールは通常そのデスク トップの端で止まります。 horizontal と vertical の百分率が 1000 倍してある と、スクロールはデスクトップの端を越えて反対側の端 に戻ります。 Scroll 100000 0 が何度も実行された場合、fvwm は各実行で隣のデスク トップへ移動し、そしてデスクトップの端で巻き戻しさ れて最初のデスクトップに戻りますので、順番に全ての ページに当たることになります。 文字 ’p’ を各座標 (horizontal や vertical) の後 ろ に 追 加すると、スクロールの単位はピクセルになりま す。 |
Xinerama bool |
ブール値引数を true にすると Xinemara サポートを有 効 にし、引数を false とすると無効とします。このコ マンドを引数なしに呼び出すと、 Xinerama サポートが 以前無効であればそれを有効に、以前有効であればそれ を無効にします。例: # Xinerama サポートを有効にしてプライマリ # スクリーンを 2 に XineramaPrimaryScreen 2 Xinerama on # 再び Xinerama サポートを無効に Xinerama off |
XineramaPrimaryScreen [primary-screen] |
これは、整数番号、または ’g’, ’c’ を引数として取り ます。数値の場合は、プライマリスクリーンとして使用 される Xinerama スクリーンの番号を意味します。プラ イマリスクリーンは、 XineramaPrimaryScreen <screen number> Style * StartsOnScreen p によってウィンドウを配置する好みのスクリーンとして 使用できます。プライマリスクリーンは、いくつかのモ ジュールとデフォルトのアイコンボックスにも使用され ます。プライマリスクリーン番号は、0 以上の任意の番 号 を与えられます。それに対し、文字 ’c’ は、いつプ ライマリスクリーンが使用されていても、 (ポインタの 含まれる) 現在のスクリーンを使用することを意味しま す。これは、ある状況では、大きな混乱をまねく恐れが あります。’g’ は、グローバルスクリーンがプライマリ スクリーンとして使用され、事実上プライマリスクリー ンは無効になります。この関数を他の引数をつけて (あ るいは引数なしで) 呼びだすと、プライマリスクリーン は 0 にリセットされます。 |
XineramaSls [bool] |
Single Logical Screen のような、 Xinerama 以外のマ ルチスクリーンの実装に対しては、 FVWM が見る ス ク リーン全体が長方形の格子状に同じサイズのモニタで構 成される場合には、 Xinerama の設定をシミュレートす る ことが可能です。コマンド XineramaSls は、ブール 値引数の "True", "False", "toggle" の値に応じ て、 SLS のサポートを on, off, または toggle (反対の状 態に) します。引数を与えなければ、"toggle" とし て 処 理 します。デフォルトのレイアウトは、一つのスク リーンに 1 つ使用します。レイアウトの設 定 に は、 XineramaSlsSize コマンドを使用してください。 |
XineramaSlsSize HorizontalxVertical |
このコマンドは、Single Logical Screen 機能のレイア ウトを設定します。これは 2 つの引数 Horizontal と Vertical を取りますが、これらは整数値でなくてはな らず、トータルのデスクトップ幅、デスクトップ高さを こ れで均等に分配します。 X サーバを通して一つのス クリーンとして見える、横に並んだ 2 つのモニタ の、 右のスクリーンをプライマリスクリーンとして使用する には、以下のようにします: XineramaSlsSize 2x1 XineramaSlsOn XineramaPrimaryScreen 1 XineramaOn |
ユーザ関数とシェルコマンドのためのコマンド |
AddToFunc [ name [ I | M | C | H | D action ]] |
これは、関数の定義を開始、あるいは追加します。以下 はその一例です: AddToFunc Move-or-Raise I Raise + M Move + D Lower こ の関数名は "Move-or-Raise" で、これはメニューや マウス、キー割り当て (binding) により呼び出すこ と ができます: Mouse 1 TS A Move-or-Raise 名前 name は空白を入れてはいけません。空白の入った 関数名が機能するかどうかの保証はありません。この振 舞いは、追加の通知なしに将来変更する可能性がありま す。 action の前の文字は、どの種類の動作 (action) が、 そ れに従うコマンドを起動させるかを表していま す。 ’I’ は "Immediate" を意味し、これは関数が呼び 出 されるとすぐに実行されます。 ’M’ は "Motion" を 意味し、ユーザがマウスを動かし始めたとき、となりま す。 ’C’ は "Click" を意味し、ユーザがマウスを押し てはなしたとき、となります。 ’H’ は "Hold" を意 味 し、 ユーザがマウスボタンを押して ClickTime ミリ秒 より長くそれを押し下げたままのとき、となり ま す。 ’D’ は "Double-click" を意味します。どのウィンドウ に従うべきか、という優先度に関する情報とともにその 関 数が呼ばれた場合、動作 ’I’ は、そのボタンが押さ れたところで実行すべき動作を引き起こします。 コマンドラインに現れた場合に実際の値に置き換えられ る、定義済みの記号がたくさんあります。詳細は「コマ ンドの展開」のセクションを参照してください。 例: Key F10 R A Function MailFunction \ xmh "-font fixed" のように呼び出し、そしてこの "MailFunction" が AddToFunc MailFunction + I Next ($0) Iconify off + I Next (AcceptsFocus, $0) focus + I None ($0) Exec exec $0 $1 のようであったとすると、関数の最後の行は実際には以 下のようになります。 + I None (xmh) Exec exec xmh -font fixed この展開は関数が実行されるときに行われるので、一つ の関数をありとあらゆる種類の異なる引数に対して使う こ と が で き ま す。 必 要ならば、上の関数を同じ .fvwm2rc ファイル内で Key F11 R A Function MailFunction \ zmail "-bg pink" とすることもできるわけです。"$w" を使った例は例 え ば: AddToFunc PrintFunction + I Raise + I Exec xdpr -id $[w.id] "$$" は ’$’ と展開されることに注意してください。 他の例: 6 番目のウィンドウボタン (win95 テーマでは 最小化ボタン) 内でのマウス右ボタンを、同じリソース のすべてのウィンドウのアイコン化に割り当て: AddToFunc FuncIconifySameResource "I" \ All ($r) Iconify on Mouse 3 6 A FuncIconifySameResource |
Beep |
期待される通り、これは端末のビープ音を生成し ます。 |
DestroyFunc function |
これは関数を削除し、その後のその関数への参照が無効 に なるようにします。これは、fvwm を動作させながら 関数の内容を変更する場合に使えます。そ の 関 数 は AddToFunc を使って再構成できます。 DestroyFunc PrintFunction |
Echo string |
これは、メッセージを stderr に出力します。これは、 多分あなたの .fvwm2rc に書かれているものをデバッグ するのに有用でしょう。 Echo Beginning style definitions... |
Exec command |
こ れは、コマンド command を実行します。’&’ をその コマンドの最後につけないでください。 command の 先 頭に "exec" をつけたくなるかもしれませんが、それが ないと、 fvwm がそのコマンドを実行するのに呼び出す シェ ル は、そのコマンドが終了するまで居続けますの で、事実上あなたが必要とするものの 2 倍のプロセ ス が走ることになります。これを避けるような賢いシェル も中にはありますが、とにかく "exec" を使うことは決 して問題とはならないことに注意してください。 以 下 の例は、ルートウィンドウ上で、修飾キーなしの ファンクションキー F1 を、exec 関数に割り当てて い ま す。 プログラム rxvt は、オプション一揃いをとも なって起動されます。 Key F1 R N Exec exec rxvt -fg yellow -bg blue \ -e /bin/tcsh この関数は、 command が終了するまで待ちま せ ん の で、以下のようなもの: Exec "echo AddToMenu ... > /tmp/file" Read /tmp/file はまともには動作しないことに注意してください。 |
ExecUseShell [shell] |
こ れ は、 Exec コマンドに、デフォルトの Bourne shell (/bin/sh) の代わりに指定した shell か、ま た は shell を指定しなかった場合は $SHELL 環境変数で 定義されているものを使わせます。 ExecUseShell ExecUseShell /usr/local/bin/tcsh |
Function FunctionName |
これは、あらかじめ定義された関数をキー、またはマウ スボタンに割り当てるのに使われます。以下の例は、マ ウスボタン 1 に "Move-or-Raise" と呼ばれる関数を割 り当てます。この関数の定義は、このマニュアルの上の 方の例にあります。この割り当ての行われ た 後、fvwm は、 ウィンドウタイトルバーのどこでボタン 1 が押さ れても "Move-or-Raise" 関数を実行することになり ま す。 Mouse 1 T A Function Move-or-Raise FunctionName が fvwm の組み込み関数の名前と一致し ない場合、キーワード Function は省略できます。 |
Nop |
これは何もしません。これは、メニューに空行 や 分離線を入れるのに使われます。メニュー項目として |
AddToMenu MyMenu " " Nop のように指定すると空行が挿入され、 + "" Nop とすると分離線が挿入されます。これは、 Menu または Popup に対するダブルクリック動作用にも使うことがで きます。 |
PipeRead command [quiet] |
これは、fvwm に command という名前のプログラムの出 力するコマンドを読み込まさせま す。 こ の command は、 そ れ を コマンドラインに入力した場合のように /bin/sh により実行されます。そのコマンドが複数の単 語からなる場合は、引用符で囲まなければいけません。 これは、例えば、あるディレクトリの内容に応じて動的 に メ ニュー項目を作り上げる、といった場合に有用で す。キーワード Quiet をそのコマンドの後ろにつけ た 場 合、 command が見つからないときにメッセージを表 示しません。 例: AddToMenu HomeDirMenu PipeRead ’for i in $HOME/*; \ do echo "+ $i Exec xterm -e vi $i"; done’ 注意: PipeRead は、その実行中はデフォルトではポ イ ン タ を時計のカーソルに変更します。しかし、例えば xwd のようなコマンドはポインタをそれ自身で制御する 必要がありますが、それは機能しません。時計のカーソ ルを無効にするには、 PipeRead より前に以下のコマン ドを使用してください。 BusyCursor Read off コ マ ンド PipeRead は、同期的に実行します。何かを Exec したいけれどそのコマンドを同期的に走らせた い 場合、以下のようにする必要があるでしょう: PipeRead ’command 1>&2’ こ の リダイレクションはプログラムからの任意の出力 を、 fvwm がコマンド列として読み 込 む 代 わ り に stderr に流します。 |
Read filename [quiet] |
こ れは、fvwm に filename という名前のファイルから コマンドを読み込まさせます。キーワード Quiet を そ のコマンドの後ろにつけた場合、そのファイルが見つか らないときにメッセージを表示しません。ファイル名が ス ラッシュ (’/’) から始まっていない場合、 fvwm は ユーザのデータディレクトリを見て、それからシステム のデータディレクトリを探します。ユーザのデータディ レクトリは、デフォルトでは $HOME/.fvwm ですが、 こ れ は FVWM_USERDIR を他のディレクトリに設定する (export する) ことで無効にできます。 |
SetEnv variable value |
これは、シェルの export または setenv コマンドと同 様 に、環境変数を新しい値にセットします。fvwm を直 接起動したプロセスが環境変数 variable と、そ の 値 value を 引 き 継 ぐことになります。これは、特に FvwmM4 モジュールと組み合わせて使用すると 有 用 で しょう。例: SetEnv height HEIGHT これは、FvwmM4 の設定変数 HEIGHT を、fvwm を起動し たプロセスが環境変数 $height として使えるように し ま す。 value が空白を含む場合は、それを引用符で囲 む必要があります。 value を指定しないと、このコ マ ンドは無視されます。 |
Silent command |
多くの組み込み関数は、それを操作するウィンドウを必 要とします。そのような関数が呼び出されたときにウィ ン ド ウが一つも選択されていなかった場合、ユーザは ウィンドウの選択をうながされます。しかしときどきこ の挙動は不要で、例えばその関数があるモジュールから 呼び出され、最初に選択されたそのウィンドウが既に存 在 し な い 場合などです。これをしないようにするに は、fvwm の command の前に Silent を入れます。ウィ ンドウを必要とするある関数を Silent をウィンドウの 選択なしに呼び出した場合、それは単に何もせずに帰り ま す。 Silent をユーザ定義関数に対して使用した場 合、元の関数が終了するまですべての関数とそのサブ関 数呼び出しに影響を与えます。 Silent の 他 の 利 用法は、割り当てコマンド Key, PointerKey, Mouse, との併用で、これは エ ラー メッ セージを出しません。 例: Silent Move 0 0 Silent User_defined_function # "Help" キーがないキーボードにも文句は言わない Silent Key Help R A Popup HelpMenu |
UnsetEnv variable |
シェルの export か unsetenv コマンド同様に、環境変 数の設定を取り消し (unset) ます。fvwm を直接起動し た プ ロ セ ス が 受け継いだ環境変数配列から、変数 variable が削除されます。 |
Wait windowname |
この組込み関数は、fvwm 関数内でのみ使われること を 意図しています。これは関数の実行を、 windowname と いう名前の新しいウィンドウが現われるまで一時停止し ます。 fvwm はその停止の間部分的に機能し続けます。 これは、特に "InitFunction" 内で、ウィンドウを指定 したデスクトップ上で起動したい場合に便利です: AddToFunc InitFunction + I exec xterm -geometry 80x64+0+0 + I Wait xterm + I Desk 0 2 + I Exec exec xmh -font fixed -geometry \ 507x750+0+0 + I Wait xmh + I Desk 0 0 上 の関数は xterm を現在のデスクトップ上で起動し、 それが配置されるまで待ち、そしてデスクトップ 2 に 切 りかえて xmh を起動します。xmh ウィンドウが現わ れた後で、制御をデスクトップ 0 に移します。 Wait の一時停止は、 Ctrl-Alt-Escape (ここで、 Alt が 最 初の修飾キー) を押すことで抜け出せます。この キー列を再定義したければ、 EscapeFunc コマンドを参 照してください。 |
条件付きコマンド |
All [(conditions)] command |
これは、条件 conditions を満たすすべてのウィンドウ 上でコマンド command を実行 し ま す。 conditions は、 Current コマンド使われるものと完全に同じで す。 |
Current [(conditions)] command |
これは、現在フォーカスされているウィンドウが、すべ ての条件 conditions を満たす場合にコマンド command を実行します。条件 conditions は、以下のリストから の キーワードのリストで、コンマか空白で区切ります: "AcceptsFocus", "!AcceptsFocus", "Iconic", "!Iconic", "Visible", "!Visible", "Raised", "!Raised", "Layer [n]", "Sticky", "!Sticky", "Maximized", "!Maximized", "Shaded", "!Shaded", "Transient", "!Transient", "PlacedByButton3", "!PlacedByButton3", "PlacedByFvwm", "!PlacedByFvwm", "CurrentDesk", "CurrentPage", "CurrentScreen", "CurrentGlobalPage", "CurrentPageAnyDesk", "CurrentGlobalPageAnyDesk"。 さ らに、条件 condition には、マッチさせようとする ウィンドウの名前を書くこともできます。そのウィンド ウ名にはワイルドカード ’*’、’?’ を入れることもでき ます。そのマッチするものの検索のときには、ウィンド ウの名前、アイコン名、クラス名、リソースが考慮され ます。ウィンドウ名の最初に ’!’ を置くこともでき ま すが、その場合、ウィンドウ名、アイコン名、クラス、 リソースがそれにマッチする任意のウィンドウ 上 で、 command の実行を防ぎます。 条件 "AcceptsFocus" は、入力フォーカスを必要としな いウィンドウ (そのウィンドウの "Input hints" を False にセットしてあるアプリケーション) をすべて排 除し、 Style コマンドの Lenience オプションを使 用 しません。 NeverFocus スタイルを使用しているウィン ドウもすべて無視されます。 条件 "CurrentDesk" は、現在のデスク上にないウィ ン ドウをすべて排除します。 条 件 "CurrentPage" は、現在のデスク、または現在の ページ上にないウィン ド ウ を す べ て 排 除 し ま す。Xinerama サポートが有効な場合、マウスポインタ を含むスクリーンのみが対象となります。 条件 "CurrentGlobalPage" は、現在のデスク、また は 現 在 の ペー ジ上にないウィンドウをすべて排除しま す。Xinerama サポートが有効な場合、スクリーンは 考 慮されません。 条 件 "CurrentScreen" と "CurrentPageAnyDesk" は、 現在のページ上にないけれどどこかのデスク上に あ る ウィンドウをすべて排除します。 条件 "CurrentGlobalPageAnyDesk" は、現在のページ上 にないけれどどこかのデスク上にあるウィンドウをすべ て排除します。 Xinerama サポートが有効な場合、スク リーンは考慮されません。 条件 "Layer" の引数は、フォーカスウィンドウのレ イ ヤがデフォルトです。 条 件 "PlacedByButton3" は、そのウィンドウの直前の 対話型の移動 (コマンド Move による) が、マウスボタ ン 3 押しで終わった場合、に満たされます。これは、 Style コマンドの ManualPlacement オプションで特 に 有用です。 条件 "PlacedByFvwm" は、手動で、あるいはユーザかプ ログラムの位置ヒント情報を使用して配置されたウィン ドウをすべて排除します。 過去のバージョンの fvwm は、条件を丸カッコで囲む代 わりに、角カッコで囲むことを要求していたことに注意 してください (これは、後方互換性のために現在でもサ ポートされています)。 |
Direction direction [(conditions)] command |
これは、条件 conditions をすべて満たす、与えられた 方 向 の一つのウィンドウ上で、 command (典型的には Focus など) を実行しま す。 条 件 conditions は Current の も の と 同 じ で す。 方向 direction は、"North", "Northeast", "East", "Southeast", "South", "Southwest", "West", "Northwest" のいずれ かです。コマンド Direction がどのウィンドウを選 択 するかは、ウィンドウの中心点同士の角度と距離に依存 し、より近いウィンドウが、より遠いウィンドウよりも よくマッチすると見なされます。 |
Next [(conditions)] command |
こ れは、条件 conditions をすべて満たす、次 (next) のウィンドウ上で、 command (典型的には Focus など) を 実行します。条件 conditions は Current のものと 同じものに加え、 CirculateSkip Style 属性を無効 に す る "CirculateHit"、アイコン化されたウィンドウの CirculateSkipIcon Style 属 性 を 無 効 に す る "CirculateHitIcon"、そして日陰ウィンドウに対して同 じことを行う "CirculateHitShaded" が使えます。 |
None [(conditions)] command |
これは、条件 conditions をすべて満たすウィンドウが 存 在 し な い 場 合 に command を実行します。条件 conditions は Next のものと同じです。 |
Pick [(conditions)] command |
Pick は、あるウィンドウ内で呼び出さ れ た 場 合 は Function と同様に動作します。ルートウィンドウ内で 呼び出された場合は、最初にユーザに対象とするウィン ドウを問い合わせ、それからそのウィンドウ内でコマン ド command を実行します。これは、複雑な関数での や か ま し い 複数の選択を避けることができます。条件 conditions に合った場合のみ、そのコマンド command が実行されます。条件 conditions は Next のものと同 じです。 |
Prev [(conditions)] command |
これは、条件 conditions を す べ て 満 た す、 前 (previous) のウィンドウ上で、 command (典型的には Focus など) を、実行します。条 件 conditions は Next のものと同じです。 |
ThisWindow [(conditions)] command |
ThisWindow は、現在処理中のウィンドウ内で指定され たコマンド command を実行します。 (これ が ルー ト ウィンドウから呼び出され) 処理中のウィンドウがない 場合、このコマンドは無視されます。 ThisWindow は、 常 に 非対話型で、また与えられた条件 conditions に 合った場合にのみコマンドが実行 さ れ ま す。 条 件 conditions は Current のものと同じです。ユーザが ウィンドウの外で使用した場合には、-1 を返します。 |
WindowId [ id ] [( conditions )] | [ root [ screen ]] command |
WindowId 関数は、特定のウィンドウ id を探し、そ の 上 で指定されたコマンド command を実行することを除 けば Next や Prev 関数と同等です。オプションの条件 conditions は、 Current のものと同じです。書式の 2 番目の形式は、与えられたスクリーン screen のルート ウィンドウのウィンドウ id を回収します。 screen を 与えなかった場合、現在のスクリーンであると仮定され ま す。 id で指定されたウィンドウは、fvwm で管理さ れないウィンドウ、または異なるスクリーンのウィンド ウに属しても構いません。ほとんどのコマンドはそのよ うなウィンドウ上では操作できま せ ん が、 例 え ば WarpToWindow コマンドのように、いくつか例外はあり ます。 WindowId 0x34567890 Raise WindowId root 1 WarpToWindow 50 50 WindowId $0 (Silly_Popup) Delete 以前は、このコマンドは、組み込み関数 WindowList で 使 用される関数、あるいは FvwmEvent 呼び出しの選択 的な処理 (最後の例にあるように) で最も有用だったの ですが、現在はこれらのハンドラ関数はウィンドウ内か ら呼び出されるので、これらの場合にはこのコマンドは 必要ではなくなりました。しかし、例えば、ウィンドウ id がさらなる処理のために環境変数に保存しなけれ ば いけない場合には、現在でも有用だろうと思います。 Pick SetEnv BOOKMARKED_WINDOW $[w.id] WindowId $[BOOKMARKED_WINDOW] WarpToWindow |
モジュールコマンド |
fvwm は、モジュール設定行のデータベースを、 *<ModuleName>: <Config-Resource> の形式で管理しています。ここで、 <ModuleName> は、実際のモ ジュール名か、エイリアスのいずれかです。 このデータベースは、最初は設定ファイル (または設定コマンド −cmd の出力) から埋められ、その後ユーザ ( FvwmCommand に よって)、またはモジュールによって変更できます。 モジュールは動作しているときにデータベースの適当な部分を読 み込みます (このデータベースの概念は、X リソースデータベー スで使われているものと同等です)。 設定のデータベースを操作するモジュールに関するコマンドは以 下に説明します。 |
*module_config_line |
モ ジュールの設定を定義します。 module_config_line は、モジュール名 (またはモジュールエイリアス) と、 モジュールリソース行からなります。新しい書式では、 モジュール名とその行の残りの部分の間の区切りとして コロンと追加スペースを入れることができますが、これ は、衝突を避けるために推奨されています。 *FvwmIconBox: MaxIconSize 48x48 *FvwmPager: WindowBorderWidth 1 *FvwmButtons-TopRight: Geometry 100x100-0+0 *FvwmButtons-Bottom: Geometry +0-0 |
DestroyModuleConfig module_config |
これは、モジュールの設定項目を削除し、代わりに新し い 設 定 行 を追加します。これは、以前に定義したモ ジュール設定に戻す唯一の方法であることもあります。 こ れ は、fvwm を再起動せずそのセッション中に、モ ジュールの動作方法を変更します。名前の一部にはワイ ルドカードも使えます。 新しい衝突を避ける書式では、モジュール名とその行の 残りの部分との間にコロンと追加スペースによる区切り を入れることができますが、この場合モジュール名 (ま たはエイリアス) にワイルドカードを入れることはでき ません。 DestroyModuleConfig FvwmButtons* DestroyModuleConfig FvwmForm: Fore DestroyModuleConfig FvwmIconBox: Max* |
KillModule modulename [modulealias] |
これは、名前 modulename で呼び出されたモジュールを 終了 (kill) させます。名前にはワイルドカードを入れ る こともできます。 modulealias が与えられると、与 えられたエイリアスで起動したモジュールのみが終了さ せられます。 KillModule FvwmPager # すべてのページャを終了 Module FvwmEvent SoundEvent KillModule FvwmEvent SoundEvent |
Module modulename [moduleparams] |
これは、生成するモジュールプロセスを、その追加パラ メータとともに指定します。現 在 は、 FvwmButtons, FvwmEvent, FvwmForm, FvwmGtk, FvwmPager, FvwmScript などのいくつかのモジュールがエイリア ス をサポートしています。エイリアスは、モジュールの複 数の例を生成するのに有用です。エイリアスは、上に説 明 した表記 * を使って別々に設定できます。モジュー ル FvwmForm を、エイリアス MyForm を使って起動する には、以下のような書式を使用します: Module FvwmForm MyForm 現 時 点 で、 利 用できる (fvwm に含まれている) モ ジュールは FvwmAnimate (ウィンドウのアイコン化、ま た は そ の 逆 の ときにアニメーション効果を生成), FvwmAudio (ウィンドウマネージャ動作のときに音を 出 す), FvwmAuto ( 自 動 的 に 前 面 に持ち上げる), FvwmBacker (デスクトップを変更したときに背景を変え る), FvwmBanner ( ちょっ とした XPM 画像を表示), FvwmButtons (カスタマイズ可能なツールバーを生 成), FvwmCommandS (シェルの FvwmCommand クライアントを 使用するコマンドサーバ), FvwmConsole (fvwm コマ ン ドを直接実行), FvwmCpp (cpp を用いて .fvwm2rc を前 処理), FvwmDebug (fvwm の デ バッ グ を 助 け る), FvwmDragWell ( ド ラッ グ & ドロップする場所), FvwmEvent (イベントによって色々な動作を起 こ さ せ る), FvwmForm (対話型ツールの生成), FvwmGtk (GTK メニューと対話型ツールを生 成), FvwmIconBox (mwm IconBox のようなもの), FvwmIconMan (柔軟なアイコン マネージャ), FvwmIdent (ウィンドウの情報を 取 得), FvwmM4 (m4 を用いて .fvwm2rc を前処理), FvwmPager (デスクトップの小型表示), FvwmSave (デスクトップの 状 態を .xinitrc の形式で保存), FvwmSaveDesk (デス クトップの状態を fvwm コマンド の 形 式 で 保 存), FvwmScript ( も う 一つの強力な対話ツールキット), FvwmScroll (任意のウィンドウにスクロールバー を 付 加), FvwmTaskBar (MS-Windows に似たタスクバー), FvwmTheme (カラーセットの 管 理、 以 下 を 参 照), FvwmWinList ( ウィ ン ド ウ の 一 覧), FvwmWharf (AfterStep に似たボタンバー)。これらのモジュールに は、 そ れ自身のオンラインマニュアルがあります。ま た、fvwm には含まれない他のモジュールも存 在 し ま す。 FvwmTheme は、カラーセットを管理する特別なモジュー ルであることに注意してください。他のほとんど の モ ジュールと fvwm は、それ自身でカラーセットと動的な 色の変化をサポートしています。カラーセットは、次の 安定版の fvwm では、多分色を指定する唯一のメソッド となり、そして FvwmTheme の機能は、fvwm 本体に移動 することとなるでしょう。 モジュールは短命の一時的なプログラムであっても構い ませんし、 FvwmButton のように X との対話中ずっ と い続けることもできます。モジュールは、ウィンドウマ ネージャが再起動するか終了する前に、可能ならばそれ によって終了させられます。モジュールを紹介している 節を参照してください。 modulename が全ての組み込み 関 数 名、 お よび関数名と違っていれば、キーワード Module は省略することができます。 |
ModulePath path |
これには、モジュールを探すディレクリのリストをコロ ン 区 切 り で指定します。モジュールを見つけるため に、fvwm は個々のディレクトリを順に探し、そして 最 初に見つかったファイルを使用します。リストのディレ クトリ名には、最後の ’/’ は不要です。 ModulePath には、 $HOME (または ${HOME}) のよう な 環 境 変数を入れることもできます。さらに、 path に ’+’ を入れると、これは path の以前の値に展開される ので、 path に容易に追加 (前あるいは後ろに) するこ とができます。 例: ModulePath ${HOME}/lib/fvwm/modules:+ 標準的なモジュールを含むディレクトリは、環境 変 数 $FVWM_MODULEDIR を用いて利用できます。 |
ModuleSynchronous [Expect string] [Timeout secs] modulename |
コ マンド ModuleSynchronous は、 Module にとてもよ く似ています。fvwm は、モジュールが "NOP FINISHED STARTUP" で始まる文字列を fvwm に送り返すまで、任 意のコマンド、ユーザの入力プロセスを停止します。オ プションの Timeout が与えられると、fvwm はモジュー ルが secs 秒間何も入力を fvwm に送り返さなければあ き ら め ま す。 オ プション Expect が与えられた場 合、fvwm は、代わりに与えられた文字列 string を 待 ちます。 ModuleSynchronous は、fvwm の起動時に、モ ジュールが起動する順番を強制するときのみに使うべき で しょう。このコマンドは、 FvwmTheme モジュールと ともに使用することを意図していて、それはその設定は 他の任意のモジュールが起動する前に置かなければいけ ないからです。 警告: タイムアウトを指定しても、 fvwm はこのコマン ドで簡単にハングアップしてしまいますので、待ち受け る文字列の選択は特に注意してください。 fvwm の配布 に含まれるすべてのモジュールは、それらが正しく起動 したら 1 度だけ文字列 "NOP FINISHED STARTUP" を 送 り返しますが、それ以外のモジュールはそうでないかも しれません。さらに、ロックされた ModuleSynchronous コマンドから抜けだすのには、キー列 Ctrl-Alt-Escape を試してみることもできます ( EscapeFunc 参照)。 |
ModuleTimeout timeout |
これは、fvwm がモジュールが応答するまで何秒間待 つ かを指定します。モジュールがその時間制限まで応答し なければ、 fvwm はそれを終了 (kill) さ せ ま す。 timeout は、正の値でなければいけませんが、そうでな ければそれはデフォルトの 30 秒にリセットされます。 |
SendToModule modulename string |
これは、任意の文字列 (引用符は不要) を、名前かその エイリアスが modulename (ワイルドカードを含んで も よい) にマッチするすべてのモジュールに送ります。こ れは、モジュールがこれらの文字列を理解し、取り扱い できるようにセットアップされている場合にのみ意味が あります。これはモジュールとモジュールの通信、ある いはモジュール内でより複雑なコマンドを実装するのに 使えます。 |
終了、再起動、セッション管理のコマンド |
Quit |
これは fvwm を終了しますが、一般に X も終 了 します。 |
QuitScreen |
これは fvwm に、このコマンドが発行されたスクリーン の管理を終了させます。 |
QuitSession |
これは、(任意の) セッションマネージャにセッショ ン を シャットダウンさせます。このコマンドは xsm には 効きませんが、 xsm はこの機能をどうやら実装して い な い よ う で す。 xsm をリモート的に管理するに は、Unix シグナルを使用してください。 |
Restart [window_manager [params]] |
これは、 window_manager が空白であれば fvwm 自身を 再 起 動しますが、 window_manager が指定されていれ ば、その別のウィンドウマネージャ (または他 の バー ジョ ン の fvwm) に切り替えます。そのウィンドウマ ネージャがデフォルトの検索パス に な い 場 合 は、 window_manager にはフルパス名を使うべきです。 こ のコマンドには、最後に & はつけません。コマンド には、単純なシェルと似た書式でオプション引数を与え ることもできます。ユーザのホームディレクトリに展開 される ~ や、環境変数の $VAR や ${VAR} も使用で き ます。以下にいくつか例を上げます: Key F1 R N Restart Key F1 R N Restart fvwm2 -s Key F1 R N Restart ~/bin/fvwm2 -f $HOME/.fvwm/main Key F1 R N Restart fvwm1 -s -f .fvwm1rc Key F1 R N Restart xterm -n ’"X console"’ \ -T \"X\ console\" -e fvwm1 -s 本当の再起動を必要とする場合は、特に理由がなければ パラメータなしで単に Restart とすることをお勧め し ます。’Restart fvwm2’ とすると、現在使用されていた コマンドライン引数は失なわれますが、パラメー タ な し、または --pass-args つきで Restart した場合は、 それらは保存されます。’Restart fvwm2’ が問題を起こ すような例を以下に示します: * fvwm がセッションマネージャの元で動作している場合 * fvwm がマルチヘッドディスプレイで動作している場合 * -f themes-rc や -cmd のようなコマンドライン引数がある場合 * $PATH の最初の fvwm2 が違うものである場合 これは、古い使用法に関する警告を発行し続けている理 由です。追加の引数なしに fvwm2 を再起動したいと 本 当 に 思 う な ら、 "Restart fvwm2 -s" や "Restart /full/path/fvwm2" を使えば、この警告を取り除くこと ができます。 現在はマルチヘッドディスプレイでは、 fvwm の再起動 は異なるスクリーンでは独立に動作してしまうことに注 意してください。 |
Restart --pass-args window_manager |
これは、現在のウィンドウマネージャの名前が指定した window_manager に変わることと、元の引数が保持さ れ る ことを除けば、パラメータ無しの Restart と同じで す。 このコマンドは、 -cmd FvwmCpp のような初期引数を使用していて、かつ初期引数を変え ずに他のバージョンの fvwm に切り替えたい場合に便利 です。 |
Restart --dont-preserve-state [other-params] |
これは、再起動の際にウィンドウの状態を一つも保存し ないことを除けば Restart [other-params] と同じです。 こ のオプションをつけないと、 Restart はほとんどの 個々のウィンドウの状態をユーザのホームディレクトリ の .fs-restart-$HOSTDISPLAY という名前のファイルに 書き出します。 |
SaveSession |
これは、(任意の) セッションマネージャにセッショ ン を 保存させます。このコマンドは xsm には効きません が、 xsm はこの機能をどうやら実装していないよう で す。 xsm をリモート的に管理するには、Unix シグナル を使用してください。 |
SaveQuitSession |
これは、(任意の) セッションマネージャにセッショ ン を保存させ、そしてシャットダウンさせます。このコマ ンドは xsm には効きませんが、 xsm はこの機能をどう や ら実装していないようです。 xsm をリモート的に管 理するには、Unix シグナルを使用してください。 |
色勾配 (グラデーション) |
色勾配 (グラデーション) は、色が一つの色相から他の色相まで 連続的に変化するような変化するような背景のことです。色勾配 は fvwm の様々なコマンドとモジュールで使用できます。以下の よ う な 8 つのタイプの色勾配が用意されています: HGradient は水平的な色勾配、 VGradient は垂直的なもの、 DGradient は 左 上から右下への対角的なもの、 BGradient は逆に左下から右 上への対角的なもの、 SGradient は同心正方形、 CGradient は 同心円、 RGradient はレーダーに似たパターン、 YGradient は 陰陽のスタイル (点はなし) です。 色勾配の書式には、2 つの形式があります: |
?Gradient colors start-color end-color |
この形式は、線形の色勾配の設定です。引数は、割り当 て る色の全体の数 colors (2 から 1000 の間) と、最 初の色、最後の色です。 例: TitleStyle VGradient 20 rgb:b8/ce/bc rgb:5b/85/d0 |
?Gradient colors segments color length color [length color] ... |
2 番目の形式は、非線形の色勾配の設定です。引数は、 以下の通りです: colors は割り当てる全体の色の数 (2 から 1000 の間)、 segments はその要素 (セグメント) 数 で す。そして各セグメントに対して、開始色 color と相対的な長さ length と最後の色を指定します。その 後 の各セグメントは、その直前のセグメントの 2 つ目 の色から始まります。長さは、負でない任意の整数を指 定 で き、その長さをすべてのセグメントの長さの和で 割ったものが、そのセグメントの使用する色部分の全体 に対する比として使われます。 |
例: MenuStyle * MenuFace DGradient \ 128 2 lightgrey 50 blue 50 white # 20% は赤から青までの色勾配、 # 30% は青から黒まで、 # 50% は黒から灰色まで MenuStyle * DGradient 100 3 Red 20 Blue 30 \ Black 50 Grey # 50% は青から緑、 # 50% は黄色から赤 *FvwmTheme: Colorset 0 Blue Red HGradient \ 128 3 Blue 1000 Green 1 Yellow 1000 Red |
DISPLAY |
fvwm は、オプション -display が指定されていなけれ ば、このディスプレイ上で起動します。 |
FVWM_MODULEDIR |
これは、fvwm によって標準的な fvwm モジュールを 含 むディレクトリに設定されます。 |
FVWM_USERDIR |
これは、読み込みのため、またはたまに個人的なファイ ルを書き出すためのユーザのデータディレクトリを決定 するために使用されます。この変数が設定されていない 場合、 fvwm によってデフォルトのユーザディレクトリ $HOME/.fvwm にセットされます。 |
SESSION_MANAGER |
fvwm はこのセッションマネージャと連絡しようとしま す。 |
SESSION_MANAGER_NAME |
これは、主に動作中の xsm を決定するのに使用され ま すが、それはそのバグを回避させるためです。この変数 が "xsm" にセットされた場合、DiscardCommand は、 XSMP が要求するものではなく、xsm がそれを期待する ようにセットされます。 fvwm を xsm の元で実行し て い る場合、この変数を "xsm" と設定すべきで、そうで ないと古い状態ファイルが削除されません。 |
SM_SAVE_DIR |
これが設定された場合、fvwm はそのセッションデー タ をこのディレクトリに保存します。設定されていない場 合は、 $HOME を使用 し ま す。 状 態 ファ イ ル は .fs-?????? という名前であり、通常はこれらが使われ なくなったら自動的に削除されることに注意してくださ い。 |
多くの人々の助力により、Tom LaStrange によって書かれた twm のコードを元に Robert Nation によって作成 さ れ ま し た。 Robert Nation の後は Charles Hines が、そして Brandy Montz が引き継ぎました。現在は、fvwm は fvwm-workers メーリン グ リストの多くの人々によって開発されています。 |
Fvwm and all the modules, scripts and other files coming with the distribution are subject to the GNU General Public License (GPL). Please refer to the COPYING file that came with fvwm for details. |
Fvwm、およびこの配布物に含まれるモジュール、スクリプト、そ の 他 の ファイルはすべて GNU General Public License (GPL; GNU 一般公衆利用許諾書) に従います。詳細は、fvwm の配布 物 に含まれる COPYING というファイルを参照してください。 |
fvwm バージョン 2.4.0 の時点では、丁度 71.8 個の正体不明の バグがありましたが、その後 22.825 個のバグが修正され ま し た。確認されたバグ一つに対して、少なくとも 10 個の正体不明 のバグが存在すると仮定すると、 71.8 - 22.825 + 10 * 22.825 = 277.225 個の正体不明のバグが現在まだ残っていることになり ます。この理屈の論理的帰結に従えば、プログラムのバグがない 状態にまでバグの個数が減少する前に、正体不明なバグの個数が 無限大になってしまうことになるでしょう。しかし倍精度まで要 求 し な け れば、これはコンピュータプログラムでの無限大 = 3.4028e+38 ですから、現在のバグ発見の割合で は、 4.27e+27 年にはバグなしの状態に達する見通しです。私はこのことを引き 継いでいこうと考えています。我々の子供達に... 確認されているバグは、fvwm バグトラッキングシステム (fvwm の ホー ムページから辿れます)、および配布物のファイル BUGS と TODO にあります。これらのファイルは既に保守されて お ら ず、古いものになっているでしょう。 バ グ リポートは fvwm-workers メーリングリストに送る ( FAQ を参照) か、またはバグトラッキングシステムに報告してくださ い。 公式な fvwm のホームページは http://www.fvwm.org/ です。 |