窓使いの憂鬱

なんてことを書いていたのですが、この度窓使いの憂鬱に戻しました。

戻した理由は、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」とかにもしたいし。
ま、これでとりあえず満足。