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

Claunch激活窗口后有时候会修改中英文状态 #1486

Open
3 tasks done
popyoung opened this issue Jan 31, 2025 · 19 comments
Open
3 tasks done

Claunch激活窗口后有时候会修改中英文状态 #1486

popyoung opened this issue Jan 31, 2025 · 19 comments

Comments

@popyoung
Copy link

popyoung commented Jan 31, 2025

上报前请检查

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

操作系统信息

  • OS 详细版本: [ Windows 11 24H2之前23H2也有这个问题,笔记本上win10也有,应该是和win版本无关的 ]
  • 小狼毫版本: [ 0.16.3.0]

描述遇到的问题
我为Claunch设置了快捷键alt+R来呼出,但是一旦使用这个快捷键呼出Claunch,就会强制把输入法状态改为中文。

复现步骤
重现问题的步骤

  1. 小狼毫安装雾凇
  2. 配置小狼毫补丁"switches/@0/reset": 1 使其默认状态为英文
  3. 安装Claunch https://ss1.xrea.com/pyonkichi.g1.xrea.com/en/
  4. 打开Claunch选项,选择标签页“键盘”,热键输入alt+r
  5. 小狼毫此时有可能把输入状态设为中文

截图
第一次打开时,状态为中文,我切换为英文后Esc关闭窗口,第二次用Alt+R打开后一切正常,我又Esc关闭。第三次打开后没有任何其他操作,它自己把状态切换为了中文
Image

@popyoung popyoung added the Bug label Jan 31, 2025
@popyoung
Copy link
Author

popyoung commented Feb 3, 2025

补充一下。这个alt+R后日志会输出内容如下:

I20250203 19:55:23.763758 19300 engine.cc:133] updated option: ascii_mode
I20250203 19:55:24.996017 19300 engine.cc:133] updated option: ascii_mode
I20250203 19:55:25.293805 19300 engine.cc:96] engine disposed.
I20250203 19:55:25.552417 15104 engine.cc:133] updated option: ascii_mode
I20250203 19:55:31.330599  5732 engine.cc:72] starting engine.
I20250203 19:55:31.330891  5732 engine.cc:133] updated option: _auto_commit
I20250203 19:55:31.330955  5732 dictionary.cc:360] loading dictionary 'rime_ice'.
I20250203 19:55:31.331044  5732 dictionary.cc:360] loading dictionary 'melt_eng'.
I20250203 19:55:31.331091  5732 dictionary.cc:360] loading dictionary 'radical_pinyin'.
I20250203 19:55:31.332162  5732 config_data.cc:72] loading config file 'C:\Users\popyoung\AppData\Roaming\Rime\build\radical_pinyin.schema.yaml'.
I20250203 19:55:31.333636  5732 dictionary.cc:360] loading dictionary 'radical_pinyin'.
I20250203 19:55:31.333676  5732 engine.cc:395] ConcreteEngine::InitializeOptions
I20250203 19:55:31.333683  5732 engine.cc:400] found switch option: ascii_mode, reset: 1
I20250203 19:55:31.333688  5732 engine.cc:133] updated option: ascii_mode
I20250203 19:55:31.333694  5732 engine.cc:400] found switch option: ascii_punct, reset: -1
I20250203 19:55:31.333699  5732 engine.cc:400] found switch option: traditionalization, reset: -1
I20250203 19:55:31.333704  5732 engine.cc:400] found switch option: emoji, reset: 1
I20250203 19:55:31.333708  5732 engine.cc:133] updated option: emoji
I20250203 19:55:31.333713  5732 engine.cc:400] found switch option: full_shape, reset: -1
I20250203 19:55:31.333718  5732 engine.cc:400] found switch option: search_single_char, reset: -1
I20250203 19:55:31.333759  5732 engine.cc:147] updated property: client_app
I20250203 19:55:31.333767  5732 engine.cc:147] updated property: client_type
I20250203 19:55:31.333772  5732 engine.cc:133] updated option: inline_preedit
I20250203 19:55:31.333780  5732 engine.cc:133] updated option: soft_cursor
I20250203 19:55:31.333875  5732 engine.cc:133] updated option: inline_preedit
I20250203 19:55:31.333884  5732 engine.cc:133] updated option: soft_cursor
I20250203 19:56:57.146969  5732 engine.cc:133] updated option: ascii_mode

