# fvwm-2.6.1 付属 FAQ の日本語訳 # 訳: 小椋 聡也、工藤 覚 # (2012 年度竹野研卒研生) # 阪本寿一 # (2014 年度竹野研卒研生) # 竹野茂治 (shige@iee.niit.ac.jp) # 1) ライセンスは、オンラインマニュアルの COPYRIGHTS のセクションに書か # れているライセンスに従います。 # 2) この訳についてのご意見等については、shige@iee.niit.ac.jp にご連絡 # 下さい。 # ====================================================================== Fvwm のよくある質問 ====================================================================== 最終更新: 2009 01/20 開発版 2.5.26, 安定版 2.4.20 用 目次 0. 「最も」ありがちな質問 :) 0.1 fvwm の起動後数分間はキーボードとマウスの割り当てが機能しませ ん。どうしたらいいのでしょう ? 0.2 私は XMMS を使っていますが、それはいくつかのウィンドウスタイ ルを無視してしまいます。 0.3 私は透明化が好みなのですが、どうしたらいいですか ? 1. Fvwm に関して 1.1 fvwm ってどういう意味ですか ? 1.2 fvwm の最新バージョンはどこにありますか ? 1.3 fvwm に関する WWW サイトはありますか ? 1.4 fvwm に関する質問はどこにすればいいですか ? 1.5 fvwm 1.xx と 2.xx の違いは ? 1.6 各種ウィンドウマネージャでのメモリ使用量の比較は ? 1.7 なぜ色々なファイルの名前 (fvwm2, .fvwm2rc, fvwm2.man) を変え ているのですか ? 1.8 fvwm X.Y.Z のリリースはいつ予定されていますか ? 2. インストール 2.1 fvwm を使いたいのですが、私のマシンに root でのアクセスがで きません。それでもインストールして使えますか ? 2.2 fvwm を CDE/COSE 上で使いたいのですが、問題にぶちあたりまし た。いい助言はありませんか ? 2.3 SunOS 上で cc で fvwm をコンパイルすると、コンパイラがたくさ んのエラーを出しますが、これは何 ? 2.4 カラーアイコンを使いたいんですが、動きません。なんででしょう ? configure の際に "Have XPM support?" のところに "no" と出まし た。どうすれば XPM をサポートできるんでしょう ? 2.5 私はシステム管理者で、まず必ずシステムの初期設定ファイルを読 むようにして、その後でユーザの初期設定ファイルを読むようにし たいのですが、どうすればいいでしょう ? 2.6 私はシステム管理者で、CDE のように fvwm のすべての初期設定フ ァイルを ~/.fvwm という隠しディレクトリ内に置いてそこを見に いくようにしたいのですが、どうすればいいでしょう ? 2.7 どうすれば fvwm をバージョン 1 以下の GNOME で使えますか ? 2.8 どうすればバージョン 2 以上の GNOME、バージョン 2 以上の KDE で fvwm を使えますか ? 3. 機能、設定、関数、コマンド 3.1 fvwm を RedHat Linux システム上で使っていますが、fvwm の設定 を変更する方法がわかりません。fvwm のマニュアルは読みましたが、 .fvwm2rc を編集しても何も起きないようです。どうしたらいいでし ょう ? 3.2 ウィンドウの境界ではなく、ウィンドウ内でクリックしたときにウ ィンドウを手前に出すことは可能ですか ? 3.3 どうすれば Alt-Tab の挙動を他の GUI 同様にできますか ? 3.4 Focus コマンドと FlipFocus コマンドの違いは ? 3.5 マウス移動をキーストロークに割り当てられるようですが、マウス ボタン押しはどうやったら割り当てられますか ? 3.6 あるキーを、現在選択したものをペーストして使用することに割り 当てたいのですが、どうしたらいいですか ? 3.7 fvwm は、各デスクトップ毎に異なるカラーマップをサポートする予 定はありますか ? 3.8 Sticky ウィンドウのタイトルバーに出る水平線が好きなのですが、 これは他のウィンドウにも出せますか ? 3.9 Sun キーボードの xxxx キーを fvwm コマンドに割り当てる方法は ? またはより一般に、fvwm のキー割り当ての定義に関する問題があ ありますが、どうしたらいいですか ? 3.10 バージョン 1.xx の .fvwmrc がうまくいかないのですがどうしたら いいでですか ? 3.11 fvwm 1.xx の 'include' コマンドはどうなったのですか ? 3.12 例えば Netscape などのサブウィンドウのウィンドウタイトルはど うすればつけられますか ? 3.13 バージョン 2.3.2 以上に上げましたが、私の初期設定が出ません。 どうしたら戻せますか ? 3.14 アプリケーション (Eterm など) によってはそれ用に定義したアイ コンを使ってくれないものがあるようですが、これはなぜですか ? 3.15 アプリケーションをアイコンから復帰したときのアイコンボックス の隙間が気にいらないのですが、ある種の自動配置をする関数はあ りませんか ? 3.16 Linux マシンをシャットダウンする fvwm のメニュー項目はどのよ うに設定すればいいですか ? 3.17 Recapture コマンドは非推奨ですが、あるスタイルの変更を適用す るのに今でも必要でしょうか ? 3.18 特定のウィンドウ (または全部) をポップアップしたときに、それ がフォーカスを取得する/移動する/サイズを変える/閉じる/影をつ ける、などのようにしたいのですが、どうしたらいいでしょう ? 3.19 ある特定のウィンドウ (またはすべてのウィンドウ) を閉じたとき にデスクトップを切り替えたい/私の X アプリケーションへジャン プしたい/メニューをポップアップしたい/X アプリケーションを起 動したいのですがどうしたらいいですか ? 3.20 うちではマルチヘッドの設定になっています (複数のスクリーンを X で使用)。どうすればそれぞれのスクリーン用の異なる設定を fvwm に指示できますか ? 3.21 FvwmTaskBar を覆わずにあるウィンドウを最大化するにはどうすれ ばいいですか ? 3.22 最大化ウィンドウで私の close ボタンが押された状態に見えるのは なぜでしょう ? タイトルバーの上にボタンがつかないウィンドウが あるのはなぜでしょう ? 3.23 透明なメニューを定義するにはどうしたらいいですか ? 3.24 透明なモジュールを定義するにはどうしたらいいですか ? 3.25 透明な装飾を定義するにはどうしたらいいですか ? 3.26 アプリケーションも透明化できますか ? 3.27 どうすれば、emacs のような fvwm のマルチキーストローク操作を 定義できますか ? 3.28 あるウィンドウからすべての装飾を取り除くには ? 3.29 設定の変更を直ちに行う最もいい方法は ? 3.30 あるウィンドウの階層を切り替えるには ? 4. モジュール 4.1 FvwmButtons (や 1.xx の GoodStuff) を使っていると、ボタンが時 々押されたままの状態になって、逆にそうならないときもあります が、それはどうしてですか ? 4.2 FvwmButtons でアプリケーションを swallow する際、それにボタン 押しで動作を割り当てることは可能ですか ? 例えば、xload を swallow し、ボタン押しで xterm をポップアップさせる、あるいは、 xbiff を swallow し、ボタン押しでメッセージの一覧を表示させた りしたいのです。 4.3 FvwmM4/Cpp モジュールでファイルを前処理しようとしているのです が、どうも変です。 4.4 FvwmFileMgr モジュールの話を聞いたんですがそれはどこにありま すか ? 4.5 FVWM 1.xx で使っていた GoodStuff が 2.xx にはないようですが、 どうすればいいですか ? 4.6 FvwmButtons 内のボタンの近くのデフォルトの位置ではなくスクリ ーン上のどこか別なところにサブパネルを置きたいのですが、可能 ですか ? 4.7 どうすれば FvwmButton でキーボードショートカットでサブパネル を開いたりボタンを押したりできますか ? 5. 開発、既知の問題、バグレポート 5.1 fvwm に XYZ というかっこいい機能があるといいと思いますが、そ う思いませんか ? そのためのパッチもありますが当ててもらえませ んか ? 5.2 どうやってパッチを作成/投稿/適用したらいいですか ? 5.3 バグレポートはどうやって送ればいいですか ? 5.4 fvwm では期待通りにならず [他のウィンドウマネージャ] ではうま くいくウィンドウがある、または不規則なバグが起きるのですが、 どうしたらいいですか ? 5.5 ClickToFocus やマウスの割り当てをなぜ NumLock と CapsLock と ScrollLock が邪魔するのですか ? 5.6 グラデーション背景のメニューがちらついたり、またはとても遅い です。 5.7 StartIconic スタイルが Netscape などで動かないのはなぜ ? 5.8 fvwm の出力 (例えばエラー) をどうすれば捕まえられますか ? 5.9 あるプログラムを fvwm 上で実行したら、BadAccess のような X11 エラーで死んでしまいました。MWM や OLWM 上では同じプログラム がちゃんと動作するのにこれはどういうことでしょうか ? 5.10 インストールの度に現在動いている fvwm のセッションが死んでし まうのはなぜ ? 5.11 fvwm を再起動すると、あるウィンドウかアイコンが他のすべてのウ ィンドウの上に出て、それをどんなメニューでも下げられなくなり ます。その一例は KFM (KDE ファイルマネージャ) のショートカッ トですが、どうしたらいいでしょう ? 5.12 StartsOnPage スタイルが動作しません。なぜですか ? 5.13 fvwm を再起動したときに起動しないモジュールがあります。 5.14 Rational Rose を動かしているのですが、fvwm はそのウィンドウを 無視してしまいます。 5.15 私のモジュール用に WindowListSkip スタイルを使っても、それが まだ FvwmIconMan, FvwmWinList などに表示されています。 5.16 あるアプリケーションを最大化すると、あるときはその端に隙間が できるのに、あるときはそうなりません。どうなっているのでしょ う ? 6. その他 6.1 デスクトップ (DESK) とページ (PAGE) とスクリーン (SCREEN) の 厳密な違いは ? 6.2 {NeXT, Win95 等} の見た目、感覚がいいのですが、これはサポート する予定はありますか ? 6.3 アイコン用の XPM ファイルはもっとどこかにありませんか ? 6.4 Linux XF86 の仮想スクリーンサイズと fvwm の相互作用... 6.5 これが fvwm と関係ないのはわかりますが、Rob Nation がサポート していた rxvt と rclock はどうなったのですか ? 今それらはどこ にありますか ? 6.6 どうやったら fvwm で背景を設定できますか ? 6.7 fvwm を使っていると私の XYZ では色が正しくなりません。何が悪 いのでしょう? 6.8 57 個のボタンのマウスを手に入れましたが、それらを Fvwm で使うには どうすればいいですか。 6.9 なぜ fvwm は私の X Cursor テーマを変更するのですか。 7. 開発者からのヒントと例 7.1 新しい設定をテストする簡単な方法は。 7.2 設定にシェルコマンドを使うには。 7.3 現在のものとは違うページやデスクトップでアプリケーションを起 動するには。 7.4 現在のものとは違うページやデスクトップで、表示窓をそちらに移 動せずにそちらの上でアプリケーションを起動するには。 7.5 より効率的な MWM メニュースタイルは。 7.6 スクリーン上にメニューを置くには。 7.7 スクリーンの境界近くでマウスを動かしていると、間違ってページ が切り替わったりしないですか ? 7.8 あなたのウィンドウとアイコンを整列するには。 7.9 マウス/フォーカス/ページをキーボードで動かすには。 7.10 デスクトップの猫対策は :-) 7.11 ウィンドウの奥下げと移動。 7.12 ウィンドウを On/Off するトグルスイッチの設定は。 7.13 アイコンのクリックによるアプリケーションの起動 (アプリケーシ ョンの「ドック入れ」とも呼ばれる) 7.14 計算によるウィンドウの位置決め 7.15 マウスカーソルを隠すには 7.16 マウスカーソルを見つけるには 7.17 FvwmButtons や他のウィンドウを自動的に隠すには 7.18 アプリケーションのスクリーンショットをアイコンや見本ミニアイ コンとして使うには ====================================================================== 0 - 「最も」ありがちな質問 ====================================================================== 0.1 fvwm の起動後数分間はキーボードとマウスの割り当てが機能しません。 どうしたらいいのでしょう ? 答: 多分あなたの NumLock か CapsLock か ScrollLock キーが押されたのでし ょう。詳細は Q 5.5 を参照してください。 余談: 私の fvwm の開発の数年間のすべてで、これは最も、とても多かった質 問でした。これがもう二度と再び聞かれないで済むように、この問題を解決 できる人はだれでも、fvwm ホームページ上に大きな文字で説明したいです。 ---------------------------------------------------------------------- 0.2 私は XMMS を使っていますが、それはいくつかのウィンドウスタイルを無 視してしまいます。 答: XMMS は、自分で全てを行いたがっていて、そしてウィンドウマネージャの 多くの設定を無効にしてしまいます。XMMS のオプションメニューをチェッ クし、もしそれでもわからなければ、それを以下で XMMS のユーザに聞いて みてください。 http://xmms.org/ *お願い* fvwm のメーリングリストでは XMMS の質問はしないでください。 そして、XMMS に関連するバグの報告は、XMMS のメーリングリストに送って からにしてください。悪気があるわけではなく、よそのソフトに関するユー ザサポートを提供するよりも、我々にはやるべき重要なことが本当にあるの です。 ---------------------------------------------------------------------- 0.3 私は透明化が好みなのですが、どうしたらいいですか ? 答: 透明化に関する質問 3.23, 3.24, 3.25, 3.26 を参照してください。 また、fvwm-themes パッケージで提供される設定も参照してください。いく つかのテーマは、透明メニュー、モジュール、装飾を使用しています。例: http://fvwm-themes.sf.net/screenshots/full/transparent.png http://fvwm-themes.sf.net/screenshots/full/transparent.jpg ====================================================================== 1 - Fvwm に関して ====================================================================== 1.1 fvwm ってどういう意味ですか ? 答: "(適当にあなたが好きな F で始まる単語をここに置いて) 仮想ウィンドウ マネージャ" (Virtual Window Manager) です。fvwm の元々の作者の Rob Nation が F が元々何だったか本当に思い出せないので、いくつか可能性の ある答を用意しています: Feeble (弱々しい), Fabulous (途方もない), Famous (有名な), Fast (速い), Foobar, Fantastic (素晴らしい), Flexible (柔軟な), F!@#$%, Flashy (華々しい), fvwm (GNU のような再帰的な定義と見れば), Free (自由), Final (最終的な), Funky (泥臭い、素晴しい), Fred's (Fred って誰やねん), Freakin' (くそっ), Flawed (欠陥のある), Father-of-all, Fievel (「アメリカ物語」の主役のねずみ), Frungy (お い、どっからやってきたんだ), Floppy (ペラペラの), Foxy (ずるい), Frenzied (熱狂させられる), Funny (おかしな), Fumbling (手につかな い), など。 どれでもいいから好きなの (Favorite; おっと、まだあった) を選んでくだ さい。もちろんあなたの気分や、最近あなたがバグにぶつかったかによって それは変わるでしょうが。私は、個人的には Fabulous か Fantastic が好 きですが、デバッグの最中はだいたい F!@#$% か Freakin' か... 最近は 'Feline' (猫のようにおとなしい、そつがない) がはやっているよ うです。多分これは、開発者のコアメンバー 6 人のうち 4 人が猫を飼って いる (平均 1.17 ネコ) を発見したことと関係があります。(ニャン) 知ってます ? 私のネコをなでていてもう一つ見つけました。FEEDING (飼っ ている) :-) 以下のリンクも参照: http://fvwm.org/fvwm-cats/ ---------------------------------------------------------------------- 1.2 fvwm の最新のバージョンはどこにありますか ? 答: 新しい主な配布サイト (公式なもの、およびベータ版): ftp://ftp.fvwm.org/pub/fvwm/ 代わりのサイト: アメリカ国内: ftp://sunsite.unc.edu/pub/Linux/X11/window-managers/ ftp://ftp.cs.columbia.edu/pub/cheah/ ヨーロッパ: ftp://unix.hensa.ac.uk/pub/walnut.creek/FreeBSD/incoming/ ftp://ftp.jussieu.fr/pub/X11/fvwm/ ftp://ftp.loria.fr/pub/unix/fvwm/ ところで、1.24r は 1.xx 系列の最終リリース版で、2.xx 系列の最初の公 式リリースは 2.2 です。ちなみに、2 つ目の番号が奇数のものは開発版で 偶数のものが安定リリース版であることを意味します。 ---------------------------------------------------------------------- 1.3 fvwm に関する WWW サイトはありますか ? 答: あります。公式サイトは以下です: http://www.fvwm.org/ 公式サイトに、fvwm に関連する他のサイトへのリンクがあります。 ---------------------------------------------------------------------- 1.4 fvwm に関する質問はどこにすればいいですか ? 答: あなたのところの fvwm の管理者が頼りにできなければ、fvwm のメーリン グリストを試してみてください。新しい fvwm の議論用のメーリングリスト のアドレスは以下の通りです: fvwm@fvwm.org 同様にアナウンス用のメーリングリストもあります: fvwm-announce@fvwm.org これらは、Jason Tibbitts により管理されている、Majordomo ベースのメ ーリングリストです。このメーリングリストに参加するには、本文に "subscribe fvwm" と書いたメールを -request@fvwm.org に送ってく ださい。例えば、fvwm メーリングリストに参加するには、そのリクエスト を fvwm-request@fvwm.org へ送ります。 メーリングリストから抜けるには、"unsubscribe fvwm" と本文に書いたメ ールを -request@fvwm.org に送ります。問題の報告は、メールを fvwm-owner@fvwm.org へ送ってください。 以下は、メーリングリストの説明と Jason からの直接の指示です: ------------------------------------------------------------------ (fvwm) 説明 ---- このメーリングリストは、fvwm ウィンドウマネージャに関する議論のため のものです。fvwm は、少しのメモリしか使用せず、沢山の機能を持ち、カ スタマイズ性、拡張性にとても優れていて、Motif MWM との高いレベルでの 互換性を持っています。適切な議論をすべて推奨しますが、バイナリデータ を送ったり、不適切な議論は強く嫌われます。短いパッチ (200 行未満) は 許可しますが、パッチは検査や将来配布物に取り込むために、すべて fvwm-workers メーリングリスト (下の Q5.2 参照) にも送るべきです。 案内 ---- メーリングリストにメッセージを送るには、fvwm@fvwm.org にメールを送っ てください。メーリングリストソフトの操作 (保管されているメールや利用 可能な他のファイルを取り出す) のヘルプを見るには、本文に "help" と書 いたメールを fvwm-request@fvwm.org に送ってください。メーリングリス ト自体に問題がある場合、そしてソフトにではなく人に話がある場合は、 fvwm-owner@fvwm.org へメールを送ってください。このアドレスは、メーリ ングリストに関する問題のみが対象で、fvwm ソフトウェアに関する報告は /dev/null へ捨てられます。 保管されている過去のメッセージも利用可能です。それらを取得するには、 上で述べたヘルプメッセージを送り、その "index" と "get" コマンドにつ いて調べてみてください。または、 ftp://ftp.fvwm.org/pub/fvwm/list-archive/ から ftp で取得してくださ い。 (fvwm-announce) このメーリングリストは、fvwm ウィンドウマネージャに関するアナウンス 用です。fvwm は、少しのメモリしか使用せず、沢山の機能を持ち、カスタ マイズ性、拡張性にとても優れていて、Motif MWM との高いレベルでの互換 性を持っています。 このメーリングリストのメッセージに対する返信は、デフォルトで fvwm に 関する議論用のメーリングリスト fvwm@fvwm.org へ転送されるようになっ ています。 現在の fvwm 配布物は、ftp://ftp.fvwm.org/pub/fvwm/ から ftp で取得で きます。 ------------------------------------------------------------------ ---------------------------------------------------------------------- 1.5 fvwm 1.xx と 2.xx の違いは ? 答: たくさんあります。一般的なものをいくつか上げます: - バグの修正。1.xx についてはもうこれ以後は全然作業しません。 - よりよい初期設定ファイルの書式。順序依存性は今はありません。 - より柔軟で強力。例えば、多くの以前の大域的なオプションは、現 在では代わりにウィンドウグループレベル毎に作用します。 - より多くの、より良いモジュール。 - M4 前処理は fvwm の exec コマンドの一部ではなくなり、モジュー ルへと移動しました。cpp を使用するモジュールもあります。 FvwmM4 と FvwmCpp のマニュアルを参照してください。 新規や変更された機能については NEWS ファイルもチェックしてください。 ---------------------------------------------------------------------- 1.6 各種ウィンドウマネージャでのメモリ使用量の比較は ? 答: 以下にそれらのいくつかを比較した小さい表をあげます。これは、IBM RS6000 モデル 355 ベースの AIX 上で、同じ個数のウィンドウ (3 つ) を 使って行っています。ウィンドウマネージャの切り替えは XSession で行い、 これらの値を見るには 'top' を使用しました: SIZE RES 545K 652K fvwm2 (fvwm 2.0.35) 457K 528K fvwm (fvwm 1.24rb) 856K 960K ctwm (ctwm 3.2p1) 1004K 1156K mwm (mwm 1.2) 543K 632K twm (???) 263K 328K aixwm (AIX 付属の単純で美しくないウィンドウマネージャ) 注: この情報は恐ろしく古いものです。 ---------------------------------------------------------------------- 1.7 なぜ色々なファイルの名前 (fvwm2, .fvwm2rc, fvwm2.man) を変えている のですか ? 答: これにイライラする人がいるようですが、いくつかの理由があってそうな っています。 - 1.xx と 2.xx の両方を使えるようにインストールできますが、その サイトでむしろ 1.xx を使いたいと思う人もいる場合のため。 - 初期設定ファイルの書式にはかなり違いがあり互換性が全くないた め - 質問の際、どのバージョンを使っているかをちゃんと伝えてくれる 人はめったにいないので、質問者が .fvwm2rc ファイルを明示して くれれば、その人が 2.xx の版の fvwm を使っているんだなとわか るためです。 2.5.1 からは、実行ファイルは fvwm2 からまた fvwm に戻っていることに 注意してください。2.5.11 からは、デフォルトの設定ファイルは、個人用 には ~/.fvwm/config、システム全体用には $datadir/fvwm/config になっ ています。ええ、完全に "fvwm" という名前に戻ったのです。 ---------------------------------------------------------------------- 1.8 fvwm X.Y.Z のリリースはいつ予定されていますか ? 答: これは常に答えるのに難しい問題です。我々は fvwm に関してボランティ アベースで作業しています。我々に時間があれば進むでしょう。 fvwm-workers メーリングリストに入れば有益な情報が得られるかもしれま せん。 ====================================================================== 2 - インストール ====================================================================== 2.1 fvwm を使いたいのですが、私のマシンに root でのアクセスができませ ん。それでもインストールして使えますか ? 答: とても簡単です。configure 時に '--prefix' フラグを使ってください。 あなたのホームディレクトリを /home/sam だとします。fvwm ソースを展開 後、"./configure --prefix=/home/sam (必要なら他のオプションも)" とし ます。そして、コンパイルし ("make") インストール ("make install") し たら、バイナリが /home/sam/bin に、マニュアルは /home/sam/man 等々に インストールされます。モジュールは /home/sam/libexec にインストール され、fvwm バイナリにはそのモジュールのパスが埋め込まれます。 ---------------------------------------------------------------------- 2.2 fvwm を CDE/COSE 上で使いたいのですが、問題にぶちあたりました。い い助言はありませんか ? 答: そうですね、以下は Graeme McCaffery からの助言です: ----- ようやく fvwm を正しく cde から呼びだす方法を見つけだしました 8-)) (Lars Sodergren に感謝) まず、Dtwm 内のホームセッションを設定します。通常それは空のセッシ ョンですが、FvwmSaveDesk などの代わりに CDE セッションマネージャに、 あなたのデスクトップが何に似ていたのかを覚えさせることができます。 そして .Xdefaults に以下の 2 つのリソースを設定する必要があります: Dtsession*wmStartupCommand: /home/orion/spxgm/bin/Fvwm Dtsession*waitWmTimeout: 1 ここでは、ライブラリ変数などが皆にも正しく設定されるように、私は fvwm をシェルスクリプトから起動しています。waitWmTimeout は、ウィ ンドウマネージャを立ち上げるまでにどれくらい待つかをセッションマネ ージャに指示します。私は 1 秒と設定していますが、デフォルトは 60 秒です。 最後に以下のようにして終了しなければいけません。 /usr/dt/bin/dtaction ExitSession (dtaction は正しいパスに) これで、CDE プログラムと fvwm をちゃんと使えるようになります。 ----- ちなみに、以下は CDE ログインメニューに複数のウィンドウマネージャ を追加する方法を記した Web ページへのリンクです: http://twirl.mcc.ac.uk/~zzassgl/wm.html ---------------------------------------------------------------------- 2.3 SunOS 上で cc で fvwm をコンパイルすると、コンパイラがたくさんのエ ラーを出しますが、これは何 ? 答: SunOS の cc は ANSI C コンパイラではありません。代わりに acc か gcc を使ってください。 ---------------------------------------------------------------------- 2.4 カラーアイコンを使いたいんですが、動きません。なんででしょう ? configure の際に "Have XPM support?" のところに "no" と出ました。 どうすれば XPM をサポートできるんでしょう ? 答: fvwm は XPM (X ピクスマップ) ライブラリを使用し、色や形状を持つアイ コンをサポートしています。XPM は、The Open Group や XFree86 が提供す るような基本的な X の配布には含まれませんが、多くのベンダが標準的な ものの一部として提供しています。そうでなくても、あなた自身でソースを ftp://ftp.x.org/contrib/libraries/ からコピーし、インストールできま す。 XPM があなたのシステム上にあっても、configure がそれを使わないように してしまう原因は何通りもあります。 まず、あなたが XPM を非標準的な場所にインストールした場合 (通常のシ ステム内でも X11 ディレクトリでもない場所、例えば /opt/xpm とか、 /usr/local など)、configure にどこを探すかを伝える必要があります。オ プション --with-xpm-library や --with-xpm-includes を使用してくださ い (INSTALL.fvwm 参照)。configure が "Xpm library or header not found" と言うのが、この問題の典型的な現象です。 2 つ目は、あなたの XPM のバージョンが古すぎる場合です。fvwm には、 XPM 3.4g 以降が必要です。configure が "Xpm library version is too old!" と言うのが、この問題の典型的な現象です。この場合は、新しいバー ジョンをインストールしなければいけません。 3 つ目は、あなたのシステムで XPM のインストールがうまくいってない場 合です。configure が "Xpm library version and header file version don't match!" と言う場合は、この問題かもしれません。オプション --with-xpm-library か --with-xpm-includes のどちらかを使用して、必要 なものをより細かく指定するか、XPM を再インストールするかでしょう。 最後に、リンカエラーである場合です。これは、XPM が非標準ディレクトリ に動的ライブラリ (shared library) としてインストールされているシステ ムに共通の問題です (Solaris がいい例です)。INSTALL.fvwm ファイル内に 動的ライブラリを使用してコンパイルする場合の注意が書いてあります。 まだ問題を見分けられない場合は、fvwm メーリングリストで聞いてみてく ださい。その場合、あなたが使用しているハードウェア、OS を明示し、ど のように configure を実行したか、config.log ファイルの XPM に関する 行を抜き出してそれも報告してください。 ---------------------------------------------------------------------- 2.5 私はシステム管理者で、まず必ずシステムの初期設定ファイルを読むよう にして、その後でユーザの初期設定ファイルを読むようにしたいのですが どうすればいいでしょう ? 答: 多分以下のようにすればできます。全員の ~/.fvwm/config か ~/.fvwm/.fvwm2rc のファイルの先頭行を 'Read global.config' にし、そ してその global.config を"$datadir"/fvwm 内に置くことです ($datadir の値はあなたが ./configure 時に設定したもの)。 ---------------------------------------------------------------------- 2.6 私はシステム管理者で、CDE のように fvwm のすべての初期設定ファイル を ~/.fvwm という隠しディレクトリ内に置いてそこを見にいくようにし たいのですが、どうすればいいでしょう ? 答: fvwm は今はデフォルトの検索ディレクトリとして ~/.fvwm をサポートし ています。 これは、多分上の Q2.5 と同様にしてできます。システムの初期設定 "$datadir"/fvwm/config (または system.fvwm2rc) は以下のようなことを 行ます: Read Init quiet Read Decors quiet Read Styles quiet Read Functions quiet Read Menus quiet Read Keys quiet Read Modules quiet あなたが適切と判断した分類項目は何でも追加できます。さらにデフォルト のものを "$datadir"/fvwm/ 内に置いておいて、ユーザがこれらのいくつか を持っていない場合のデフォルトとして提供することもできます。 ---------------------------------------------------------------------- 2.7 どうすれば fvwm をバージョン 1 以下の GNOME で使えますか ? 答: fvwm の最新版はほとんど GNOME に対応していますから、panel, gmc, gnome-terminal や他のすべての GNOME アプリケーションを fvwm と一緒に 単純に実行できます。 付属の fvwm-menu-desktop スクリプトは (大きいマニュアルも付属)、 gnome アプリケーション用の fvwm のメニューを作る手助けになるでしょう。 fvwm を起動し gnome-session を動かしたくない場合は、ホームディレクト リに .Xclients を作成し、その中に fvwm の呼び出しを入れてください。 あなたの代理店やシステム管理者がインストールした、システム上で通用す るどんな理屈も避けたい場合は、同じ目的で ~/.xinitrc を使うこともでき ます。 もうひとつの解は、fvwm を /usr/bin/gnome-session の内側で実行させる ことです。gnome-session を立ち上げた後 (自分で fvwm を起動しないでく ださい) GNOME パネルの下にあるメニュー (foot menu) に行き、以下を選 択してください: システムメニュー / 設定 / デスクトップ / ウィンドウマネージャー そして、fvwm のエントリを作成してください。fvwm はセッション管理をサ ポートしています。 gnome-session を実行した場合、InitFunction と RestartFunction の代わ りに SessionInitFunction と SessionRestartFunction が呼ばれます。 fvwm のマニュアルを参照。 通常は、モジュールの実行には StartFunction が呼び出されます。 以下は、fvwm がサポートする GNOME ウィンドウマネージャのヒントの例で す: o GNOME サポートのない fvwm の内部から gnome パネルを実行すると、どん なことをしたとしても GNOME ページャアプレットを完全には使えません。 GNOME サポートがあれば、ページ、デスクトップは正常に表示され、アプ レット内でウィンドウをそれらの間で移動できます。GNOME Tasklist ア プレットも使うことができ、それを使ってウィンドウを管理できます。 o gmc を実行し GnomeButton を割り当てると (マニュアル参照)、背景での クリックは gnome アプリケーションに (つまりこの場合は gmc に) 渡さ れます。 ---------------------------------------------------------------------- 2.8 どうすればバージョン 2 以上の GNOME、バージョン 2 以上の KDE で fvwm を使えますか ? 答: ほとんどの標準的なアプリケーションは、他の任意のアプリケーションと 同様に fvwm でも動作します。しかし、ある機能や、パネル、ページャ、タ スクバー、デスクトップなどの特別なアプリケーションには特別なサポート が必要になります。ウィンドウマネージャとデスクトップ環境とアプリケー ションの相互作用は、拡張ウィンドウマネージャ仕様 (EWMH; Extended Window Manager Hints) で規格化されています。fvwm はこの仕様を 2.5.x から (GNOME, GTK, KDE, QT はそれぞれバージョン 2 から) サポートして います。詳細は、fvwm のマニュアルの "Extended Window Manager Hints" の節、および "EWMH" から始まるコマンドやスタイルを参照してください。 fvwm を GNOME のウィンドウマネージャとして使うことは可能です。そうす るためには、GNOME (gnome-session) を起動します。そして、やるべきこと は、実行しているウィンドウマネージャ (デフォルトでは sawfish か metacity) を fvwm に置き換えることです。ターミナル上で、 "fvwm --replace &" とやってみてください。もしこれがだめなら、fvwm を 強制終了し (kill)、ターミナルで "gnome-session-properties &" と実行 してセッションプロパティダイアログを開き、その 2 つ目のタブで、 metacity (か sawfish) の Style 値を "再起動" ("Restart") から "通常" ("Normal") に変更し (この変更を "適用" ("Apply") することを忘れずに)、 強制終了した際に gnome-session がそれを再起動しないようにしておきま す。そしてターミナルで "killall metacity; sleep 1; fvwm &" と実行し ます。fvwm の起動に成功したら、すぐにあなたのセッションを保存する (GNOME セッションログアウトによる) 必要があります。次にあなたが gnome-session を起動したとき、fvwm が使われます (そして、ログアウト 次に再びセッションを保存する必要はありません)。gnome-smproxy を使い、 古いセッションプロトコルを使用するようなアプリケーションを swallow する FvwmButtons を実行する場合、そのアプリケーションは、セッション の再起動時に gnome-session と FvwmButtons によって再起動され、それが 問題を引き起こす可能性があります。 fvwm を KDE のウィンドウマネージャとして使うことも可能です。KDE は "startkde" というシェルスクリプトで起動しますが、このスクリプトは ksmserver を起動し、それがウィンドウマネージャ (デフォルトでは kwin) を起動します。fvwm を起動するには、ksmserver のコマンドライン (スク リプトの最後の方にある) にオプション "-w fvwm" を追加する必要があり ます。startkde を startkde_fvwm という名前でどこか path の通っている ところにコピーし、startkde_fvwm を編集して、そして X の起動スクリプ ト (例えば ~/.xinitrc か ~/.Xclients か ~/.xsession など) で startkde を startkde_fvwm に置きかえればいいでしょう。ksmserver は、 fvwm のコマンド Restart をサポートしないことに注意してください。よっ て fvwm の再起動には、"Restart fvwm" を使用すべきです。しかしそうす る場合、後でセッションを保存するのは良くない考えです。 ====================================================================== 3 - 機能、設定、関数、コマンド ====================================================================== 3.1 fvwm を RedHat Linux システム上で使っていますが、fvwm の設定を変更 する方法がわかりません。fvwm のマニュアルは読みましたが、.fvwm2rc を編集しても何も起きないようです。どうしたらいいでしょう ? 答: RedHat Linux は、(デフォルトでは) 設定管理システムで X サーバをイン ストールしています。以前の版では、それは TheNextLevel と呼ばれていま したが、最新の版では AnotherLevel と呼ばれています。TheNextLevel に 関する詳細な情報は、/usr/doc/TheNextLevel/ にある RedHat の文書を調 べてください。AnotherLevel に関する情報は 'man AnotherLevel' で見て ください。 ---------------------------------------------------------------------- 3.2 ウィンドウの境界ではなく、ウィンドウ内でクリックしたときにウィンド ウを手前に出すことは可能ですか ? 答: 2.0.46 より後の任意のバージョン (つまり 2.1.0 以降) は、この機能を 持っています。2.2.x 系列では、以下を使用してください: GlobalOpts MouseFocusClickRaises 2.3.x ベータ版以降では以下のようにします: Style * MouseFocusClickRaises ---------------------------------------------------------------------- 3.3 どうすれば Alt-Tab の挙動を他の GUI 同様にできますか ? 答: 組込みコマンド WindowList は、他の GUI で見られる Alt-Tab 機能に非 常に近い近似を提供します。それは全く同じには見えませんが、以下の .fvwm/config のサンプルは同様のインターフェースを提供します: Key Tab A M WindowList Root c c NoDeskSort 2.3.2 以降、上のキー割り当ては組込まれています。 2.3.15 以降は、Alt キー押しの状態を保持できますし、Tab を打ち続けら れます。単一の Alt-Tab は直前のウィンドウを選択します。この FAQ 項目 の残りの部分で 2.3.2 より前の版について説明します。 Alt-Tab を打つと WindowList メニューをポップアップします。他の GUI と違い、Alt キー押しは保持できず、メニューは Return, Enter, Space, Escape のいずれかを打つまで出続けます。フォーカスをメニュー上のウィ ンドウに変更できますが、それは上下の矢印キーを使いメニュー選択を移動 し、そしてその後 Return, Enter を打ちます。Escape を打つと、何もせず にメニューをクローズします。WindowList メニューは、最初の 26 ウィン ドウに割り当てられたホットキーを持っていて、そのホットキーを使ってウ ィンドウへ直接進むことができます。 上の行で呼びだしたメニューは、Focus コマンドを使っていない場合 (Q3.4 参照) 最も最近フォーカスされた順番ですべてのウィンドウを表示します。 それは、各ウィンドウ名と位置情報 (geometry) を、Sticky, OnTop, アイ コン化などを示す追加のフラグ付きで表示します。 以下のようにしてより単純なスタイルを使用できます: Key Tab A M WindowList Root c c CurrentDesk, NoGeometry これは、現在のデスクトップ上のウィンドウのみを一覧表示 (タイトルのみ) します。 他の GUI には、Alt-Tab を打って素早く離した場合に、直前のウィンドウ を選択する機能があります。その挙動は、2.5.1 以降では完全に写し取るこ とができますが、それ以前の fvwm ではできません。 Key Tab A M WindowList Root c c \ CurrentDesk, NoGeometry, CurrentAtEnd, IconifiedAtEnd 同様の機能を Alt-TAB を 2 度早く続けて打つこと (キーのダブルクリック のようなもの) に割り当てることはできます: DestroyFunc my_dbltab2 AddToFunc my_dbltab2 + I WindowListFunc DestroyFunc my_dbltab AddToFunc my_dbltab + I Prev (CurrentDesk) my_dbltab2 Key Tab A M WindowList Root c c \ CurrentDesk, NoGeometry my_dbltab WindowList には、どのウィンドウをどの順番で一覧表示するかを制御する たくさんのオプションがあり、Prev コマンド用の条件をキーを 2 度打った ときに 2 番目の項目を確実に選択するように設定することは多分不可能で しょう。WindowList コマンドには、CurrentPage, Transient, Visible, Maximized, Raised, パターンマッチングに対応するものがなく、Prev の条 件には、OnTop, Alphabetic, デスクトップソートに対応するものがありま せん。 ---------------------------------------------------------------------- 3.4 Focus コマンドと FlipFocus コマンドの違いは ? これらはどちらも対象となるウィンドウにキーボードフォーカスを変更しま すが、内部に保持するウィンドウの一覧に影響を与える方法においてのみ違 いがあります。その一覧は、Next, Prev, WindowList コマンドが使用し、 通常フォーカスされた順番でソートされ、新しいウィンドウは最後に追加さ れています。FlipFocus コマンドは、対象のウィンドウを一覧からむしりと ってそれを先頭に入れるのですが、Focus コマンドは、対象ウィンドウが先 頭に来るまで一覧を順繰りに進めます。フォーカスをマウスで変更したり、 ClickToFocus スタイルを使ったときに自動的にフォーカスを変更するのに FlipFocus の挙動が利用されることもあります。 Focus コマンドを全然使わなければ、一覧は最新のフォーカス順のままなの ですが、Focus コマンドを使うと、FlipFocus を使った場合と同様に、一覧 は徐々に最新のフォーカス順に戻っていきます。 Focus コマンドは、Next コマンド、Prev コマンドと組み合わせて使うとと ても便利です。例えば: Key KP_Add A M Next (AcceptsFocus, CurrentDesk, !Iconic) Focus Key KP_Subtract A M Prev (AcceptsFocus, CurrentDesk, !Iconic) Focus バージョン 2.4.1 よりも前の fvwm では: Key KP_Add A M Next [CurrentDesk !Iconic] Focus Key KP_Subtract A M Prev [CurrentDesk !Iconic] Focus これらのキー割り当てにより、現在のデスクトップ上のウィンドウ全体に渡 って、両方向にフォーカスを巡回できます。Prev FlipFocus を使うと、そ のフォーカスはウィンドウの一覧の先頭の 2 つの間を行き来するだけにな ってしまいます。 あるデスクトップに複数のウィンドウがあり、Next, Prev コマンドでの巡 回の順番を設定したければ、その設定したい順にマウスか FlipFocus でフ ォーカスをしておく必要があります。fvwm はその順番を学習してそれを Next, Prev コマンドに使用します。その後にまたマウスでフォーカスした り FlipFocus を使うとその順番は消えてしまいます。 ---------------------------------------------------------------------- 3.5 マウス移動をキーストロークに割り当てられるようですが、マウスボタン 押しはどうやったら割り当てられますか ? 答: fvwm には移動をキーストロークに割り当てるコマンドはありますが、キー ボードによるポインタの制御は実際には X サーバが処理すべきです。以下 はこの件に関する X FAQ からの抜粋です: X Keyboard (XKB) 拡張を持っているなら、マウスキーが使えます。それ によりマウス移動とボタンイベントをキーボードで生成することが可能 になります。MouseKeys で生成されたイベントは完全に透過型で、それ は、X Keyboard 拡張を持つサーバに接続する任意のアプリケーションで 動作し、そのアプリケーションが XKB を使うかどうかを考える必要はあ りません。 XKB は、X11R6.1 ではデフォルトで有効になっています。 最初に、Shift+Num_Lock がマウスキーのトグルスイッチになるよう、 NumLock キーを設定します: $ xmodmap -e "keysym Num_Lock = Num_Lock Pointer_EnableKeys" (XFree86 3.1.2E は R6.1 ベースで、X Keyboard 拡張を持っていて、そ のデフォルトのキーマップに Pointer_EnableKeys への割り当ても含ま れているので、Alt+Shift+Num_Lock でマウスキーのオン/オフが行えま す。以前の版の X や XFree86 では、XKB を持っていないためにそれが 動作しないかもしれません。より詳細な情報については、 http://www.XFree86.org/FAQ を参照してください。) これを動作させるには、サーバの NumLock をオフにしないといけないか もしれません。これにより "Shift+Num_Lock" を押すことで MouseKeys が有効になります。MouseKeys がオンの場合: o) 矢印キーはマウスカーソルを移動する o) テンキーの '5' はデフォルトマウスボタンと同様の挙動 o) テンキーの '0' はデフォルトマウスボタンをロックする (ドラッ グを容易にするため) o) テンキーの '.' はデフォルトマウスボタンのロックを解除する (ドラッグを放す) o) テンキーの '+' はデフォルトマウスボタンのダブルクリック o) テンキーの '/' はデフォルトマウスボタンをボタン 1 に設定 o) テンキーの '*' はデフォルトマウスボタンをボタン 2 に設定 o) テンキーの '-' はデフォルトマウスボタンをボタン 3 に設定 これはデフォルトの設定ですが、この仕組みはほぼ無限の設定可能性を 持っています。 [Erik Fortune (erik@westworld.engr.sgi.com) に感謝, 6/96] ---------------------------------------------------------------------- 3.6 あるキーを、現在選択したものをペーストして使用することに割り当てた いのですが、どうしたらいいですか ? 答: それは fvwm では直接は行えませんが、より広く適用可能な解決策があり ます。それは、ftp://ftp.x.org/contrib/utilities/ かまたは適当なミラ ーサイトにある 'xcb' というプログラムを利用することです。多分それで お望みの効果、またはそれに近いことを行えると思います。これは、プログ ラムの実行と、選択したものをそれらに渡すという目的には最も便利でしょ う (例えば、現在選択したものを URL としてあなたの良く利用するブラウ ザを呼び出すとか)。一般性が半分位のペースト機能なら、'xse' (Q3.5 を 参照) がいいかもしれません。これに関するいい例を誰か思いついたら、こ こに入れますので、是非 fvwm のメーリングリストに送ってください。 ---------------------------------------------------------------------- 3.7 fvwm は、各デスクトップ毎に異なるカラーマップをサポートする予定は ありますか ? 答: 私もそうしたいのですが、ちょっと難しいです。あなたがデスクトップを 切り替えたときにデフォルトカラーマップを変更することは多分可能だと思 います。それはそのデスクトップがアクティブになったときに起動したプロ グラムにそのカラーマップを与えればいいのでしょう。しかし、デスクトッ プをまたがって移動したウィンドウをどのように扱えばいいでしょう ? さらに、fvwm はそれ自身がすべての描画 (境界、メニューなど) のために カラーマップのいくつかのエントリを必要としますから、それらの色はあら かじめすべてのカラーマップに割り当てられるか、それと同等の状態でなけ ればいけないことになります。 これらがすべて技術的に可能であったとしても、それが今本当に適切である とは思いません (とても多くのソースコードを追加し複雑にしてしまうでし ょう) し、特に色を貪欲に使用するほとんどのプログラム (Netscape とか) はプライベートカラーマップを使えるようになっているからです。 それでも将来は、いくつかの点において少しこれについて検討するかもしれ ません。 ---------------------------------------------------------------------- 3.8 Sticky ウィンドウのタイトルバーに出る水平線が好きなのですが、これ は他のウィンドウにも出せますか ? 答: はい。2.3.14 版以降からは、以下の行を .fvwm/config (か .fvwm2rc) に に入れます: Style * StippledTitle 以前の版では、以下を使用してください: GlobalOpts StipledTitles (ええ、確かにスペルは変でしたよ。) ---------------------------------------------------------------------- 3.9 Sun キーボードの xxxx キーを fvwm コマンドに割り当てる方法は ? ま たはより一般に、fvwm のキー割り当ての定義に関する問題がありますが、 どうしたらいいですか ? 答: 以下は FVWM ユーザの Jon Mountjoy からの回答です: - Sun キーボードの一番上の行のファンクションキーは F1 から F8、 - Sun キーボードの左端のファンクションキーパッド内のキーは、 F11 == Stop, F12 == Again, ..., F20 == Cut となっています。 彼の例: # Sun キーボードの一番上の行のファンクションキー Key F1 A N Exec me(netscape) & Key F2 A N Exec me(netscape -install) & Key F5 A N Exec makex(Adder) Key F6 A N Exec makex(Lambda) Key F7 A N Exec makex(Castor) Key F8 A N Exec xterm -T Local & # Sun キーボードの左端のファンクションキーパッド内のキー: # F11 = Stop, F12 = Again, ..., F20 = Cut Key F11 AWF N Next (!iconic, CurrentPage) Focus Key F12 AWF N Prev (!iconic, CurrentPage) Focus Key F13 WF N Maximize 100 100 Key F15 WF N RaiseLower "" Key F17 WIF N Iconify "" Key F18 WF N Stick "" Key F20 WIF N Delete "" Key Help AWF N Iconify "" あなたが「本当に」必要な任意のキーの keysym (キーシンボル) が何であ るかを知るためのより一般的な方法は、xev (通常 X11 と共に配布される) か、xkeycaps (Jamie Zawinski 作の xmodmap の X11 インターフェース) を使うことであり、fvwm コマンドへの割り当てにはその keysym を利用し てください。 ---------------------------------------------------------------------- 3.10 バージョン 1.xx の .fvwmrc がうまくいかないのですがどうしたらいい ですか ? 答: 新しい初期化ファイルで最初からやるか、または古いものを変換してくだ さい。変換は、手動でやるか、または utils ディレクトリ内の 'fvwm-convert-2.2' が少し手助けになるでしょう。 以下に、Makoto 'MAR_kun' MATSUSHITA さんがまとめた、初期設定ファイルコマンドの変更の一覧を置きます。それ は、特に変更が進んでいるものに関しては、100% 正確、完全かどうかはわ かりませんが、取っかかりにはなると思います。 2.1.x 以降でいくつか変更がありますが、それは変換スクリプトにはまだ反 映されていません。 ** Fvwm-1.xx のコマンド ** ** Fvwm-2.xx の同等物 ** AppsBackingStore (廃止) AutoRaise delay (廃止、FvwmAuto で代用) BackingStore (廃止) BoundaryWidth Width Style (BorderWidth width) ButtonStyle button# WidthxHeight <- CenterOnCirculate (廃止) CirculateSkip windowname Style (CirculateSkip) CirculateSkipIcons Style (CirculateSkipIcon) ClickTime delay <- ClickToFocus Style (ClickToFocus) Cursor cursor_num cursor_type CursorStyle context cursornum DecorateTransients Style (DecorateTransient) DeskTopScale Scale (廃止、FvwmPager で代用) DeskTopSize HorizontalxVertical <- DontMoveOff (廃止) EdgeResistance scrolling moving <- EdgeScroll horizontal vertical <- Font fontname MenuStyle (arg4) Function FunctionName AddToFunc (非互換) HiBackColor colorname Style (HilightFore color) HiForeColor colorname Style (HilightFore color) Icon windowname bitmap-file Style (Icon iconname-file) IconBox left top right bottom Style (IconBox l t r b) IconFont fontname Style (IconFont fontname) IconPath path ImagePath path Key keyname Context Modifiers Function <- Lenience Style (Lenience) MenuBackColor colorname MenuStyle (arg2) MenuForeColor colorname MenuStyle (arg1) MenuStippleColor colorname MenuStyle (arg3) Module ModuleName <- ModulePath path <- Mouse Button Context Modifiers Function <- MWMBorders Style (MWMBorder) MWMButtons Style (MWMButtons) MWMDecorHints Style (MWMDecor) MWMFunctionHints Style (MWMFunctions) MWMHintOverride Style (HintOverride) MWMMenus MenuStyle (arg5) NoBorder windowname Style (NoBorder) NoBoundaryWidth Width Style (HandleWidth width) NoPPosition Style (NoPPosition) NoTitle windowname Style (NoTitle) OpaqueMove percentage OpaqueMoveSize percentage OpaqueResize (廃止) Pager X_Location Y_Location (廃止、FvwmPager で代用) PagerForeColor colorname (廃止、FvwmPager で代用) PagerBackColor colorname (廃止、FvwmPager で代用) PagerFont fontname (廃止、FvwmPager で代用) PagingDefault pagingdefaultvalue (廃止) PixmapPath ImagePath path Popup PopupName AddToMenu (非互換) RandomPlacement Style (RandomPlacement) SaveUnders (廃止) SloppyFocus Style (SloppyFocus) SmartPlacement Style (SmartPlacement) StartsOnDesk windowname desk-number Style (StartsOnDesk desk-number) StaysOnTop windowname Style (StaysOnTop) StdBackColor colorname Style (BackColor color) StdForeColor colorname Style (ForeColor color) StickyBackColor colorname (廃止) StickyForeColor colorname (廃止) Sticky windowname Style (Sticky) StickyIcons Style (StickyIcon) StubbornIcons (廃止) StubbornIconPlacement (廃止) StubbornPlacement (廃止) Style windowname options <- SuppressIcons Style (NoIcon) WindowFont fontname Style (Font fontname) WindowListSkip windowname Style (WindowListSkip) XORvalue number <- ** fvwm-1 組み込み関数 *** Beep <- CirculateDown [ name window_name ] Next (非互換) CirculateUp [ name window_name ] Prev (非互換) Close <- CursorMove horizontal vertical <- Delete <- Desk arg1 arg2 <- Destroy <- Exec name command <- Focus <- Function <- GotoPage x y <- Iconify [ value ] <- Lower <- Maximize [ horizontal vertical ] <- Module name ModuleName Module ModuleName Move [ x y ] <- Nop <- Popup <- Quit <- Raise <- RaiseLower <- Refresh <- Resize [ x y ] <- Restart name WindowManagerName <- Stick <- Scroll horizonal vertical <- Title <- TogglePage (廃止) Wait name <- Warp [ name window_name ] Next または Prev (非互換) WindowsDesk new_desk (廃止、MoveToDesk で代用) WindowList arg1 arg2 <- *** New in fvwm-2 ** All AnimatedMove BugOpts BusyCursor DefaultColors DefaultColorset DefaultFont DefaultIcon DefaultLayers Destroy DestroyMenu EdgeThickness Emulate EscapeFunc ExecUseShell HideGeometryWindow KillModule Layer Menu menu-name double-click-action MoveToDesk MoveToPage Next (conditions) command None (arguments) command Pick PointerKey Prev (conditions) command QuitSession Read filename Recapture RecaptureWindow SaveQuitSession SaveSession Silent SnapAttraction SnapGrid StrokeFunc XORPixmap + (関数がさらに時々刻々追加されていますので、マニュアルや NEWS ファイ ルもチェックしてください)。 ---------------------------------------------------------------------- 3.11 FVWM 1.xx の 'include' コマンドはどうなったのですか ? 答: それは実際には M4 による前処理の一部でした。同じ機能が欲しければ、 'Read' 組み込みコマンドか、FvwmM4 モジュールを使用してください。 ---------------------------------------------------------------------- 3.12 例えば Netscape などのサブウィンドウのウィンドウタイトルはどうす ればつけられますか ? 答: それらのウィンドウは、通常短い時間しか存在しないので、'transient' (一時的) なウィンドウとなっています。transient ウィンドウの装飾には 以下の Style コマンドが使えます: Style * DecorateTransient それをオフにするには: Style * NakedTransient ---------------------------------------------------------------------- 3.13 バージョン 2.3.2 以上に上げましたが、私の初期設定が出ません。どう したら戻せますか ? 答: システム用の設定ファイルのディレクトリは、${sysconfdir} (configure 時に別の設定をしていなければ /usr/local/etc) から、そのサブディレク トリ ${sysconfdir}/fvwm に変わりました。あなたの設定ファイルも手動で 移動し、fvwm を再起動してください。 今の fvwm はこのディレクトリにいくつかのファイルをインストールするの で、このように変更されました。 ---------------------------------------------------------------------- 3.14 アプリケーション (Eterm など) によってはそれ用に定義したアイコン を使ってくれないものがあるようですが、これはなぜですか ? 答: Eterm はそれ自身のアイコンを持っていて、fvwm はそれが普通のアイコン か、それとも Eterm がその中に描画したいものか (xbiff が新しいメール が到着したときに書くようなもの) を知ることができません。以下の Style コマンドを使えば、アプリケーションが持っているアイコンを明示的に上書 きすることができます: Style <アプリケーション名> IconOverride ---------------------------------------------------------------------- 3.15 アプリケーションをアイコンから復帰したときのアイコンボックスの隙 間が気にいらないのですが、ある種の自動配置をする関数はありません か ? 答: Style コマンドの IconBox オプションを使っている前提で話をしますが、 fvwm 関数の裏技的な利用法によりそれは可能です。まず以下のように設定 ファイルに関数 DeiconifyAndRearrange を入れます。 DestroyFunc DeiconifyAndRearrange AddToFunc DeiconifyAndRearrange + C Iconify off + C All (CurrentPage, Iconic) PlaceAgain Icon これは、fvwm 2.5.3 以降で機能します。古い fvwm の版では、同じ効果は 以下のようにして得られます: DestroyFunc DeiconifyAndRearrange AddToFunc DeiconifyAndRearrange + C Iconify off + C All (CurrentPage, Iconic) RecaptureWindow しかし、コマンド Recapture と RecaptureWindow は、将来なくなるかもし れないので、可能ならば Recapture の代わりに PlaceAgain を使用してく ださい。 そして、あなたがアイコンからウィンドウを復帰するために組み込み関数 Iconify を呼び出している場所すべてをその新しい関数で置き換えます。例 えば、 DestroyFunc IconFunc AddToFunc IconFunc + C Iconify off + M Raise + M Move + D Iconify off は以下のように置き換えます: DestroyFunc IconFunc AddToFunc IconFunc + C DeiconifyAndRearrange + M Raise + M Move + D DeiconifyAndRearrange そして以下: Mouse 1 I A Iconify off も以下のように置き換えます: Mouse 1 I A DeiconifyAndRearrange ---------------------------------------------------------------------- 3.16 Linux マシンをシャットダウンする fvwm のメニュー項目はどのように 設定すればいいですか ? 答: まず shutdown コマンドを実行する小さいシェルスクリプトを作ってくだ さい。 そして sudo をあなたのシステムにインストールしてください (そのマニュ アル等を参照)。 そしてそのシェルスクリプトを、あなたやあなたの奥さんなどが root の権 限で実行できるように設定ファイル sudoers を設定してください。 そしてあなたの fvwm の root メニュー (かまたはどこでも) に、 "sudo /my/script/name" を呼び出すメニュー項目を追加します。 ---------------------------------------------------------------------- 3.17 Recapture コマンドは非推奨ですが、あるスタイルの変更を適用するの に今でも必要でしょうか ? 答: マニュアルからの引用: fvwm には、Style, Mouse, (fvwm 2.4.x には) FvwmTheme モジュールや、 その他多くのもののような指定したウィンドウのみ、あるいはいくつかのウ ィンドウやまたはすべてのウィンドウの見た目に影響を与えるたくさんのコ マンドがあります。軽快に動作するために、それらの変更はただちに適用さ れるのではなく、fvwm に余裕があるとき、すなわちユーザとの対話やモジ ュールからの入力がすべてかたずいているときに適用されることになってい ます。特に、ある関数の中で設定される新しい Style オプションは、その 関数が終了するまでは適用されません。これは、ときどき予期せぬ効果を導 く恐れがあります。すべての未適用の変更を強制的にすぐに適用させるには、 UpdateStyles, Refresh, RefreshWindow コマンドのいずれかを使ってくだ さい。 ---------------------------------------------------------------------- 3.18 特定のウィンドウ (または全部) をポップアップしたときに、それがフ ォーカスを取得する/移動する/サイズを変える/閉じる/影をつける、な どのようにしたいのですが、どうしたらいいでしょう ? 答: 以下の議論は一般的な解で、その例で使用されているアプリケーションの 名前と fvwm コマンド (Move, Iconify, Close) は、あなたが必要とするも のに置き換えて読んでください。あなたが対象とするアプリケーションのリ ソース名を取得するには、FvwmIdent モジュールを利用してください。 あなたがやりたいことを実現する最初の方法は、そのアプリケーションを起 動する別の関数を作ることです。例: DestroyFunc StartKedit AddToFunc StartKedit + I Exec exec kedit + I Wait kedit + I Next (kedit) Resize 100p 200p この方法の場合、以下の 3 つの問題があります: 1) そのアプリケーションを起動するのに関数 StartKedit を使う必要が あり、コマンドラインから起動した場合はこれは機能しません。 2) なんらかの理由でそのアプリケーションが起動しなかった場合、fvwm は Wait でそれを待つので、Ctrl-Alt-Esc を押す必要があります。 3) 複数の kedit ウィンドウがある場合、正しいものがリサイズされる保 証はありません。 しかし、この方法は良い点も一つあります。それは、あなたのコマンドを実 行する前に、やっておきたい任意の fvwm コマンドを可能にもできることで す。例えば、kedit ウィンドウをアイコン化して起動し、しかしそれをサブ ウィンドウには適用したくない場合は、以下のようにできます: DestroyFunc StartAppIconic AddToFunc StartAppIconic + I Style $0 StartIconic + I Exec exec $0 $1 + I Wait $0 + I Style $0 StartNormal + I UpdateStyles StartAppIconic kedit /tmp/my.txt 第 2 の方法は、FvwmEvent を利用することです。これは、上の方法の最初 の 2 つの問題 (fvwm 2.2 の場合)、または 3 つの問題全部 (fvwm 2.3 以 降の場合) を解決します。 以下の例は fvwm のバージョン 2.2.3+ でのものです (新しく生成したウィ ンドウ "My Window" が一つだけしかないと仮定してそのサイズを変更しま す): DestroyModuleConfig FvwmEvent* *FvwmEvent add_window SetGeometryForMyWindow DestroyFunc SetGeometryForMyWindow AddToFunc SetGeometryForMyWindow + I Next ("My Window") Move +10p +10p + I Next ("My Window") Resize 100p 200p AddToFunc StartFunction I Module FvwmEvent 以下の例は fvwm のバージョン 2.3.21 から 2.4.15 でのものです (バージ ョンアップを検討し、むしろ以下のバージョンを使用してください)。これ は、新しく生成した "My Window" という名前のウィンドウを移動し、そし てマウスポインタを名前に関係なく新しいウィンドウすべてに移動します: *FvwmEvent-NewWindow: Cmd *FvwmEvent-NewWindow: PassId *FvwmEvent-NewWindow: StartDelay 4 *FvwmEvent-NewWindow: add_window FuncFocusWindow DestroyFunc FuncFocusWindow AddToFunc FuncFocusWindow + I WindowId $0 ("My Window") Move 200p 100p + I WindowId $0 Focus + I WindowId $0 WarpToWindow AddToFunc StartFunction I FvwmEvent FvwmEvent-NewWindow そして最後に 2.5.7 以降と 2.4.16 以降で推奨されている設定です。これ は、新しく生成した "My Window" という名前のウィンドウを移動し、そし てマウスポインタを名前に関係なく新しいウィンドウすべてに移動します: *FvwmEvent-NewWindow: StartDelay 4 *FvwmEvent-NewWindow: add_window FuncFocusWindow DestroyFunc FuncFocusWindow AddToFunc FuncFocusWindow + I ThisWindow ("My Window") Move 200p 100p + I Focus + I WarpToWindow AddToFunc StartFunction I FvwmEvent FvwmEvent-NewWindow ---------------------------------------------------------------------- 3.19 ある特定のウィンドウ (またはすべてのウィンドウ) を閉じたときに デスクトップを切り替えたい/私の X アプリケーションへジャンプし たい/メニューをポップアップしたい/X アプリケーションを起動した いのですがどうしたらいいですか ? 答: まず理解するには、前の質問の回答を読んでください。 繰り返しになりますが、2 つの方針があります。ある種の状況では最初のも のはいいですが、後者はうまくないです: DestroyFunc StartKedit AddToFunc StartKedit + I Exec kedit; xmessage -name DummyWindow -g +10000+10000 "dummy" + I Wait DummyWindow + I Exec xmessage -timeout 10 "Sorry, you can't close kedit" + I StartKedit 第 2 の方法は、FvwmEvent を利用するものです: *FvwmEvent-OldWindow: Cmd *FvwmEvent-OldWindow: PassId *FvwmEvent-OldWindow: destroy_window FuncPopupMyMenu DestroyFunc FuncPopupMyMenu AddToFunc FuncPopupMyMenu # 任意のウィンドウが閉じたときにデスクトップ 0 へジャンプ + I GotoDesk 0 # "panel" を閉じたときにメニューをポップアップ + I WindowId $0 ("panel") Popup MenuFvwmRoot AddToFunc StartFunction I FvwmEvent FvwmEvent-OldWindow ---------------------------------------------------------------------- 3.20 うちではマルチヘッドの設定になっています (複数のスクリーンを X で 使用)。どうすればそれぞれのスクリーン用の異なる設定を fvwm に指示 できますか ? 答: fvwm は、マニュアルで説明されている通り、コマンドラインパラメータ -s を指定しない限り、見つけたすべてのスクリーン内に fvwm を実行しま す。実行されたすべての fvwm プロッセスは、デフォルトでは個々のスクリ ーンに対して同じ設定を使用しますが、このデフォルトの挙動を変更するに はいくつかの方法があります。 まず、あなたの設定ファイルを、あなたが 1 つのスクリーンしか持ってい ない場合のように書き、そしてスクリーンに固有の行を個別の設定ファイル に移動します。例えば、 をスクリーン番号として、それらを config. という名前にします。スクリーン番号は通常メインスク リーンが 0 番で、2 番目のが 1 になります。それらスクリーン専用のファ イルを $HOME/.fvwm ディレクトリか、$FVWM_USERDIR で設定した場所に置 き、そしてあなたの設定ファイルに以下の行を追加します: Read config.$[screen] $[screen] は、個々の fvwm が起動しているスクリーン番号に置き換えられ ます。 別の方法として、fvwm の古いバージョンでも使えますが、個々のスクリー ン用に分けたファイルを明示的に指定する方法があります。このためには、 あなたの .xinitrc (か .Xclients) の中で、個々のスクリーン用の fvwm を別々に起動します: fvwm -s -d :0.0 -f config-0 & fvwm -s -d :0.1 -f config-1 & fvwm -s -d :0.2 -f config-2 最後のコマンドには & をつけていないことに注意してください。望むなら config-* ファイルすべてに "Read config-common" という行を入れてもい いでしょう。 ---------------------------------------------------------------------- 3.21 FvwmTaskBar を覆わずにあるウィンドウを最大化するにはどうすればい いですか ? 答: Maximize の代わりに、"Maximize 100 -30p" を使ってください。30 は、 FvwmTaskBar の高さです。 または、fvwm 2.5.x 以降の EwmhBaseStruts を使用してください。 ---------------------------------------------------------------------- 3.22 最大化ウィンドウで私の close ボタンが押された状態に見えるのはなぜ でしょう ? タイトルバーの上にボタンがつかないウィンドウがあるのは なぜでしょう ? 答: fvwm は、そのボタンが何を行うか、そしてアプリケーションが特定のボタ ンを見せないように要求できるような仕組みを持っています。例えば、fvwm では、アイコン化ボタン (組み込みボタン 4、すなわち右から 2 番目のボ タン) を、一時的な (対話型) ウィンドウでは表示しないのは普通のことで す。 以下のコマンド: Style * DecorateTransient は、一時的なウィンドウにもタイトルやボタンをつけたいと fvwm に伝えま す。 Style * MwmFunctions は、fvwm に、特定のボタンを隠すためのアプリケーションヒントを受けつ けるよう fwm に指示します。 ButtonStyle 2 - Clear MWMDecorMin は、ボタン 2 が最小化 (アイコン化) 機能を実行することを意味します。 Mouse 0 2 A Iconify は、ボタン 2 上ではどのマウスボタンでもそのウィンドウをアイコン化さ せます。 ボタンは、Mouse か Key コマンドでそれになんらかの動作が割り 当てられない限り表示されません。 マニュアルで以下の項目を探してください: DecorateTransient, MwmDecorXXX, MwmFunctions Windows に似たボタンを使うには、ボタンヒントを以下のように再定義しま す: ButtonStyle 1 - Clear MWMDecorMenu ButtonStyle 2 - Clear ButtonStyle 4 - Clear MWMDecorMax ButtonStyle 6 - Clear MWMDecorMin 最後に、以下のコマンドはボタンのレリーフをその状態に従うようにします: Style * MWMButtons ---------------------------------------------------------------------- 3.23 透明なメニューを定義するにはどうしたらいいですか ? 答: まず、fvwm と FvwmTheme のマニュアルのカラーセットに関する部分を読 むことが手掛りになると思います。 我々は、ここでは半透明化ではなく、透明化について話をします。つまり、 その親ウィンドウ (例えばルートウィンドウ) の背景を、我々の「透明」に したい領域として使用することを意味しますが、我々の「透明」にするウィ ンドウの下にそれが常にあるとは限りません。しかし、本当の透明化 (つま り半透明にすること) も、一つパッチを当てて、そのパッチが追加する Colorset の新しいオプション Translucent を使えば可能になります。それ についてはここでは議論しませんが、そのパッチは以下で、README.patch とともに取得できます: http://fvwm-themes.sf.net/patch/ 透明化のカラーセットを定義するには、以下のようなものを使用します: Colorset 23 Transparent, fg rgb:ff/ff/c4, bg darkgray (23 の代わりに任意の正の他の数を使えます) 透明化のカラーセットを定義する他の方法は、Transparent の代わりに RootTransparent を使用することですが、ルートの背景画像を設定する良い ツール、たとえば "fvwm-root -r" や "Esetroto", "wmsetbg" 等を使うべ きだということを良く覚えておいてください。そうでないと RootTransparent は動作しないかもしれません: Colorset 23 RootTransparent, fg rgb:ff/ff/c4, bg darkcyan RootTransparent の良いところは、例えば以下のようにして、自動的に平均 背景色 (ハイライト/陰影で使用される) を計算することと、背景画像の見 える部分に効果的な陰影をつけることができることです: Colorset 23 RootTransparent, fg rgb:ff/ff/c4, bg average, \ Tint black 20, bgTint black 20 メモリが十分にあるなら、"RootTransparent buffer" を使うことで、メニ ュー、モジュール、装飾の透明化をスピードアップすることも可能です。 背景画像の設定に、"fvwm-root -r" か同等のツールを使っているかどうか よくわからない場合は、RootTransparent オプションを使わずに、 Transparent オプションを tint なしで使用し、背景色を明示的に設定して ください。 一度透明化カラーセットを定義し、それをメニューで以下のように使用して ください: MenuStyle * MenuColorset 23 カラーセットのより詳細な説明は、マニュアルを参照してください。 ---------------------------------------------------------------------- 3.24 透明なモジュールを定義するにはどうしたらいいですか ? 答: まず質問 3.23 を見て、透明なカラーセットを定義する方法を学んでくだ さい (そこにあるのと同じ透明カラーセットを再利用できますし、または個 別のモジュール用に別々なカラーセットを定義することもできます)。 それから、あなたが透明化したいモジュール固有のマニュアルページを読ん で、以下のような透明なカラーセットを指定してください: *FvwmPager: Colorset * 23 *FvwmButtons: Colorset 23 *FvwmIconMan: Colorset 23 Style FvwmPager ParentalRelativity Style FvwmButtons ParentalRelativity Style FvwmIconMan ParentalRelativity 脚注: オプション ParentalRelativity は必ずしも必要ではありません。こ れは、あなたが RootTransparent を使う場合、あるいはモジュールをその 親ウィンドウの中へは決して移動しようと思わない場合、あるいはそのモジ ュールを swallow する場合には必要ではありません。それは、FvwmButtons が swallow した fvwm モジュールに自動的に ParentalRelativity を追加 するからです。それら以外の場合は、透明化ウィンドウには Style ParentalRelativity が必要ですが、それをすべてのウィンドウに行うのは 無駄です。 注意: 以前は、オプション "Pixmap none" が透明化の定義に使わてていま したが、これは現在は非推奨で、代わりにカラーセットを使用してください。 FvwmPager (か FvwmIconMan) を FvwmButtons 内に swallow する場合、あ なたがどうしたいかによって、FvwmPager と FvwmButtons の両方を透明に なるようにも設定できますし、またはその内一方のみを透明化することも可 能です。 ---------------------------------------------------------------------- 3.25 透明な装飾を定義するにはどうしたらいいですか ? 答: まず質問 3.23 を見て、透明なカラーセットを定義する方法を学んでくだ さい。透明な装飾には、RootTransparent の方法のみが機能します。これ は基本的に、背景として JPG/GIF/TIFF 形式の画像を使う場合は "wmsetbg" や "Esetroot" を、XPM/PNG 画像を使う場合は "fvwm-root -r" などの外部 ユーティリティを使わなければいけないことを意味します。 透明な装飾を使うには、以下のような設定を使用してください: AddToFunc StartFunction + I Exec fvwm-root -r $HOME/wallpapers/sea.png Colorset 41 RootTransparent buffer, fg white, bg average, \ Tint cyan 15, bgTint cyan 15 # tint は必須ではない Colorset 42 RootTransparent buffer, fg white, bg average, \ Tint red 15, bgTint red 15 # tint は必須ではない Style * Colorset 41, HilightColorset 42 # fg と bg で使用 BorderStyle Inactive Colorset 42 -- flat BorderStyle Active Colorset 41 -- flat TitleStyle AllInactive Colorset 42 -- flat TitleStyle AllActive Colorset 41 -- flat ButtonStyle All -- UseTitleStyle flat 部分的に透明な装飾を定義することも可能です。それは、 "AddTitleStyle Colorset NN PP" を追加することで可能ですが、単に "TitleStyle Colorset NN PP" でも結構です。マニュアルを参照してくださ い。または、fvwm-themes を検索し、あなたが行いたいものと似たウィンド ウの装飾をいずれかのテーマが提供していないか調べてみるといいでしょう。 ---------------------------------------------------------------------- 3.26 アプリケーションも透明化できますか ? 答: これは、本当は fvwm に関連する質問ではなく、透明化に対応した X アプ リケーションをあなたが探して、そのマニュアルを読むべきです。 アプリケーションによっては、背景画像を 1 つ、または他の方法で設定す る必要があるかもしれません。通常は、fvwm-root (パラメータ "-r" を使 える), Esetroot, wmsetbg などのユーティリティを使う必要があるでしょ う。 透明化が可能なように設定できる端末エミュレータも広く存在します。例え ば Eterm, aterm, gnome-terminal など。以下はコマンドラインの例: aterm -ls -sh 70 -bg black -fg white -tr +sb -fn 7x14 -fb 7x14bold gkrellm, xmms のように透明なテーマを持つアプリケーションもあります。 root-tail のように背景画像に文字を表示できるアプリケーションもありま す。 ここに上げた以外の透明化をサポートするアプリケーションは他にもたくさ んあります。FreshMeat (http://freshmeat.net/) を探してみてください。 ---------------------------------------------------------------------- 3.27 どうすれば、emacs のような fvwm のマルチキーストローク操作を定義 できますか ? 答: emacs では、キーを前置キーとして設定し、その前置キーを一度押すとそ れに続くキーに特別な意味を持たせられるようになっています。例えば、 Ctrl-a は通常行頭への移動ですが、Ctrl-c Ctrl-a で全く異なる別なこと を行えます。fvwm で同じことをやるのに少なくとも 2 つの方法があります。 前置キーを使う最も簡単な方法は、まずメニューを呼び出し、2 番目のキー としてそこに割り当てたメニューホットキーを使用する方法です。メニュー のホットキーには修飾キーを入れることができないので、このマルチキース トロークでは 2 番目のキーは通常のキーしか使えません。 2 つ目の方法は、2 番目のキーとして任意のキーが使えますが、2.5.x 以降 でしか機能しません。 その方法は、最初のキーで一つの関数を呼び出し、それが 2 番目のキーの アクションを短かい時間定義し、その後それを削除します: DestroyFunc Ctrl-Alt-F-Action AddToFunc Ctrl-Alt-F-Action + I Key X A A Exec xterm + I Key C A A Exec xcalc # オプションで入力ウィンドウをここにポップアップさせる + I Schedule 5000 Key X A A - + I Schedule 5000 Key C A A - # Ctrl-Alt-F を押し、そして "x" か "c" を押す Key F A CM Ctrl-Alt-F-Action これは、2 番目のキーを 5 秒以内で押します。そうでなければ 2 番目のキ ーの割り当ては削除します。 fvwm-2.5.24 以降 (SendToModule を使用) でのより良い解: SendToModule buttons-alias PressButton A 1 これは、FvwmButtons のインスタンスである "button-alias" に、マウスボ タン 1 でそのボタンがクリックされた場合にボタン "A" が持つアクション を呼び出すコマンドを送ります。例: *button-alias: (Id A, Title "My Button", Action (Mouse 1) \ `Exec exec xcalc`) ---------------------------------------------------------------------- 3.28 あるウィンドウからすべての装飾を取り除くには ? 答: IRC 上でたくさんこの質問を見ますが、多くの回答は以下をやれ/試せとい うものです。 Style * !Title, BorderWidth 0 これは必ずうまくいくとは限りません。それは、多くの人が、境界の上に あるハンドルのことを考慮し忘れているからです。あるウィンドウが定義 済みハンドルを持つ場合、それは、特に "BorderWidth" オプションなどの 任意の境界設定を実際に上書きしてしまいます。しかし Handle 用の同等 物があるので、あるウィンドウから装飾を取り除く正しい方法は以下のよ うになります: Style * !Title, !Borders, !Handles ハンドルを持つウィンドウの BorderWidth をセットするには: Style * HandleWidth 5 ---------------------------------------------------------------------- 3.29 設定の変更を直ちに行う最もいい方法は ? 答: ありがちですが、ある人が fvwm への設定の変更を行いたい場合、それを .fvwm2rc ファイル (またはより最近の版では .fvwm/.fvwm2rc や ~/.fvwm/config) に追加し、その後 fvwm を再起動するのが一つの方法で す。しかし、これは、特に Colorset の定義が再宣言されるなどのメモリ に関する問題があります。 それよりも良い方法は FvwmConsole を使うことで、これは fvwm の設定を 直ちに変更します。それによりその変更が正しいと確認できてから、その 変更ををあなたの fvwm の設定ファイルに追加し、次回の fvwm の読み込 みでそれらが有効になるようにする、という方法を取れば、fvwm を再起動 する回数を減らすことができます。 ---------------------------------------------------------------------- 3.30 あるウィンドウの階層を切り替えるには ? 答: 通常これによりやりたいことは、あるウィンドウを一時的に最全面に置き、 そしてそれを元いた階層に戻すことだと思います。 これは、以下のような関数によって最も良く行えます: DestroyFunc ToggleLayer AddToFunc ToggleLayer + I ThisWindow (Layer 6) Layer + I TestRc (NoMatch) Layer 0 6 この関数は、最初に切り替えたいウィンドウが階層 6 (今はその階層が style StaysOnTop 用であると仮定します。詳細は DefaultLayers コマン ドの項を参照) にいるかどうかをチェックしますが、もしそうならば、そ れをそれが前にいた階層へ移動します。 それ以外の、そうしなかった場合 (質問のウィンドウがそれ以外の階層に いたという理由で) は、そのウィンドウは階層 6 に置かれます。 この関数は、Pick コマンドによりあるキー/マウスボタンへ、あるいは タイトルバーのボタンへの割り当てなどが通常の方法で行えます。 ====================================================================== 4 - モジュール ====================================================================== 4.1 FvwmButtons (や 1.xx の GoodStuff) を使っていると、ボタンが時々押 されたままの状態になって、逆にそうならないときもありますが、それは どうしてですか ? 答: FvwmButtons のマニュアルより: command が fvwm の Exec コマンドである場合、コマンドの引用 符で囲まれた部分が、その名前やクラスに一致するようなウィン ドウに出会うまで、そのボタンは、押されたままになります。 これは、ユーザが要求した動作がこれから実行されるんだという ことを、見た目の反応としてユーザに提供することを目的として います。引用符で囲まれた部分が空文字列である場合、ボタンは すぐに前に出てきます。それが「押し込まれた」状態であっても、 ユーザがボタンを押し続けることでそのコマンドを再度実行でき ることに注意してください。 ---------------------------------------------------------------------- 4.2 FvwmButtons でアプリケーションを swallow する際、それにボタン押し で動作を割り当てることは可能ですか ? 例えば、xload を swallow し、 ボタン押しで xterm をポップアップさせる、あるいは、xbiff を swallow し、ボタン押しでメッセージの一覧を表示させたりしたいのです。 答: ええ、2.5.0 のアルファリリース以降では可能です。それ以前のリリース に関しては、以下を読んでください。 ボタン押しは普通 swallow したアプリケーションを通過してしまうのです が、ボタンにタイトルをつければ動作をそれに割り当てられます。以下は、 誰かがメーリングリストに一度投稿した例です: *FvwmButtons(1x4, \ Title 'System Info', \ Swallow "xload" 'Exec xload', \ Action(Mouse 1) 'Exec xosview -cua0 -net 200 -ul -l -geometry 325x325', \ Action(Mouse 2) 'Exec xcpustate -interval 1 -bg "#a4978e" -fg black', \ Action(Mouse 3) 'Exec rxvt -fg "khaki" -bg "dark olive green" \ -fat -n top -T Top -7 -e top' ) xbiff に関しても同様のことを思いつくでしょう (テストはまだ): *FvwmButtons(1x2, \ Title 'Check Mail' Swallow "xbiff" 'Exec xbiff', \ Action(Mouse 1) 'Exec from | xmessage -file -' ) さらに、他のボタン (例えば Mouse 3) をメールプログラムの起動に割り当 てることもできます。 将来時期がくれば、おそらくこれを試して修正することで、実際にボタン押 しをアプリケーション自身に割り当てられるようにするかもしれません。 ---------------------------------------------------------------------- 4.3 FvwmM4/Cpp モジュールでファイルを前処理しようとしているのですが、 どうも変です。 答: ええと、どういうものか想像してみます。InitFunction のようなものが呼 ばれなかったとか、fvwm の起動前に動いていたウィンドウが境界や Style オプションの設定などを取得できない、とかでしょうか。 それらすべての理由は、FvwmM4 がモジュールだという事実によります。 fvwm は、起動処理がすべて終わり、そして InitFunction の実行も試みた 「後」の、ソースコードのメインループにたどりつくまで、モジュールから 返ってくるコマンドは見ていません。 FvwmM4/Cpp の同期的な実行を強制させるには、以下のようにします: ModuleSynchronous FvwmM4/Cpp -lock filename 詳細は、マニュアルを参照してください。 ---------------------------------------------------------------------- 4.4 FvwmFileMgr モジュールの話を聞いたんですがそれはどこにありますか ? 答: FvwmFileMgr モジュールはなくなりました。それは、ファイルマネージャ はウィンドウマネージャに統合する必要はありませんし、xfm のように良い ものがあるからです。代わりにそれらを使うことをお勧めします (ftp.x.org、あるいは好きなミラーサイトから持ってこれます)。 ---------------------------------------------------------------------- 4.5 fvwm 1.xx で使っていた GoodStuff が 2.xx にはないようですがどうす ればいいですか ? 答: GoodStuff は FvwmButtons という名前に代わりました。同じモジュールで 名前だけ新しくなっています (これは他のモジュールの名前付けのやり方に 合っています)。 ---------------------------------------------------------------------- 4.6 FvwmButtons 内のボタンの近くのデフォルトの位置ではなくスクリーン上 のどこか別なところにサブパネルを置きたいのですが、可能ですか ? 答: ええ、けど現在のパネルの実装ではないですが。詳しい方法については、 7.12 の質問をご覧ください。 ---------------------------------------------------------------------- 4.7 どうすれば FvwmButton でキーボードショートカットでサブパネルを開い たりボタンを押したりできますか ? 答: FvwmButtons それ自身はキーボードショートカットをサポートしていませ ん。fvwm のバージョン 2.3.24 より FvwmButtons ウィンドウ内でのクリッ クのシミュレーションとして FakeClick コマンドが使えます: fvwm-2.3.24 以降: DestroyFunc press_fvwmbuttons AddToFunc press_fvwmbuttons + I Next (FvwmButtons, CirculateHit) WarpToWindow $1 $2 + I FakeClick depth 2 press $0 release $0 fvwm-2.5.1 以降 (ポインターを元の位置に戻す): DestroyFunc press_fvwmbuttons AddToFunc press_fvwmbuttons + I SetEnv pointer_x $[pointer.x] + I SetEnv pointer_y $[pointer.y] + I Next (FvwmButtons, CirculateHit) WarpToWindow $1 $2 + I FakeClick depth 2 press $0 release $0 + I WindowId root WarpToWindow $[pointer_x]p $[pointer_y]p この関数ではポインタを押すためのボタンに移動し、クリックをシミュレー ションします。以下のように呼び出してください: press_fvwmbuttons btn xoff yoff ^ ^ ^ | | |___ ボタンの y 座標 | |________ ボタンの x 座標 |_____________ 押すボタン番号 例えば、パネルのボタンが FvwmButtons の 30% の幅の位置、10% の高さの 位置にあり、マウスボタン 1 の動作をシミュレートしたい場合は、以下を 実行します。 press_fvwmbuttons 1 30 10 これをキーに割り当てることができます。例: Key f1 a n press_fvwmbuttons 1 30 10 この解は、マウスが同時に移動した場合はうまく機能しないことに注意して ください。 fvwm-2.5.24 以降 (SendToModule を使用) のより良い解: SendToModule buttons-alias PressButton A 1 これは、FvwmButtons のインスタンスである "button-alias" に、マウスボ タン 1 でそのボタンがクリックされた場合にボタン "A" が持つアクション を呼び出すコマンドを送ります。例: *button-alias: (Id A, Title "My Button", Action (Mouse 1) \ `Exec exec xcalc`) ====================================================================== 5 - 開発、既知の問題、バグレポート ====================================================================== 5.1 fvwm に XYZ というかっこいい機能があるといいと思いますが、そう思い ませんか ? そのためのパッチもありますが当ててもらえませんか ? 答: パッチを書こうという計画がある場合、「どうか」まず最初に最新の開発 リリースを我々の Web サイトから取得するか、またはよりこちらの方がい いのですが、http://fvwm.org/documentation/dev_cvs.php に書かれている ように CVS を使用してください。fvwm-workers メーリングリストに連絡す るのもいいと思います。古いリリース版へのパッチだと、全く意味がないこ とがあります。例えば、その修正はすでに入っているとか、既にその機能が 追加/削除されているとか、あなたがパッチを作成したコードが単に現在は かなり変更されてしまっているとか。あなた自身と我々に取ってためになる ことを行ってください。そうでないと、せっかくのあなたの偉大な仕事が無 駄になってしまうかもしれません。 多くの人が常に新しい機能を要求し、提案し続けています (実際そのうち の多くがすばらしいアイデアで、現在の機能の多くがそこから来ています)。 例えば最も良く来るものの一つが、Windows 95 風の機能です (これが最初 に書かれて以来、いくつかの見た目に影響を与える機能を経由してその特有 の機能が実際に間接的に実装されてきました)。 これに関して説明しておきたいと思います。FVWM は、小さく、速く、強力 で柔軟なものと見なされているので、ときには犠牲にしなければならないも のもあります。これを救ってくれるのがモジュール機能です。全員が欲しが ったり必要であったりするわけではない機能の多くは、本体のモジュールに 入れることで、いらないと思う人達にも資源を浪費させてしまうようなこと をしてはいけないのです。 よって、あなたに提案 (またはパッチ) がある場合、もしそれを本体のモジ ュールに入れるべきと思うならば、できるだけそれを小さく、そして一般的 な形にする方法を考えてください。 パッチを書こうという計画がある場合、まず fvwm-workers メーリングリス トに連絡してください。我々はときどきソースを破壊的な方法で変更してい ますので、そのような変更の前の版へのパッチを作成してしまうと、そのよ うなパッチを統合するのには皆ものすごく時間がかかってしまい、ほとんど の時間は現在のコードに対するパッチに修正するために、我々があなたに質 問する時間になってしまいます。 我々は、公式版に要求された機能を追加したり、あるいは投稿されたパッチ を適用したりすることを、一切確約しないことを良く覚えておいてください。 しかし、これによってその投稿を思い留まらないでください。我々は、たと え提案された機能を決して fvwm に入れるつもりがない場合であっても、新 しいアイデアを得ることは好きですし、与えられた機能を他人がどのように 実装するのかを見ることには常に興味があります。また、投稿されたパッチ を、書式や機能などを変更して再実装する可能性もあります。そういうこと をされても怒らないでください。我々は悪気があってやっているわけではあ りませんし、一般的に我々の行為にはそれなりの良い理由 (少なくとも我々 の考え方では) があってやっています。 ---------------------------------------------------------------------- 5.2 どうやってパッチを作成/投稿/適用したらいいですか ? 答: まず最初に、Q5.1 の回答の最初の節を読んでください。 あなたがパッチを投稿するときは、いつでも、ChangeLog ファイル、および 必要なら NEWS や AUTHORS ファイルに適切なエントリを追加してください。 ChangeLog は、変更されたファイルや関数「すべて」を、変更の詳細に関す る有益な説明とともに表に載せています。NEWS ファイルは、バグの修正を 含む、ユーザに見える変更すべてについて言及しています。もしパッチが新 しい機能を含んでいる場合は、マニュアルにそのセクションを書くことも忘 れないでください。 fvwm のソースに関するより詳細な作業手順が、CVS か tar アーカイブファ イル内にある doc/DEVELOPERS と doc/CONVENTIONS のファイルに書かれて います。 CVS ソースに対してパッチを作成するには (こちらの方が望ましい) - 1) 最新のソースと衝突を作らないように "cvs update -AdP" を実行 2) ChangeLog ファイル (下記参照) と必要ならすべてのマニュアルの の修正を忘れないように 3) ベースの cvs ディレクトリで以下を実行: cvs diff -u >myfeature.patch リリース版のソースに対してパッチを作成するには - 1) 元のソースファイルを、同じ名前に追加の拡張子 .orig (かそれに 似たもの) をつけた名前でコピーしてください。 2) ChangeLog ファイルの更新。あなたが (x)emacs を使うなら、あな たが変更した関数の中にカーソルを移動して -x 4 a を打っ てください。それにより空の ChangeLog 項目が正しいファイル (いくつかの ChangeLog ファイルがある場合) に生成されますので あなたが行なったことの説明を追加します。これを、関数やファイ ル (関数の外の変更の場合) を変更する度に行います。AUTHORS と NEWS ファイルも適切に更新します。ChangeLog 項目は時間をかけ て追加してください。それにより我々の作業がとても楽になります。 3) その後に -c (コンテキスト形式) か -u (ユニファイド形式) スイ ッチをつけてそのファイルの組に .orig のファイルの方を「先」 にして diff コマンドを実行します。出力が小さいので、ユニファ イド形式の方が好きですが、そちらの方が読みにくい場合もありま す (それに、ユニファイド形式をサポートしていない版の diff も あります) ので、コンテキスト形式の差分でもユニファイド形式の 差分でもどちらでも結構です (しかし、「単純な」差分はやめてく ださい)。 例: cp fvwm.c fvwm.c.orig ; <編集> ; diff -u fvwm.c.orig fvwm.c パッチを投稿するには - それを fvwm-workers メーリングリスト に メールしてください。 パッチが大きい場合は、圧縮すべきです (できれば gzip で)。それで も 25K バイトを越える場合は、ある Web ページに置いてその URL を メーリングリストへメールで通知するか、まず fvwm-workers メーリ ングリストで聞いてみてください。 Q5.1 の回答もちゃんと読んでください。 ChangeLog と付属文書も忘れないでください。 パッチを適用するには - 'patch' プログラムのコピーを、ftp://ftp.gnu.org/gnu/patch など の適当なところから取得して、それをコンパイルして、その説明書に 従ってください (普通は、単に適切なディレクトリ内に cd して、 'patch < パッチファイル' を実行するだけです)。 ---------------------------------------------------------------------- 5.3 バグレポートはどうやって送ればいいですか ? 答: XMMS に関する「バグ」の報告は、頼みますから fvwm メーリングリストに は送らず、代わりに XMMS 開発者に送ってください。 あなたの問題に対する「詳細な説明」を書いてください。単に「私のウィン ドウの振舞いがおかしい」とか「バグをみつけました」ではなく詳細をお願 いします: - バグリポートの見本が欲しければ、fvwm についている "fvwm-bug" シェルスクリプトを見てください。 - 問題をあなたが可能な限り詳細に説明してください。できれば容易 にその問題を再現する方法の提示も合わせて。 - 可能ならば、以下による情報も入れてください: xwininfo (できればオプション -all もつけて) xprop FvwmIdent xdpyinfo (できれば) - あなたが使用している fvwm の正確なバージョン - あなたが使用している OS とそのバージョン - あなたが使用している X11 のバージョンと、MIT のサーバかそれと もベンダ固有のサーバか (例えば SunOS の OpenWindow X サーバな ど) - どのように fvwm をコンパイルしたか (コンパイラ、そのバージョ ン、オプション等々) - あなたの設定ファイル内に問題に関係しそうなどのような設定があ るか これは fvwm-workers メーリングリストに送るべきです。 ---------------------------------------------------------------------- 5.4 fvwm では期待通りにならず [他のウィンドウマネージャ] ではうまくい くウィンドウがある、または不規則なバグが起きるのですが、どうしたら いいですか ? 答: まず、あなたの初期設定ファイルと .Xdefaults をチェックし、そこにパ ッと見てわかるようなものがその問題を引き起こしていないかどうかを確認 してください。次に、どうーーーーか、付属の FAQ, BUGS, TODO, マニュア ルページも確認してください。最後に公式 WWW ページと、そこに保存され ているメーリングリスト保管物 (検索機能もついています) もチェックして ください。 もしその問題を見分けることができていないなら、その問題をバグとして (Q5.3 参照) を報告してください。 ---------------------------------------------------------------------- 5.5 ClickToFocus やマウスの割り当てをなぜ NumLock と CapsLock と ScrollLock が邪魔するのですか ? 答: それはそれらが修飾キーとして扱われるからです。IgnoreModifiers コマ ンドを使って個々の修飾キーの割り当てをオフにできます。XFree86 と fvwm 2.4.0 以上では、正しくは以下のようにします。 IgnoreModifiers L25 修飾キーを手動で変更した場合、または別の X サーバを使っている場合、 コマンド 'xmodmap' でどの修飾キーがあなたがオフにしたいキーに対応し ているのかを見つけ出してください。 あなたの CPU、ネットワークインターフェース、あなたの設定ファイル内の Key, Mouse, PointerKey コマンドの数、あなたが無効にしたい修飾キーの 数などに依存して、このコマンドはたくさんの余分のネットワークトラフィ ックを生成します。稲妻のように素早いマシンを持っていないか、割り当て が少なくはない場合は、3 つ以上の修飾キーを無視すべきではないでしょう。 もし問題がなければスクロールロックも無視しないでください。 この問題を解決する良い方法は、あなたの X サーバのキーボード配列を変 更することです。以下のコマンド xmodmap -e "clear Lock" xmodmap -e "clear Mod2" xmodmap -e "clear Mod5" は、CapsLock, NumLock, ScrollLock をキーボード配列から削除するので、 その後はこれらのキーを押しても何も起きなくなります。これらを再び追加 するには、以下のようにしてください: xmodmap -e "add Lock = Caps_Lock" xmodmap -e "add Mod2 = Num_Lock" xmodmap -e "add Mod5 = Scroll_Lock" fvwm は xmodmap が作成する変更を利用するよう再起動しなければいけませ んが、詳細は xmodmap コマンドのマニュアルを参照してください。この方 法であなたのキーマップの CapsLock キーを無効にした場合、以下の無視す る修飾キーの一覧から Lock 修飾キーを削除することで、fvwm を少しスピ ードアップすることができます: IgnoreModifiers 我々は皆、時折 NumLock か ScrollLock を押してしまうので、主要なキー の割り当てをいくつか、任意の修飾キー付きでもちゃんと動作するように再 定義することは意味があります。すなわち、あなたの設定で、以下のような もの: Mouse 1 R N Menu MenuFvwmRoot を、以下のように置き換えることを検討してみてください: Mouse 1 R A Menu MenuFvwmRoot ---------------------------------------------------------------------- 5.6 グラデーション背景のメニューがちらついたり、またはとても遅いです。 答: ちらつきは、サブメニューをポップアップ/ダウンする度に fvwm がたえず メニューを再描画して引き起こしています。これを救う一つの方法は、X サ ーバのバッキングストアを使うことです (XFree86 はバッキングストアをサ ポートしています。他のサーバについては知りませんが、真っ当な X サー バはどれもサポートしているだろうと思います)。X サーバを -bs オプショ ンつきで起動していれば、それを削除してください。そうしていなければ、 -wm オプションを試してみてください。例えば: startx -- -wm この例はあなたのシステムに合わせる必要があります (例えば X の起動に xinit を使っている場合など)。 もしこれでもだめなら、あなたの X サーバがバッキングストアをサポート していないか、またはシステムリソースが限界にきているかのいずれかでし ょう。サブメニューが親メニューに重なっていないか確認してください: MenuStyle <スタイル名> PopupOffset 1 100 残念ながら、これは fvwm メニュースタイルでは正しく動作しません。 速さの問題も、上の両方の提案が助けになると思います。他に試してみるこ ととしては、アクティブメニュー項目の前景色以外のハイライト化をオフに することでしょうか。fvwm/config のメニュースタイルの定義の後に、以下 の行を入れてください: MenuStyle <スタイル名> Hilight3DOff, HilightBackOff MenuStyle <スタイル名> ActiveFore <好きな色> ---------------------------------------------------------------------- 5.7 StartIconic スタイルが Netscape などで動かないのはなぜ ? 答: そのアプリケーションがそれを許していないからです。以下は Netscape についてのみの話です。Netscape が起動すると、fvwm はそのメインウィン ドウをアイコン状態にしますが、Netscape は直ちに他の MapRequest を発 行して、ウィンドウマネージャが ICCCM 規則に従ってアイコンからの復帰 を行わなければいけないようにしているのです。(しかし、Netscape はコマ ンドラインフラグ -iconic をつけて呼び出せば、起動時にアイコン化でき るはずです。) ---------------------------------------------------------------------- 5.8 fvwm の出力 (例えばエラー) をどうすれば捕まえられますか ? エラーは標準エラー出力に出力されます。標準エラー出力は、fvwm の起動 時に "fvwm 2> fvwm-errors" のようにすればファイルにリダイレクトでき ます。xdm で起動する X セッションでは、エラーをたいてい ".xsession-errors" という名前のファイルにリダイレクトしています。 その他には、FvwmConsole や "FvwmForm FvwmForm-Talk" モジュールでもエ ラーメッセージを表示できるでしょう。 ---------------------------------------------------------------------- 5.9 あるプログラムを fvwm 上で実行したら、BadAccess のような X11 エラ ーで死んでしまいました。MWM や OLWM 上では同じプログラムがちゃんと 動作するのにこれはどういうことでしょうか ? 答: 普通は以下のようなエラーメッセージでしょう: X Error of failed request: BadAccess (attempt to access private resource denied) Major opcode of failed request: 28 (X_GrabButton) Serial number of failed request: 1595 Current serial number in output stream: 1596 ええと、これはキーかマウスボタンの割り当てに衝突があることを言ってい るものなんです。あなたの設定に、そのプログラムが動作のために本当に割 り当てたいキーかマウスボタンの割り当てがあり、しかし fvwm が既にそれ を行っているために割り当てられないというわけです (あなたの以前のウィ ンドウマネージャ用の初期設定ファイルではそうしていなかっただろうと思 います)。どのキー割り当てが怒らせているのかを見つけだし、そしてそれ を fvwm/config から、あるいは一時的に "FvwmForm FvwmForm-Talk" を用 いて fvwm の割り当てから削除してください (Key と Mouse コマンドに関 してはマニュアルを参照してください)。 ---------------------------------------------------------------------- 5.10 インストールの度に現在動いている fvwm のセッションが死んでしまう のはなぜ ? 答: 多くの OS は、ディスクイメージを使ってプログラムをメモリからスワッ プしますが、それを上書きした場合には、あなたがそれを再起動する前に現 在のものが何かをメモリに書き戻そうとして、結果としてコアダンプします。 これを避けるには、古い実行バイナリの名前を変えるか、それを他のディレ クトリに移動することです。'mv' コマンドは i-ノードを保存するのでコア ダンプしなくなりますが、その後 fvwm を再起動するとそれは新しいコピー の方を取り上げます。 ---------------------------------------------------------------------- 5.11 fvwm を再起動すると、あるウィンドウかアイコンが他のすべてのウィン ドウの上に出て、それをどんなメニューでも下げられなくなります。そ の一例は KFM (KDE ファイルマネージャ) のショートカットですが、ど うしたらいいでしょう ? 答: いわゆる「リダイレクト無効」(override redirect) と呼ばれるウィンド ウを使うアプリケーションがありますが、ウィンドウマネージャはそのよう なウィンドウを管理しません (できません)。ICCCM で定義される規則に従 えば、本来はそのようなウィンドウは短い間しか表示できないのですが、 KFM や他のそのようなアプリケーションはこの規則を無視し、永続的な「リ ダイレクト無効」ウィンドウ (例えば KFM ショートカット) を使っている のでしょう。Fvwm は、再起動時、そしてそのようなウィンドウの下にある fvwm が管理するウィンドウの配置時には、簡単にはそれらのウィンドウの 検出はできません。 しかし、fvwm のバージョン 2.3.8 からは、それを助けるコマンドがありま すが、それは「リダイレクト無効」ウィンドウを使用する他のアプリケーシ ョンにトラブルを起こすかもしれません。KFM は規則に違反していて、それ らのアプリケーションも別な方法で違反しているでしょうから、我々は何の 確約もできません。 さて、そのコマンドですが、以下の行をあなたの設定ファイルのどこでもい いので入れてください: BugOpts RaiseOverUnmanaged on ---------------------------------------------------------------------- 5.12 StartsOnPage スタイルが動作しません。なぜですか ? 答: 多くのアプリケーションは、自身が表れたい特定の位置 (いわゆる「プロ グラム固有位置」) を要求します。fvwm がそれを無視するよう明示的に指 示されていなければ、プログラム固有位置が StartsOnPage スタイルに優先 します。あなたの設定ファイルに以下の行を入れてみてください: Style * NoPPosition ---------------------------------------------------------------------- 5.13 fvwm を再起動したときに起動しないモジュールがあります。 答: 以下のエラーメッセージがコンソールに出ていると思います: [fvwm][PositiveWrite]: <> Failed to read descriptor: - data available=N - terminate signal=N これは、fvwm がそのようなモジュールの一つからの返答を待つのをあきら め、そしてそれを殺した (kill) ことを意味します。そのタイムアウトの長 さは設定パラメータにあります。あなたの設定ファイルに ModuleTimeout 10 を追加してみてください。単位は秒で、デフォルトの値は 5 秒です。 この問題は遅いマシンか、(たくさんウィンドウを開いている) 負荷が高い 状態でのみ起こります。 ---------------------------------------------------------------------- 5.14 Rational Rose を動かしているのですが、fvwm はそのウィンドウを無視 してしまいます。 答: この問題は、言われているもの以外のアプリケーションの上でも起こりま す。 Raymond Toy が報告している通り、その症状は以下の通りです: fvwm を長い間使っているが、いつもちゃんと動いています。しかし、 Solaris で Rational Rose を使い始めたら、fvwm が完全に混乱し始めま した。 o fvwm は Rose ウィンドウの周りのどのフレームも、(明示的に書かない ようにしたもの以外の) 他のウィンドウにするような形に描いてくれま せん。 o Rose ウィンドウは常に一番手前にいて、他のウィンドウを Rose ウィ ンドウの手前に持ってくるようにできません。 o fvwm のウィンドウ特定モジュール (FvwmIdent) は何も表示しません。 ウィンドウ情報を表示するウィンドウもポップアップしません。 o フォーカスがときどき消えてしまいます (FocusFollowsMouse を使って います)。フォーカスを戻すには一度マウスをウィンドウの外に移動し また戻す必要があります。フォーカスを戻すのにマウスクリックしなけ ればいけなくなるときもあります。 イライラすることに、これらはすべて CDE と dtwm の上ではちゃんと動 くようです。dtwm に切り替えないといけないようにはしたくないので、 何かヒント、または fvwm がこのウィンドウを理解できるようにすること を紹介するサイトへのリンクをどうかお願いいたします。 以下は我々が見つけました: Rational Rose は、MS Windows アプリケーションを UNIX 上で動くよう再 コンパイルする Mainsoft のソフトを使用しています。 UNIX ウィンドウマネージャに関連する、Mainsoft の情報のページが 2 つ あります: http://www.mainsoft.com/kb_mainwin/kbmw0027.html http://dev.mainsoft.com/Default.aspx?tabid=58 [KBMW0034] それらのページは、そのアプリケーションの起動前に export MWWM=allwm または export MWWM=MWM することを提案しています。前者のページは現在 はありませんが、http://web.archive.org で見つけられます。 Raymond からの報告です: これはうまく動きました。MWWM=allwm と設定したら、Rose は WM が境界を描く通常の X アプリケーションと同様になりまし た。MWWM=MWM とした場合は、WM はメインウィンドウには境界 は描かず、Rose 自身が境界を描きます (MWM Decor ヒントを fvwm に考慮させています)。(上の情報の Web ページが述べて いる通りこれは間違いではありません。) dtwm では Rose が どう見えたか覚えていませんが、多分それは MWWM=MWM の場合 にすべてがすごく近いと思います。 次に Klaus Zeitler が、Rational Rose の公式の起動スクリプトが明示的 に ALLWM を空に設定していることを報告しています。これは、個々のユー ザがこの変数を設定することをより難しくしています。可能ならば、そのス クリプト自身を直接修正するか、それができなければ、そのスクリプトをど こかあなたが修正してそれを実行できる場所へコピーするかすればいいでし ょう。 ---------------------------------------------------------------------- 5.15 私のモジュール用に WindowListSkip スタイルを使っても、それがまだ FvwmIconMan, FvwmWinList などに表示されています。 答: あなたの設定ファイル内に *FvwmIconMan: UseWinList true があることを確認してください。それが助けにならなければ、あなたが使用 しているモジュールが fvwm の実行ファイルに合っていない可能性がありま す。すべてを再コンパイルし、再インストールしてください。そうすれば問 題はなくなるでしょう。 ---------------------------------------------------------------------- 5.16 あるアプリケーションを最大化すると、あるときはその端に隙間ができ るのに、あるときはそうなりません。どうなっているのでしょう ? 答: ICCCM 仕様では、例えばアスペクト比 (PAspect) やサイズ変更の増分 (PResizeInc) のような、本来はウィンドウマネージャが管理するような属 性をアプリケーションが指定することも許可しています。もちろん、これら の属性はあなたのデストップサイズ (あるいは ewmh struts; サイズに関す る拡張ウィンドウマネージャヒント情報) に完全には一致しないこともあり 得ますので、もしそうであれば隙間ができてしまうわけです。 一般的には、アプリケーションがそうするにはそれなりの理由があるわけで すが (例えば、ターミナルウィンドウの表示 1 列だけというのは好まない でしょう)、以下のようにすれば fvwm にそのヒント情報を無視させること ができます: Style * ResizeHintOverride ====================================================================== 6 - その他 ====================================================================== 6.1 デスクトップ (DESK) とページ (PAGE) とスクリーン (SCREEN) の厳密な 違いは ? 答: 我々の命名規則が時々混乱の元になりますので、問題を議論したりする際 に、統一した意味を確認することはよいことです。fvwm のどの機能を指し ているのかを明らかにしてみます: 「fvwm は複数の重ならない『デスクト ップ』を持ち、それぞれのデスクトップは M x N 個の『ページ』を持ち、 それぞれのページのサイズは物理的な『スクリーン』になります。」物理的 なスクリーンは、現在のデスクトップのページの一つを見渡す窓 (ビューポ ート) として作用します。以下は説明用の図です (FvwmPager モジュール参 照): Desk 0 Desk 1 +----------+----------+ +----------+----------+ | | | | | | | Page 0 0 | Page 1 0 | | | | | | | | | | | | | | | | +----------+----------+ +----------+----------+ |+--------+| | | | | ||Page 0 1|| Page 1 1 | | | | || || | | | | |+--------+| | | | | +----------+----------+ +----------+----------+ ここには 2 x 2 のサイズのデスクトップがあります。現在のデスクトップ が番号 0 で、現在のページが 0 1 で、スクリーンはここに配置されたウィ ンドウと sticky のウィンドウのみを表示します。 デスクトップは 0 から始まり連続した番号がつきます。ユーザは新しいデ スクトップの作成には責任はなく、その細部は fvwm 内部で処理されていま す。異なるデスクトップを表示するために、ユーザはどのデスクトップを表 示するかを決めるキー割り当てを設定できます。例えば、Meta-1 から Meta-4 でデスクトップ番号 0 から 3 を表示する組を設定したければ、以 下を設定ファイルに追加します: Key 1 A M GotoDesk 0 Key 2 A M GotoDesk 1 Key 3 A M GotoDesk 2 Key 4 A M GotoDesk 3 同じことはページでもできます。例えば、各デスクトップに 2 x 2 のペー ジがある場合、 Meta-F1 から Meta-F4 にそれらのページの切り替えを割り 当てられます: DeskTopSize 2x2 Key F1 A M GotoPage 0 0 Key F2 A M GotoPage 1 0 Key F3 A M GotoPage 0 1 Key F4 A M GotoPage 1 1 いくつかのデスクトップを一緒に表示するページャを作るのもいい案です。 以下のコマンドは最初の 4 つのデスクトップを表示します: Module FvwmPager 0 3 ページャ内に現在のデスクトップのみ表示させたければ: Module FvwmPager * * ---------------------------------------------------------------------- 6.2 {OpenWindows, NeXT, Win95, Mac 等} の見た目、感覚がいいのですが、 これはサポートする予定はありますか ? 答: これは我々の主要な任務ではありませんが、fvwm はそれらの見た目の生成 にはとてもよい仕事をすると考えています。 以下 http://fvwm-themes.sourceforge.net/ のパッケージを調べてみてください。 ---------------------------------------------------------------------- 6.3 アイコン用の XPM ファイルはもっとどこかにありませんか ? 答: カラーアイコンがもっと欲しいのであれば、ctwm の配布物 (ftp.x.org に あります) にはたくさんいいものが含まれていますから、そこから取り出す といいでしょう。また、ftp.x.org にある別の配布物の中にもあるでしょう し、http://www.sct.gu.edu.au/~anthony/icons/ にもたくさん置いてある ようです。 アイコンは fvwm とともに配布されていましたが、現在はアイコンの基本セ ットが fvwm のウェブサイトに置いてあります。他のアイコンの配布元への リンクが fvwm のウェブサイトにいくつかあるのを見つけられるでしょう。 以下 http://wm-icons.sourceforge.net/ のパッケージを調べてみてください。 ---------------------------------------------------------------------- 6.4 Linux XF86 の仮想スクリーンサイズと fvwm の相互作用... 答: それがいやなら、あなたの XF86Config ファイルで、Linux Virtural Screen をオフにしてください。あなたが仮想デスクトップを実装するウィ ンドウマネージャを使っている場合は、XFree86 仮想スクリーン機能と一部 のビデオカードがサポートするハードウェアパン (表示領域移動) は、かな り役立たずな汚ない機能です。 ---------------------------------------------------------------------- 6.5 これが fvwm と関係ないのはわかりますが、Rob Nation がサポートして いた rxvt と rclock はどうなったのですか ? 今それらはどこにありま すか ? 答: rxvt の公式ホームサイトは以下です: http://www.rxvt.org/ rclock は rxvt パッケージ内にあります。 ---------------------------------------------------------------------- 6.6 どうやったら fvwm で背景を設定できますか ? 答: 背景画像の設定は、本来はウィンドウマネージャの仕事ではありません。 Linux のディストリビューションの一つを使用しているなら、おそらく背景 の設定はそれに含まれているでしょう。 背景に XPM 画像か PNG 画像をセットするのに使えるプログラムが 1 つ fvwm に付属しています (fvwm-root, 以前は xpmroot として知られていた)。 その他の "xv", "xli", "xloadimage", "display", "feh", "Esetroot" な ども使えますが、それらは fvwm-root がサポートしていない画像フォーマ ットをサポートしているものもあります。 背景に固定画像を置きたいだけなら、あなたの .xsession か .xinitrc フ ァイルからそれらのプログラムを呼び出すだけでいいですが、あなたの設定 ファイルの StartFunction からそれらを呼び出すこともできます。 fvwm モジュール FvwmBacker を使って、外部プログラムを呼びだすことで あなたが現在いるデスクトップ毎に背景を変更することもできます。外部プ ログラムを使うひとつの大きな不利な点は、急な背景の変更が相当遅くなり うることです。FvwmBacker は、カラーセット内で定義した画像や、fvwm が キャッシュした画像を、背景の速い変更用に使用できます。例: Colorset 10 TiledPixmap foo.xpm Colorset 11 Pixmap bar.png FvwmBacker: Command (Desk *, Page * 0) Colorset 10 FvwmBacker: Command (Desk *, Page * 1) Colorset 11 しかし、fvwm は xpm, xbm, png 画像しか処理できませんので、他のフォー マットの画像はあらかじめ fvwm が使用できる形式に変換しておく必要があ ります。 スクリーン毎 (すなわち Xinerama を使っている場合) に異なる背景を設定 したい場合は、それを行うために "Nitrogen" というプログラムを使えます。 以下参照: http://projects.l3ib.org/nitrogen/ ---------------------------------------------------------------------- 6.7 Fvwm を使っていると私の XYZ で色が正しくなりません。何が悪いのでし ょう? 答: ほぼ同じ文面で、我々は、FvwmForm がすべて白になってしまうこと、アイ コンが表示されないこと、色を割り当てられないというメッセージに関する ことの質問を受け続けて来ました。 古いハードウェアは、いわゆる 8 ビットカラーを使っていますが、新しい ハードウェアでも 8 ビットカラーしか使わないような誤設定もできます。 その場合は、そのディスプレイでは同時には 256 色までしか使えなくなり ます。 これは、苦痛なほどの詳細が以下で紹介されています: http://www.sunhelp.org/faq/FrameBuffer.html ディスプレイが 256 色より多くの色をサポートしている場合、今はそれが 普通ですが、あなたの X サーバに関する文書を見てください。"man X" か ら始めるといいでしょう。 もし 8 ビット色に固執するなら、fvwm が手助けします。2.2.x 版では、 "ColorLimit" コマンドを使用し、Fvwm がアイコンに使用する色数を減らす ことができます。2.3.x 版以降では、色数制限は自動的に行われますが、さ らにこのコマンドを使用してさらなる色数の制限を行うことも可能です。 他にあなたができることは: - Netscape に常に "-install" 引数をつけて実行すること。 - スクリーンの背景に画像を使っているなら、それが使用する色数を減らす こと。xv を使っているなら引数 "-nc nn" を追加すること、xli なら引 数 "-colors nn" を使用すること。 - グラデーションを使用しないこと。 - 色に貪欲なアプリケーションがあるので、TK ベースのものすべて、およ び FrameMaker のデフォルトの設定に用心すること。 これでも問題が解消しない場合、fvwm メーリングリストを利用してくださ い。 ---------------------------------------------------------------------- 6.8 57 個のボタンのマウスを手に入れましたが、それらを Fvwm で使うには どうすればいいですか。 答: 57 個もボタンはないだろうことは知っていますが、今まで最大 7 個の報 告は見たことがあります。Fvwm 2.4.0 からは、X が公式にサポートしてい る 5 つのマウスボタンすべてを Fvwm はサポートしていて、2.5.11 からは 9 つまでのボタンをデフォルトでサポートしています。 2.5.11 以降: 10 個以上のボタン (31 個まで) を使うには、libs/defaults.h というファイルを修正します。 #define NUMBER_OF_EXTENDED_MOUSE_BUTTONS 9 を、以下のように書き換えます。 #define NUMBER_OF_EXTENDED_MOUSE_BUTTONS 15 2.4.10 から 2.5.10 まで: 6 個以上のボタンを使うには、libs/defaults.h というファイルを 修正します。 #define NUMBER_OF_MOUSE_BUTTONS 5 を、以下のように書き換えます。 #define NUMBER_OF_MOUSE_BUTTONS 7 そして、fvwm を再コンパイルして再インストールしてください。しかし 6 番以降のボタンは、1 から 5 番までと同じようには機能しません。これは X が、ある関数で 6 個以上のボタンを操作するのに必要なインターフェー スを提供していないからです。これは、6 番以降のボタンでは有効ではない 機能があることを意味します。 利用できる最大個数は 31 個です。それより多い値を指定しても多分機能し ませんし、もしかすると fvwm やそのモジュールをクラッシュさせるかもし れません。 ---------------------------------------------------------------------- 6.9 なぜ fvwm は私の X Cursor テーマを変更するのですか。 答: それは違います。crosshair, left_ptr, arrow, pencil 等の、常にアプリ ケーションに対して有効であるべき標準的なカーソルセットがありますが、 あなたのテーマはこれらのカーソルのそれぞれを提供すべきなのに、いくつ かはそうなっていないのでしょう。 何か (例えばあるアプリケーション、あるいは fvwm) があなたのテーマが 提供していないカーソルを要求したとき、X はそれをデフォルトに戻します。 fvwm があなたのテーマには合わないカーソルを使用していることを見てい るのであれば、CursorStyle を使ってそれを有効なカーソルに変更するか、 またはより完璧なテーマを探すべきです。 fvwm は、あなたのアプリケーションがどのカーソルを要求するかを制御は しないことに注意してください。 ====================================================================== 7 - 開発者からのヒントと例 ====================================================================== 7.1 新しい設定をテストする簡単な方法は。 ほとんどの設定コマンドの実行を見るのに、X や fvwm を再起動する必要は ないことを知っていましたか ? fvwm コマンドを任意のタイミングで発行で きるモジュールがいくつかあります。FvwmCommand, "FvwmForm FvwmForm-Talk", FvwmConsole がそれらです。私は個人的に、FvwmCommand, FvwmConsole を使っています。 FvwmConsole を使う場合、シェルのようなウィンドウが使え、そこで fvwm に送信する設定コマンドを打ち込めます。いずれかのメニューにそれを起動 するような項目を追加してください: AddToMenu main_menu + "FvwmConsole" Module FvwmConsole FvwmCommand を使用するのはややトリッキーですが、それを使うには、あな たの設定ファイル内に以下の行を追加してサーバを立ち上げる必要がありま す: Module FvwmCommandS FvwmCommand が検索パスにあるかどうか確認してください。そうすれば、あ なたの好きなシェルのコマンドライン上でコマンドを入力できます: FvwmCommand "MenuStyle * Font 6x9" そのコマンドは引用符で囲まなければいけないことに注意してください。 FvwmCommand が FvwmConsole に勝る部分は、コマンドを実行するのに、あ なたの好きなシェルとそのすべての機能 (コマンド補完やヒストリ等) を利 用できることです。不利な点は、やや遅いことですが、それは、各コマンド に対して新しい FwmCommand を立ち上げなければいけないためです。 他に関連するモジュール、コマンドは、FvwmScript, PipeRead です。 ---------------------------------------------------------------------- 7.2 設定にシェルコマンドを使うには。 ときどき、設定ファイル内でシェルコマンドやスクリプトの出力を使いたく ならないでしょうか。例えば、あるディレクトリ内のすべてのファイル名を 項目として持つようなメニューが欲しくなりませんか。それには PipeRead コマンドや FvwmCommand モジュールを使うことができます。私は PipeRead を使うことを勧めますが、それは FvwmCommand では例えば 20 個のメニュ ー項目を作ろうとするとかなりの時間がかかってしまうからです。 以下は私の設定ファイルからの例です: # 背景メニューの作成 DestroyFunc MakeBackgroundMenu AddToFunc MakeBackgroundMenu + I DestroyMenu BackgroundMenu + I AddToMenu BackgroundMenu Backgrounds Title + I PipeRead 'for i in `/bin/ls $HOME/.fvwm/backgrounds/*.bg.*`; \ do echo -e AddToMenu BackgroundMenu `basename $i | sed -e \ "s/\.bg\..*$//"` Function SetDefaultBackground $i; done' # デフォルト背景の設定 DestroyFunc SetDefaultBackground AddToFunc SetDefaultBackground + I Exec echo -e $0 > $HOME/.fvwm/background + I SetBackground # 新しい背景の設定 DestroyFunc SetBackground AddToFunc SetBackground + I Exec test -r $HOME/.fvwm/background && xv -root -quit -viewonly \ `cat $HOME/.fvwm/background|tr -d "\n"` # 最後のセッションからの有効化の設定とメニューの構築 AddToFunc StartFunction + I SetBackground + I MakeBackgroundMenu 関数 MakeBackgroundMenu は、ディレクトリ $HOME/.fvwm/backgrounds 内 の "*.bg.*" というパターンにマッチするすべてのファイルに対する項目を 持つメニューを構築します。最後の .bg.* は取ります。項目を選択すると、 そのファイルを背景に xv を使って表示します。さらに、そのパスとファイ ル名を $HOME/.fvwm/background に保存します。次の fvwm セッションを立 ち上げたときには、ファイル名はそこから取られ、よって直前のセッション の背景になります。 私はカラーパレットについてはさらに複雑な設定を持っています。 ---------------------------------------------------------------------- 7.3 現在のものとは違うページやデスクトップでアプリケーションを起動する には。 あなたの設定ファイル内で 'StartsOnDesk' か 'StartsOnPage' スタイルを 使ってください: Style Netscape* StartsOnPage 0 1 または Style Netscape* StartsOnDesk 1 これで、'Netscape' で始まるタイトルを持つ任意のウィンドウがページ 0 1 (またはデスクトップ 1) に置かれます。以下のオプションもつけた方が いいかもしれません: Style * RecaptureHonorsStartsOnPage, CaptureHonorsStartsOnPage 今のページを切り替えずに、別のページのバッググラウンドでアプリケーシ ョンを起動したい場合は、'SkipMapping' スタイルを使用します: Style Netscape* StartsOnPage 0 1, SkipMapping ---------------------------------------------------------------------- 7.4 現在のものとは違うページやデスクトップで、表示窓をそちらに移動せず にそちらの上でアプリケーションを起動するには。 SkipMapping スタイルを使用してください: Style Netscape* StartsOnPage 0 1, SkipMapping ---------------------------------------------------------------------- 7.5 より効率的な MWM メニュースタイルは。 もしかすると、MWM メニュースタイルでは、メニューの一覧をまだスクロー ルダウンしたいと思っているときでも、マウスポインタがそのメニュー項目 に入るとすぐにサブメニューが表示されることに気がついたかもしれません。 それは、MenuStyle コマンドのオプション 'PopupDelay' と 'PopupDelayed' で防ぐことができます: MenuStyle mwm MenuStyle PopupDelayed, PopupDelay 80 これでサブメニューは、メニュー項目にマウスポインタが入ってから 80 ミ リ秒後に表示されるようになりますが、その間隔にはほとんど気がつかない でしょう。80 ミリ秒は、私のカーソルキーでの自動繰り返しによるメニュ ーの移動には丁度いい間隔なのですが、あなたにとって適切かどうかは、こ の数字で試してみる必要があるかもしれません。 ---------------------------------------------------------------------- 7.6 スクリーン上にメニューを置くには。 あなたのメインメニュー (または他の任意のルートメニュー) を出せる場所 として背景の一部分を見つけるために、そのスクリーン上のウィンドウを閉 じる必要があったり、マウスポインタを移動する必要があったりしませんか ? もしそうなら、キーボードショートカットを使うべきです。例えば、 Key space A M Menu root c c main_menu をあなたの設定ファイルに入れると、Alt-space を押したときにスクリーン の中央にメニュー 'main_menu' が現れるようになります。または、ウィン ドウメニューにショートカットを入れてもいいでしょう: Key space A SM Menu root c c WindowMenu メニューは、マウスポインターが丁度いる場所でなければ、あなたの望むと ころどこでも置くことができます。マニュアルの 'Menu' コマンドのセクシ ョンを読んでください。 ---------------------------------------------------------------------- 7.7 スクリーンの境界近くでマウスを動かしていると、間違ってページが切り 替わったりしないですか ? ページの切り替えは、EdgeScroll コマンドで無効にできます: EdgeScroll 0 0 をあなたの設定に入れるとオフになります。 ---------------------------------------------------------------------- 7.8 あなたのウィンドウとアイコンを整列するには。 SnapAttraction と SnapGrid コマンドは、あなたのデスクトップを整理す るのを手伝ってくれます。SnapAttraction ではウィンドウ (やアイコン、ま たはその両方) がお互いに「引きつけられ」ます。ウィンドウ (アイコン) をドラッグし、他のウィンドウ (アイコン) に近づけると、それは境界が隙 間なくくっつきます。以下のコマンドをあなたの設定に入れてください: SnapAttraction 8 SameType これは、ウィンドウが他のウィンドウと 8 ピクセルより近づいた場合にく っついて、アイコンとアイコンもくっつくことを意味します。ウィンドウか アイコンの一方だけがくっつくようにしたいなら、 SnapAttraction 8 Windows か SnapAttraction 8 Icons とします。アイコンをウィンドウとくっつかせる、またはその逆をしたい場 合は: SnapAttraction 8 All SnapGrid コマンドは、さらに大きな手助けをします: SnapGrid 8 をあなたの設定に入れると、ウィンドウやアイコンの配置に 8 ピクセルの 枠を使うことを fvwm に指示します。それがいいかどうか、試してみてくだ さい。 ヒント: SnapGrid には、あなたのデスクトップ幅および高さの約数を使う といいかもしれません。 ---------------------------------------------------------------------- 7.9 マウス/フォーカス/ページをキーボードで動かすには。 マウスの移動には以下のキーバインドを試してください: # 数ピクセルの移動は Shift-<矢印> Key Left A S CursorMove -1 0 Key Right A S CursorMove +1 +0 Key Up A S CursorMove +0 -1 Key Down A S CursorMove +0 +1 # 1/4 ページ幅の移動は Shift-Meta-<矢印> Key Left A SM Scroll -25 +0 Key Right A SM Scroll +25 +0 Key Up A SM Scroll +0 -25 Key Down A SM Scroll +0 +25 ページの切り替えは以下の通り。 # ページ全体の移動は Shift-Control-<矢印> Key Left A SC CursorMove -10 +0 Key Right A SC CursorMove +10 +0 Key Up A SC CursorMove +0 -10 Key Down A SC CursorMove +0 +10 # 特定のページへの移動は (Linux コンソール同様) Alt-Fn Key F1 A M GotoPage 0 0 Key F2 A M GotoPage 1 0 Key F3 A M GotoPage 0 1 Key F4 A M GotoPage 1 1 特定の方向のウィンドウへのフォーカスの変更は以下の通り。 # フォーカスの移動はテンキーの番号キー Key KP_1 A C Direction SouthWest (AcceptsFocus) Focus Key KP_2 A C Direction South (AcceptsFocus) Focus Key KP_3 A C Direction SouthEast (AcceptsFocus) Focus Key KP_4 A C Direction West (AcceptsFocus) Focus Key KP_6 A C Direction East (AcceptsFocus) Focus Key KP_7 A C Direction NorthWest (AcceptsFocus) Focus Key KP_8 A C Direction North (AcceptsFocus) Focus Key KP_9 A C Direction NorthEast (AcceptsFocus) Focus ---------------------------------------------------------------------- 7.10 デスクトップの猫対策は ^_^ あなたがコーヒーをかきまぜているときに、あなたのキーボードの上を猫が とびまわるのであれば、以下のヒントが手助けになるかもしれません: 'Style * MouseFocus' を使い、別な作業をするときはマウスポインタを 背景に置くことです。 'SloppyFocus' を手放せないのであれば、マウスポインタを、キー入力を 何もうけつけないようなウィンドウに入れて、フォーカスをそれに与える という方法があります (例えば FvwmButtons やコンソールメッセージウ ィンドウ)。けど、本当の猫好きなら、それ用にその猫の画像の別のウィ ンドウを作りますね ^_^ ---------------------------------------------------------------------- 7.11 ウィンドウの奥下げと移動。 ある設定では、マウス中ボタンでウィンドウを移動すると、そのウィンドウ を移動した後でそれを奥に下げますが、移動の前に奥に下げるといい視覚効 果が得られます: Mouse 2 T A Function MoveOrLower DestroyFunc MoveOrLower AddToFunc MoveOrLower + C Lower + M Lower + M Move + D Lower ---------------------------------------------------------------------- 7.12 ウィンドウを On/Off するトグルスイッチの設定は。 最初に使ったときにアプリケーションを起動し、2 度目に使ったときにはそ れを閉じるようなメニュー項目、あるいは FvwmButtons か FvwmWharf のボ タンを持つのが望ましい場合があります。そうするための方法は簡単ではあ りませんが、不可能でもありません。とりあえず FvwmConsole ウィンドウ の On/Off をするトグルスイッチのメニュー項目を作りたいとします。 この場合、以下の行をあなたの設定に入れます (fvwm-2.5.11 以降の場合): DestroyFync ToggleFvwmConsole AddToFunc ToggleFvwmConsole + I ToggleWindow FvwmConsole "Module FvwmConsole" # アプリケーションのトグル関数 # 1 つ目の引数はウィンドウ名、2 つ目の引数は、そのアプリケーション # を起動するコマンド DestroyFunc ToggleWindow AddToFunc ToggleWindow + I None ($$0, CirculateHit) $$1 + I TestRc (Match) Break + I Next (currentpage, visible, !iconic, $$0, CirculateHit) Close + I TestRc (Match) Break + I Next ($$0, CirculateHit) Function MakeVisible # ヘルパー関数 DestroyFunc MakeVisible AddToFunc MakeVisible + I MoveToDesk + I MoveToPage + I MoveToScreen + I Raise + I Iconify off + I WindowShade off その関数を呼び出すには、以下をメニューに追加します: AddToMenu <あるメニュー> + "toggle FvwmConsole" Function ToggleFvwmConsole またはボタンバーにそういうボタンを入れたければ: *FvwmButtons: (Action ToggleFvwmConsole) MoveToDesk, MoveToPage, Raise に関する行は、そのウィンドウが表示され ていない場合は、それを閉じる代わりに現在のページのトップに移動します。 一般的な関数 ToggleWindow は、すべての種類のウィンドウをトグルするの に再利用できます。 ある特定のウィンドウ、例えば xterm 一つをトグル形式にしたくて、かつ 他にトグル形式ではない xterm も使いたい場合、トグル形式にするウィン ドウには一意の名前をつける必要があります: DestroyFunc RunXMessages AddToFunc RunXMessages + I Exec exec xterm -T XMessages -n XMessages \ -e tail -f /var/adm/?* ~/.X.err DestroyFunc ToggleXMessages AddToFunc ToggleXMessages + I ToggleWindow XMessages RunXMessages これらの関数は、単に指定した名前を持つウィンドウが存在するかどうかを チェックするだけであることを覚えておいてください。(例えば netscape のように) あるアプリケーションの起動が遅い場合、この関数は手動で開い たウィンドウを運良く閉じてくれるかもしれませんし、そのアプリケーショ ンを複数回起動してしまうかもしれません。 fvwm-2.5.10 かそれ以前の版では、以下の関数が同様に機能します: DestroyFunc ToggleFvwmConsole AddToFunc ToggleFvwmConsole + I None (FvwmConsole, CirculateHit) FvwmConsole + I Next (FvwmConsole, CirculateHit, CurrentPage, Visible) Close + I Next (FvwmConsole, CirculateHit) MoveToDesk + I Next (FvwmConsole, CirculateHit) MoveToPage + I Next (FvwmConsole, CirculateHit) Raise DestroyFunc ToggleXMessages AddToFunc ToggleXMessages + I None (XMessages, CirculateHit) Exec exec \ xterm -T XMessages -n XMessages -e tail -f /var/adm/?* ~/.X.err + I Next (XMessages, CirculateHit) Close ---------------------------------------------------------------------- 7.13 アイコンのクリックによるアプリケーションの起動 (アプリケーション の「ドック入れ」とも呼ばれる) 通常は、アイコンはアプリケーションを最小化したものです。それを切り替 えて、アイコンをクリックすることでアプリケーションを起動したいという なら、止めはしません。以下は FvwmButtons を利用してそれを行う方法で す: # FvwmButtons によるアイコン起動: DestroyFunc Launcher AddToFunc Launcher + I DestroyModuleConfig $0Launch: * + I *$0Launch: Geometry 64x68 + I *$0Launch: Columns 1 + I *$0Launch: Rows 4 + I *$0Launch: Frame 0 + I *$0Launch: (1x3+0+0, Icon $1, Action (Mouse 1) `Exec $2`) + I *$0Launch: Pixmap none + I *$0Launch: (1x1+0+3, Font 9x15, Fore White, Back DarkBlue, \ Title $0, Action (Mouse 1) `Exec $2`) + I Style $0Launch HandleWidth 0, NoTitle + I Module FvwmButtons $3 $0Launch # 例: Launcher RXVT xterm.xpm "rxvt -bg black" "-g +0+0" Launcher XV xv.xpm "xv" "-g +0+100" 他に、GNOME や KDE にはデスクトップアイコンアプリケーション gmc や kfm があり、それらもこの作業を機能的に行いますが、これらのアプリケー ションは fvwm でも動作するでしょう。Nautilus (バージョン 2 以上) と kdesktop は、fvwm 2.5.1 の元で実行できるでしょう。 ---------------------------------------------------------------------- 7.14 計算によるウィンドウの位置決め 以下の例は、ウィンドウをスクリーンの中央に置く方法を示しています。 計算を実行するための PipeRead とシェル構成 $(()) を使用する方法に注 意してください。 DestroyFunc CenterWindow AddToFunc CenterWindow + I ThisWindow Piperead "echo Move \ +$(( $[vp.width]/2-$[w.width]/2 ))p \ +$(( $[vp.height]/2-$[w.height]/2 ))p" "MyWindow" という名前のウィンドウの場合、このコマンドを以下のように 使えばセンタリングできます: Next (MyWindow) CenterWindow ThisWindow は削除して構いませんが、これはウィンドウの指定なしに CenterWindow が呼ばれたときにエラーを避けるために必要なだけのもので す。(そのような場合は Pick コマンドを参照してください。) fvwm 2.5.11 では、"Style X CenterPlacement" を使えばウィンドウをスク リーンの中央に置くことができます。 fvwm 2.5.22 以降では、CenterPlacement は非推奨であり、代わりに PositionPlacement スタイルを使うようになっています。これは、ウィンド ウのセンタリングだけでなく、スクリーン上の任意の位置に置くことができ ますが、その場合 Move コマンドと同じ引数を使います。しかしウィンドウ のセンタリングは以下のようにできます: Style MyWindow PositionPlacement Center ---------------------------------------------------------------------- 7.15 マウスカーソルを隠すには 見ているものを邪魔するマウスカーソルを好まないユーザもいるでしょう。 その場合、"unclutter" プログラムを探してインストールするといいでしょ う。unclutter は、少しの間マウスを動かさない場合にマウスカーソルを隠 してくれます。 unclutter がマウスカーソルを点滅させたり、あちこちを動き回るようであ れば、unclutter を -noevents 引数をつけて実行してください。 ---------------------------------------------------------------------- 7.16 マウスカーソルを見つけるには 時々マウスカーソルを見つけにくい場合があります。以下は、それを見つけ る方法です: Key Super_L A A Exec xmessage -name "SmallBlob" -bg red \ -fg white -nearmouse -timeout 1 'I am here!' Style SmallBlob UsePPosition, NoTitle, NoHandles, BorderWidth 10 ---------------------------------------------------------------------- 7.17 FvwmButtons や他のウィンドウを自動的に隠すには 通常 "autohiding" と呼ばれる、デスクトップの貴重な場所を使わない場所 へウィンドウを引き下がらせるような機能を持つアプリケーションがありま す。fvwm では、あなたが好きな任意のウィンドウを隠すようなある小さな 関数を書くことが可能です: fvwm-2.5.11 以降: # 自動的に隠す関数 DestroyFunc autohide AddToFunc autohide + I ThisWindow ($0) Deschedule $[w.id] + I ThisWindow ($0) KeepRc ThisWindow (shaded) WindowShade off + I TestRc (!Match) All ($0, !shaded) autohide_hide $1 $2 DestroyFunc autohide_hide AddToFunc autohide_hide + I Schedule $0 $[w.id] WindowShade $1 + I Schedule $0 $[w.id] Deschedule $[w.id] # FvwmAuto を起動 AddToFunc StartFunction + I Module FvwmAuto 1 -menter enter_handler # 自動的に隠したいウィンドウを追加 DestroyFunc enter_handler AddToFunc enter_handler + I autohide FvwmButtons 500 S # ^ ^ ^ # | | |___ 隠す方向 (オプション) # | |_______ 隠すまでの時間 (ミリ秒) # |___________________ 一意のウィンドウ名/リソース 上の例のように、あなたの好きな任意のウィンドウを、enter_handler 関数 に単に追加します。autohide 関数は、2 つか 3 つのパラメータをつけて呼 び出します。1 つめはウィンドウの名前かクラスで、それは一意的でなけれ ばいけません。2 つ目はポインタがそのウィンドウから去った後にウィンド ウを隠すまでのミリ秒単位での時間の間隔です。最後の 1 つは必須ではな く、それを隠す方向 (N, S, E, W, NW, NE, SW, SE) を指定します。 少しだけより複雑なものも下に示します。その違いは、ウィンドウの表示が 直ちには起きず、そして遅らせることもできることです。 fvwm-2.5.11 以降: DestroyFunc autohide AddToFunc autohide + I ThisWindow ($0) Deschedule $[w.id] + I TestRc (!Match) Deschedule -$[w.id] + I ThisWindow ($0) KeepRc ThisWindow (shaded) \ autohide_show $1 $3 + I TestRc (!Match) All ($0, !shaded) autohide_hide $2 $3 DestroyFunc autohide_show AddToFunc autohide_show + I Schedule $0 -$[w.id] WindowShade $1 off + I Schedule $0 -$[w.id] Deschedule $[w.id] + I Schedule $0 -$[w.id] Deschedule -$[w.id] DestroyFunc autohide_hide AddToFunc autohide_hide + I Schedule $0 $[w.id] WindowShade $1 on + I Schedule $0 $[w.id] Deschedule $[w.id] + I Schedule $0 $[w.id] Deschedule -$[w.id] AddToFunc StartFunction + I Module FvwmAuto 1 -menter enter_handler DestroyFunc enter_handler AddToFunc enter_handler + I autohide FvwmButtons 250 500 S # ^ ^ ^ ^ # | | | |__ 隠す方向 (オプション) # | | |______ 隠すまでの時間 # | |__________ 表示するまでの時間 # |______________________ 一意のウィンドウ名/リソース これらの関数は、2.5.8 から 2.5.10 でも動作しますが、それらのバージョ ンでは autohide 関数から KeepRC コマンドを削除する必要があります。 ---------------------------------------------------------------------- 7.18 アプリケーションのスクリーンショットをアイコンや見本ミニアイコン として使うには ちょっとしたスクリプトの工夫により、fvwm はアプリケーションウィンド ウのスクリーンショットをアイコン化の際に取ることができ、そしてそれを アプリケーションアイコンとして使うことができます。しかし、それを自分 自身で行えるアプリケーションもあり、それが推奨されている方法だったり します。 例えば xterm では、コマンドラインで +ai オプション (アクティブアイコ ン) を使うことができます: $ xterm +ai XEmacs ではライブアイコン用の elisp パッケージがあります。XEmacs の 設定ファイルに以下のものを入れます: (load-library "live-icon") ; サイズを最大のアイコンサイズと同じに制御、この機能を使う場合は以 ; 下のコメント記号を外す ;(setq live-icon-max-height 48) ;(setq live-icon-max-width 48) それらのアプリケーションに IconOverride スタイルを使用していないこと を確認してください。それはアクティブアイコンが使用できないようにしま す。同様の機能を持つ他のアプリケーションもあるかもしれません。 fvwm によって用意されるアイコンにアプリケーションサムネイル画像が必 要だと仮定すると、fvwm 2.5.8 以降が必要になります。それは、この解が WindowStyle コマンドを必要とするからで、さらに ImageMagick ユーティ リティ があなたの $PATH 内に利用可 能である必要があります。 Thumbnail という名前の以下の関数は、Iconify コマンドの代わりで、キー やマウスに割り当てることができます。これは各ウィンドウを前面に出し、 スクリーンショットを取り、そのスクリーンショットをそのウィンドウのア イコンとして設定しようとします。スクリーンショットを取るには 2,3 秒 かかります。そのウィンドウはすぐにアイコン化されますが、新しいサムネ イル画像はスクリーンショットの準備ができてようやく有効となります。 スクリーンショットが確実に作成できるのは、そのウィンドウの表示されて いる部分のみであることに注意してください。よってそのウィンドウの一部 分がスクリーンから切れている場合や、異なるデスクトップ上にある場合、 または他のウィンドウの下に埋ずもれている場合は、そのサムネイルは期待 したものよりも小さくなってしまうかもしれませんし、または隠れている部 分が何も表示されないかもしれません。これを避ける方法はありません。 同じ解はミニアイコンにも機能します。それには、すべての "icon" という 単語を "miniicon" に置き換えるだけです。 DestroyFunc Thumbnail AddToFunc Thumbnail + I Raise + I ThisWindow (!Shaded, Iconifiable, !Iconic) PipeRead \ "xwd -silent -id $[w.id] | convert -scale 64 -frame 1x1 \ -mattecolor black -quality 0 xwd:- \ png:$[FVWM_USERDIR]/icon.tmp.$[w.id].png \ && echo WindowStyle IconOverride, \ Icon $[FVWM_USERDIR]/icon.tmp.$[w.id].png \ || echo Nop" + I Iconify 各ウィンドウが非アイコン化状態に戻った際にアイコンを削除するには、 FvwmEvent を利用できます。 DestroyFunc DeThumbnail AddToFunc DeThumbnail + I Exec rm -f $[FVWM_USERDIR]/icon.tmp.$[w.id].png + I DestroyWindowStyle *FvwmEvent: deiconify DeThumbnail AddToFunc StartFunction I Module FvwmEvent あなたがある他の目的で DestroyWindowStyle を必要とするためにそれを使 用できない場合は、ウィンドウの現在のアイコンを保存し、またそれが必要 な場合にそれを復帰させて再利用できます。これには fvwm 2.5.9 以降が必 要です。 この場合は Thumnail 関数を以下のようにします: DestroyFunc Thumbnail AddToFunc Thumbnail + I Raise + I SetEnv Icon-$[w.id] $[w.iconfile] + I ThisWindow (!Shaded, Iconifiable, !Iconic) PipeRead \ "xwd -silent -id $[w.id] | convert -scale 64 -frame 1x1 \ -mattecolor black -quality 0 xwd:- \ png:$[FVWM_USERDIR]/icon.tmp.$[w.id].png \ && echo WindowStyle IconOverride, \ Icon $[FVWM_USERDIR]/icon.tmp.$[w.id].png \ || echo Nop" + I Iconify そしてそのアイコンは以下の関数で復帰できます: DestroyFunc DeThumbnail AddToFunc DeThumbnail + I PipeRead "echo WindowStyle Icon \\$\\[Icon-$[w.id]\\]" + I UnsetEnv Icon-$[w.id] + I Exec rm -f $[FVWM_USERDIR]/icon.tmp.$[w.id].png これらのアイコンは、StartFunction に以下のチェックを追加することで、 Restart 後も残すことができます: AddToFunc StartFunction I Test (Restart) All (Iconic) \ Test (f $[FVWM_USERDIR]/icon.tmp.$[w.id].png) WindowStyle \ IconOverride, Icon $[FVWM_USERDIR]/icon.tmp.$[w.id].png 残っている任意のアイコンに対し ExitFuction で以下のチェックを行い、 そしてそれらを消すこともできます: DestroyFunc ExitFunction AddToFunc ExitFunction I Test (!ToRestart) \ Exec rm -f $[FVWM_USERDIR]/icon.tmp.* 同じ解はミニアイコンにも機能します。それには、すべての "icon" という 単語を "miniicon" に置き換えるだけです。 ----------------------------------------------------------------------