Linux修改键盘映射

Posted

tags:

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

参考技术A 改快捷键还是改键盘布局 参考技术B 用stty命令

如何用键盘映射修改键盘坏键?

买了一部二手的笔记本,发现有三个键是坏的(说多了都是泪啊,以后买二手笔记本的时候,先打开记事本把所有的按键按一遍。。。屌丝就是伤不起!)

如果换一个新的键盘,要180块大洋!你妈,老子整个本才450!然而,屌丝还是有屌丝的机智的,google了一下,在ubuntu系统下,可以用键盘映射的方法解决。有个命令叫做xmodmap,用它可以把坏键的功能转移到其他没用的多余的键上,比如两个ctrl键,留一个就够了。

网上的办法不少,但是鱼龙混杂,我就帮大家整理一下把(以我的电脑为例)。

1、三个坏键分别是逗号,句号,问号。我打算把它们分别映射到下面挨着的alt、super和ctrl键上。

2、在终端键入命令 xmodmap -pke  这是为了找到alt、super和ctrl键的键值。

3、我的电脑上,Ctrl_R的键值是105,那么把问号的功能映射到上面的命令是:xmodmap -e "keycode 105 = question slash"  注意,这里有个slash,它是按住shift时原来的坏键所显示的符号,至于这个符号的英文名称,我也是费了不少劲才找到的。所以,这里是一个坎儿,就当磨练吧。

4、但是Alt_R  Super_R却不是那么容易了。首先需要把他们两个原来的功能取消掉,因为他们是所谓的修饰键。比如shift就是修饰键,不按shift键的时候,按数字2则显示出来的就是2,但是按下shift键显示踹的就是@了。ctrl键不是修饰键所以不需要这一步。

5、去掉Alt_R修饰功能的命令是:xmodmap -e "remove mod1 = Alt_R"  其中mod1是alt键的修饰功能,至于怎么知道的,可以尝试一下直接打入命令xmodmap,这时终端上会显示所有的修饰功能以及其对应的按键。同样道理移除Super_R修饰功能的命令是:xmodmap -e "remove mod4 = Super_R" 

6、最后一步同Ctrl_R,即把句号和逗号的功能映射到Super_R和Alt_R上。Alt_R的键值是108,Super_R的键值是135

      逗号 - alt:xmodmap -e 'keycode 108 = comma less'

      句号 - Super : modmap -e 'keycode 135 = period greater'

7、其他的按键道理同上,只要稍加琢磨一定可以解决的。

8、为了方便可以写一个脚本,下次开机就可一不必一行一行的打命令了,因为每次关机后,所有改键设置都会被还原。我的脚本如下:

  #!bin
#Filename xmodmap.sh
xmodmap -e 'remove mod4 = Super_R'
xmodmap -e 'keycode 135 = period greater'
xmodmap -e 'remove mod1 = Alt_R'
xmodmap -e 'keycode 108 = comma less'
xmodmap -e 'keycode 105 = slash question'


开机后,只需要在终端输入:sh xmodmap.sh即可,前提是你已经将脚本的权限设置成了可执行。

9、最后一点,算是我的遗憾吧:因为没能完成开机自动执行我的脚本,这方面还在探索。哪位大牛给我治疗一下?


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

linux 下修改键盘映射

vim 键盘映射 :nn 表示啥

win10修改键盘映射

ubuntu修改键盘键位映射

Linux 中的键盘映射

linux下用ioctl重新映射键盘