请教一个mac输入法使用capslock切换异常问题

Mac:Mac mini+外接键盘
Macos:Sonoma 14.5
Rime中文输入法(系统自带拼音输入法)和系统自带ABC英文输入

正常逻辑:capslock键短按切换输入法,长按切换大小写
现在无法正常切换:

  1. (正常)ABC输入法下长按可正常切换大小写,(异常)短按切换输入法后大小写不统一
  2. (异常)Rime输入法无法通过长按切换大小写,短按切换输入法短后大小写不统一
  • 切换异常表现:
    – Rime(小写拼音)下长按会切换至ABC键盘(大写状态)
    – Rime(大写)下长按会切换至ABC键盘(小写状态)
  • 大小写不统一表现(切换异常下大小写也不统一):
    – ABC键盘(小写状态)短按会切换至Rime(大写)
    – ABC键盘(大写)短按会切换至Rime(小写拼音)
  1. 上面两种异常表现综合起来会出现以下情况:
  • ABC键盘(大写)长按切换为小写后,短按切换为Rime会变为大写模式,且无法通过长按切换回小写拼音模式(长按会切换输入法),此时智能通过在Rime输入法下打开虚拟键盘关闭capslock才能正常打字。

问题排查:
1.Rime输入法问题:用系统自带拼音输入法存在同样问题
2.系统设置问题:本人之前另一台mac笔记本(相同macos版本及输入法)可正常逻辑切换输入法及大小写,不存在该问题(手里目前只有该电脑,无法再验证记忆是否正确)
3.外接键盘问题(手里目前无多余键盘验证)

请教下习惯用capslock切换输入法的有没有相同问题出现,如何解决 :upside_down_face:
不排除一直是这种情况,我记忆被apple篡改了 :rofl:

大概率是系统问题,而非硬件问题,我刚刚测试还遇到了(Rime/Pinyin,macOS 13,MacBook Air M1、MacBook Air 2015、MacBook 12)。

应该是个很久远的问题。我记得从七八年前开始,中文输入法切换逻辑大改动之后就有这个问题了,和国行键盘改动、直角引号“政治正确”运动是同一时期。因为很讨厌这种意识形态斗争,我当时放弃了系统输入法,转投 Rime。

当然,既然都彻底不用系统输入法了,我也一并干掉了长短按的设置,所以至今都可以忽略这个问题……

另外,如果用 Karabiner Element 或 Keyboard Maestro 改键(关掉系统自带的长短按设置),应该就不会遇到切换问题。

辛苦测试了,我今天找了块苹果自己的妙控键盘测试了下,发现苹果自己的键盘好像对这一块控制逻辑有所优化,一定程度有解决这个问题 :upside_down_face:

  • Rime输入法下不存在大写字母模式,始终保持拼音输入的模式(Rime输入法下capslocks长按始终会切换至ABC大写模式) → 解决了切换异常里的第二种和大小写不统一异常里的第一种情况
  • ABC大写输入模式下短按不会直接切换至Rime拼音模式,而是会关闭capslock,切换至ABC的小写模式 → 解决大小写不统一异常里的第二种情况

此时认为Rime下长按切换ABC大写,ABC大写下短按切换ABC小写为正常逻辑
整个切换键盘的逻辑就闭环了
之前用习惯了肌肉记忆切换起来很流畅,换其他键盘后就经常找不到要用的输入法了 :rofl:

另附:capslock切换输入法我认为比较丝滑的原因是

  • 将切换输入法,切换大小写统一在了一个键位上。
  • capslock键距离常用的打字区域很近,我平时小拇指不用动就能按到这个键。

如果另设快捷键切换输入法,此时还要使用capslock来锁定大小写,平时要使用两组键位,常用的其他触发键都没capslock近,或者需要组合触发,碰到需要频繁切换输入法的场景很恼火(比如输入密码后自动变为ABC输入法这种场景)

解决就好,不过我这边测试还是无法正常切换,并且比你还多了一个问题 XD:ABC(小写)长按切换为大写后,短按切换为 Rime 会变为小写模式,需连续短按三次才会正常进入 Rime 的中文模式。
等我升级到 macOS 14 后再看看。
话说魔改 capslock 这事儿,还有个背景是使用者往往有超过三个输入法,导致其切换功能就没有意义了(只能在当前输入法和 ABC 之间切),反而影响正常使用,不如只留大小写锁定功能。

确实存在你说的情况,我一开始试验的时候没发现,但也有一些差异

  • ABC(小写)长按切换大写后,短按是关闭大写,再短按切换为Rime中文模式
  • Rime(中文)长按切换为ABC(大写)后,短按会变成Rime
    (小写),需要短按三次才正常。(与你情况相同)

我试了下这个和Rime输入法里的ascii_composer/switch_key的配置有关:
Shift_L: noop,Shift_R: noop 这样设置关闭Rime的shift切换中英文就不会出现第二种情况。

这个配置下才和系统自带的拼音输入法逻辑相同。
用第三方输入法的情况下影响正常切换的因素太多了 :rofl:
一直只使用两种输入法,没考虑过三种以上切换的情况,这样确实就不适合用capslock切换了。

1 Like