目的
实现
Caps
和L_Ctrl
交换-
实现自定义功能键:
R_Alt + H
->Left
R_Alt + J
->Down
R_Alt + K
->Up
R_Alt + L
->Right
R_Alt + 4
->End
R_Alt + 6
->Home
R_Alt + F
->Prior
R_Alt + N
->Next
以上按键映射主要是为了适应,因为R_Alt
我最不常用,固将其用作功能键。 关于Xkb
是什么这里不做赘述,简单来说Xkb
是的一个负责键盘映射的库。
步骤
-
查看当前使用的键盘布局,终端执行
setxkbmap -print
xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+us+inet(evdev)+group(alt_shift_toggle)" }; xkb_geometry { include "pc(pc105)" };};
xkb_symbols
属性后面的pc
和us
即下面我们需要修改文件。 备份配置文件
以下操作有风险,请在有linux
操作系统使用经验的情况下操作切换到目录/usr/share/X11/xkb
,执行sudo tar -cvf symbols.tar symbols
打包原有的配置文件,然后进入目录symbols
。-
概念:Caps
和L_Ctrl
交换每一个键配置(大括号)里面的方括号表示一个组,每个方括号里面用逗号隔开的内容表示不同的等级。使用`Shift`建可以切换等级,使用`Mode_switch`可以切换组。
编辑
pc
文件,修改xkb_symbols "pc105"
段,->
表示前面的内容修改为后面的内容key
{ [ Caps_Lock ] }; -> key { [ Control_L ] };key { [ Control_L ] }; -> key { [ Caps_Lock ] }; 保存注销从新登录生效。
-
设置
从R_Alt
为自定义功能键pc
文件中的内容include "altwin(meta_alt)"
可以看出R_Alt
键的修改并不在pc
文件中。我们编辑altwin
文件。修改xkb_symbols "meta_alt"
段,将R_Alt
映射为Mode_switch
key
{ type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Alt_R, Meta_R ] }; -> key { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Mode_switch ] }; -
自定义
修改R_Alt
的功能us
文件。编辑xkb_symbols "basic"
段,修改以下内容key
{ [ 4, dollar ] }; -> key { [ 4, dollar ], [ End ] };key { [ 6, asciicircum ] }; -> key { [ 6, asciicircum ], [ Home ] };key { [ f, F ] }; -> key { [ f, F ], [ Prior ] };以下类推修改为:key { [ h, H ], [ Left ] };key { [ j, J ], [ Down ] };key { [ k, K ], [ Up ] };key { [ l, L ], [ Right ] };key { [ n, N ], [ Next ] }; 注销从新登录有效