令人敬畏的WM忽略非美国布局中的输入

Ras*_*ast 6 keyboard-layout awesome-wm

我已经开始使用Awesome WM,并且发现mod+R在当前布局不是美国时,例如RU,它忽略了"运行"小部件()中的输入很烦人.此外,它忽略了任何输入(鼠标点击,键盘 - 甚至不是特定于布局的键,如Esc!)在其启动器/主菜单和"客户列表"中等等.我正在使用Arch Linux,并且~/.xinitrc有以下行:

setxkbmap -layout "us, ru" -option "grp:caps_toggle, grp_led:caps"
Run Code Online (Sandbox Code Playgroud)

Awesome的rc.lua默认配置既没有布局,也没有特定于Capslock的东西,但我试图隔离问题并从我的xinitrc中删除了capslock toggle选项.这根本没有帮助.

xev 输出显示当我切换布局(带有大写字母)时,只有事情发生变化才是'状态':

- 鼠标左键单击(当前布局:美国,一切正常) -

LeaveNotify event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13419931, (151,498), root:(835,518),
    mode NotifyGrab, detail NotifyAncestor, same_screen YES,
    focus YES, state 256

EnterNotify event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13419931, (151,498), root:(835,518),
    mode NotifyUngrab, detail NotifyAncestor, same_screen YES,
    focus YES, state 256

KeymapNotify event, serial 33, synthetic NO, window 0x0,
    keys:  4294967189 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

ButtonPress event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13419931, (151,498), root:(835,518),
    state 0x0, button 1, same_screen YES

ButtonRelease event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13420028, (151,498), root:(835,518),
    state 0x100, button 1, same_screen YES
Run Code Online (Sandbox Code Playgroud)

- 大写锁定(更改布局美国 - > RU) -

KeyPress event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13420911, (151,498), root:(835,518),
    state 0x0, keycode 66 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13420998, (151,498), root:(835,518),
    state 0x2000, keycode 66 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
Run Code Online (Sandbox Code Playgroud)

- 鼠标左键单击(现在Awesome无法在其小部件/对话框中看到鼠标点击/ ...) -

LeaveNotify event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13422624, (151,498), root:(835,518),
    mode NotifyGrab, detail NotifyAncestor, same_screen YES,
    focus YES, state 8448

EnterNotify event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13422625, (151,498), root:(835,518),
    mode NotifyUngrab, detail NotifyAncestor, same_screen YES,
    focus YES, state 8448

KeymapNotify event, serial 33, synthetic NO, window 0x0,
    keys:  4294967189 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

ButtonPress event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13422624, (151,498), root:(835,518),
    state 0x0, button 1, same_screen YES

ButtonRelease event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13422721, (151,498), root:(835,518),
    state 0x2100, button 1, same_screen YES
Run Code Online (Sandbox Code Playgroud)

- 大写锁定(更改布局RU - >美国) -

KeyPress event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13423836, (151,498), root:(835,518),
    state 0x2000, keycode 66 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13423947, (151,498), root:(835,518),
    state 0x0, keycode 66 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
Run Code Online (Sandbox Code Playgroud)

- 逃避(例如,关闭令人敬畏的主菜单) -

KeyPress event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13426419, (151,498), root:(835,518),
    state 0x0, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
    XLookupString gives 1 bytes: (1b) ""
    XmbLookupString gives 1 bytes: (1b) ""
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13426514, (151,498), root:(835,518),
    state 0x0, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
    XLookupString gives 1 bytes: (1b) ""
    XFilterEvent returns: False
Run Code Online (Sandbox Code Playgroud)

- 大写锁定(更改布局美国 - > RU) -

KeyPress event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13427017, (151,498), root:(835,518),
    state 0x0, keycode 66 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13427096, (151,498), root:(835,518),
    state 0x2000, keycode 66 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
Run Code Online (Sandbox Code Playgroud)

- 逃避(忽略) -

KeyPress event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13427782, (151,498), root:(835,518),
    state 0x2000, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
    XLookupString gives 1 bytes: (1b) ""
    XmbLookupString gives 1 bytes: (1b) ""
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x1600001,
    root 0x95, subw 0x0, time 13427877, (151,498), root:(835,518),
    state 0x2000, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
    XLookupString gives 1 bytes: (1b) ""
    XFilterEvent returns: False
Run Code Online (Sandbox Code Playgroud)

PS:我也想知道在哪里可以找到令人敬畏的关键部分(例如Shift_R)以及这些Mod1,Mod2等究竟是什么意思.

UPD:这个问题大致与此问题中描述的问题相同,但作者只谈到封锁切换,而不是关于默认(Alt- Shift)切换.

小智 4

该错误显然在此https://bugs.archlinux.org/task/29123中。

来源:https ://awesome.naquadah.org/bugs/index.php?do=details&task_id=982

  • 最简单的解决方案实际上是编辑 /usr/share/X11/xkb/compat/basic 并删除或注释掉“group [2-4] = AltGr;” 行(全部三行)。通过点击 X11 错误报告答案中的链接找到了答案。 (5认同)