在 xkb 布局中使用类似多媒体的键

在 xkb 布局中使用类似多媒体的键

如果我想重新定义 R 键,我会使用:

key <AD04>  { [         r,          R,      Page_Up,     registered ]}; 

该键对应的 xev 输出是:

KeyPress event, serial 35, synthetic NO, window 0x5a00001,
    root 0x228, subw 0x0, time 96963419, (121,378), root:(992,832),
    state 0x10, keycode 27 (keysym 0x72, r), same_screen YES,
    XLookupString gives 1 bytes: (72) "r"
    XmbLookupString gives 1 bytes: (72) "r"
    XFilterEvent returns: False

我怎么找到的AD04?我正在研究现有映射并发现r,很简单。

但是还有更多奇特的字符,例如BKSL退格键,或者LSGTiso 键盘的“奇怪”反斜杠 (IIUC)。那么我是怎么发现的LSGT?我知道,它通常可以在 gb 键盘上找到。这不是非常正确的查找方法,但至少是可能的。

所以现在我想重新定义 MS-ergonomic 4000 上的一些多媒体键。xev 看起来像这样:

KeyRelease event, serial 39, synthetic NO, window 0x4800001,
    root 0x228, subw 0x0, time 97354466, (-387,623), root:(484,1077),
    state 0x10, keycode 167 (keysym 0x1008ff27, XF86Forward), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

我如何找到:key <XY05>或者它是什么?或者我可以用什么来代替<XY05>,就像我们可以使用U200E来打印任意unicode(如果缺少keysym)一样?这个键盘滥用高于12的F键来丢失类似多媒体的键,所以我假设这将是相同的并且实际上可用,但是哪一个!,如何找到它?


更新:部分找到了,并不适用于所有键。

关于符号r

例如,在 xev 列表中有keycode 27。好吧,我不太相信,这确实是关键代码,正如showkey -k所说的r那样19,它也不是 scancode 或 ascii,这就是我所知道的所有代码。无论如何,这个任何是 27。配对来自任何完成<whatever>于:/usr/share/X11/xkb/keycodes,因此问题find ./ -type f -exec grep -l 27 {} +,您将发现配对。

但是有些键,在我的情况下是 XF86Forward,在键码文件中重复定义,都不起作用<WHATEVER>。尝试定义自定义 xkb_keycodes 会导致错误(xkb 的编写/文档不是很好)。无论如何,作为一种丑陋的解决方法,可以使用 xmodmap 重新定义键,然后在 xkb 中使用其他键,这实际上有效。

相关内容