在 macOS 底下我們可以按 Caps Lock 鍵切換輸入法,但每次按的時候都會覺得有一點頓頓的,無法立即切換過去,這不是你的錯覺!
本文分享兩個重點:
- 讓 Caps Lock 切換輸入法「立刻生效、沒有延遲」
- 讓這個設定「開機自動套用」,不用每次重開機都重打指令
一、立即取消 Caps Lock 切換延遲
-
打開「終端機」(Terminal)
-
在終端機貼上以下指令並按 Enter:
hidutil property --set '{"CapsLockDelayOverride":0}' -
測試 Caps Lock 切換中英文,應該會變得非常即時、沒有慢半拍的感覺。
注意:這個設定在重開機後常常會失效,因此建議再做下面的「開機自動套用」設定。
二、讓 Caps Lock 零延遲在開機時自動套用(LaunchAgent)
這一段會建立一個 LaunchAgent,在你登入 macOS 時自動執行上面的 hidutil 指令。
步驟 1:建立自動啟動的 plist 設定檔
在終端機貼上以下整段指令(包含 EOF 那行),然後按 Enter:
cat > ~/Library/LaunchAgents/com.user.capslockdelay.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.user.capslockdelay</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/hidutil</string>
<string>property</string>
<string>--set</string>
<string>{"CapsLockDelayOverride":0}</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
這會在 ~/Library/LaunchAgents/ 底下建立一個 com.user.capslockdelay.plist 設定檔。
步驟 2:載入設定讓它生效
接著在終端機執行:
launchctl load ~/Library/LaunchAgents/com.user.capslockdelay.plist
之後每次登入 macOS,系統就會自動執行 hidutil property --set {"CapsLockDelayOverride":0},讓 Caps Lock 零延遲自動生效。
檢查檔案是否建立成功
ls ~/Library/LaunchAgents/com.user.capslockdelay.plistl
如果看得到這個檔案路徑,代表設定檔已經建立。
三、如何移除/還原預設設定
如果之後想恢復系統預設(不再自動套用零延遲),可以在終端機執行:
launchctl unload ~/Library/LaunchAgents/com.user.capslockdelay.plist
rm ~/Library/LaunchAgents/com.user.capslockdelay.plist
完成後,重開機後就不會再自動修改 Caps Lock 延遲設定。