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,官方已修复,升级即可。
如何彻底解决
-
升级 ibus
openSUSE Tumbleweed 已带 1.5.28+,直接sudo zypper ref && sudo zypper up ibus ibus-gtk ibus-wayland然后重启会话即可。
-
若暂时不能升级,可把 ibus 的 Shift 热键关掉或换成别的键,避免它抢占:
ibus-setup # 打开图形设置“常规” → “下一输入源”/“临时切换到英文” → 把 Left Shift 删掉或改成 Right Shift;
改完ibus restart或重新登录生效。 -
不想用 ibus 也可以整体切换到 fcitx5(openSUSE 官方仓库已有),它对 Shift 没有默认钩子,在 Wayland 下也稳定。
临时应急
一旦误触发,除了再按一次左 Shift,也可以
ibus restart
或直接把输入法切到“英”再切回“中”,都能立即复位状态。
参考
该 bug 在 GNOME gitlab 与 ibus 仓库的 issue 中均有记录,编号 ibus#2351 / gnome-shell#5553,修复说明可见于 ibus 1.5.28 release note。
浙公网安备 33010602011771号