キーバインド入れ替え

学校のPCのログインシェルをtcshからzshに変更したら左CtrlとCapsの入れ替えが効かなくなった.
これじゃ困るので調べてみた.



結論から言えば, ファイル名を変えればいいだけみたいだった.
今までは, 「.xmodmaprc」.
これを「.Xmodmap」とすれば良いだけみたい.
もし, これでもダメだったならば, 次のコマンドで設定を読み込むことができる.

$ xmodmap ファイル

これですぐに設定が適用される.
永続させたいならば, .xsessionにでも書いておけばいい.


ちょうど良い機会だから色々と調べてみようかな.
現在の学校の設定はこんなの.

         !
         ! Swap Caps_Lock and Control_L
         !
         remove Lock = Caps_Lock
         remove Control = Control_L
         keysym Control_L = Caps_Lock
         keysym Caps_Lock = Control_L
         add Lock = Caps_Lock
         add Control = Control_L

学校では, 1年のときほぼ強制的にこの設定をやらされたから, 今までそのまま使ってるけど, ちょっと変えたいなと思う.
別にCaps Lockキーと, 左Ctrlキーを入れ替えるのが使いづらいわけじゃなくて, Caps Lockなんていらんだろうって話.
意識的に押す機会なんて皆無だし, 間違って押してウゼーと思うことの方が多い.



xmodmapの設定を書くには, man xmodmap, /usr/share/xmodmap/xmodmap.jpファイルとか, xevコマンドあたりを参考にすればいいのかな.
とりあえず, 学校の環境でCapsを左Ctrlで潰して, パイプ「|」と逆クオート「`」を入れかえるようにしてみた.

!
! Swap Caps_Lock and Control_L
!
remove Lock = Caps_Lock
remove Control = Control_L
!keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
!add Lock = Caps_Lock
add Control = Control_L

!
! Swap pipe(133) and grave(34)
!
keycode  34 = at bar voicedsound dead_abovering
keycode 133 = backslash grave prolongedsound

本当はもっとスマートに書けるんだろうけど, manを読むのが面倒になって(駄目人間),
既存のコードを上書きしたらいけるんじゃね?とか思って試したら問題なかったからそのまま.
Caps潰しも, 動いてるって程度だよなあ, たぶん.

参考にしたページ

man xmodmapで見ればいいんだけど, うちのは日本語じゃないから下のページを見た.