窓使いの憂鬱
- XKeymacs(XKeymacs)と窓使いの憂鬱(窓使いの憂鬱)は、Windowsを再インストールするたびにどちらかを入れるのですが、今はXKeymacsを使っています。
- キーボードは、既に販売終了になっていますがHappy Hacking Keyboard Lite 日本語配列 PS/2 黒(Happy Hacking Keyboard | 株式会社PFU)を使っています。Windowsキーは、XKeymacsのキーボードレイアウトを使ってHHKの半角/全角キーの場所に割り当てて、Fnを使わずにワンキーで押せるようにしてあります。半角/全角キーは殺しています。日本語入力はC-\を使うので半角/全角キーは不要です。
なんてことを書いていたのですが、この度窓使いの憂鬱に戻しました。
戻した理由は、XKeymacsがたまにミスるからなのです。
例えばFirefoxのtextareaで選択文字列をカットしようとC-wするとタブが閉じちゃうことがあるんですね。
まあタブを開き直したら書いていた内容は復活するので実害は無いわけですが、最近頻発したことがあったので腹立って入れ替えることにしました。
窓使いの憂鬱は独自キーボードドライバによって対応しているので、(多分)ミスることは無いと思います。
デフォルトではEmacsっぽくするようになっていますが、viっぽくしたりももちろんできます。
以下がとりあえず試行錯誤で設定してみた.mayuです。
include "109.mayu" keymap RemapKey if ( HHK ) # HHKの場合は、半角/全角をAltにして、AltキーをWindowsキーにしています。 mod alt -= LeftAlt mod alt += 半角/全角 key *半角/全角 = *LeftAlt mod Windows -= LeftWindows mod Windows += LeftAlt key *LeftAlt = *LeftWindows else # そうでない場合は、英数をCtrlにして、半角/全角とEscを入れ替えます。 mod control -= LControl mod control += 英数 key *英数 = *LControl key *Esc = *半角/全角 key *半角/全角 = *Esc endif window Meadow /:MEADOW$/ : RemapKey window Ck /:ckWindowClass$/ : RemapKey include "default.mayu" if ( HHK ) # Globalマップにも適用 keymap Global key *Esc = &Default # default.mayuが半角/全角と入れ替えてくれちゃってるので解除 mod alt -= LeftAlt mod alt += 半角/全角 key *半角/全角 = *LeftAlt mod Windows -= LeftWindows mod Windows += LeftAlt key *LeftAlt = *LeftWindows endif window Eclipse /:SWT_Window0/ : EmacsEdit if ( !ZXCV ) key C-X = &Prefix(GeneralC-X)
設定のポイントは以下の通り。
- default.mayuを読み込むとC-M-n,C-M-pなどMeadowで潰されては困るキーが別の機能で潰されてしまいます。全て&Defaultで戻すのが面倒なので、default.mayuを読み込む前にMeadowに対してキーマップだけ変更します。"window"の設定は後から上書きできないっぽいです。設定ファイルの前半部分がこのためだけに書かれています。・・・(;´Д`)ウウッ…
- 会社では109日本語キーボードを使っていて、家ではHappy Hacking Keyboard Lite 日本語配列 PS/2 黒を使っています。家では窓使いの憂鬱の設定で-DHHKをつけるようにしています。
- 「mod Windows -= LeftWindows」についてですが、Windowsキーがmodifires(CtrlやShiftなどのように、押しながらほげほげするキー)に指定されているため、正しく解除しておかないとWindows+Eとかが動かなくなってしまうからです。modifiresになっているキーをリマップする時は解除が必須(らしい)。
- Emacsバインドにしたいアプリケーションがあったら、「window FooBar /RegExpOfWindow/ : EmacsEdit」と書けば良いです。
なお、書かれているのはキーマップの設定だけです。キーバインドの設定はdefault.mayu(emacsedit.mayu)に書かれていて、ほとんどそれで事足りるので特にいじっていません。
default.mayuを使うより、1から書く方が早いかもしれん。「keymap Global : EmacsEdit」とかにもしたいし。
ま、これでとりあえず満足。