init
This commit is contained in:
117
CapSpace.ahk
Normal file
117
CapSpace.ahk
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
#Requires AutoHotkey v2.0
|
||||||
|
#SingleInstance Force
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CapSpace v2.0
|
||||||
|
* 描述: 将 CapsLock 变为 Smart Ctrl/Esc,并增强虚拟桌面切换
|
||||||
|
*/
|
||||||
|
|
||||||
|
; --- 全局变量初始化 ---
|
||||||
|
g_LastCtrlKeyDownTime := 0
|
||||||
|
g_AbortSendEsc := false
|
||||||
|
|
||||||
|
; --- 1. 虚拟桌面切换逻辑 ---
|
||||||
|
|
||||||
|
; Ctrl + Left/Right -> 切换到上/下一个桌面
|
||||||
|
^Left::Send("^# {Left}")
|
||||||
|
^Right::Send("^# {Right}")
|
||||||
|
|
||||||
|
; Ctrl + Up -> 回到第一个桌面 (循环发送)
|
||||||
|
^Up:: {
|
||||||
|
Loop 5 {
|
||||||
|
Send("^#{Left}")
|
||||||
|
Sleep(10)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
; Ctrl + Down -> 跳到最后一个桌面
|
||||||
|
^Down:: {
|
||||||
|
Loop 5 {
|
||||||
|
Send("^#{Right}")
|
||||||
|
Sleep(10)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
; --- 2. Smart CapsLock 核心逻辑 ---
|
||||||
|
|
||||||
|
*CapsLock:: {
|
||||||
|
global g_LastCtrlKeyDownTime, g_AbortSendEsc
|
||||||
|
|
||||||
|
; 如果 CapsLock 已经处于按下状态(长按触发的重复),直接返回
|
||||||
|
if (GetKeyState("LControl")) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
Send("{LControl Down}")
|
||||||
|
g_LastCtrlKeyDownTime := A_TickCount
|
||||||
|
g_AbortSendEsc := false
|
||||||
|
}
|
||||||
|
|
||||||
|
*CapsLock Up:: {
|
||||||
|
global g_LastCtrlKeyDownTime, g_AbortSendEsc
|
||||||
|
|
||||||
|
Send("{LControl Up}")
|
||||||
|
|
||||||
|
; 如果期间触发了其他组合键,则不发送 Esc
|
||||||
|
if (g_AbortSendEsc) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
; 判断按下时间,如果小于 250ms 则视为单击,发送 Esc
|
||||||
|
time_elapsed := A_TickCount - g_LastCtrlKeyDownTime
|
||||||
|
if (time_elapsed <= 250) {
|
||||||
|
Send("{Esc}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
; --- 3. 拦截逻辑:只要按了 Ctrl 组合键,就放弃发送 Esc ---
|
||||||
|
|
||||||
|
; 使用动态热键或通配符拦截所有常用按键
|
||||||
|
; 在 v2.0 中,我们通过一个简单的循环或特定的通配符来处理
|
||||||
|
~*^a::
|
||||||
|
~*^b::
|
||||||
|
~*^c::
|
||||||
|
~*^d::
|
||||||
|
~*^e::
|
||||||
|
~*^f::
|
||||||
|
~*^g::
|
||||||
|
~*^h::
|
||||||
|
~*^i::
|
||||||
|
~*^j::
|
||||||
|
~*^k::
|
||||||
|
~*^l::
|
||||||
|
~*^m::
|
||||||
|
~*^n::
|
||||||
|
~*^o::
|
||||||
|
~*^p::
|
||||||
|
~*^q::
|
||||||
|
~*^r::
|
||||||
|
~*^s::
|
||||||
|
~*^t::
|
||||||
|
~*^u::
|
||||||
|
~*^v::
|
||||||
|
~*^w::
|
||||||
|
~*^x::
|
||||||
|
~*^y::
|
||||||
|
~*^z::
|
||||||
|
~*^0::
|
||||||
|
~*^1::
|
||||||
|
~*^2::
|
||||||
|
~*^3::
|
||||||
|
~*^4::
|
||||||
|
~*^5::
|
||||||
|
~*^6::
|
||||||
|
~*^7::
|
||||||
|
~*^8::
|
||||||
|
~*^9::
|
||||||
|
~*^Space::
|
||||||
|
~*^Backspace::
|
||||||
|
~*^Delete::
|
||||||
|
~*^Enter::
|
||||||
|
~*^Tab::
|
||||||
|
~*^Up::
|
||||||
|
~*^Down::
|
||||||
|
~*^Left::
|
||||||
|
~*^Right:: {
|
||||||
|
global g_AbortSendEsc := true
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user