我正在使用带有内置键盘的设备,并在其上运行 ARM Debian,并使用 i3 作为窗口管理器。有一个Alt
键(keysym Alt_L
),以及两个用于特殊字符的键,它们看起来类似于,AltGr
因为它们对应ISO_Level3_Shift
于xev
:
KeyPress event, serial 34, synthetic NO, window 0x2200001,
root 0x38c, subw 0x0, time 86851282, (270,736), root:(1903,793),
state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x2200001,
root 0x38c, subw 0x0, time 86851413, (270,736), root:(1903,793),
state 0x8, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 34, synthetic NO, window 0x2200001,
root 0x38c, subw 0x0, time 86854252, (270,736), root:(1903,793),
state 0x0, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
XKeysymToKeycode returns keycode: 92
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x2200001,
root 0x38c, subw 0x0, time 86854362, (270,736), root:(1903,793),
state 0x8, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
XKeysymToKeycode returns keycode: 92
XLookupString gives 0 bytes:
XFilterEvent returns: False
然而,尽管键盘符号不同,但 Debian 和 i3 WM 认为这三个键是相同的:无论我按下哪个键,在我 i3 配置中设置为后,它们都充当 i3 中的修饰键$mod
。Mod1
我还没有找到一种方法让我的系统区分它们。
有没有办法将两个键盘分开并保留Alt
基本功能,即使其在 GUI 应用程序中打开菜单但不触发 i3 修饰符?或者,我更倾向于使用它Alt_L
来达到第三级 xkb 符号,并将ISO_Level3_Shift
其作为我的 i3 修饰符;我该怎么做?
答案1
我找到了setxkbmap
允许我为每个键分配正确功能的选项要旨。
因此,在我的 i3 中添加此功能config
可以将Alt
键设置为ISO_Level3_Shift
,并将我的其他修饰键(在键盘的两侧重复)设置为Super_R
:
exec --no-startup-id setxkbmap -model fxtecpro1 -layout fxtec_vndr/pro1 -variant us2 -rules evdev -option lv3:lalt_switch, compose:caps, altwin:swap_alt_win
命令中还有一些其他不相关的选项,要么是为了个人喜好,要么是为了符合我的设备的特性。pro1
是一个xkb
针对设备的文件,us2
是一个自定义us-intl
变体。
但是,尽管进行了更改,i3 仍然会忽略按键之间的差异,$mod
当我将 i3 设置为使用 时,它们仍然会全部起作用Mod1
。我相信这是因为我使用了 Xwayland,即使xmodmap
和xev
报告了正确的设置,Xwayland
也可能没有考虑到它们。我猜Wayland
替代方案适用于Xwayland
,但我不认为我可以使用替代方案实现这种级别的自定义Wayland
。