本来是 macOS 下面的习惯,两个系统一起用人有点裂开。我想要实现 CapsLock 切换输入法语言,Shift+CapsLock 切换大小写锁定,方法是把 CapsLock 用“重新映射键”改成输入法里的切换中英文快捷键,然后用“重新映射快捷键”把 Shift+切换中英文快捷键(而不是 Shift+CapsLock )映射成 Shift+CapsLock 。


因为一开始没有弄懂 PowerToys 的规则所以 Shift+CapsLock 一直实现不了。。。
1
ByteCat 2022 年 6 月 29 日
AutoHotKey 两行搞定了
``` #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. ; #Warn ; Enable warnings to assist with detecting common errors. SendMode Input ; Recommended for new scripts due to its superior speed and reliability. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. CapsLock:: Send, #{Space} ``` |
2
butanediol2d 2022 年 6 月 29 日
|
3
wyf88 2022 年 6 月 30 日 via iPhone 我的 AHK 命令,模拟 macOS ,短按 CapsLock 切换输入法,长按切换大小写
``` CapsLock:: KeyWait, CapsLock, T0.45 if (ErrorLevel) SetCapsLockState, % (t:=!t) ? "On" : "Off" else Send ^{Space} KeyWait, CapsLock return ``` |
6
kid1412621 2022 年 6 月 30 日 via Android
powertoys 貌似没办法实现长按?
|
7
workingonescape 2023 年 3 月 3 日
@wyf88 老哥牛逼,亲测有效
|
8
HeraingBus 2023 年 7 月 1 日
@wyf88 您可太强了
|
9
zhangly7 2025 年 6 月 11 日
AHK v2 的实现
CapsLock:: { static t := false result := KeyWait("CapsLock", "T0.45") if (!result) { t := !t SetCapsLockState(t ? "On" : "Off") } else { Send("^{Space}") KeyWait("CapsLock") } } |
10
honue 2025 年 12 月 15 日
写了个切换的小工具,切换带悬浮窗显示,https://github.com/honue/TapCaps
|