我有一个新的蓝牙键盘,由于某种原因,转义键返回的键码是 172 而不是 1(根据“showkey”;相同的代码在 xkb 中添加了 8,因此是 180 而不是 9)。依照指示这个答案我能够重新映射 ESC 以使用键码 180 而不是 9,所以这很好,但是我似乎不能执行两次,即写
<ESC> = 9;
<ESC> = 180;
在这种情况下,只有后一种设置有效。这是次优的,因为它会破坏内置键盘上的按键。所以我可以让其中之一正常工作,但不能两者都正常工作。
对此,正确的做法是什么?
答案1
据我了解,您必须经历两个级别的映射。在里面键码映射<>
您可以为键盘生成的数字扫描代码指定“任意”名称(内部最多 4 个字符),然后在符号映射你说这个键名是如何起作用的。所以你需要有
<ESC> = 9;
<ESC2> = 180;
然后是一个xkb_symbols
条目
key <ESC2> { [ Escape ] };
但是,对于有 2 个键盘的情况,您实际上应该简单地为每个键盘设置不同的布局,而不是制作兼容的键盘。用于xinput -list
获取键盘的 ID,以及每次运行的 IDsetxkbmap -device id ...
和指定特定键盘的型号、布局、变体和选项的其他参数。
答案2
根据不可靠的 XKB 配置指南,你可以用别名。该功能用于xkb/aliases
,所以你应该能够做类似的事情
alias <ESC> = 9;
alias <ESC> = 180;