实现Caps
和L_Ctrl
交换linux
实现自定义功能键:ide
R_Alt + H
-> Left
布局
R_Alt + J
-> Down
ui
R_Alt + K
-> Up
操作系统
R_Alt + L
-> Right
code
R_Alt + 4
-> End
ci
R_Alt + 6
-> Home
get
R_Alt + F
-> Prior
it
R_Alt + N
-> Next
io
以上按键映射主要是为了适应Vim
,由于R_Alt
我最不经常使用,固将其用做功能键。 关于Xkb
是什么这里不作赘述,简单来讲Xkb
是X-Window
的一个负责键盘映射的库。
查看当前使用的键盘布局,终端执行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> { [ Caps_Lock ] }; -> key <CAPS> { [ Control_L ] }; key <LCTL> { [ Control_L ] }; -> key <LCTL> { [ Caps_Lock ] };
保存注销重新登陆生效。
设置R_Alt
为自定义功能键
从pc
文件中的内容include "altwin(meta_alt)"
能够看出R_Alt
键的修改并不在pc
文件中。
咱们编辑altwin
文件。修改xkb_symbols "meta_alt"
段,将R_Alt
映射为Mode_switch
key <RALT> { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Alt_R, Meta_R ] }; -> key <RALT> { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Mode_switch ] };
自定义R_Alt
的功能
修改us
文件。编辑xkb_symbols "basic"
段,修改如下内容
key <AE04> { [ 4, dollar ] }; -> key <AE04> { [ 4, dollar ], [ End ] }; key <AE06> { [ 6, asciicircum ] }; -> key <AE06> { [ 6, asciicircum ], [ Home ] }; key <AC04> { [ f, F ] }; -> key <AC04> { [ f, F ], [ Prior ] }; 如下类推修改成: key <AC06> { [ h, H ], [ Left ] }; key <AC07> { [ j, J ], [ Down ] }; key <AC08> { [ k, K ], [ Up ] }; key <AC09> { [ l, L ], [ Right ] }; key <AB06> { [ n, N ], [ Next ] };
注销重新登陆有效