niri+dms下回车/方向键/退格键全窗口失效

环境

  • Arch Linux(标准内核)+ niri 26.04(最新版)+ NVIDIA RTX 4060(专有驱动)
  • fcitx5 + rime(唯一输入法,始终激活)
  • kitty 0.48.2 主终端,zellij,Firefox
  • dms(DankMaterialShell 1.5.3 / quickshell 0.3.0,无第三方插件)
  • 外接 2.4G 键盘(BOOM68)+ 笔记本内置键盘
  • 已启用 QS_DISABLE_DMABUF "1"

症状

  • 回车、上下左右方向键、退格、删除键,在所有窗口(kitty、zellij、Firefox)同时失效
  • 字母数字键正常(能正常打字)、niri 快捷键正常(如 Mod+Return 仍能打开终端)、输入法正常(弹窗/切换都可用)
  • 所有键盘都失效(外接 + 笔记本内置键盘同样无响应)
  • 重启 fcitx5、重启 dms/quickshell:均无效
  • 目前发现解决方案是重启系统

已排除的排查项

假设 排除依据
键盘硬件 / 2.4G 链路 内置键盘同样失效
终端 / 应用层 Firefox(非终端)同样失效
输入法进程 重启 fcitx5 无效
桌面壳 重启 dms 无效
键位绑定冲突 配置无裸键绑定,且静态配置无法解释"重启才恢复"
设备热插拔 故障窗口内 journal 无任何设备事件
内存 / 负载 内存正常、DMA-BUF 已关闭时仍发生

日志线索

  • 相关会话出现多次 libinput 告警

    client bug: event processing lagging behind by XXms, your system is too slow
    

    (G502 鼠标和 BOOM68 键盘都报过)

  • 故障时段无内核错误、无 OOM、无 USB/HID 异常

当前判定

niri(合成器)seat 级按键状态楔死:输入事件处理出现抖动时丢了 key-up,合成器认为回车/方向键等"一直被按住",之后这些键在所有 surface、所有键盘上被去重抑制;该状态只存在于合成器进程内,所以重启 fcitx5/dms 无效,重启 niri 才清空。

求助

  1. 有人遇到过同样现象吗?niri / smithay 有没有对应的已知 issue?
  2. 有没有不重启合成器就能清空按键状态的方法?
    • 已试无效:按住死键 2 秒再松开、niri msg action switch-layout
    • 待试:sudo udevadm trigger --subsystem-match=input、suspend/resume
  3. 下一步该用什么手段定位?(RUST_LOG 应该开哪个模块?)

感谢任何线索!

诶?怪啊。那你故障期间(通过ssh)使用evtest或者libinput debug-events测试呢?

理论上来说,如果是Wayland compositor弄错了按键状态的话,将对应的键按一下就能恢复了。

每次都是这些按键同时失效吗?你的键盘是全尺寸键盘吗?有小键盘层吗?