Alt-Gr 和键盘级别 3

Alt-Gr 和键盘级别 3

问题:

Alt-Gr 是在 X11 下不起作用。按 Alt-Gr 后似乎未设置键盘级别 3(用于“at”、“euro”、“大括号”等)。在里面文本控制台(通过 Right-Shift Right-Alt 1 达到),则不会出现此问题。

应用如下设置:

xmodmap -e "keysym q = q Q at"

并不能解决问题。

这个问题很关键!该系统在 X-Windows 中几乎无法使用。

可以做什么?

设置:

名称-v:Ub#45~20.04.1-Ubuntu SMP Fri Jan 15 11:35:04 UTC 2021

该文件/etc/default/keyboard包含:

XKBMODEL="pc105"
XKBLAYOUT="de"
XKBVARIANT=""
XKBOPTIONS=""

使用xkeycaps/xev表明:

  • Alt-Gr 发送键码“108”

交付xmodmap

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

xevAlt-Gr的输出。

KeyPress event, serial 37, synthetic NO, window 0x3200001,
    root 0x251, subw 0x0, time 6145247, (1781,-38), root:(1804,42),
    state 0x10, keycode 108 (keysym 0xff20, Multi_key), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: True

KeyRelease event, serial 37, synthetic NO, window 0x3200001,
    root 0x251, subw 0x0, time 6145491, (1781,-38), root:(1804,42),
    state 0x10, keycode 108 (keysym 0xff20, Multi_key), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

答案1

问题是切换键盘配置文件时,不知何故使xmodmap设置变得混乱。此外,Multi_Key似乎并不能正确取代 3 级键盘。所以,我$HOME/.Xmodmap通过应用创建了一个文件

> xmodmap -pke > .Xmodmap

我更改了.Xmodmap处理键代码 108 的行,即xev标识为 Alt-Gr 键的行:

keycode 108 = ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift

然后通过重新加载它

> xmodmap .Xmodmap

我等了几分钟。瞧!我的 @ 符号、大括号和 € 符号又回到了键盘上。

相关内容