使用 setxkbmap 进行简单的重新映射(类似于 xmodmap)

使用 setxkbmap 进行简单的重新映射(类似于 xmodmap)

使用 xmodmap 重新映射键盘后,我遇到了一些问题:应用后 2-20 分钟内设置会随机重置。谷歌搜索但没有帮助:有些东西重置了它们,但所有提及都适用于 xfce,而我使用的是带有 unity 的常用 14.04 Ubuntu。

我看到了诸如“使用 xkb,忘记 xmodmap”之类的短语,但仍然不知道该怎么做。它要么是机密的,要么非常复杂,因为与 xmodmap 方式相比,它的信息量要少得多。

这是我的定制列表:

xmodmap -e "keycode 84 = Down"
xmodmap -e "keycode 79 = Home"
xmodmap -e "keycode 80 = Up"
xmodmap -e "keycode 83 = Left"
xmodmap -e "keycode 85 = Right"
xmodmap -e "keycode 87 = End"
xmodmap -e "keycode 90 = Insert"
xmodmap -e "keycode 91 = Delete"
xmodmap -e "keycode 89 = Next"
xmodmap -e "keycode 81 = Prior"

其中键码是数字键盘上的对应键,numlock = 关闭(基本上,我用 Delete 替换 KP_Del,用 Home 替换 KP_Home 等 - 不要问为什么)

有人能帮忙找到使用 xkb 的方法吗 - 至少一行?在哪里可以找到其他键的“名称”,以便我可以通过示例完成其余操作?

答案1

您可以按照我对类似问题的回答;如果你仍然想要布局切换(尽管仍然很破旧) 你应该定义新的布局或变体

请注意,要复制和修改用于编辑键盘的模板有点难找。例如,在我的键盘中,几何图形是“pc105”;这是在中定义的/usr/share/X11/xkb/symbols/pc。如果你仔细研究它,它包括

[...]
key <SPCE> {        [        space          ]       };

include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(x11)"

key <BKSP> {        [ BackSpace, BackSpace  ]       };
[...]

键盘在文件中定义/usr/share/X11/xkb/symbols/keypad

[...] 
default  partial hidden keypad_keys
xkb_symbols "x11" {
   include "keypad(operators)"

   key  <KP7> {        [  KP_Home,     KP_7    ]       };
   key  <KP8> {        [  KP_Up,       KP_8    ]       };
[...]

对于按键符号 (keysims) 的名称,最好的查找位置是文件/usr/include/X11/keysymdef.h;您可能需要安装开发包才能获得它(或通过安装来安装它x11proto-core-dev):

[...]
/* Cursor control & motion */

#define XK_Home                          0xff50
#define XK_Left                          0xff51  /* Move left, left arrow */
#define XK_Up                            0xff52  /* Move up, up arrow */
[...]

keysym 名称是您删除“XK_”字符串后的名称。

相关内容