Keyboard
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 中幾乎無法使用。
可以做什麼?
設置:
unname -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)
xev
Alt-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
問題是切換鍵盤配置文件會以某種方式
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
我等了幾分鐘。瞧!我的@符號、我的大括號和我的€符號回到了我的鍵盤上。