关于Deepin系统键位映射
本文参考文章链接:
一、 工具
1、xev;
2、xmodmap;
两者系统自带的无需额外安装
二、查询
1、查询keycode和keysym
可以在终端输入xev并运行,会出现如下界面
将鼠标放在弹出的白色窗口,此时输入键盘上的任意键位,就可以查询到对应的keycode(应该就是相当与键盘扫描码吧)以及这个键的键符号。例如:当我输入Esc时,就可以看到:其键码为keycode=9,键符号是Escape。
2、查询映射修饰
xmodmap
三 修改
主要是通过修改配置文件来修改键位
1、创建配置文件
cd ~
vim .Xmodmap
2、编辑内容
Linux处理按键的原理: 桌面系统先读取keycode并将其转化为keysym,然后再根据映射修饰做出相应的反应。
clear lock
clear control
//经过查询Caps_Lock的keycode为66,R_Ctrl的keycode为105,
//这里我想保留左边ctrl的作用所以将R_Ctrl改为Caps_Lock
//修改映射的格式是:keycode(指被替换的keycode)= keysym(指想要替换成的键符号)
keycode 66=Control_L
keycode 105= Caps_Lock;
add lock=Caps_Lock;
add control=Control_L
通过以上命令就可以将Caps_Lock改为Ctrl_R,Ctrl_R改为Caps_Lock。
理解: 当敲击Caps_Lock时,桌面读取到keycode=66,并将其转化为keysym–>Control_L,然后根据Control_L执行对应的功能control(即上述执行xmodmap后的第一列),按下Ctrl_R同理
四、执行
sudo xmodmap ~/.Xmodmap
如此就生效了,但是账户退出登录后会失效。
五、鉴于Deepin系统对此做了一些改善
由于本人水平有限,做不到让这样的修改永久生效,所以就根据Deepin操作系统做了改进,虽然做不到永久生效但是还算比较快捷。
1、打开终端,点击上面的三条横线,自定义命令
2、添加命令,根据需要创建命令就可以了
命令输入:
sudo xmodmap ~/.Xmodmap
此后如果修改的键位失效,只要在终端执行设置的快捷键,输入root密码就可以生效了,虽然麻烦了一点点,但是也还算快捷了。