xmodmap shift + keycode 生成 keysym

Att*_*eld 4 x11 xmodmap keyboard-layout

关于如何使用 xmodmap 将修饰符 + 某个键绑定到新键的示例似乎很少。

例如,我想绑定 left Shift(keycode 50) + `(keycode 21) 以发出重音符:

`

这是挪威语键盘的正常行为,但不适用于 Macbook Pro(运行 Linux)。

我正在使用 xev 来获取键码,我可以成功地映射单键按下(在我找不到的另一篇文章的帮助下)以这种方式获取必要的其他键,例如退格键和美元符号:

keycode 134 = ISO_Level3_Shift Multi_key ISO_Level3_Shift Multi_key
keycode 21 = backslash bar
Run Code Online (Sandbox Code Playgroud)

但是我该怎么做:

keycode 50 + keycode 21 = Grave character
Run Code Online (Sandbox Code Playgroud)

这不是正确的语法,但它应该使我想要清楚。

一般来说,如何在语法中正确使用像 shift 这样的修饰键?只能组合使用修饰键吗?

我尝试过一些简单的事情,例如“keycode 50 keycode 21 = A”和“keycode 50 + keycode 21 = A”。(“A”不是我想要的字符,我只是将它用于测试目的)。

Gil*_*il' 9

键和弦(如Shift+ \)是通过将一个键与一组修饰符组合来指定的,而不是通过直接组合键来指定。因此,您需要指定的是“键码 21 加 Shift 修饰符”,而不是“键码 50 加键码 21”。只有修饰符可以组合使用。此外,xmodmap 有一定的局限性:您需要同时指定特定基本键的所有键和弦。

keycode 21 = backslash grave acute
Run Code Online (Sandbox Code Playgroud)

等号后的第一个键符(字符或功能键名称)是与裸键对应的键,然后是与键对应的键Shift,然后是AltGr,然后是Shift+ AltGr

如果您想要死键,请将其更改为

keycode 21 = backslash dead_grave dead_acute
Run Code Online (Sandbox Code Playgroud)

但是,如果您想要标准的挪威语布局,您应该能够在桌面环境的配置界面中选择它,或者使用XKB — setxkbmap -layout no切换到挪威语布局。