系统日志

系统日志

因此,当我输入正斜杠键时,整个系统会冻结几秒钟。这只发生在我的 Corsair K90 键盘上。

我目前得到的是:

  1. 使用另一个键盘(Logitech MK120),不会发生冻结现象。
  2. 使用 Ubuntu 和 Pop_os 时会发生冻结。Windows、Manjaro XFCE 和 Fedora 上不会发生这种情况。
  3. 使用不同的 USB,仍然会出现冻结的情况。
  4. 切换键盘布局,仍然会出现冻结的情况。
  5. 使用另一台计算机,冻结现象仍然发生。
  6. 两种键盘均采用 ABNT2 布局(巴西葡萄牙语)

因此,看起来冻结只发生在我的 Corsair K90 和基于 Ubuntu 的发行版上。

系统日志

Ubuntu

Apr  1 16:58:05 ubuntu gnome-shell[5525]: Window manager warning: Overwriting existing binding of keysym 31 with keysym 31 (keycode a).
    
Apr  1 16:58:05 ubuntu gnome-shell[5525]: Window manager warning: Overwriting existing binding of keysym 32 with keysym 32 (keycode b).
    
Apr  1 16:58:05 ubuntu gnome-shell[5525]: Window manager warning: Overwriting existing binding of keysym 33 with keysym 33 (keycode c).
    
Apr  1 16:58:05 ubuntu gnome-shell[5525]: Window manager warning: Overwriting existing binding of keysym 34 with keysym 34 (keycode d).
    
Apr  1 16:58:05 ubuntu gnome-shell[5525]: Window manager warning: Overwriting existing binding of keysym 35 with keysym 35 (keycode e).
    
Apr  1 16:58:05 ubuntu gnome-shell[5525]: Window manager warning: Overwriting existing binding of keysym 36 with keysym 36 (keycode f).
    
Apr  1 16:58:05 ubuntu gnome-shell[5525]: Window manager warning: Overwriting existing binding of keysym 38 with keysym 38 (keycode 11).
    
Apr  1 16:58:05 ubuntu gnome-shell[5525]: Window manager warning: Overwriting existing binding of keysym 39 with keysym 39 (keycode 12).
    
Apr  1 16:58:05 ubuntu gnome-shell[5525]: Window manager warning: Overwriting existing binding of keysym 37 with keysym 37 (keycode 10).

Pop_OS

Apr  1 14:39:37 pop-os gnome-shell[3511]: Window manager warning: Overwriting existing binding of keysym 71 with keysym 71 (keycode 18).

输入/asd,我得到:

KeyRelease event, serial 38, synthetic NO, window 0x5c00001,
    root 0x1e0, subw 0x0, time 1566707, (279,55), root:(2394,314),
    state 0x10, keycode 97 (keysym 0x2f, slash), same_screen YES,
    XLookupString gives 1 bytes: (2f) "/"
    XFilterEvent returns: False

MappingNotify event, serial 40, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyPress event, serial 40, synthetic NO, window 0x5c00001,
    root 0x1e0, subw 0x0, time 1566746, (279,55), root:(2394,314),
    state 0x10, keycode 39 (keysym 0x73, s), same_screen YES,
    XLookupString gives 1 bytes: (73) "s"
    XmbLookupString gives 1 bytes: (73) "s"
    XFilterEvent returns: False

KeyRelease event, serial 41, synthetic NO, window 0x5c00001,
    root 0x1e0, subw 0x0, time 1566790, (279,55), root:(2394,314),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyPress event, serial 41, synthetic NO, window 0x5c00001,
    root 0x1e0, subw 0x0, time 1566822, (279,55), root:(2394,314),
    state 0x10, keycode 40 (keysym 0x64, d), same_screen YES,
    XLookupString gives 1 bytes: (64) "d"
    XmbLookupString gives 1 bytes: (64) "d"
    XFilterEvent returns: False

KeyRelease event, serial 41, synthetic NO, window 0x5c00001,
    root 0x1e0, subw 0x0, time 1566840, (279,55), root:(2394,314),
    state 0x10, keycode 39 (keysym 0x73, s), same_screen YES,
    XLookupString gives 1 bytes: (73) "s"
    XFilterEvent returns: False

KeyRelease event, serial 41, synthetic NO, window 0x5c00001,
    root 0x1e0, subw 0x0, time 1566874, (279,55), root:(2394,314),
    state 0x10, keycode 40 (keysym 0x64, d), same_screen YES,
    XLookupString gives 1 bytes: (64) "d"
    XFilterEvent returns: False

修改映射

使用我得到的命令xmodmap -pke | less

...
keycode  97 = slash question slash question degree questiondown degree questiondown slash question degree questiondown
...

我尝试使用命令删除一些重复xmodmap -e "keycode 97 = slash question degree",但没有帮助。

使用另一个键盘进行测试(Logitech MK120,无冻结)

输入“/asd”。此键盘似乎不会发生“MappingNotify 事件”,也不会发生冻结。

KeyPress event, serial 37, synthetic NO, window 0x1e00001,
    root 0x1e0, subw 0x0, time 1907488, (155,-8), root:(2120,101),
    state 0x10, keycode 97 (keysym 0x2f, slash), same_screen YES,
    XLookupString gives 1 bytes: (2f) "/"
    XmbLookupString gives 1 bytes: (2f) "/"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x1e00001,
    root 0x1e0, subw 0x0, time 1907576, (155,-8), root:(2120,101),
    state 0x10, keycode 97 (keysym 0x2f, slash), same_screen YES,
    XLookupString gives 1 bytes: (2f) "/"
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x1e00001,
    root 0x1e0, subw 0x0, time 1907592, (155,-8), root:(2120,101),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x1e00001,
    root 0x1e0, subw 0x0, time 1907640, (155,-8), root:(2120,101),
    state 0x10, keycode 39 (keysym 0x73, s), same_screen YES,
    XLookupString gives 1 bytes: (73) "s"
    XmbLookupString gives 1 bytes: (73) "s"
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x1e00001,
    root 0x1e0, subw 0x0, time 1907720, (155,-8), root:(2120,101),
    state 0x10, keycode 40 (keysym 0x64, d), same_screen YES,
    XLookupString gives 1 bytes: (64) "d"
    XmbLookupString gives 1 bytes: (64) "d"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x1e00001,
    root 0x1e0, subw 0x0, time 1907728, (155,-8), root:(2120,101),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x1e00001,
    root 0x1e0, subw 0x0, time 1907784, (155,-8), root:(2120,101),
    state 0x10, keycode 39 (keysym 0x73, s), same_screen YES,
    XLookupString gives 1 bytes: (73) "s"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x1e00001,
    root 0x1e0, subw 0x0, time 1907824, (155,-8), root:(2120,101),
    state 0x10, keycode 40 (keysym 0x64, d), same_screen YES,
    XLookupString gives 1 bytes: (64) "d"
    XFilterEvent returns: False

接下来我可以尝试什么来阻止 Corsair 键盘冻结?

答案1

引用 Corsair 论坛:https://forum.corsair.com/forums/topic/107444-unofficial-linux-osx-driver/

安装非官方驱动程序。(它可能会有帮助。)

答案2

我在 Fedora 37 上安装了瑞士布局 (QWERTZ) 的 Strix 键盘。反斜杠 (ALTGR+<) 也导致了类似的冻结。

禁用 NKRO(N 键翻转)解决了该问题(按 FN+PGUP 切换开/关)

相关内容