马儿慢些走

人生惶惶,悲喜一场。

iBus Shift连选现象(KIMI)

2025年9月14日,这是和Kimi的对话内容,仅供参考。


User: 我在OpenSUSE上使用ibus输入法、Gnome桌面环境、火狐浏览器,为什么有时候会触发shift按钮的连选效果?鼠标好像提前在一个地方按住了,点其他地方就变成了选中这一段内容,或者选中几个标签页。我发现解除的方法就是按左侧shift键。这是什么情况?

Kimi: 你遇到的“Shift 连选”现象,本质上是 ibus 在 GNOME/Wayland 下对 Shift 键的“中英文切换”逻辑与 GTK 应用(Firefox、Nautilus、终端等)对 Shift 的“扩展选择”逻辑同时生效 造成的冲突:

  • ibus 默认把 左 Shift 设为“临时切回英文”热键;
  • 当 ibus 抢到了 Shift 的 KeyPress 却没能在 KeyRelease 时正确地把事件“归还”给应用,GTK 就认为 Shift 一直被按着,于是鼠标点击就变成了“连选/多选”。
  • 再按一次左 Shift,ibus 内部状态翻转,事件流被重新同步,现象消失。

这是 ibus 1.5.28 之前的一个已知 bug,在 Wayland 会话里尤其容易复现,Firefox、Evince、Nautilus 都能触发,和中文输入法本身无关,只要 ibus-daemon 在跑就可能出现。

一句话结论

不是硬件也不是 GNOME 的问题,是 ibus 对左 Shift 的切换钩子与 Wayland/GTK 的按键状态同步有 race,官方已修复,升级即可。


如何彻底解决

  1. 升级 ibus
    openSUSE Tumbleweed 已带 1.5.28+,直接

    sudo zypper ref && sudo zypper up ibus ibus-gtk ibus-wayland
    

    然后重启会话即可。

  2. 若暂时不能升级,可把 ibus 的 Shift 热键关掉或换成别的键,避免它抢占:

    ibus-setup          # 打开图形设置
    

    “常规” → “下一输入源”/“临时切换到英文” → 把 Left Shift 删掉或改成 Right Shift
    改完 ibus restart 或重新登录生效。

  3. 不想用 ibus 也可以整体切换到 fcitx5(openSUSE 官方仓库已有),它对 Shift 没有默认钩子,在 Wayland 下也稳定。


临时应急

一旦误触发,除了再按一次左 Shift,也可以

ibus restart

或直接把输入法切到“英”再切回“中”,都能立即复位状态。


参考

该 bug 在 GNOME gitlab 与 ibus 仓库的 issue 中均有记录,编号 ibus#2351 / gnome-shell#5553,修复说明可见于 ibus 1.5.28 release note。

posted on 2025-09-14 17:48  马儿慢些走  阅读(29)  评论(0)    收藏  举报

导航