capslock确实是很少用到的,把它映射为ctrl更好。
用setxkbmap -query查到它的规则是定义在evdev文件中的。cat /usr/share/X11/xkb/rules/evdev.lst可以查到setxkbmap -option有效的命令。把capslock映射到ctrl不是 caps:ctrl而是ctrl:nocaps。
映射后caps就变成ctrl键了,需要开启大写的时候怎么办呢。按住shift可以转换字符为大写,但我的shift还绑定了快捷键,比如我的shift+t是打开终端,用这种方式就会触发快捷键。尝试shift的其它命令,用shift:both_capslock_cancel即可,两个shift一起按就会触发开启大写,再按shift可以取消,这样就避免了shift上绑定按键的冲突。
setxkbmap -option shift:both_capslock_cancel -option ctrl:nocaps
把这行代码加入自启动就行了,在非gnome环境下通过修改xkb-options键值是无效的。