使い方
起動方法
コンパイルしたディレクトリの中で、
「xfumble初期化中...」というパネルが出て、プログレスバーが動くので、しばらくお待ちください。
パネルが消えたら、xfumbleが使用できる状態になります。
※ご参考
まだ開発中で、なんの役にも立ちませんが、「xfumble:ルール設定」ツールが入ってます。
コンパイルしたディレクトリの中で、
ルールがどのように設定されているか、鑑賞することができます(笑)
ホントはこれで、ルールの設定や追加ができたり、他の方が作ったルールを、インポートしたりできるようになります。全世界のごくわずかのxfumbleファンの皆さん、もうちょっと待ってね。
$ ./xfumble emacs.xmlあるいは、
$ ./xfumble vi.xmlとタイプします。
「xfumble初期化中...」というパネルが出て、プログレスバーが動くので、しばらくお待ちください。
パネルが消えたら、xfumbleが使用できる状態になります。
※ご参考
まだ開発中で、なんの役にも立ちませんが、「xfumble:ルール設定」ツールが入ってます。
コンパイルしたディレクトリの中で、
$ ./xfm_setting emacs.xmlあるいは、
$ ./xfm_setting vi.xmlとタイプします。
ルールがどのように設定されているか、鑑賞することができます(笑)
ホントはこれで、ルールの設定や追加ができたり、他の方が作ったルールを、インポートしたりできるようになります。全世界のごくわずかのxfumbleファンの皆さん、もうちょっと待ってね。
emacs.xml(emacs風キーバインド)
こちらを、ご覧ください。
vi.xml(vi風キーバインド)
こちらを、ご覧ください。
終了
上記のemacs.xml,vi.xmlとも、xfumble終了キーとして、Ctrl-Alt-Shift-escapeの同時押しを、定義しています。これで、xfumbleは終了します。
(上記のキー定義は、もちろん、xmlファイルを書き換えることで変更できます。)
(上記のキー定義は、もちろん、xmlファイルを書き換えることで変更できます。)
XMLファイルの変更方法
本当は、XMLファイルの改変は、GUIアプリでやりたいのですが、まだできてないので、ごく一部だけ、説明します。
下記は、「emacs以外のウインドウがActiveだったとき、Ctrl-nをDownにする」定義です(emacs.xmlから抜粋)。
上記の、
<keysym>^n</keysym>の、"^"は、"Ctrl"を表します。他のモディファイアキーは、下記のとおりです。
"n"は、いわゆるX Windowにおける、keysym文字列です。
試しに、
とタイプしてみてください。
こんなのがずらずらっとでてくると思います。
この、丸カッコに囲まれた、例えば、"Escape"が、keysym文字列です。この文字列を指定してください。
","とか、";"とかは、指定できません。"comma"とか、"semicolon"と、指定してください。
なお、"N"(大文字のN)という指定は、できません。Shiftをおしたnですから、"+n"と指定してください。
さて、次のセクション、
"app_name"は、WM_CLASSのapp_nameを示しています。
試しに、
とタイプして、マウスで、emacsをクリックしてください。
こんなのがずらずらっとでてくると思います。
app_nameは、WM_CLASS(STRING) = "emacs", "Emacs"の、後ろの方の文字列のことで、アプリの一意性を(比較的)保証してくれる、と言われています。これを指定することで、アクティブウィンドウに応じた、キーバインドを指定することができます。
次のセクション、
これで、"Down"、つまり、カーソル下移動、を出力することを表します。これも、keysym文字列です。"="は、mark setモードに入ったとき、指定されたモディファイア(Shift)を追加することを表します。え?わかんないって?じゃぁ、「とりあえず、気にするな」
上記のようにxmlファイルを書き換えたら、一旦、xfumbleを殺して("終了"参照)、再度、xfumbleを起動してください。
下記は、「emacs以外のウインドウがActiveだったとき、Ctrl-nをDownにする」定義です(emacs.xmlから抜粋)。
<rule> <!-- Ctrl-nが押されたとき、トップウインドウがEmacsじゃなかったら、Down -->
<trigger block="KeyEvent" file="key.rb">
<keysym>^n</keysym>
</trigger>
<state_action>
<state block="ActiveWinChangeEvent" file="window.rb">
<app_name>Emacs</app_name>
</state>
<action block="Through" file="core.rb">
</action>
</state_action>
<state_action>
<action block="FakeKey" file="key.rb">
<keysym>=Down</keysym>
</action>
</state_action>
</rule>
上記の、
<trigger block="KeyEvent" file="key.rb">
<keysym>^n</keysym>
</trigger>
で、「Ctrl-nが押された」ことを表します。<keysym>^n</keysym>の、"^"は、"Ctrl"を表します。他のモディファイアキーは、下記のとおりです。
^:Ctrl +:Shift !:Alt #:Super
"n"は、いわゆるX Windowにおける、keysym文字列です。
試しに、
$ xmodmap -pk
とタイプしてみてください。
KeyCode Keysym (Keysym) ...
Value Value (Name) ...
8
9 0xff1b (Escape)
10 0x0031 (1) 0x0021 (exclam)
11 0x0032 (2) 0x0040 (at)
12 0x0033 (3) 0x0023 (numbersign)
....
こんなのがずらずらっとでてくると思います。
この、丸カッコに囲まれた、例えば、"Escape"が、keysym文字列です。この文字列を指定してください。
","とか、";"とかは、指定できません。"comma"とか、"semicolon"と、指定してください。
なお、"N"(大文字のN)という指定は、できません。Shiftをおしたnですから、"+n"と指定してください。
さて、次のセクション、
<state block="ActiveWinChangeEvent" file="window.rb"> <app_name>Emacs</app_name> </state>これで、アクティブウインドウ(一番全面に出ていて、キーボードフォーカスを受け付けているウインドウ)がemacsであることを表します。
"app_name"は、WM_CLASSのapp_nameを示しています。
試しに、
$ xprop
とタイプして、マウスで、emacsをクリックしてください。
WM_CLASS(STRING) = "emacs", "Emacs" WM_ICON_NAME(STRING) = "emacs@shakure.localdomain" _NET_WM_ICON_NAME(UTF8_STRING) = 0x65, 0x6d, 0x61, 0x63, 0x73, 0x40, 0x73, 0x68, 0x61, 0x6b, 0x75, 0x72, 0x65, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e WM_NAME(STRING) = "emacs@shakure.localdomain" ....
こんなのがずらずらっとでてくると思います。
app_nameは、WM_CLASS(STRING) = "emacs", "Emacs"の、後ろの方の文字列のことで、アプリの一意性を(比較的)保証してくれる、と言われています。これを指定することで、アクティブウィンドウに応じた、キーバインドを指定することができます。
次のセクション、
<action block="TypeKey" file="key.rb"> <keysym>=Down</keysym> </action>
これで、"Down"、つまり、カーソル下移動、を出力することを表します。これも、keysym文字列です。"="は、mark setモードに入ったとき、指定されたモディファイア(Shift)を追加することを表します。え?わかんないって?じゃぁ、「とりあえず、気にするな」
上記のようにxmlファイルを書き換えたら、一旦、xfumbleを殺して("終了"参照)、再度、xfumbleを起動してください。