engine dispose看上去应该不是预期中的操作吧

@popyoung
Copy link
Author

没人回这个帖子,不知道是不是发错地方。我先在这记录一下吧。

昨天看到这个帖子 rime/librime#255
我才知道F4后设置的开关有可能被记录下来,我就试了下使用F4设置为英文,确实有一定效果。大部分情况下,呼出Claunch后维持在英文输入状态了。但有时候还是会莫名其妙转为中文。

不过我尚有另一个疑问,F4后保存下来的设置是以什么形式保存的?有对应的文件吗?

@lotem
Copy link
Member

lotem commented Feb 13, 2025

F4后保存下来的设置是以什么形式保存的?有对应的文件吗?

保存在 user.yaml
https://github.com/rime/home/wiki/UserData

保存的選項應用到以後打開的輸入法會話。不影響已經打開的應用裏的輸入法狀態。

@popyoung
Copy link
Author

F4后保存下来的设置是以什么形式保存的?有对应的文件吗?

保存在 user.yaml https://github.com/rime/home/wiki/UserData

保存的選項應用到以後打開的輸入法會話。不影響已經打開的應用裏的輸入法狀態。

我找到这个文件了,但是里面只有两行,似乎没有保存过任何信息。

var:
  last_build_time: 1739351295

@lotem
Copy link
Member

lotem commented Feb 13, 2025

那就是沒有保存。
通常配置爲保存全角半角、簡繁這些狀態,不保存中西文狀態。

而且你也說在方案裏重設了,那麼再次打開輸入法就用方案裏 reset 的值。

@popyoung
Copy link
Author

我试着把字体改为繁体,这个文件也没有被修改。而且我电脑上只有这2个user.yaml,也不会是搞错了。

Image

@lotem
Copy link
Member

lotem commented Feb 13, 2025

自定義配置,沒法跟進,太多變量了。
你研究研究。或者向發佈者諮詢。

如果能定位問題,確認是 weasel 的 bug,再標 bug。

@lotem lotem removed the Bug label Feb 13, 2025
@popyoung
Copy link
Author

我明天备份下,然后重装个原版试试

@popyoung
Copy link
Author

popyoung commented Feb 13, 2025

提前測了,先卸載weasel,重啓,刪除user目錄。然後從github下了最新的nightly build。
使用原版明月輸入法測試,所有設置均爲默認,所以現在用的是繁體。
只在user目錄裏新建了一個luna_pinyin.custom.yaml來做patch,內容如下

patch:
  switches/@0/reset: 1 

我重新錄製了gif,在gif左下角顯示進度,中央下方顯示按鍵輸入。爲了觀看方便,我也準備了一個mkv版本,這樣就可以控制進度了
视频.zip

  1. 第5秒我激活了Claunch,這時是中文輸入法。
  2. 當中確認了一下,等了一會兒,在第10秒時,我按g,可以看到在左上角出現輸入法的界面。然後我esc,再來一次。這裏操作兩次只是爲了演示,讓大家看得清楚點。
  3. 在第15秒我ctrl+space切換爲英文,然後按g,就在Claunch中呼出了G快捷鍵對應的程序:Goldendict
  4. 第20秒我再次呼出Claunch,先可以看到左邊有個狀態表示英文,然後同一秒內右下角顯示爲中文狀態,這時我沒有任何操作。
  5. 我演示了按g呼出的是輸入法,這時我用F4來設置英文狀態。
  6. 和我之前感覺一致,F4設置以後好了一段時間。接下來的半分鐘,我激活Claunch後的輸入法狀態都是正確的。
  7. 直到第52秒時,我切換了進程到vscode,又用Claunch激活了一次Goldendict。
  8. 到第1分鐘時我再次激活Claunch時,狀態又變爲中文了。

Image

@popyoung
Copy link
Author

自定義配置,沒法跟進,太多變量了。 你研究研究。或者向發佈者諮詢。

