Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

高优先度接管输入事件导致 Chrome 快捷键失效 #997

Closed
3 tasks done
LenKiMo opened this issue Sep 17, 2023 · 58 comments · Fixed by #1277
Closed
3 tasks done

高优先度接管输入事件导致 Chrome 快捷键失效 #997

LenKiMo opened this issue Sep 17, 2023 · 58 comments · Fixed by #1277

Comments

@LenKiMo
Copy link

LenKiMo commented Sep 17, 2023

上报前请检查

  • 我遇到的问题没有其他人在 issue 里提到过
  • 我的小狼毫版本于 rime/weasel 下载
  • 我在使用小狼毫的最新发布版本,或最新发布版本后的 CI 构建

操作系统信息

  • OS 详细版本: Windows 11 专业版 22H2 22621.2283
  • 小狼毫版本: 0.15.0.0

描述遇到的问题
测试 Chrome 版本 118.0.5993.11(正式版本)dev (64 位)
在 Chrome 中,任意文本框的中文输入状态将导致 Rime 以最高优先级接收键盘输入事件,进而导致浏览器小写快捷键失效。

复现步骤

  1. 使用 Chrome 及 Vimium C 插件
  2. 打开任意网页,在将输入焦点调整至文本框,将输入状态调节为英文
  3. 敲击键盘 r 键(Caps Lock 不启用,下同),网页正常刷新
  4. 对任意链接右键,敲击键盘 t 键,链接正常在新标签页打开
  5. 将输入焦点调整至文本框,将输入状态调节为中文
  6. 敲击键盘 r 键,或右键链接敲击 t 键,均无反应
  7. 将输入焦点调整至文本框,没有输入框弹出
  8. 敲击任意按键,输入框弹出,同时能看到之前敲击的 rt 已经被录入在输入框中
  9. 由此可得知,即使输入焦点并没有在文本框内,Rime 也会优先接管键盘敲击,使其被识别为输入法输入,而非网页或应用快捷键。

其它信息

  • 输入框的输入状态跨标签页传播,意即,在标签页 A 能够正常使用英文快捷键时,如果切换到标签页 B 并在文本框中将输入状态调节为英文,那么标签页 A 也将立即无法使用网页快捷键
  • 大写字母快捷键由于不会被输入法接管事件,因此始终有效
  • 目前无法确定该问题是 Windows 的问题还是 Chrome 或 Weasel 的问题。初步测试似乎能够在 Edge 上同样复现该问题。

预期行为
无论输入状态如何,浏览器的快捷键(无论是插件的,还是浏览器本身的)都应该正常响应。

用户文件
暂不适用,使用雾凇拼音方案。但经测试朙月拼音方案下也存在该问题。

截图

其他补充说明

@MOldtime
Copy link

确实存在这个问题,但应该是浏览器的问题。
因为之前用没遇到这个问题

@seszu
Copy link

seszu commented Sep 18, 2023

输入法本来就应该有高优先级接管输入的字符,我觉得这个问题很难处理好,因为输入法在中文状态就是要优先输入中文而英西文的,就好像在windwos的开始菜单中搜索应用一样,打开开始菜单,直接打字就可以搜索了,并不需要出现输入框。

@aka-phrankie
Copy link

我也有这样的问题,来补充信息,使用vim插件来控制浏览器,这个问题在edge 117和Chrome 117 可以稳定复现,使用微软拼音输入法不会出现问题,不知道微软是咋样实现的。
我不知道按键信号在系统和各个应用内外部之间传递的顺序和优先级如何是比较好的,但是有一个类似于 Squirrel 的 Vim Mode 似乎可以是是解决方案。
如何在Windows/Linux下的Rime使用Vim模式 通过lua来解决冲突。

@MOldtime
Copy link

目前的个人的解决方案是:Ctrl + Space, 禁用输入法

@quantumfallout
Copy link

同样有这样的困扰,在开启小狼毫中文输入的情况下 Vimium 和 YouTube 播放器的快捷键都无法使用(使用浏览器 Chrome 119.0.6020.3 Edge 119.0.2109.1)。而微软拼音没有这样的问题。
目前除了来回开关输入法之外没有好的办法解决。

