Linux更改键位映射

如果是gnome桌面,使用gnome tewaks tool,同时支持wayland和xorg

以下内容目前不再推荐使用,缺点较多,比如重新连接鼠标键盘后就会实效


注意:必须是xorg模式才可以生效,wayland没有用


下面代码是alt与cotrol互换,CapsLock改为Control。
~目录中创建.Xmodmap文件把下面的代码填进去

clear Lock
clear Control
clear mod1
keycode 37 = Alt_L Meta_L
keycode 105 = Alt_R Meta_R
keycode 64 = Control_L
keycode 108 = Control_R
keycode 66 = Control_L
add control = Control_L Control_R
add mod1 = Alt_L Meta_L
add Lock = Caps_Lock

然后在终端输入xmodmap ~/.Xmodmap就可以了


原理讲解

键盘某个键位按下去之后会向Linux系统发送一个code,该code是不可更改的。
linux系统输入一个字符,比如a,是系统调用某个函数实现的。
键盘的code与系统的输入函数之间存在映射,比如当按下键盘的a,代表a的code与系统输入字符a的函数映射调用,系统就输入了字符a。

划重点!!!我们可以手动指定键盘按键code与系统输入函数之间的映射,比如把a的code映射到系统输入字符b的函数,那么按下键盘的a就会输入字符b。

另外,control、alt等按键,多了一个叫“修饰符”的概念,keycode绑定到系统输入函数后,函数还要和修饰符绑定才行

!清除修饰符 Lock上的所有函数绑定
clear Lock
clear Control
clear mod1
!绑定keycode与函数调用
keycode 37 = Alt_L Meta_L
keycode 105 = Alt_R Meta_R
keycode 64 = Control_L
keycode 108 = Control_R
keycode 66 = Control_L
!与清除对应,重新添加,添加修饰符control与函数Control_L Control_R的绑定
add control = Control_L Control_R
add mod1 = Alt_L Meta_L
add Lock = Caps_Lock

参考
http://xahlee.info/linux/linux_swap_control_and_alt_xmodmap.html
https://wiki.archlinux.org/index.php/Xmodmap_(简体中文)#特殊的按键

posted @ 2020-05-01 23:19  feipeng8848  阅读(1520)  评论(0编辑  收藏  举报