weasel
weasel copied to clipboard
高优先度接管输入事件导致 Chrome 快捷键失效
上报前请检查
- [x] 我遇到的问题没有其他人在 issue 里提到过
- [x] 我的小狼毫版本于 rime/weasel 下载
- [x] 我在使用小狼毫的最新发布版本,或最新发布版本后的 CI 构建
操作系统信息
- OS 详细版本: Windows 11 专业版 22H2 22621.2283
- 小狼毫版本: 0.15.0.0
描述遇到的问题 测试 Chrome 版本 118.0.5993.11(正式版本)dev (64 位) 在 Chrome 中,任意文本框的中文输入状态将导致 Rime 以最高优先级接收键盘输入事件,进而导致浏览器小写快捷键失效。
复现步骤
- 使用 Chrome 及 Vimium C 插件
- 打开任意网页,在将输入焦点调整至文本框,将输入状态调节为英文
- 敲击键盘 r 键(Caps Lock 不启用,下同),网页正常刷新
- 对任意链接右键,敲击键盘 t 键,链接正常在新标签页打开
- 将输入焦点调整至文本框,将输入状态调节为中文
- 敲击键盘 r 键,或右键链接敲击 t 键,均无反应
- 将输入焦点调整至文本框,没有输入框弹出
- 敲击任意按键,输入框弹出,同时能看到之前敲击的 rt 已经被录入在输入框中
- 由此可得知,即使输入焦点并没有在文本框内,Rime 也会优先接管键盘敲击,使其被识别为输入法输入,而非网页或应用快捷键。
其它信息
- 输入框的输入状态跨标签页传播,意即,在标签页 A 能够正常使用英文快捷键时,如果切换到标签页 B 并在文本框中将输入状态调节为英文,那么标签页 A 也将立即无法使用网页快捷键
- 大写字母快捷键由于不会被输入法接管事件,因此始终有效
- 目前无法确定该问题是 Windows 的问题还是 Chrome 或 Weasel 的问题。初步测试似乎能够在 Edge 上同样复现该问题。
预期行为 无论输入状态如何,浏览器的快捷键(无论是插件的,还是浏览器本身的)都应该正常响应。
用户文件 暂不适用,使用雾凇拼音方案。但经测试朙月拼音方案下也存在该问题。
截图
其他补充说明
确实存在这个问题,但应该是浏览器的问题。 因为之前用没遇到这个问题
输入法本来就应该有高优先级接管输入的字符,我觉得这个问题很难处理好,因为输入法在中文状态就是要优先输入中文而英西文的,就好像在windwos的开始菜单中搜索应用一样,打开开始菜单,直接打字就可以搜索了,并不需要出现输入框。
我也有这样的问题,来补充信息,使用vim插件来控制浏览器,这个问题在edge 117和Chrome 117 可以稳定复现,使用微软拼音输入法不会出现问题,不知道微软是咋样实现的。 我不知道按键信号在系统和各个应用内外部之间传递的顺序和优先级如何是比较好的,但是有一个类似于 Squirrel 的 Vim Mode 似乎可以是是解决方案。 如何在Windows/Linux下的Rime使用Vim模式 通过lua来解决冲突。
目前的个人的解决方案是:Ctrl + Space
, 禁用输入法
同样有这样的困扰,在开启小狼毫中文输入的情况下 Vimium 和 YouTube 播放器的快捷键都无法使用(使用浏览器 Chrome 119.0.6020.3 Edge 119.0.2109.1)。而微软拼音没有这样的问题。 目前除了来回开关输入法之外没有好的办法解决。
我使用的 Surfingkeys 的类 Vimium 插件,在最新的 Edge Version 117.0.2045.43 (Official build) (64-bit) 可以复现此问题,Windows 原生中文输入法则一切正常,而 Firefox 搭配 Rime 也是正常的。
而另一台电脑上的 0.14.0 旧版小狼毫与最新版 Edge 未能复现此问题
我也是遇到同样的问题,最后测试firefox浏览器+Vimium+Rime正常。 我更喜欢Edge浏览器,不知道是否有旧版本的Rime可以和Edge一起正常工作?我看现在下载不到楼上说的0.14.0版本的Rime。
更新:我发现了Prime输入法,安装后发现不存在Edge Vimium快捷键失效的问题。 https://github.com/osfans/PRIME/releases 但是我没能成功在Prime中添加小鹤双拼方案,Ctrl+ ` 切换输入法方案时窗口也会闪烁,所以放弃了Prime。
这个问题,不仅仅是输入法的问题,潜在的问题是vimnium应该在退出insert mode 的时候应该禁用输入法,切换进入insert mode 的时候再使能输入法。
目前小狼毫是不管有没有输入焦点都可用的状态,没有外部信号禁用就一直尝试使用输入接口,于是就出问题了。
看你们上面的讨论应该要在没有焦点的时候禁用小狼毫才能解的感觉了,但是这个方法和目前小狼毫的逻辑是相悖的,要再观望
这个问题,不仅仅是输入法的问题,潜在的问题是vimnium应该在退出insert mode 的时候应该禁用输入法,切换进入insert mode 的时候再使能输入法。
目前小狼毫是不管有没有输入焦点都可用的状态,没有外部信号禁用就一直尝试使用输入接口,于是就出问题了。
看你们上面的讨论应该要在没有焦点的时候禁用小狼毫才能解的感觉了,但是这个方法和目前小狼毫的逻辑是相悖的,要再观望
我认为描述的很对。windows自带的输入法,在没有输入焦点的时候不影响Vimium工作,不知道是怎么实现的。 另外请问,Rime是否有某个旧版本可以与Vimium协调工作呢?
另外不同页面的表现还有差异,比如在github页面,如果将焦点移出输入框外,小狼毫不会出来输入候选框,但是在bing.com的搜索页面就会自动跳到搜索输入框里。
我试了一下,我这边的情况是:Rime中文输入法状态下,乱按一通,无论在github还是bing.com都不会出现输入候选框。当定位到浏览器地址栏之后,之前乱输入的字母会出现在地址栏的输入框里。如上图。
目前Rime.0.15.0, Win11 家庭中文版,版本22H2(0S内部版本22621.2283)。 在edge网页内,按Shift键是可以将Rime调整为英文【A】状态,然后Vimium快捷键就能工作。但每次地址栏输完中文再这样按就很麻烦,我一天要按shift很多次。
补:我前两天有试过火狐浏览器,Rime中文状态+火狐Vimium是可以正常工作的。所以我感觉和浏览器本身也确实有点关系。
更新: 我折腾了半天之后,再次尝试了卡饭输入法,发现一切工作正常。不存在Edge浏览器下Vimium快捷键不能工作的问题,无论卡饭输入法状态是中文还是英文。 另外我发现,它的五笔和拼音混输模式,居然是我心心念念的五笔+双拼的混输,意外之喜!
回头说一句,我还是很喜欢Rime,真心希望后续更新版本能解决这些问题。
我试了安装vimnium插件到chrome和edge,未复现你的问题,另外见有些页面上有类似这样的情况
补充提一句,如果你热爱卡饭,那就用吧
同样没有问题)
同样没有问题)
edge: 117.0.2045.60
可能这又是个Windows 11
独有的问题,当切换到 中文状态下 j
,k
就会失效
有趣的是 之前的weasel
与edge
都没有问题,但更新到某个版本后 问题就出现了,也许是上游的问题吧
相比较来说,想让上游来适配weasel
也基本没可能
我试了安装vimnium插件到chrome和edge,未复现你的问题,另外见有些页面上有类似这样的情况
补充提一句,如果你热爱卡饭,那就用吧
好像装错了 应该是 vimium-c
Vimium C和Vimium基本一样,所以这两个应该装哪个都可以。 根据我的理解,这种扩展是通过在网页里嵌入Javascript代码来工作的,所以只有在“正常”页面才能起作用,在类似浏览器扩展商店这样的页面就不行,大约就会出现上图中的not running on this page的情况。
我刚录屏复现了一下这个问题,简单描述一下,详见下方动图。 1 Rime中文输入状态,在Edge浏览器地址栏输入文字回车搜索,Vimium的快捷键失效,以向下滑动页面的j键和提示链接的f键为例。 2 按左Shift键切换Rime后,Vimium的快捷键生效,可以看到用j键页面正常向下滑动,按f键链接提示字符也正常出现。 3 再按左Shift键切换Rime状态后,Vimium快捷键失效。 4 Rime中文状态下,随便敲击键盘输入,并不会有输入候选框出现。然后定位到浏览器地址栏激活输入框,之前随便敲击键盘的输入就会出现在地址栏里。
细节信息:Rime Weasel 0.15.0;Win11 家庭中文版,版本22H2(0S内部版本22621.2283);Edge 117.0.2045.47 (正式版本) (64 位)
我知道卡饭输入法的时间应该还不超过两个月,所以远远谈不上热爱,目前用卡饭只是权宜之计。因为我还有点其他语言需求,所以我还是最想用Rime,另外,我真的很喜欢Rime的Aqua皮肤。:)
测试了一下在 firefox 119.0b6 (64 位) 中使用 Rime Weasel 0.15.0 开启中文输入,YouTube播放器快捷键可以正常使用。而在 Chrome 119.0.6045.9 中就无法使用。两者均未启用浏览器扩展程序。 操作系统 Windows 11 22H2 22621.2361
Windows 10 ltsc 64bit chrome 117 64bit, edge不记得是哪个版本了 小狼毫我已经更新拉开0.15.0太多了,目前在用是这个,不确定有没有影响(虽然我几乎没有改TSF按键相关的东西,我已经没有安装IME只装TSF) https://github.com/fxliang/weasel/actions/runs/6272290925
补充测试 Windows 10 家庭中文版 64位, 10.0.19045 Microsoft Edge 版本 117.0.2045.47 (正式版本) (64 位) Google Chrome 版本 117.0.5938.150 64位 当前页面,中英文状态都试过,vimnium/vimnium-c都试了,表现正常。
试用了 fxliang 的 6272290925 版本 Rime,在 Chrome 119 Dev 上仍存在这个问题。
综合目前的测试情况来看可能存在的 ~~两个~~ 变量:
- 操作系统 Win10/Win11 的区别
- ~~Chromium 系浏览器 Release Build 与 Dev Build 的区别~~ 仔细看了一下发现也有 117 的复现问题了
不过,考虑到微软自带拼音输入法始终不会出现这个问题,我的猜测仍偏向于 Rime 目前关于输入事件监听的某个实现上存在问题。
我是在B站遇到了类似的问题,用微软输入法时,无论中英文输入状态都可以使用F键将视频全屏化,用小狼毫时只有切换到英文状态才可以使用快捷键。我的浏览器是Edge
更新: 早上更新了windows,发现Rime配合Edge的快捷键可以正常工作了。 Rime: 0.15.0 Edge: 119.0.2151.58 (正式版本) (64 位) Windows: 22H2,22621.2428
Edge浏览器中如果没有输入焦点,按Shift键不能切换Rime中英状态。但Vimium的快捷键正常工作。
brave同样出现这个问题
Vimium仓库地址
在浏览器开启Vimium后
输入法使用的是小狼毫
+rime-ice
在中文输入法下无法使用Vimium快捷键
而在英文输入法shift
下则可以使用Vimium快捷键
前段时间突然遇到这个问题,导致许多网页游戏、网站快捷键无法正常使用。没动输入法,或是浏览器或系统导致。
Rime: 0.15.0 Edge: 120.0.2210.61 (正式版本) (64 位) Windows: 23H2,22621.2715
win11+weasel,edge上使用surfingkeys也会出现这个问题 当输入法处于中文输入模式并且失去输入框焦点后会捕获所有的按键导致surfingkeys插件无法使用
Weasel 0.15.0.0 Win11 22H2 Edge 120.0.2210.91
这个问题也不仅是影响Vim类浏览器插件,一些网页内建的快捷键在中文输入模式下也用不了啊😢 我备用的微软五笔/拼音,搜狗拼音/五笔都没有这个问题。
- weasel 0.15.0.0
- Windows 11 22H2 22621.2861
- Microsoft Edge 120.0.2210.144 (正式版本) (64 位)
- Chrome 121.0.6167.86(正式版本) (64 位)
更新: 早上更新了windows,发现Rime配合Edge的快捷键可以正常工作了。 Rime: 0.15.0 Edge: 119.0.2151.58 (正式版本) (64 位) Windows: 22H2,22621.2428
Edge浏览器中如果没有输入焦点,按Shift键不能切换Rime中英状态。但Vimium的快捷键正常工作。
晚上更新了Windows,重回中文输入法时Vimium快捷键失效状态。强烈希望下个版本Rime能解决这个问题。
前两天更新的Windows,今天使用chrome时发现vimium用不了,排查后发现是在Rime输入法中文模式下无法使用,且使用shift
切换的时候页面会有很明显的中英文状态,以前在Windows10的时候并没有出现此问题,强烈希望能够解决,还是非常喜欢Rime的。Rime:0.15.0.0 Chrome:121.0.6167.86(正式版本)(64位) Windows11专业版:22H2 22621.3085