diff --git a/CapSpace.ahk b/CapSpace.ahk index 7a34712..1601765 100644 --- a/CapSpace.ahk +++ b/CapSpace.ahk @@ -1,118 +1,21 @@ #Requires AutoHotkey v2.0 #SingleInstance Force -/** - * CapSpace v2.0 - * 描述: 将 CapsLock 变为 Smart Ctrl/Esc,并增强虚拟桌面切换 - */ +; 确保 RAlt 的穿透性(如果 Typeless 仍有冲突,保留此行) +~RAlt::return -; --- 全局变量初始化 --- -g_LastCtrlKeyDownTime := 0 -g_AbortSendEsc := false +; 优化发送速度:SetKeyDelay 影响 SendEvent 的速度 +; 参数含义:延时 1ms,按键时长 1ms +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 { - SendEvent("{Blind}^#{Left}") - 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 -} \ No newline at end of file +; 一键跳转到最后一个桌面 (向下) +; 10 次通常足够覆盖大部分人的桌面数量 +*^Down::SendEvent("{Blind}#^{Right 10}") \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 818f4cd..0000000 --- a/LICENSE +++ /dev/null @@ -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. diff --git a/README.md b/README.md deleted file mode 100644 index 0fcafff..0000000 --- a/README.md +++ /dev/null @@ -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. \ No newline at end of file diff --git a/config.txt b/config.txt new file mode 100644 index 0000000..d672757 --- /dev/null +++ b/config.txt @@ -0,0 +1,3 @@ +remap_key=CAPSLOCK +when_alone=ESCAPE +with_other=CTRL diff --git a/dual-key-remap.exe b/dual-key-remap.exe new file mode 100644 index 0000000..28d39da Binary files /dev/null and b/dual-key-remap.exe differ