作者s31364663 (木頭豬)
看板EzHotKey
標題[AHK-] win模擬mac操作caps lock
時間Thu Jun 27 12:05:40 2024
前陣子同事抱怨他習慣mac的caps lock切換
我就找時間寫了一支ahk打包給他
作業系統 windows 11
使用 Autohotkey 2.x版本
實現的邏輯如下:
1. shift + caps lock 切換大小寫鎖定
2.長按 caps lock 切換大小寫鎖定
3.短按 caps lovk 切換語言
4.禁用 shift 切換語言,需保留 shift 組合鍵功能(如打特殊符號)
姑且算是完成了這些規劃的功能
之所以說姑且,是因為我在4的部分卡住了
原本寫的邏輯是按shift 0.3秒就會觸發按住,小於0.3秒則什麼都不做
但這麼做會在使用組合鍵的時候影響使用體驗
例如快速的按 shift + / 輸入 ? 時,就會因為按下的時間不足而失敗
如果調低 0.3秒這個值,就會在短按時觸發切換語言
最後我用了一個笨方法
利用 shift 觸發任意組合鍵就不會觸發切換語言的特性
讓腳本走 shift + space 切換全形,再馬上切回來
達到我要的效果,可這個過程看起來真的有點蠢
可能誘發強迫症使我夜不能寐
※ 考慮到給不會調整設定的人直接使用,暫不考慮修改 windows 內建切換語言的快捷鍵
想請益是否有更好的作法
謝謝Ezhotkey版
/------------------
$LShift::
{
; 禁用左 Shift 的單擊功能,但保留組合鍵使用
if !KeyWait("LShift", "T0.03") {
; 如果超過 0.03 秒,允許作為組合鍵使用
Send("{LShift Down}")
KeyWait("LShift") ; 等待直到 LShift 釋放
Send("{Space}")
sleep 150
Send("{Space}")
Send("{LShift Up}")
}
; 如果是短按,不做任何操作
Return
}
-----
Sent from
PttX on my Android
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.15.25.146 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/EzHotKey/M.1719461143.A.2A6.html
1F:→ jili1000: 第4點的確很難,我是一點想法也拿不出來。 06/28 01:26
2F:→ BSiC3290: 直接在Windows的設定中將轉換模式切換鍵設為無? 07/03 08:54
3F:→ fossil313: ~shift::vkFF 這樣試試看 07/10 23:00