Perfect
This commit is contained in:
125
CapSpace.ahk
125
CapSpace.ahk
@@ -1,118 +1,21 @@
|
|||||||
#Requires AutoHotkey v2.0
|
#Requires AutoHotkey v2.0
|
||||||
#SingleInstance Force
|
#SingleInstance Force
|
||||||
|
|
||||||
/**
|
; 确保 RAlt 的穿透性(如果 Typeless 仍有冲突,保留此行)
|
||||||
* CapSpace v2.0
|
~RAlt::return
|
||||||
* 描述: 将 CapsLock 变为 Smart Ctrl/Esc,并增强虚拟桌面切换
|
|
||||||
*/
|
|
||||||
|
|
||||||
; --- 全局变量初始化 ---
|
; 优化发送速度:SetKeyDelay 影响 SendEvent 的速度
|
||||||
g_LastCtrlKeyDownTime := 0
|
; 参数含义:延时 1ms,按键时长 1ms
|
||||||
g_AbortSendEsc := false
|
SetKeyDelay 1, 1
|
||||||
|
|
||||||
; --- 1. 虚拟桌面切换逻辑 (修正版) ---
|
; 使用 Ctrl + 方向键 切换虚拟桌面
|
||||||
|
; 加上 * 可以支持 Ctrl+Shift+Left 等组合,去掉 $ 如果你确定没有热键死循环
|
||||||
|
*^Left::SendEvent("{Blind}#^{Left}")
|
||||||
|
*^Right::SendEvent("{Blind}#^{Right}")
|
||||||
|
|
||||||
$^Left::SendEvent("{Blind}^#{Left}")
|
; 一键跳转到第一个桌面 (向上)
|
||||||
$^Right::SendEvent("{Blind}^#{Right}")
|
*^Up::SendEvent("{Blind}#^{Left 10}")
|
||||||
|
|
||||||
$^Up:: {
|
; 一键跳转到最后一个桌面 (向下)
|
||||||
Loop 8 {
|
; 10 次通常足够覆盖大部分人的桌面数量
|
||||||
SendEvent("{Blind}^#{Left}")
|
*^Down::SendEvent("{Blind}#^{Right 10}")
|
||||||
Sleep(1)
|
|
||||||
}
|
|
||||||
; 关键:强制释放 Win 和 Ctrl,防止粘滞
|
|
||||||
Send("{LWin Up}{Control Up}")
|
|
||||||
}
|
|
||||||
|
|
||||||
$^Down:: {
|
|
||||||
Loop 8 {
|
|
||||||
SendEvent("{Blind}^#{Right}")
|
|
||||||
Sleep(1)
|
|
||||||
}
|
|
||||||
; 关键:强制释放 Win 和 Ctrl
|
|
||||||
Send("{LWin Up}{Control Up}")
|
|
||||||
}
|
|
||||||
|
|
||||||
; --- 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
|
|
||||||
}
|
|
||||||
18
LICENSE
18
LICENSE
@@ -1,18 +0,0 @@
|
|||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2026 mdy
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
|
||||||
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
|
||||||
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
|
|
||||||
following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial
|
|
||||||
portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
||||||
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
|
||||||
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
||||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
46
README.md
46
README.md
@@ -1,46 +0,0 @@
|
|||||||
# CapSpace
|
|
||||||
|
|
||||||
## 📦 CapSpace
|
|
||||||
|
|
||||||
**CapSpace** 是一款基于 AutoHotkey 的系统增强脚本,旨在通过重定义 `CapsLock` 键位,构建一个高效、直观的 Windows 虚拟桌面调度中心。
|
|
||||||
|
|
||||||
### 🌟 核心特性
|
|
||||||
|
|
||||||
* **Smart CapsLock**:
|
|
||||||
* **单击**:触发 `Esc`(完美的 Vim/编程体验)。
|
|
||||||
* **长按/组合**:瞬间化身为 `Ctrl` 修饰键。
|
|
||||||
* **防误触**:内置毫秒级判定与组合键拦截逻辑,确保不会在组合操作后误弹 `Esc`。
|
|
||||||
|
|
||||||
|
|
||||||
* **空间折叠 (Virtual Desktop Management)**:
|
|
||||||
* `Ctrl + Left/Right`:平滑切换相邻虚拟桌面。
|
|
||||||
* `Ctrl + Up`:**一键穿梭**至首个虚拟桌面。
|
|
||||||
* `Ctrl + Down`:**一键直达**末个虚拟桌面。
|
|
||||||
|
|
||||||
|
|
||||||
* **原生融合**:完美支持与 `CapsLock` 组合使用,让你的左手无需大范围跨越即可掌控全局。
|
|
||||||
|
|
||||||
### 🚀 快速开始
|
|
||||||
|
|
||||||
1. **环境要求**:安装 [AutoHotkey v1.1+](https://www.autohotkey.com/)。
|
|
||||||
2. **运行**:下载 `CapSpace.ahk` 并双击运行。
|
|
||||||
3. **开机自启**:
|
|
||||||
* 按 `Win + R` 输入 `shell:startup`。
|
|
||||||
* 将 `CapSpace.ahk` 的快捷方式放入该文件夹。
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### ⌨️ 快捷键总览
|
|
||||||
|
|
||||||
| 快捷键 (按下) | 实际功能 | 场景 |
|
|
||||||
| --- | --- | --- |
|
|
||||||
| `CapsLock` (轻点) | `Esc` | 退出/取消 |
|
|
||||||
| `Ctrl / CapsLock + ←/→` | `Ctrl + Win + ←/→` | 逐个切桌面 |
|
|
||||||
| `Ctrl / CapsLock + ↑` | 连续左切 | 回到第一个 |
|
|
||||||
| `Ctrl / CapsLock + ↓` | 连续右切 | 跳到最后一个 |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 💡 给仓库填写的 Short Description (GitHub 简介框)
|
|
||||||
|
|
||||||
> 🚀 CapSpace: Transform your CapsLock into a Smart Ctrl/Esc hybrid and unlock seamless virtual desktop navigation with intuitive shortcuts.
|
|
||||||
3
config.txt
Normal file
3
config.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
remap_key=CAPSLOCK
|
||||||
|
when_alone=ESCAPE
|
||||||
|
with_other=CTRL
|
||||||
BIN
dual-key-remap.exe
Normal file
BIN
dual-key-remap.exe
Normal file
Binary file not shown.
Reference in New Issue
Block a user