如果能定位問題,確認是 weasel 的 bug,再標 bug。

@lotem 麻煩有空看一下,確認一下我就把環境換回去了,多謝

@lotem
Copy link
Member

lotem commented Feb 14, 2025

默認配置按 Control+space 應該是系統的禁用輸入法吧。不理解。
我不看了。解釋不了。
@fxliang 有何高見。

@popyoung
Copy link
Author

早期windows的快捷鍵是Control+space開關輸入法,大概從win7開始,win+space是切換語言,Control+space是中英文模式切換。

@fxliang
Copy link
Contributor

fxliang commented Feb 14, 2025

默認配置按 Control+space 應該是系統的禁用輸入法吧。不理解。 我不看了。解釋不了。 @fxliang 有何高見。

下载运行试了下,Alt+R来激活Claunch,试了好多次都未复制提及的问题呢(无论是在claunch下切换成asciii或者!asciii模式),输入法始终和上一次运行的状态保持一致,目前是默认的设置状态(Control+Space来切换ascii)

早期windows的快捷鍵是Control+space開關輸入法,大概從win7開始,win+space是切換語言,Control+space是中英文模式切換。

新系统的状态取决于这个项目的设置,我的电脑上Control+Space是切换输入法和非输入法状态
Image

@lotem
Copy link
Member

lotem commented Feb 14, 2025

目前是默认的设置状态(Control+Space来切换ascii)

默認是這個?我不太熟悉代碼。沒找到在哪裏設置的。

@popyoung
Copy link
Author

popyoung commented Feb 14, 2025

@fxliang 辛苦了,按我的經驗是這樣,要從不同的程序使用Alt+R,如果始終在桌面或者同一個窗口中使用Alt+R,這個問題似乎不會出現。但是具體從哪個程序呼出會出問題也沒有定勢,我剛剛在那個視頻裏也隨便切換了一下進程,後來才成功重現。

另外可以試試從Claunch中用快捷鍵打開程序,因爲我最開始發現這個問題就是這樣的。

我平時會連着用Claunch打開anki和goldendict,這兩個軟件在Claunch中我分別設置了快捷鍵,分別是A和G。我的操作是Alt+R, A, Alt+R, G。而使用rime以後,在最後按G的時候,由於狀態變爲中文,無法成功操作。

而我錄的那個視頻裏,一開始在我使用F4後,狀態也正確了,直到我再次用快捷鍵G激活了goldendict,下一次打開狀態就又變回中文了。

如要設置快捷鍵,請在Claunch中界面中右鍵點擊一個程序,然後在shortkey處鍵入對應字母比如G

Image

@lotem
Copy link
Member

lotem commented Feb 14, 2025

G 是大寫吧,怎麼輸入。

如果要按 Shift ,可能是那個啓動器吞了 G 鍵,輸入法只看到單擊 Shift 鍵,就切換到中文了。

@popyoung
Copy link
Author

G 是大寫吧,怎麼輸入。

如果要按 Shift ,可能是那個啓動器吞了 G 鍵,輸入法只看到單擊 Shift 鍵,就切換到中文了。

顯示大寫,實際就是小寫。很多軟件都這樣的。

@wzv5
Copy link
Contributor

wzv5 commented Feb 15, 2025

还没有实际运行,先随手看了眼导入表,看到了这个:

Image

大概率是 claunch 自己在乱改输入法状态。(当然也不排除是 weasel 没有正确响应)

@wzv5
Copy link
Contributor

wzv5 commented Feb 15, 2025

呃,错怪 claunch 了,确实是 weasel 没有正确响应 ImmSetOpenStatus
如果没有配置 switches/@0/reset: 1,api设置状态是对的。
如果配置了 switches/@0/reset: 1,api设置为开,实际状态为英文,设置为关,实际状态为中文,反了。。
并且无论有没有配置 switches,悬浮状态提示图标都不对,但是右下角托盘图标又是对的,好奇怪的问题。

我用易语言简单写了个测试程序(偷懒不想开vs了):imetest.zip

Image

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

No branches or pull requests

4 participants