xmodmap交换CapsLock和Ctrl

珍爱小拇指,远离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)

交换CapsLock和Ctrl_L

在自家的目录下建立文件.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

即可。

交换Shift_L和Alt_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即可。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/19794.html