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

0.16.1 在 Mojave 下快捷键切换英文不工作 #715

Closed
antonchen opened this issue Feb 2, 2023 · 26 comments
Closed

0.16.1 在 Mojave 下快捷键切换英文不工作 #715

antonchen opened this issue Feb 2, 2023 · 26 comments
Assignees
Labels

Comments

@antonchen
Copy link

default.custom.yaml 中设置快捷键,切换时不工作,0.15.2 没问题

    Caps_Lock: clear
    Shift_L: clear
    Shift_R: clear
@enderdzz
Copy link

enderdzz commented Feb 2, 2023

我也遇到相同的问题,已经切回0.15.2版本使用。

@lotem
Copy link
Member

lotem commented Feb 3, 2023

我也遇到相同的问题,已经切回0.15.2版本使用。

macOS 系統版本也是 10.14 嗎?

macOS 10.15.6 測試通過,都管用。

@lotem
Copy link
Member

lotem commented Feb 3, 2023

default.custom.yaml 中设置快捷键,切换时不工作,0.15.2 没问题

    Caps_Lock: clear
    Shift_L: clear
    Shift_R: clear

以上三個鍵都不工作嗎?具體表現如何。

@antonchen
Copy link
Author

default.custom.yaml 中设置快捷键,切换时不工作,0.15.2 没问题

    Caps_Lock: clear
    Shift_L: clear
    Shift_R: clear

以上三個鍵都不工作嗎?具體表現如何。

按键无任何反应,也尝试设置过 Control_L, Control_R 也没有用。
值设置过 commit_text, clear 同样无效。

@lotem
Copy link
Member

lotem commented Feb 3, 2023

Caps Lock 呢?

@antonchen
Copy link
Author

Caps_Lock: clear 也不工作

@lotem
Copy link
Member

lotem commented Feb 3, 2023

我最初寫這塊,發現修飾鍵沒有具體鍵值用來區分左右。
一種猜測是:後來某個版本 macOS 在事件裏補充了鍵值信息,才能讓 #688 有效。我已測試 macOS 10.15.6 可以識別左右Shift鍵。難道恰好是 10.14 以後有變化?

但樓上談到 Caps Lock 也不工作。那就不應該是 #688 造成的。會不會是配置問題?
能否確認修改最終反映到 ~/Library/Rime/build/default.yaml
或者把 ~/Library/Rime 目錄改名,部署原廠配置,測試是否能用Shift鍵。

@antonchen
Copy link
Author

antonchen commented Feb 3, 2023

抱歉,我昨晚已退回 0.15.2 版本,目前还有其它工作挂起,不能注销系统。晚些时候再尝试并反馈。


Edit:
如何查看日志?如果有用,尝试的时候我可以一起提供。

@lotem
Copy link
Member

lotem commented Feb 3, 2023

不急。有空再研究。

鍵盤事件處理沒有留詳細日誌。
日誌文件是 $TMPDIR/rime.squirrel.* 路徑裏有個系統變量 $TMPDIR 得從終端查看。

先排除配置問題。確認編譯後的配置 ~/Library/Rime/build/default.yaml 是否包含這些快捷鍵定義。

@enderdzz
Copy link

enderdzz commented Feb 3, 2023

我也遇到相同的问题,已经切回0.15.2版本使用。

macOS 系統版本也是 10.14 嗎?

macOS 10.15.6 測試通過,都管用。

是的,MacOS系统版本10.14.6。

@lotem
Copy link
Member

lotem commented Feb 4, 2023

我找到一份 macOS 10.13.6 的系統備份,用它驗證了這個問題。
看來舊的系統還得用舊的方法識別修飾鍵,且不能區分左右。

@lotem lotem added the bug label Feb 4, 2023
@lotem lotem self-assigned this Feb 4, 2023
@lotem lotem closed this as completed in 5c2b7e6 Feb 5, 2023
@ShikiSuen
Copy link
Contributor

我靠,我說怎麼我從業火五筆輸入法那邊學來的方法只能給 10.15 開始的系統用。
謝謝了,學到了。

@alswl
Copy link

alswl commented Feb 8, 2023

继续反馈一个相关问题。

macOS:12.6.3 (21G419)
Squirrel:0.16.2

我在 Keyboard / Modifier Key 里设置了 Caps Lock 转义为 Control,然后配置了 Control 进行中英文切换。
此时发现 Caps Lock 切换无效,而 Control 切换有效。

@lotem
Copy link
Member

lotem commented Feb 9, 2023

我在 Keyboard / Modifier Key 里设置了 Caps Lock 转义为 Control,然后配置了 Control 进行中英文切换。 此时发现 Caps Lock 切换无效,而 Control 切换有效。

这不是符合设置吗?

@alswl
Copy link

alswl commented Feb 9, 2023

@lotem

由于我的键盘已经设置了 Caps Lock 替换为 Control,所以按「Caps Lock」这个物理按键,应该是「Control」的作用。

期望状态:按 Caps Lock 物理键可以切换中英文,按 Control 左(macOS 只有左)可以切换中英文
实际状态:按 Caps Lock 物理键无法切换中英文,按 Control 左(macOS 只有左)可以切换中英文

@antonchen
Copy link
Author

