Linux更改键位映射

Posted feipeng8848

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux更改键位映射相关的知识,希望对你有一定的参考价值。

下面代码是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_(简体中文)#特殊的按键

以上是关于Linux更改键位映射的主要内容,如果未能解决你的问题,请参考以下文章

WIN7系统键盘键位被修改

我的 Vim 常用插件和键位映射配置

ubuntu修改键盘键位映射

Remapping Keys in macOS —— 巧用 hidutil 实现键位映射

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

vim 键盘映射 :nn 表示啥