网上对于改变Ctrl键的位置,基本上有“按键提速说”和“保养小指说”两种,根本原因还是Emacs对Ctrl键的需求高得就好比鼠标对鼠标左键的需求,而Ctrl键的默认位置实在太远……我想我的手指已经很细长了(曾经有人这么说过),小指按Ctrl还是很难过,至少食指需要左移一个键位才行。所以为了踏进神的领域Emacs,改变Ctrl键的位置是势在必行。
看过无数文章教人怎么利用xmodmap改键位映射,新建一个~/.xmodmaprc文件,然后添加一系列规则,然后.bashrc的时候载入云云。这里我指出另一种更"基本"的方法,说它更基本,因为它用的都是xorg自带的软件……
不知道有多少人知道setxkbmap这样一个命令,它的基本用法是改变键盘布局,好比你临时遇到一个日本的键盘,你找不键了,你可以setxkbmap -layout us,用完了再setxkbmap -layout jp即可复原。
偶然网上也流传一些专用的用法,比如:
$ setxkbmap -option ctrl:nocaps
这个命令可以让Caps Lock键代替Ctrl键
又如
$ setxkbmap -option ctrl:swapcaps
这个命令可以交换Caps Lock键与左Ctrl键
这里有一个问题,就是——这些选项在哪儿?
setxkbmap --help,得不到任何信息
man setxkbmap,依旧得不到任何信息
实际上,经俺各种神经质调查发现,这些选项位于这几个文件里:
/usr/share/X11/xkb/rules/evdev.lst
/usr/share/X11/xkb/rules/base.lst
这俩文件一模一样……
接下来就好办了,利用grep搜索过滤"ctrl:或:ctrl"。
$ grep -e "ctrl:\|:ctrl" /usr/share/X11/xkb/rules/evdev.lst
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | grp:ctrls_toggle Both Ctrl keys together grp:ctrl_shift_toggle Ctrl+Shift grp:ctrl_alt_toggle Alt+Ctrl ctrl:nocaps Caps Lock as Ctrl ctrl:lctrl_meta Left Ctrl as Meta ctrl:swapcaps Swap Ctrl and Caps Lock ctrl:ac_ctrl At left of 'A' ctrl:aa_ctrl At bottom left ctrl:rctrl_ralt Right Ctrl as Right Alt ctrl:menu_rctrl Menu as Right Ctrl ctrl:ctrl_ralt Right Alt as Right Ctrl caps:ctrl_modifier Make Caps Lock an additional Control but keep the Caps_Lock keysym altwin:ctrl_win Control is mapped to Win keys (and the usual Ctrl keys) altwin:ctrl_alt_win Control is mapped to Alt keys, Alt is mapped to Win keys terminate:ctrl_alt_bksp Control + Alt + Backspace |
从中选一种方法放ctrl即可,我目前选了caps:ctrl_modifier,觉得还可以。