当前位置: 首页 > Linux

ElementaryOS使用Xkb修改按键映射,也适用于其他使用Xkb库的Linux发行版

时间:2023-04-06 18:29:20 Linux

目的实现Caps和L_Ctrl互换实现自定义功能键:R_Alt+H->LeftR_Alt+J->DownR_Alt+K->UpR_Alt+L->RightR_Alt+4->EndR_Alt+6->HomeR_Alt+F->PriorR_Alt+N->Next以上键位映射主要是为了适配Vim,因为R_Alt是我最不常用的,我将它用作功能键。Xkb是什么我这里就不细说了。简单的说,Xkb是一个负责X-Window键盘映射的库。步骤查看当前使用的键盘布局,终端执行setxkbmap-printxkb_keymap{xkb_keycodes{include"evdev+aliases(qwerty)"};xkb_types{包括“完整”};xkb_compat{包括“完整”};xkb_symbols{include"pc+us+inet(evdev)+group(alt_shift_toggle)"};xkb_geometry{包括“pc(pc105)”};};xkb_symbols属性后面的pc和us就是下面我们需要修改的文件。备份配置文件以下操作是有风险的。有linux操作系统使用经验的请切换到目录/usr/share/X11/xkb,执行sudotar-cvfsymbols.tarsymbols打包原始配置文件,然后进入symbols目录。Caps和L_Ctrl交换概念:每个按键配置(大括号)中的方括号代表一组,每个方括号中用逗号分隔的内容代表不同的层级。使用`Shift`切换级别,使用`Mode_switch`切换组。编辑pc文件,修改xkb_symbols"pc105"部分,->表示将之前的内容修改为后面的内容key{[Caps_Lock]};->键{[Control_L]};键{[Control_L]};->键{[Caps_Lock]};保存注销以从新登录生效。设置R_Alt为自定义功能键从pc文件中include"altwin(meta_alt)"的内容可以看出,pc文件中并没有对R_Alt键的修改。我们编辑altwin文件。修改xkb_symbols"meta_alt"部分,将R_Alt映射到Mode_switchkey{type[Group1]="TWO_LEVEL",symbols[Group1]=[Alt_R,Meta_R]};->key{type[Group1]="TWO_LEVEL",symbols[Group1]=[Mode_switch]};自定义R_Alt修改us文件的功能。编辑xkb_symbols“基本”部分并修改以下内容键{[4,dollar]};->key{[4,dollar],[End]};key{[6,asciicircum]};->key{[6,asciicircum],[Home]};键{[f,F]};->key{[f,F],[Prior]};下面类比修改为:key{[h,H],[Left]};key{[j,J],[Down]};key{[k,K],[向上]};key{[l,L],[向右]};key{[n,N],[下一个]};注销和登录是有效的参考AnUnreliableGuidetoXKBConfiguration