为什么美国国际键盘会破坏 Alt_R

为什么美国国际键盘会破坏 Alt_R

所有添加美国英语国际(带死键)键盘布局都会破坏我的 Alt_R 键。有什么想法吗?

我正在使用 GNOME 开发 RHEL 5.5。如果删除附加布局,该问题就会消失;如果将其添加回来,该问题又会再次出现。

具体问题包括如果使用 Alt_R,则 Alt-F2 无法启动运行应用程序应用程序;如果使用 Alt_R,则 CTRL-Alt-L 无法再次查看屏幕。

我尝试使用 xev 进行故障排除。这是我仅使用美国英语布局得到的结果:

KeyPress event, serial 29, synthetic NO, window 0x1e00001,
    root 0x3a2, subw 0x0, time 1766794207, (169,-13), root:(2099,35),
    state 0x0, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 29, synthetic NO, window 0x1e00001,
    root 0x3a2, subw 0x0, time 1766794447, (169,-13), root:(2099,35),
    state 0x8, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False  

这是我使用美国英语国际版(带死键)布局得到的结果:

KeyPress event, serial 26, synthetic NO, window 0x1e00001,
    root 0x3a2, subw 0x0, time 1766853750, (169,-13), root:(2099,35),
    state 0x0, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 29, synthetic NO, window 0x1e00001,
    root 0x3a2, subw 0x0, time 1766853872, (169,-13), root:(2099,35),
    state 0x80, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

目前是否实际使用该布局并没有什么区别。只要将它放在选定的列表中就会破坏事情。如果这是一个错误,有谁知道应该将其提交到哪里(GNOME、Xorg、Redhat)?

编辑:我现在意识到我可以使用 xmodmap 查看我的修改器映射。最初,mod5 映射到 mod5 Mode_switch (0x5d) 和 ISO_Level3_Shift (0x7c)。添加国际布局,也将 Alt_R (0x71) 映射到 mod5,这就是我遇到此问题的原因。根据 Caleb 的建议,我将 Alt_R 切换为 ISO_Level3_Shift,这样 mod5 现在映射到“mod5 Mode_switch (0x5d)、ISO_Level3_Shift (0x71)、ISO_Level3_Shift (0x7c)”。不过,这仍然破坏了 Alt_R 作为 Alt_L 替代方案的作用。

答案1

在大多数国际布局中,Alt_R成为AltGr(备用组?)键,也称为第三级选择器,可让您访问备用字母、符号、重音符号等。即使您看到的键码未正确重新映射到此,我怀疑布局是预期的,它在键码上打嗝。

我建议您查看 gnome 键盘选项的其他选项卡并手动设置 AltGr 键(也许就是那个键),以便国际布局能够充分发挥作用。

答案2

美国以外的大多数键盘布局将右侧 Alt 键归因于不同的用途,称为AltGr(替代图),这使得美国成为该规则的例外。 AltGr 键是另一种 Shift 键,旨在选择其他键上可用的额外字符。请参阅维基百科文章在 AltGr 上。

因此,如果您想使用 Alt 修饰符发出组合键,例如 Alt-F2 或 Ctrl-Alt-L,请务必按左边Alt 键,因为右边的键有其他用途。只是在美国英语布局中,该键没有其他用途,因此将其重新分配(或者更好的是,保留原来的旧分配)作为附加 Alt 键。甚至英式英语布局也使用 AltGr 来发出“€”和“£”等字符。

相关内容