珍愛小拇指,遠離Emacs,說的就是windows下四個按鍵(CapsLock, Ctrl_L, Ctrl_L, Alt_L(從上到下,從左到右的順序))令人想起來就脊背發涼的安排。雖然吾等買不起某種動辄上千的鍵盤(hhkb),但是通過xmodmap進行簡單的按鍵映射,可以給早以不堪重負的小拇指一息喘氣的機會。
通常情況下我使用Ctrl_L和Alt_L要遠遠多於 CapsLock 和Shift_L。因為Emacs的很多快捷鍵的修飾鍵都是Ctrl_L或Alt_L(此處的“或”具有數學中“或”的意義),所以我的要求是:1)交換CapsLock和Ctrl_L;2)交換Shift_L和Alt_L。
使用xmodmap進行按鍵映射, 首先查看Ubuntu下這幾個修飾鍵是如何映射的
xmodmap -pm
我的輸出是
xmodmap: up to 4 keys per modifier, (keycodes in parentheses): shift Shift_R (0x3e), Shift_L (0x40), Shift_L (0xcc) lock Caps_Lock (0x25) control Control_L (0x42), Control_R (0x69) mod1 Alt_L (0x32), 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)
在自家的目錄下建立文件.Xmodmap
touch ~/.Xmodmap
然後輸入
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
即可。
繼續在.Xmodmap 中添加
remove shift = Shift_L remove mod1 = Alt_L keysym Shift_L = Alt_L keysym Alt_L = Shift_L add shift = Shift_L add mod1 = Alt_L
最後log out重新log in即可。