@vizmoe
Copy link

vizmoe commented Sep 29, 2023

我使用的 Surfingkeys 的类 Vimium 插件,在最新的 Edge Version 117.0.2045.43 (Official build) (64-bit) 可以复现此问题,Windows 原生中文输入法则一切正常,而 Firefox 搭配 Rime 也是正常的。

@vizmoe
Copy link

vizmoe commented Sep 29, 2023

而另一台电脑上的 0.14.0 旧版小狼毫与最新版 Edge 未能复现此问题

@pessni
Copy link

pessni commented Oct 6, 2023

我也是遇到同样的问题,最后测试firefox浏览器+Vimium+Rime正常。
我更喜欢Edge浏览器,不知道是否有旧版本的Rime可以和Edge一起正常工作?我看现在下载不到楼上说的0.14.0版本的Rime。

@pessni
Copy link

pessni commented Oct 7, 2023

更新:我发现了Prime输入法,安装后发现不存在Edge Vimium快捷键失效的问题。
https://github.com/osfans/PRIME/releases
但是我没能成功在Prime中添加小鹤双拼方案,Ctrl+ ` 切换输入法方案时窗口也会闪烁,所以放弃了Prime。

@fxliang
Copy link
Contributor

fxliang commented Oct 7, 2023

这个问题,不仅仅是输入法的问题,潜在的问题是vimnium应该在退出insert mode 的时候应该禁用输入法,切换进入insert mode 的时候再使能输入法。

目前小狼毫是不管有没有输入焦点都可用的状态,没有外部信号禁用就一直尝试使用输入接口,于是就出问题了。

看你们上面的讨论应该要在没有焦点的时候禁用小狼毫才能解的感觉了,但是这个方法和目前小狼毫的逻辑是相悖的,要再观望

@pessni
Copy link

pessni commented Oct 7, 2023

这个问题,不仅仅是输入法的问题,潜在的问题是vimnium应该在退出insert mode 的时候应该禁用输入法,切换进入insert mode 的时候再使能输入法。

目前小狼毫是不管有没有输入焦点都可用的状态,没有外部信号禁用就一直尝试使用输入接口,于是就出问题了。

看你们上面的讨论应该要在没有焦点的时候禁用小狼毫才能解的感觉了,但是这个方法和目前小狼毫的逻辑是相悖的,要再观望

我认为描述的很对。windows自带的输入法,在没有输入焦点的时候不影响Vimium工作,不知道是怎么实现的。
另外请问,Rime是否有某个旧版本可以与Vimium协调工作呢?

@fxliang
Copy link
Contributor

fxliang commented Oct 7, 2023

另外不同页面的表现还有差异,比如在github页面,如果将焦点移出输入框外,小狼毫不会出来输入候选框,但是在bing.com的搜索页面就会自动跳到搜索输入框里。

@pessni
Copy link

pessni commented Oct 7, 2023

image
我试了一下,我这边的情况是:Rime中文输入法状态下,乱按一通,无论在github还是bing.com都不会出现输入候选框。当定位到浏览器地址栏之后,之前乱输入的字母会出现在地址栏的输入框里。如上图。

目前Rime.0.15.0, Win11 家庭中文版,版本22H2(0S内部版本22621.2283)。
在edge网页内,按Shift键是可以将Rime调整为英文【A】状态,然后Vimium快捷键就能工作。但每次地址栏输完中文再这样按就很麻烦,我一天要按shift很多次。

补:我前两天有试过火狐浏览器,Rime中文状态+火狐Vimium是可以正常工作的。所以我感觉和浏览器本身也确实有点关系。

@pessni
Copy link

pessni commented Oct 7, 2023

更新:
我折腾了半天之后,再次尝试了卡饭输入法,发现一切工作正常。不存在Edge浏览器下Vimium快捷键不能工作的问题,无论卡饭输入法状态是中文还是英文。
另外我发现,它的五笔和拼音混输模式,居然是我心心念念的五笔+双拼的混输,意外之喜!

回头说一句,我还是很喜欢Rime,真心希望后续更新版本能解决这些问题。

@fxliang
Copy link
Contributor

fxliang commented Oct 7, 2023

我试了安装vimnium插件到chrome和edge,未复现你的问题,另外见有些页面上有类似这样的情况
image

补充提一句,如果你热爱卡饭,那就用吧

@MOldtime
Copy link

MOldtime commented Oct 7, 2023

我试了安装vimnium插件到chrome和edge,未复现你的问题,另外见有些页面上有类似这样的情况 image

补充提一句,如果你热爱卡饭,那就用吧

好像装错了 应该是 vimium-c

@fxliang
Copy link
Contributor

fxliang commented Oct 7, 2023

同样没有问题)

@MOldtime
Copy link

MOldtime commented Oct 7, 2023

同样没有问题)

edge: 117.0.2045.60
可能这又是个Windows 11独有的问题,当切换到 中文状态下 j,k就会失效
有趣的是 之前的weaseledge都没有问题,但更新到某个版本后 问题就出现了,也许是上游的问题吧
相比较来说,想让上游来适配weasel也基本没可能

@pessni
Copy link

pessni commented Oct 7, 2023

我试了安装vimnium插件到chrome和edge,未复现你的问题,另外见有些页面上有类似这样的情况 image
补充提一句,如果你热爱卡饭,那就用吧

好像装错了 应该是 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中文状态下,随便敲击键盘输入,并不会有输入候选框出现。然后定位到浏览器地址栏激活输入框,之前随便敲击键盘的输入就会出现在地址栏里。

屏幕录制 2023-10-07 183526

细节信息:Rime Weasel 0.15.0;Win11 家庭中文版,版本22H2(0S内部版本22621.2283);Edge 117.0.2045.47 (正式版本) (64 位)

我知道卡饭输入法的时间应该还不超过两个月,所以远远谈不上热爱,目前用卡饭只是权宜之计。因为我还有点其他语言需求,所以我还是最想用Rime,另外,我真的很喜欢Rime的Aqua皮肤。:)

@quantumfallout
Copy link

测试了一下在 firefox 119.0b6 (64 位) 中使用 Rime Weasel 0.15.0 开启中文输入,YouTube播放器快捷键可以正常使用。而在 Chrome 119.0.6045.9 中就无法使用。两者均未启用浏览器扩展程序。
操作系统 Windows 11 22H2 22621.2361

@fxliang
Copy link
Contributor

fxliang commented Oct 7, 2023

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都试了,表现正常。

@LenKiMo
Copy link
Author

LenKiMo commented Oct 7, 2023

试用了 fxliang 的 6272290925 版本 Rime,在 Chrome 119 Dev 上仍存在这个问题。

综合目前的测试情况来看可能存在的 两个 变量:

  1. 操作系统 Win10/Win11 的区别
  2. Chromium 系浏览器 Release Build 与 Dev Build 的区别 仔细看了一下发现也有 117 的复现问题了

不过,考虑到微软自带拼音输入法始终不会出现这个问题,我的猜测仍偏向于 Rime 目前关于输入事件监听的某个实现上存在问题。

@QingW-7023
Copy link

我是在B站遇到了类似的问题,用微软输入法时,无论中英文输入状态都可以使用F键将视频全屏化,用小狼毫时只有切换到英文状态才可以使用快捷键。我的浏览器是Edge

@pessni
Copy link

pessni commented Nov 12, 2023

更新:
早上更新了windows,发现Rime配合Edge的快捷键可以正常工作了。
Rime: 0.15.0
Edge: 119.0.2151.58 (正式版本) (64 位)
Windows: 22H2,22621.2428

Edge浏览器中如果没有输入焦点,按Shift键不能切换Rime中英状态。但Vimium的快捷键正常工作。

@1trapbox
Copy link

brave同样出现这个问题

Vimium仓库地址
在浏览器开启Vimium后
输入法使用的是小狼毫+rime-ice
在中文输入法下无法使用Vimium快捷键
而在英文输入法shift下则可以使用Vimium快捷键

@zeng-y-l
Copy link

前段时间突然遇到这个问题,导致许多网页游戏、网站快捷键无法正常使用。没动输入法,或是浏览器或系统导致。

Rime: 0.15.0
Edge: 120.0.2210.61 (正式版本) (64 位)
Windows: 23H2,22621.2715

@fyang93
Copy link

fyang93 commented Dec 26, 2023

win11+weasel,edge上使用surfingkeys也会出现这个问题
当输入法处于中文输入模式并且失去输入框焦点后会捕获所有的按键导致surfingkeys插件无法使用

Weasel 0.15.0.0
Win11 22H2
Edge 120.0.2210.91

@fxliang
Copy link
Contributor

fxliang commented Apr 12, 2024

检查 #1182 看是否有解决

@LenKiMo
Copy link
Author

LenKiMo commented Apr 13, 2024

测试了 Actions https://github.com/rime/weasel/actions/runs/8644623049 编译的版本,在 Windows 11 22H2 + Brave 1.64.122 Chromium: 123.0.6312.122 下该问题依旧存在。

@CorvinYu
Copy link

退回了0.14.3版本,问题依然存在。

我尝试设置rime在chrome中默认为英文输入,但是只要输入法转换为中文,问题就会被触发。并且无法在失去焦点的情况下从中文模式转换为英文模式。

另外,上文提及的Rime配合Edge的快捷键可以正常工作,在我这里依然不能正常工作。

win11版本:23H2
rime版本:0.14.3
edge版本:124.0.2478.51 (正式版本) (64 位)

@pessni
Copy link

pessni commented Apr 27, 2024

退回了0.14.3版本,问题依然存在。

我尝试设置rime在chrome中默认为英文输入,但是只要输入法转换为中文,问题就会被触发。并且无法在失去焦点的情况下从中文模式转换为英文模式。

另外,上文提及的Rime配合Edge的快捷键可以正常工作,在我这里依然不能正常工作。

win11版本:23H2 rime版本:0.14.3 edge版本:124.0.2478.51 (正式版本) (64 位)

我那个只是短暂地正常工作过,后来更新windows之后就不行了。
上面说的#1182也没有解决这个故障。这个问题算是对我影响最大的bug,或者说唯一的影响了,我迫切希望开发者能解决。

@zhanganchi352242
Copy link

Windows 11 教育版 23H2 22635.3575
Chrome:124.0.6367.202
小狼毫:0.15.0.0

中文状态的输入法在失焦时拦截键盘输入,导致网页提供的快捷键失效,如 b 站的 F 键全屏等。搜狗输入法、微软输入法均无此问题,迫切希望解决。

@pessni
Copy link

pessni commented May 12, 2024

我发现最近更新的nightly build版本都没有添加fxliang#1182提到的代码,我自己尝试添加,但编译过程中我总是遇到各种故障难以解决,如果哪位好心人有条件或技术,可以编译后试试是否有用。如果解决了这个问题,也欢迎把安装文件分享出来。

1

@fxliang
Copy link
Contributor

fxliang commented May 12, 2024

我发现最近更新的nightly build版本都没有添加fxliang#1182提到的代码,我自己尝试添加,但编译过程中我总是遇到各种故障难以解决,如果哪位好心人有条件或技术,可以编译后试试是否有用。如果解决了这个问题,也欢迎把安装文件分享出来。

1

因为有副作用,撤回了

@pessni
Copy link

pessni commented May 12, 2024

我发现最近更新的nightly build版本都没有添加fxliang#1182提到的代码,我自己尝试添加,但编译过程中我总是遇到各种故障难以解决,如果哪位好心人有条件或技术,可以编译后试试是否有用。如果解决了这个问题,也欢迎把安装文件分享出来。
1

因为有副作用,撤回了

能不能分享一下添加了这行代码的安装包,或许副作用我能接受,只要解决了快捷键失效的问题就行。

@fxliang
Copy link
Contributor

fxliang commented May 12, 2024

#1178 不少应用是会在输入过程切换context的,excel之类的, 这个不太可能是可接受的,而且有人确认无效了.快捷键问题在win 11较新版本才有,windows10上没有的

https://github.com/fxliang/weasel/actions/runs/8644413822

@pessni
Copy link

pessni commented May 12, 2024

#1178 不少应用是会在输入过程切换context的,excel之类的, 这个不太可能是可接受的,而且有人确认无效了.快捷键问题在win 11较新版本才有,windows10上没有的

https://github.com/fxliang/weasel/actions/runs/8644413822

安装测试后发现无效,快捷键问题仍然存在。我以前用别人电脑做过测试,win10上确实不存在这个问题。
win11下,系统自带的微软输入法、搜狗输入法这些不存在快捷键问题,技术我不懂,不知道这些信息对修复bug是否有帮助。
几乎所有能找到的输入法我都尝试过,最后还是最喜欢rime,期待能尽早解决这个问题。

@loveminimal
Copy link

确实存在这个问题,但应该是浏览器的问题。 因为之前用没遇到这个问题

并不是浏览器的问题,在 win10 上没有任何问题。
我使用的是内置的 wubi86 输入方案,也是存在这个问题。

同一套配置,公司 win10 没有什么总是,家里的 win11 有。

@nutnutwin
Copy link

就是Windows 11 问题, 我的四五台Windows 10 都没有问题安装了Windows 11 就出问题

@pessni
Copy link

pessni commented May 22, 2024

但是在win11上,微软输入法、搜狗、冰凌、QQ、卡饭都没有这个问题。

@MOldtime
Copy link

都有问题 或者说 是正常更新
我很久之前就用了 Windows11Weaselvimium
这个问题是在浏览器 某个版本后出现的,应该是 chromeium 更新后造成的,edgechrome 都是使用的这个内核

浏览器方面 火狐没有这个问题
系统方面 WIndows10 没有这个问题

@pessni
Copy link

pessni commented May 22, 2024

浏览器方面 火狐没有这个问题
系统方面 WIndows10 没有这个问题

是这样的,我多次测试之后也是这个结论。可恨浏览器我喜欢 Edge,输入法我喜欢Rime,系统我用win11,所以现在还在眼巴巴盼着开发者修复。

@realconnor
Copy link

兄弟们,0.16.0 版本解决快捷键问题了吗?vim_mode用起来和按shift也没多大区别,挺难受的(╯﹏╰)

@zhaoyewei
Copy link

Windows11+Rime 0.15.0 Edge+FF都出现这个问题,已暂时放弃Rime先用微软拼音输入法了,时刻关心项目进展

@fxliang
Copy link
Contributor

fxliang commented May 29, 2024

#1277 试试吧,已有用户测试反馈有效了,需要更多反馈

@MOldtime
Copy link

感谢修复 通过我在windows11 环境下 对 edge 的测试,有效

@pessni
Copy link

pessni commented May 30, 2024

win11,edge,安装后有效。非常感谢!

@LenKiMo
Copy link
Author

LenKiMo commented May 30, 2024

确认 #1277 Build 在 Windows 11 Pro 22H2 下对
Brave 1.66.115 Chromium: 125.0.6422.112
Edge 125.0.2535.67
有效,非常感谢。

@gradypark86
Copy link

Windows 11 Version 23H2 (Build 22635.3350)
Vivaldi 6.7.3329.35 (Stable channel) Chromium: 124.0.0.0
测试成功

@starlitxiling
Copy link

starlitxiling commented May 30, 2024

Windows 11 专业版 Versin 24H2 (Build 26120.670)
Chrome:125.0.6422.113
测试成功,有效,非常非常感谢

@aka-phrankie
Copy link

aka-phrankie commented May 30, 2024

Google 浏览器 125.0.6422.113
Windows 11 Version 22H2
使用 #1277 测试成功,需要用户配置里面取消对应应用的 vim 模式。

报个反馈非bug、流程优化问题:
重安装的过程中,默认安装不是上一次安装的位置而是 C:\Program Files\rime 。
我记得之前是默认是上次安装的位置的。

@QingW-7023
Copy link

OH NO,这个长久以来的问题消失了,不适应了

@fxliang
Copy link
Contributor

fxliang commented May 31, 2024

Google 浏览器 125.0.6422.113 Windows 11 Version 22H2 使用 #1277 测试成功,需要用户配置里面取消对应应用的 vim 模式。

报个反馈非bug、流程优化问题: 重安装的过程中,默认安装不是上一次安装的位置而是 C:\Program Files\rime 。 我记得之前是默认是上次安装的位置的。

修了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.