xmonadでmodキーを右Altのみにする

[`evernote` not found]
Bookmark this on Hatena Bookmark
Share on Facebook
LINEで送る

modキーはXの中で共通の設定っぽい。

現在の設定の確認
$ xmodmap
xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3        
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)
modキーのマップで、右Altだけのグループを作る
上の出力の場合、~/.Xmodmap を

remove Mod1 = Alt_R
add Mod3 = Alt_R

とし、~/.xprofile あたりで

xmodmap .Xmodmap
xmonadのmodMaskを設定する
xmonad.hsのxmonadに渡すコンフィグのところを

 , modMask = mod3Mask

とか。
外で変数に代入している場合は、そこで指定。

言わずもがな、modキーを使うのがあらゆるアプリの中でxmonadだけ、というわけではないので、他のアプリで使えなくなってもいいキーにした方がいいと思われ。
emacsは、メタキーのないよくあるキーボードを使っていると、Altキーでメタキーの役割を代替していると思うが、modキーの割り当てを変えてもメタキーは働く。
ただし、xmonadでキーバインドしている組み合わせを押した場合は、xmonadにキーを奪われてemacsでは動作しないんで注意。
よーするに、xmodmapでないところでemacsのキーバインドは動作しているっぽいんで、xmonadとキーバインドが被ってなければ使えるっぽいよ。