@lotem

由于我的键盘已经设置了 Caps Lock 替换为 Control,所以按「Caps Lock」这个物理按键,应该是「Control」的作用。

期望状态:按 Caps Lock 物理键可以切换中英文,按 Control 左(macOS 只有左)可以切换中英文 实际状态:按 Caps Lock 物理键无法切换中英文,按 Control 左(macOS 只有左)可以切换中英文

输入法切换是应用级别的,不能大过系统设置。

@alswl
Copy link

alswl commented Feb 9, 2023

@antonchen 可能我没有讲述清楚,我的「Caps Lock」替换成 「Control」就是系统级别的。
是这样在系统级设置了替换,但是似乎 Squirrel 没有识别到这个 Caps Lock 已经是 Control。抑或是这个 Control 没有区分左右,所以导致 Squirrel 没有识别 Press Event。

image

@antonchen
Copy link
Author

@antonchen 可能我没有讲述清楚,我的「Caps Lock」替换成 「Control」就是系统级别的。 是这样在系统级设置了替换,但是似乎 Squirrel 没有识别到这个 Caps Lock 已经是 Control。抑或是这个 Control 没有区分左右,所以导致 Squirrel 没有识别 Press Event。

image

抱歉,前面的没有仔细看,这种情况的 Control 应该如你猜测一样,映射键不是实际的 Control_LControl_R

@lotem
Copy link
Member

lotem commented Feb 9, 2023

那我猜测,系统让 CapsLock 键改变 Control modifier,但并不把键值改为 Control_L 或 Control_R。

@ShikiSuen
Copy link
Contributor

ShikiSuen commented Feb 9, 2023

@lotem 這個恐怕得跟 Apple Developer Support 確認一下。
可以先在 Apple 官方的 developer forum 貼文詢問一下。如果一週沒有 Apple 員工回覆的話……

@lotem
Copy link
Member

lotem commented Feb 9, 2023

这有啥好问的,调试一下就知道了。

我就好奇,capslock不是也可以改成escape键吗?那总得改keycode吧。

@deckvig
Copy link

deckvig commented Feb 11, 2023

升 0.16.x 后发现用 caps lock 切换中英文时,经常会出现切换到英文后无法切回中文输入的场景

@groverlynn
Copy link
Contributor

groverlynn commented Mar 4, 2023

这有啥好问的,调试一下就知道了。

我就好奇,capslock不是也可以改成escape键吗?那总得改keycode吧。

Key Codes App接收到的Characters(0x1b)、Key Code(0x35)等等全改了。不只是escape,改modifier也是,和目標按鍵完全沒有區別
Screenshot 2023-03-04 at 13 20 52
而Karabiner接收的依然是什麼都沒改的,即便映射到No action,Karabiner仍舊能接收到capslock,推測是允許Input Monitoring的緣故。
Screenshot 2023-03-04 at 13 21 24

@groverlynn
Copy link
Contributor

我最初寫這塊,發現修飾鍵沒有具體鍵值用來區分左右。 一種猜測是:後來某個版本 macOS 在事件裏補充了鍵值信息,才能讓 #688 有效。我已測試 macOS 10.15.6 可以識別左右Shift鍵。難道恰好是 10.14 以後有變化?

但樓上談到 Caps Lock 也不工作。那就不應該是 #688 造成的。會不會是配置問題? 能否確認修改最終反映到 ~/Library/Rime/build/default.yaml? 或者把 ~/Library/Rime 目錄改名,部署原廠配置,測試是否能用Shift鍵。

找到一個老版本系統區分左右鍵的mask案例官方文檔

沒有老機器,所以沒法測試是否有效,抱歉

@groverlynn
Copy link
Contributor

groverlynn commented Mar 4, 2023

@lotem

由于我的键盘已经设置了 Caps Lock 替换为 Control,所以按「Caps Lock」这个物理按键,应该是「Control」的作用。

期望状态:按 Caps Lock 物理键可以切换中英文,按 Control 左(macOS 只有左)可以切换中英文 实际状态:按 Caps Lock 物理键无法切换中英文,按 Control 左(macOS 只有左)可以切换中英文

系統重映射不分左右的鍵(Caps LockFn🌐)一律映射成右鍵。而且mac的全尺寸鍵盤是有右Control鍵的。

@alswl
Copy link

alswl commented Nov 25, 2023

@lotem
由于我的键盘已经设置了 Caps Lock 替换为 Control,所以按「Caps Lock」这个物理按键,应该是「Control」的作用。
期望状态:按 Caps Lock 物理键可以切换中英文,按 Control 左(macOS 只有左)可以切换中英文 实际状态:按 Caps Lock 物理键无法切换中英文,按 Control 左(macOS 只有左)可以切换中英文

系統重映射不分左右的鍵(Caps LockFn🌐)一律映射成右鍵。而且mac的全尺寸鍵盤是有右Control鍵的。

非常感谢,我调整到 Control_R: commit_code 恢复了。

    switch_key:
      Caps_Lock: noop
      Control_L: noop
      Control_R: commit_code # caps lock mapping to control r
      Eisu_toggle: noop
      Shift_L: noop
      Shift_R: noop

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

No branches or pull requests

7 participants