Sorry, This page is Japanese only.

使い方

起動方法

コンパイルしたディレクトリの中で、
$ ./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ファイルの改変は、GUIアプリでやりたいのですが、まだできてないので、ごく一部だけ、説明します。


下記は、「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を起動してください。