Mac&Win功能键魔改:让CapsLock焕发第二春

Capslock

Make CapsLock Great Again!

显著提高APM!!

  • 功能强大:基于⇪CapsLock的新功能键Hyper可以与任何按键组合,提供强大的定制性。
  • 精心设计:在作者两年使用实践中不断雕琢,将最常使用的操作预置于核心键区,显著提高操作效率。
  • 轻量跨平台:分别基于Karabiner()AutoHotKey(⊞)以脚本方式实现。
  • 部署方便:放在随身装机U盘中,还是托管在Github上,简单几步即可复刻环境。

CapsLock() : 使用姿势参考

CapsLock(⊞)

前言

⇪CapsLock,即大写锁定键,其起源可追溯至打字机时代。打字机是纯机械的设备,当按下Shift时,整套设备会与墨条纸带发生位移,使小写字母“上档”为大写字母。此等操作对小拇指是不小的负担,以致连续输入两到三个大写字母都比较吃力。于是在今天键盘上⇪Capslock的位置上出现了其原型Shiftlock功能键:可以在大小写状态之间切换与保持。这样的设计解决了一指禅选手的困境,更减轻了打字员的负担。

然而随着科技的进步,这样的问题已经不存在了。除了一指禅选手,Shift能够毫不费力的满足人们的需求。而⇪Capslock这个'多余'的按键,则因为历史惯性保留在了绝大多数键盘的黄金位置。

历史上有很多人注意到了这一点,不少人都琢磨着让这个占据宝地的按键发挥出更大的作用。一些键盘直接去掉了⇪Capslock键,而另一些则直接把它作为⌃Ctrl使用。在一些Unix Like(e.g )环境中,⇪Capslock还被用作语言切换的按键。有些人将⇪Capslock改为复合功能键:单独键入时是⎋ESC,而按住不放时是⌃Ctrl。

不过为什么要浪费这样一个绝佳的机会呢?我们所能做的远比这更多:

譬如创造一个类似⇧ Shift、⌃ Ctrl、⌥ Option、⊞ Win、⎇ Alt 、 ⌘ Command等修饰键的全新功能键:

​ Hyper

功能说明

以Mac为例:

右手核心区

  • 基本映射

    • 按住⇪CapsLock,映射为 Hyper
    • 按下⇪CapsLock,映射为⌥␢ 输入法切换(二选一,默认)
    • 按下⇪CapsLock,映射为⎋ ESC (二选一)
  • 导航键映射
    • 按下 Hyper启用光标移动,按下⌘时启用光标选择
    • H ↦ ← (VI导航键:H映射为左)
    • J ↦ ↓ (VI导航键:J映射为左)
    • K ↦ ↑ (VI导航键:K映射为左)
    • L ↦ → (VI导航键:L映射为右)
    • U ↦ ⇞ (U映射为PageUp)
    • I ↦ (I映射为Home)
    • O ↦ (O映射为End)
    • P ↦ ⇟ (P映射为Pagedown)
    • 删除键
    • N ↦ ⌥⌫ (删除光标左侧一个单词)
    • M ↦ ⌫ (删除光标左侧一个字符)
    • , ↦ ⌦ (删除光标右侧一个字符)
    • . ↦ ⌥⌦ (删除光标右侧一个单词)

左手核心区

  • 窗口操作

    • ⇥ ↦ ⌃⇥ (Tab 映射为正向切换标签页)
    • ⌘⇥↦ ⌃⇧⇥ (⌘Tab 映射为反向切换标签页)
    • Q ↦ ⌘Q (关闭窗口)
    • W ↦ ⌘W (关闭标签页)
    • A ↦ ⌃⌥⇧⌘A (Moom-Meta键,※一个窗口操作软件)
    • ⌘A ↦ F11 (回到桌面)
    • S ↦ ⌃⇥ (切换标签页)
    • ⌘S ↦ ⌃⇧⇥ (反向切换标签页 )
  • Bash控制
    • Z ↦ ⌃Z (作业停止信号:SIGTSTP))
    • X ↦ ⌃B (Tmux-Prefix,※一个终端复用软件)
    • C ↦ ⌃C (作业中断信号:SIGINT)
    • V ↦ , (Vim-Leader键)
    • D ↦ ⌃D (发送EOF)
  • 应用快捷方式
    • E ↦ Google Chrome
    • ⌘E ↦ Finder
    • R ↦ iTerm
    • ⌘R ↦ ^R (IDE-Run)
    • T ↦ Sublime Text
    • ⌘T ↦ Typora
    • F ↦ Dash
    • ⌘F ↦ Dictionary
    • G ↦ IntelliJ IDEA
    • G ↦ CLion

键盘第一行:功能键

  • 功能键映射

    • F1 ↦ BrightnessDown
    • F2 ↦ BrightnessUp
    • F3 ↦ ExposeAll
    • F4 ↦ LaunchPad
    • F5 ↦ KeyboardLightDown
    • F6 ↦ KeyboardLightUp
    • F7 ↦ MusicPrev
    • F8 ↦ MusicPlay
    • F9 ↦ MusicNext
    • F10 ↦ Mute
    • F11 ↦ VolumeDown
    • F12 ↦ VolumeUp

键盘第二行:数字键

  • 上档键映射

    • [12...-=] ↦ ⇧[12...-=] (将数字键、减号、等于号上档为对应符号)
    • [] ↦ ⇧90 '()' (将方括号映射为圆括号)
    • ' ↦ ⇧- '_' (将单引号映射为下划线)

主键区其他按键

  • 主键区其他杂项

    • ⎋ ↦ ⇪ (Escape 将Hyper转义回⇪CapsLock)
    • ␢ ↦ ⎋ (空格 映射为⎋ESC)
    • \ ↦ ⌃/ (斜杠 映射为注释/解注释)
    • `↦ ⌃⇧⌘4(反引号 映射为选取截图区域并存储)
    • ↦ ⌃⇧4` (⌘反引号 映射为选取截图区域至剪贴板)
    • ' ↦ = (单引号 映射为等于号)

特殊键区

  • PC键盘特殊按键映射

    • Ins ↦ ⇧⌥F1 (Insert 微调提升屏幕亮度)
    • Del ↦ ⇧⌥F2 (Delete 微调降低屏幕亮度)
    • ↦ ⇧⌥F5 (Home 微调提升键盘背光亮度)
    • ↦ ⇧⌥F6 (End 微调降低键盘背光亮度)
    • ⇟ ↦ ⇧⌥F11 (PgUp 微调提升音量)
    • ⇞ ↦ ⇧⌥F12 (PgDn 微调降低音量)
    • PrintScreen ↦ ⌃⇧⌘3 (保存全屏截图至剪贴板)
    • PrintScreen ↦ ⌃⇧⌘3 (保存全屏截图至桌面文件)
    • ScrollLock ↦ VolumeMute (ScrollLock静音)
    • Pause ↦ MusicPlay (Pause映射为音乐播放)
  • 光标键映射
    • ↑ ↦ MouseUp
    • ↓ ↦ MouseDown
    • ← ↦ MouseLeft
    • → ↦ MouseRight
    • ↦ MouseLButton
    • \ ↦ MouseRButton

符号参考表

Modifiers: Mac

Sym Key
Hyper
Control
Option
Shift
Command

Modifiers: ⊞Windows

Sym Key
Hyper
Control
Windows
Shift
Alter

Normal Keys

GLYPH NAME
Apple
Command, Cmd, Clover, (formerly) Apple
Control, Ctl, Ctrl
Option, Opt, (Windows) Alt
Alt
Shift
Caps lock
Eject
, ↵, ⏎ Return, Carriage Return
Enter
Delete, Backspace
Forward Delete
Escape, Esc
Right arrow
Left arrow
Up arrow
Down arrow
Page Up, PgUp
Page Down, PgDn
Home
End
Clear
Tab, Tab Right, Horizontal Tab
Shift Tab, Tab Left, Back-tab
Space, Blank
Space, Blank
Power
Num lock
?⃝ Help
Context menu

Mac版本脚本

CapsLock() 更新中

<?xml version="1.0"?>
<root>
    <!-- Introduction -->
    <item>
        <name style="important">CapsLock Enhancement</name>
        <appendix></appendix>
        <appendix>Make CapsLock Great Again!</appendix>
        <appendix></appendix>
        <appendix>※Author: Vonng (fengruohang@outlook.com)</appendix>
        <appendix>※Document: https://github.com/Vonng/Capslock/tree/master/osx</appendix>
        <appendix>※Environment: Mac OS X darwin64 via Karabiner</appendix>
        <appendix>※License: WTFPL</appendix>
        <appendix>※Prequisite: Maps ⇪CapsLock to F19(KeyCode:80) first. (via Seil)</appendix>
    </item>

    <!-- Hyper declaration -->
    <modifierdef>HYPER</modifierdef>

    <item>
        <name style="important">CapsLock setup</name>
        <appendix>Hold CapsLock to Hyper</appendix>
        <appendix>⇪[Hold] ↦ </appendix>
        <appendix></appendix>
        <appendix>Press CapsLock to ?</appendix>
        <appendix><![CDATA[* ⎋  ESC ]]></appendix>
        <appendix><![CDATA[* ⌥␢ Language-Switcher]]></appendix>
    </item>

    <!-- CapsLock to Hyper/Language Switcher(Recommend) -->
    <item>
        <name>Press CapsLock to Language-Switcher</name>
        <appendix>⇪[Press] ↦ ⌥␢</appendix>

        <identifier>private.capslock-langswitcher</identifier>

        <autogen>
            --KeyOverlaidModifier--
            KeyCode::F19,
            KeyCode::VK_MODIFIER_HYPER,
            KeyCode::SPACE, ModifierFlag::CONTROL_L
        </autogen>
    </item>

    <!-- CapsLock to Escape -->
    <item>
        <name>Press CapsLock to Escape</name>
        <appendix>⇪[Press] ↦ ⎋</appendix>

        <identifier>private.capslock-escape</identifier>

        <autogen>
            --KeyOverlaidModifier--
            KeyCode::F19,
            KeyCode::VK_MODIFIER_HYPER,
            KeyCode::ESCAPE
        </autogen>
    </item>

    <!-- Hyper Navigator -->
    <item>
        <name>Hyper Navigator</name>
        <appendix><![CDATA[H ↦ ← (CursorLeft)]]></appendix>
        <appendix><![CDATA[J ↦ ↓ (CursorDown)]]></appendix>
        <appendix><![CDATA[K ↦ ↑ (CursorUp)]]></appendix>
        <appendix><![CDATA[L ↦ → (CursorRight)]]></appendix>
        <appendix><![CDATA[U ↦ ⇞ (PageUp)]]></appendix>
        <appendix><![CDATA[I ↦  (Home)]]></appendix>
        <appendix><![CDATA[O ↦  (End)]]></appendix>
        <appendix><![CDATA[P ↦ ⇟ (Pagedown)]]></appendix>
        <appendix></appendix>
        <appendix>※Hint: Hold additional ⌘(Left) key for selection</appendix>
        <identifier>private.hyper-navigator</identifier>

        <!-- H: Left -->
        <autogen>
            --KeyToKey--
            KeyCode::H, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::CURSOR_LEFT | ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::H, ModifierFlag::HYPER,
            KeyCode::CURSOR_LEFT
        </autogen>

        <!-- J: Down -->
        <autogen>
            --KeyToKey--
            KeyCode::J, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::CURSOR_DOWN | ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::J,ModifierFlag::HYPER,
            KeyCode::CURSOR_DOWN
        </autogen>

        <!-- K: Up -->
        <autogen>
            --KeyToKey--
            KeyCode::K, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::CURSOR_UP | ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::K,ModifierFlag::HYPER,
            KeyCode::CURSOR_UP
        </autogen>

        <!-- L: Right -->
        <autogen>
            --KeyToKey--
            KeyCode::L, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::CURSOR_RIGHT | ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::L,ModifierFlag::HYPER,
            KeyCode::CURSOR_RIGHT
        </autogen>

        <!-- U: PageUp -->
        <autogen>
            --KeyToKey--
            KeyCode::U, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::PAGEUP | ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::U,ModifierFlag::HYPER,
            KeyCode::PAGEUP
        </autogen>

        <!-- I: HOME -->
        <autogen>
            --KeyToKey--
            KeyCode::I, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::HOME | ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::I,ModifierFlag::HYPER,
            KeyCode::HOME
        </autogen>

        <!-- O: END -->
        <autogen>
            --KeyToKey--
            KeyCode::O, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::END | ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::O,ModifierFlag::HYPER,
            KeyCode::END
        </autogen>

        <!-- P: PageDown -->
        <autogen>
            --KeyToKey--
            KeyCode::P, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::PAGEDOWN | ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::P,ModifierFlag::HYPER,
            KeyCode::PAGEDOWN
        </autogen>
    </item>

    <!-- Hyper Deletion -->
    <item>
        <name>Hyper Deletion</name>
        <appendix><![CDATA[N ↦ ⌥⌫ (Delete a word ahead)]]></appendix>
        <appendix><![CDATA[M ↦ ⌫  (Delete a char ahead)]]></appendix>
        <appendix><![CDATA[, ↦ ⌦  (Forward Delete a char)]]></appendix>
        <appendix><![CDATA[. ↦ ⌥⌦ (Forward Delete a word)]]></appendix>
        <identifier>private.hyper-deletion</identifier>

        <autogen>
            --KeyToKey--
            KeyCode::N, ModifierFlag::HYPER,
            KeyCode::DELETE, ModifierFlag::OPTION_L,
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::M,ModifierFlag::HYPER,
            KeyCode::DELETE
        </autogen>

        <autogen>
            --KeyToKey--
            KeyCode::COMMA,ModifierFlag::HYPER,
            KeyCode::FORWARD_DELETE
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::DOT,ModifierFlag::HYPER,
            KeyCode::FORWARD_DELETE, ModifierFlag::OPTION_L
        </autogen>
    </item>

    <!-- Hyper Window Control -->
    <item>
        <name>Hyper Window-Manipulation</name>
        <appendix><![CDATA[Q  ↦ ⌘Q    (Close Window)]]></appendix>
        <appendix><![CDATA[W  ↦ ⌘W    (Close Tab)]]></appendix>
        <appendix><![CDATA[A  ↦ ⌃⌥⇧⌘A (Moom Prefix)]]></appendix>
        <appendix><![CDATA[⌘A ↦ F11   (Desktop)]]></appendix>
        <appendix><![CDATA[S  ↦ ⌃⇥    (Tab Switch)]]></appendix>
        <appendix><![CDATA[⌘S ↦ ⌃⇧⇥   (Reverse Tab Switch)]]></appendix>
        <identifier>private.hyper-window-manipulation</identifier>

        <!-- Tab to SwitchTab-->
        <autogen>
            --KeyToKey--
            KeyCode::TAB, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::TAB,ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L
        </autogen>

        <!-- ⌘Tab to Reverse SwitchTab-->
        <autogen>
            --KeyToKey--
            KeyCode::TAB, ModifierFlag::HYPER,
            KeyCode::TAB,ModifierFlag::CONTROL_L
        </autogen>

        <!-- ⌘Q: Quit Window -->
        <autogen>
            --KeyToKey--
            KeyCode::Q, ModifierFlag::HYPER,
            KeyCode::Q, ModifierFlag::COMMAND_L
        </autogen>

        <!-- ⌘W Close Tab -->
        <autogen>
            --KeyToKey--
            KeyCode::W, ModifierFlag::HYPER ,
            KeyCode::W, ModifierFlag::COMMAND_L
        </autogen>

        <!-- Hyper-A Moom-Prefix (Set to Physical Hyper-A) -->
        <autogen>
            --KeyToKey--
            KeyCode::A,ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::F11
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::A,ModifierFlag::HYPER ,
            KeyCode::A,ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::CONTROL_L |
            ModifierFlag::SHIFT_L
        </autogen>

        <!-- ^Tab: Switch Tag -->
        <autogen>
            --KeyToKey--
            KeyCode::S,ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::TAB,ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::S,ModifierFlag::HYPER,
            KeyCode::TAB,ModifierFlag::CONTROL_L
        </autogen>
    </item>

    <!-- Hyper Bash Control -->
    <item>
        <name>Hyper Bash-Control</name>
        <appendix><![CDATA[Z ↦ ⌃Z (SIGTSTP)]]></appendix>
        <appendix><![CDATA[X ↦ ⌃B (Tmux-Prefix)]]></appendix>
        <appendix><![CDATA[C ↦ ⌃C (SIGINT)]]></appendix>
        <appendix><![CDATA[V ↦ ,  (VIM Leader)]]></appendix>
        <appendix><![CDATA[D ↦ ⌃D (EOF)]]></appendix>

        <identifier>private.hyper-bash-control</identifier>

        <!-- ^Z SIGTSTP -->
        <autogen>
            --KeyToKey--
            KeyCode::Z, ModifierFlag::HYPER ,
            KeyCode::Z, ModifierFlag::CONTROL_L
        </autogen>

        <!-- ^X Tmux Prefix -->
        <autogen>
            --KeyToKey--
            KeyCode::X, ModifierFlag::HYPER ,
            KeyCode::B, ModifierFlag::CONTROL_L
        </autogen>

        <!-- ^C SIGINT -->
        <autogen>
            --KeyToKey--
            KeyCode::C, ModifierFlag::HYPER,
            KeyCode::C, ModifierFlag::CONTROL_L
        </autogen>

        <!-- ^V Vim -->
        <autogen>
            --KeyToKey--
            KeyCode::V, ModifierFlag::HYPER ,
            KeyCode::COMMA
        </autogen>

        <!-- ^D EOF  +⌘=^R (Debug) -->
        <autogen>
            --KeyToKey--
            KeyCode::D, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::D, ModifierFlag::CONTROL_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::D, ModifierFlag::HYPER ,
            KeyCode::D, ModifierFlag::CONTROL_L
        </autogen>

    </item>

    <!--Hyper Application-->
    <item>
        <name>Hyper Application</name>
        <appendix></appendix>
        <appendix>E: Explore</appendix>
        <appendix><![CDATA[E  ↦ Google Chrome]]></appendix>
        <appendix><![CDATA[⌘E ↦ Finder]]></appendix>

        <appendix></appendix>
        <appendix>R: Run</appendix>
        <appendix><![CDATA[R  ↦ iTerm]]></appendix>
        <appendix><![CDATA[⌘R ↦ ^R (IDE-Run)]]></appendix>

        <appendix></appendix>
        <appendix>T: Text</appendix>
        <appendix><![CDATA[T  ↦ Sublime Text]]></appendix>
        <appendix><![CDATA[⌘T ↦ Typora]]></appendix>

        <appendix></appendix>
        <appendix>F: Find</appendix>
        <appendix><![CDATA[F  ↦ Dash]]></appendix>
        <appendix><![CDATA[⌘F ↦ Dictionary]]></appendix>

        <appendix></appendix>
        <appendix>G: Grand</appendix>
        <appendix><![CDATA[G  ↦ Intellij IDEA]]></appendix>
        <appendix><![CDATA[G  ↦ CLion]]></appendix>
        <identifier>private.hyper-application</identifier>

        <!--Define your own application here-->
        <vkopenurldef>
            <name>KeyCode::VK_OPEN_URL_APP_Google_Chrome</name>
            <url type="file">/Applications/Google Chrome.app</url>
        </vkopenurldef>
        <vkopenurldef>
            <name>KeyCode::VK_OPEN_URL_APP_iTerm</name>
            <url type="file">/Applications/iTerm.app</url>
        </vkopenurldef>
        <vkopenurldef>
            <name>KeyCode::VK_OPEN_URL_APP_Sublime_Text</name>
            <url type="file">/Applications/Sublime Text.app</url>
        </vkopenurldef>
        <vkopenurldef>
            <name>KeyCode::VK_OPEN_URL_APP_INTELLIJ_IDEA</name>
            <url type="file">/Applications/IntelliJ IDEA.app/</url>
        </vkopenurldef>
        <vkopenurldef>
            <name>KeyCode::VK_OPEN_URL_APP_CLion</name>
            <url type="file">/Applications/CLion.app/</url>
        </vkopenurldef>
        <vkopenurldef>
            <name>KeyCode::VK_OPEN_URL_APP_Dash</name>
            <url type="file">/Applications/Dash.app/</url>
        </vkopenurldef>
        <vkopenurldef>
            <name>KeyCode::VK_OPEN_URL_APP_Typora</name>
            <url type="file">/Applications/Typora.app</url>
        </vkopenurldef>

        <autogen>
            --KeyToKey--
            KeyCode::E, ModifierFlag::HYPER | ModifierFlag::COMMAND_L ,
            KeyCode::VK_OPEN_URL_APP_Finder
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::E, ModifierFlag::HYPER,
            KeyCode::VK_OPEN_URL_APP_Google_Chrome
        </autogen>

        <autogen>
            --KeyToKey--
            KeyCode::R, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::R, ModifierFlag::CONTROL_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::R, ModifierFlag::HYPER,
            KeyCode::VK_OPEN_URL_APP_iTerm
        </autogen>

        <autogen>
            --KeyToKey--
            KeyCode::T, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::VK_OPEN_URL_APP_Typora
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::T, ModifierFlag::HYPER,
            KeyCode::VK_OPEN_URL_APP_Sublime_Text
        </autogen>

        <autogen>
            --KeyToKey--
            KeyCode::F, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::VK_OPEN_URL_APP_Dictionary
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::F, ModifierFlag::HYPER,
            KeyCode::VK_OPEN_URL_APP_Dash
        </autogen>

        <autogen>
            --KeyToKey--
            KeyCode::G, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::VK_OPEN_URL_APP_CLion
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::G, ModifierFlag::HYPER,
            KeyCode::VK_OPEN_URL_APP_INTELLIJ_IDEA
        </autogen>

    </item>

    <!-- Hyper Functional-->
    <item>
        <name>Hyper Functional</name>
        <appendix>Maps F[N] to corresponding functionality</appendix>
        <appendix><![CDATA[F1  ↦  BrightnessDown]]></appendix>
        <appendix><![CDATA[F2  ↦  BrightnessUp]]></appendix>
        <appendix><![CDATA[F3  ↦  ExposeAll]]></appendix>
        <appendix><![CDATA[F4  ↦  LaunchPad]]></appendix>
        <appendix><![CDATA[F5  ↦  KeyboardLightDown]]></appendix>
        <appendix><![CDATA[F6  ↦  KeyboardLightUp]]></appendix>
        <appendix><![CDATA[F7  ↦  MusicPrev]]></appendix>
        <appendix><![CDATA[F8  ↦  MusicPlay]]></appendix>
        <appendix><![CDATA[F9  ↦  MusicNext]]></appendix>
        <appendix><![CDATA[F10 ↦  Mute]]></appendix>
        <appendix><![CDATA[F11 ↦  VolumeDown]]></appendix>
        <appendix><![CDATA[F12 ↦  VolumeUp]]></appendix>
        <appendix></appendix>
        <appendix>※Hint: Enable system settings: preference -> keyboard -> 'Use F1,F2,etc.. as standard function key'
        </appendix>
        <identifier>private.hyper-function</identifier>
        <!-- F1 -->
        <autogen>
            KeyToKey KeyCode::F1, ModifierFlag::HYPER,
            ConsumerKeyCode::BRIGHTNESS_DOWN ,ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L
        </autogen>

        <!-- F2 -->
        <autogen>
            KeyToKey KeyCode::F2, ModifierFlag::HYPER,
            ConsumerKeyCode::BRIGHTNESS_UP ,ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L
        </autogen>

        <!-- F3 -->
        <autogen>__KeyToKey__ KeyCode::F3, ModifierFlag::HYPER, KeyCode::EXPOSE_ALL</autogen>

        <!-- F4 -->
        <autogen>__KeyToKey__ KeyCode::F4, ModifierFlag::HYPER, KeyCode::LAUNCHPAD</autogen>

        <!-- F5 -->
        <autogen>
            KeyToKey KeyCode::F5, ModifierFlag::HYPER,
            ConsumerKeyCode::KEYBOARDLIGHT_LOW ,ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L
        </autogen>

        <!-- F6 -->
        <autogen>
            KeyToKey KeyCode::F6, ModifierFlag::HYPER,
            ConsumerKeyCode::KEYBOARDLIGHT_HIGH ,ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L
        </autogen>

        <!-- F7 -->
        <autogen>
            KeyToKey KeyCode::F7, ModifierFlag::HYPER,
            ConsumerKeyCode::MUSIC_PREV
        </autogen>

        <!-- F8 -->
        <autogen>
            KeyToKey KeyCode::F8, ModifierFlag::HYPER,
            ConsumerKeyCode::MUSIC_PLAY
        </autogen>

        <!-- F9 -->
        <autogen>
            KeyToKey KeyCode::F9, ModifierFlag::HYPER,
            ConsumerKeyCode::MUSIC_NEXT
        </autogen>

        <!-- F10 -->
        <autogen>
            KeyToKey KeyCode::F10, ModifierFlag::HYPER,
            ConsumerKeyCode::VOLUME_MUTE
        </autogen>

        <!-- F11 -->
        <autogen>
            KeyToKey KeyCode::F11, ModifierFlag::HYPER,
            ConsumerKeyCode::VOLUME_DOWN,ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L
        </autogen>

        <!-- F12 -->
        <autogen>
            KeyToKey KeyCode::F12, ModifierFlag::HYPER,
            ConsumerKeyCode::VOLUME_UP,ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L
        </autogen>

    </item>

    <!-- Hyper Shifter-->
    <item>
        <name>Hyper Shifter</name>
        <appendix>Maps hyper numkeys, minus, equal to corresponding punctuation.</appendix>
        <appendix>[12...-=] ↦ ⇧[12...-=] '!@..._+'</appendix>

        <appendix></appendix>
        <appendix>Maps square bracket to round breacket.</appendix>
        <appendix>[ ↦ ⇧9 '('</appendix>
        <appendix>] ↦ ⇧0 ')'</appendix>

        <appendix></appendix>
        <appendix>Maps Hyper semicolon to low dash</appendix>
        <appendix>; ↦ ⇧- '_'</appendix>

        <identifier>private.hyper-shifter</identifier>

        <autogen>
            --KeyToKey--
            KeyCode::1, ModifierFlag::HYPER,
            KeyCode::1, ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::2, ModifierFlag::HYPER,
            KeyCode::2, ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::3, ModifierFlag::HYPER,
            KeyCode::3, ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::4, ModifierFlag::HYPER,
            KeyCode::4, ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::5, ModifierFlag::HYPER,
            KeyCode::5, ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::6, ModifierFlag::HYPER,
            KeyCode::6, ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::7, ModifierFlag::HYPER,
            KeyCode::7, ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::8, ModifierFlag::HYPER,
            KeyCode::8, ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::9, ModifierFlag::HYPER,
            KeyCode::9, ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::0, ModifierFlag::HYPER,
            KeyCode::0, ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::MINUS, ModifierFlag::HYPER,
            KeyCode::MINUS, ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::EQUAL, ModifierFlag::HYPER,
            KeyCode::EQUAL, ModifierFlag::SHIFT_L
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::BRACKET_LEFT, ModifierFlag::HYPER,
            KeyCode::9 , ModifierFlag::SHIFT_R,
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::BRACKET_RIGHT, ModifierFlag::HYPER,
            KeyCode::0 , ModifierFlag::SHIFT_R,
        </autogen>

        <!-- SemiColon to Minus -->
        <autogen>
            --KeyToKey--
            KeyCode::SEMICOLON, ModifierFlag::HYPER,
            KeyCode::MINUS , ModifierFlag::SHIFT_R,
        </autogen>
    </item>

    <!-- Hyper Other -->
    <item>
        <name>Hyper Other</name>
        <appendix>Escape Hyper back to CapsLock</appendix>
        <appendix><![CDATA[⎋  ↦ ⇪    (CapsLock)]]></appendix>
        <appendix></appendix>
        <appendix>Hyper Space to Escape</appendix>
        <appendix><![CDATA[␢  ↦ ⎋    (Escape)]]></appendix>
        <appendix></appendix>
        <appendix><![CDATA[\  ↦ ⌃/   (Comment/Uncomment)]]></appendix>
        <appendix><![CDATA[`  ↦ ⌃⇧⌘4 (ScreenShot by area)]]></appendix>
        <appendix><![CDATA[⌘` ↦ ⌃⇧4  (ScreenShot by area to file)]]></appendix>
        <appendix><![CDATA['  ↦ =    (Quote to equal)]]></appendix>

        <identifier>private.hyper-other</identifier>

        <!-- Escape to Capslock-->
        <autogen>__KeyToKey__ KeyCode::ESCAPE, ModifierFlag::HYPER, KeyCode::CAPSLOCK</autogen>

        <!-- Space to Escape-->
        <autogen>
            --KeyToKey--
            KeyCode::SPACE, ModifierFlag::HYPER,
            KeyCode::ESCAPE
        </autogen>

        <!-- Slash to comment -->
        <autogen>
            --KeyToKey--
            KeyCode::SLASH, ModifierFlag::HYPER,
            KeyCode::SLASH, ModifierFlag::COMMAND_L
        </autogen>

        <!-- ` to area screenshot -->
        <autogen>
            --KeyToKey--
            KeyCode::BACKQUOTE, ModifierFlag::HYPER,
            KeyCode::4, ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L | ModifierFlag::COMMAND_L
        </autogen>

        <!-- ⌘` to area screenshot to file -->
        <autogen>
            --KeyToKey--
            KeyCode::BACKQUOTE, ModifierFlag::HYPER | ModifierFlag::COMMAND_L,
            KeyCode::4, ModifierFlag::SHIFT_L | ModifierFlag::COMMAND_L
        </autogen>

        <!-- Quote to Equal -->
        <autogen>
            --KeyToKey--
            KeyCode::QUOTE, ModifierFlag::HYPER,
            KeyCode::EQUAL
        </autogen>

    </item>

    <!-- Hyper Special Control-->
    <item>
        <name>Hyper Special to fine grained functional keys</name>
        <appendix><![CDATA[Ins ↦ ⇧⌥F1  (Fine grained brightness down)]]></appendix>
        <appendix><![CDATA[Del ↦ ⇧⌥F2  (Fine grained brightness up)]]></appendix>
        <appendix><![CDATA[   ↦ ⇧⌥F5  (Fine grained keyboard light down)]]></appendix>
        <appendix><![CDATA[   ↦ ⇧⌥F6  (Fine grained keyboard light up)]]></appendix>
        <appendix><![CDATA[⇟   ↦ ⇧⌥F11 (Fine grained volume down)]]></appendix>
        <appendix><![CDATA[ ↦ ⇧⌥F12 (Fine grained volume up)]]></appendix>
        <appendix></appendix>
        <appendix><![CDATA[PrintScreen  ↦ ⌃⇧⌘3 (Save full screen to clipboard)]]></appendix>
        <appendix><![CDATA[PrintScreen ↦ ⌃⇧3 (Save full screen to file)]]></appendix>
        <appendix><![CDATA[ScrollLock   ↦ VolumeMute (Save full screen to clipboard)]]></appendix>
        <appendix><![CDATA[Pause        ↦ MusicPlay (Save full screen to clipboard)]]></appendix>

        <identifier>private.hyper-special</identifier>

        <!-- Brightness: Insert/Delete -->
        <autogen>
            KeyToKey KeyCode::PC_INSERT, ModifierFlag::HYPER,
            ConsumerKeyCode::BRIGHTNESS_UP,ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L
        </autogen>
        <autogen>
            KeyToKey KeyCode::PC_DEL, ModifierFlag::HYPER,
            ConsumerKeyCode::BRIGHTNESS_DOWN,ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L
        </autogen>

        <!-- Keyboard Light: Home/End -->
        <autogen>
            KeyToKey KeyCode::HOME, ModifierFlag::HYPER,
            ConsumerKeyCode::KEYBOARDLIGHT_LOW,ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L
        </autogen>
        <autogen>
            KeyToKey KeyCode::END, ModifierFlag::HYPER,
            ConsumerKeyCode::KEYBOARDLIGHT_HIGH,ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L
        </autogen>

        <!-- PgUp -->
        <autogen>
            KeyToKey KeyCode::PAGEUP, ModifierFlag::HYPER,
            ConsumerKeyCode::VOLUME_UP,ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L
        </autogen>
        <autogen>
            KeyToKey KeyCode::PAGEDOWN, ModifierFlag::HYPER,
            ConsumerKeyCode::VOLUME_DOWN,ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L
        </autogen>

        <!-- PrintScreen & Hyper PrintScreen-->
        <autogen>
            KeyToKey KeyCode::PC_PRINTSCREEN,
            KeyCode::3, ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L | ModifierFlag::COMMAND_L
        </autogen>
        <autogen>
            KeyToKey KeyCode::PC_PRINTSCREEN, ModifierFlag::HYPER,
            KeyCode::3, ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L
        </autogen>

        <!--Scroll to mute -->
        <autogen>
            KeyToKey KeyCode::PC_SCROLLLOCK, ModifierFlag::HYPER,
            ConsumerKeyCode::VOLUME_MUTE
        </autogen>

        <!--Pause to music_pley-->
        <autogen>
            KeyToKey KeyCode::PC_PAUSE, ModifierFlag::HYPER,
            ConsumerKeyCode::MUSIC_PLAY
        </autogen>

    </item>

    <!-- Hyper Mouse key -->
    <item>
        <name>Hyper MouseKey</name>
        <appendix><![CDATA[↑ ↦ MouseUp]]></appendix>
        <appendix><![CDATA[↓ ↦ MouseDown]]></appendix>
        <appendix><![CDATA[← ↦ MouseLeft]]></appendix>
        <appendix><![CDATA[→ ↦ MouseRight]]></appendix>
        <appendix><![CDATA[ ↦ MouseLButton]]></appendix>
        <appendix><![CDATA[\ ↦ MouseRButton]]></appendix>
        <identifier>private.hyper-mousekey</identifier>

        <autogen>
            --KeyToKey--
            KeyCode::CURSOR_UP, ModifierFlag::HYPER,
            KeyCode::VK_MOUSEKEY_UP
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::CURSOR_DOWN, ModifierFlag::HYPER,
            KeyCode::VK_MOUSEKEY_DOWN
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::CURSOR_LEFT, ModifierFlag::HYPER,
            KeyCode::VK_MOUSEKEY_LEFT
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::CURSOR_RIGHT, ModifierFlag::HYPER,
            KeyCode::VK_MOUSEKEY_RIGHT
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::RETURN, ModifierFlag::HYPER,
            KeyCode::VK_MOUSEKEY_BUTTON_LEFT
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::BACKSLASH, ModifierFlag::HYPER,
            KeyCode::VK_MOUSEKEY_BUTTON_RIGHT
        </autogen>
    </item>

</root>

Win版本脚本

CapsLock(⊞) 这个是两年前写的,不过功能大体上是差不多的。

;=====================================================================o
;                   Feng Ruohang's AHK Script                         |
;                      CapsLock Enhancement                           |
;---------------------------------------------------------------------o
;Description:                                                         |
;    This Script is wrote by Feng Ruohang via AutoHotKey Script. It   |
; Provieds an enhancement towards the "Useless Key" CapsLock, and     |
; turns CapsLock into an useful function Key just like Ctrl and Alt   |
; by combining CapsLock with almost all other keys in the keyboard.   |
;                                                                     |
;Summary:                                                             |
;o----------------------o---------------------------------------------o
;|CapsLock;             | {ESC}  Especially Convient for vim user     |
;|CaspLock + `          | {CapsLock}CapsLock Switcher as a Substituent|
;|CapsLock + hjklwb     | Vim-Style Cursor Mover                      |
;|CaspLock + uiop       | Convient Home/End PageUp/PageDn             |
;|CaspLock + nm,.       | Convient Delete Controller                  |
;|CapsLock + zxcvay     | Windows-Style Editor                        |
;|CapsLock + Direction  | Mouse Move                                  |
;|CapsLock + Enter      | Mouse Click                                 |
;|CaspLock + {F1}~{F6}  | Media Volume Controller                     |
;|CapsLock + qs         | Windows & Tags Control                      |
;|CapsLock + ;'[]       | Convient Key Mapping                        |
;|CaspLock + dfert      | Frequently Used Programs (Self Defined)     |
;|CaspLock + 123456     | Dev-Hotkey for Visual Studio (Self Defined) |
;|CapsLock + 67890-=    | Shifter as Shift                            |
;-----------------------o---------------------------------------------o
;|Use it whatever and wherever you like. Hope it help                 |
;=====================================================================o

;=====================================================================o
;                       CapsLock Initializer                         ;|
;---------------------------------------------------------------------o
SetCapsLockState, AlwaysOff                                          ;|
;---------------------------------------------------------------------o

;=====================================================================o
;                       CapsLock Switcher:                           ;|
;---------------------------------o-----------------------------------o
;                    CapsLock + ` | {CapsLock}                       ;|
;---------------------------------o-----------------------------------o
CapsLock & `::                                                       ;|
GetKeyState, CapsLockState, CapsLock, T                              ;|
if CapsLockState = D                                                 ;|
    SetCapsLockState, AlwaysOff                                      ;|
else                                                                 ;|
    SetCapsLockState, AlwaysOn                                       ;|
KeyWait, ``                                                          ;|
return                                                               ;|
;---------------------------------------------------------------------o

;=====================================================================o
;                         CapsLock Escaper:                          ;|
;----------------------------------o----------------------------------o
;                        CapsLock  |  {ESC}                          ;|
;----------------------------------o----------------------------------o
CapsLock::Send, {ESC}                                                ;|
;---------------------------------------------------------------------o

;=====================================================================o
;                    CapsLock Direction Navigator                    ;|
;-----------------------------------o---------------------------------o
;                      CapsLock + h |  Left                          ;|
;                      CapsLock + j |  Down                          ;|
;                      CapsLock + k |  Up                            ;|
;                      CapsLock + l |  Right                         ;|
;                      Ctrl, Alt Compatible                          ;|
;-----------------------------------o---------------------------------o
CapsLock & h::                                                       ;|
if GetKeyState("control") = 0                                        ;|
{                                                                    ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, {Left}                                                 ;|
    else                                                             ;|
        Send, +{Left}                                                ;|
    return                                                           ;|
}                                                                    ;|
else {                                                               ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, ^{Left}                                                ;|
    else                                                             ;|
        Send, +^{Left}                                               ;|
    return                                                           ;|
}                                                                    ;|
return                                                               ;|
;-----------------------------------o                                ;|
CapsLock & j::                                                       ;|
if GetKeyState("control") = 0                                        ;|
{                                                                    ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, {Down}                                                 ;|
    else                                                             ;|
        Send, +{Down}                                                ;|
    return                                                           ;|
}                                                                    ;|
else {                                                               ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, ^{Down}                                                ;|
    else                                                             ;|
        Send, +^{Down}                                               ;|
    return                                                           ;|
}                                                                    ;|
return                                                               ;|
;-----------------------------------o                                ;|
CapsLock & k::                                                       ;|
if GetKeyState("control") = 0                                        ;|
{                                                                    ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, {Up}                                                   ;|
    else                                                             ;|
        Send, +{Up}                                                  ;|
    return                                                           ;|
}                                                                    ;|
else {                                                               ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, ^{Up}                                                  ;|
    else                                                             ;|
        Send, +^{Up}                                                 ;|
    return                                                           ;|
}                                                                    ;|
return                                                               ;|
;-----------------------------------o                                ;|
CapsLock & l::                                                       ;|
if GetKeyState("control") = 0                                        ;|
{                                                                    ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, {Right}                                                ;|
    else                                                             ;|
        Send, +{Right}                                               ;|
    return                                                           ;|
}                                                                    ;|
else {                                                               ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, ^{Right}                                               ;|
    else                                                             ;|
        Send, +^{Right}                                              ;|
    return                                                           ;|
}                                                                    ;|
return                                                               ;|
;---------------------------------------------------------------------o

;=====================================================================o
;                     CapsLock Home/End Navigator                    ;|
;-----------------------------------o---------------------------------o
;                      CapsLock + i |  Home                          ;|
;                      CapsLock + o |  End                           ;|
;                      Ctrl, Alt Compatible                          ;|
;-----------------------------------o---------------------------------o
CapsLock & i::                                                       ;|
if GetKeyState("control") = 0                                        ;|
{                                                                    ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, {Home}                                                 ;|
    else                                                             ;|
        Send, +{Home}                                                ;|
    return                                                           ;|
}                                                                    ;|
else {                                                               ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, ^{Home}                                                ;|
    else                                                             ;|
        Send, +^{Home}                                               ;|
    return                                                           ;|
}                                                                    ;|
return                                                               ;|
;-----------------------------------o                                ;|
CapsLock & o::                                                       ;|
if GetKeyState("control") = 0                                        ;|
{                                                                    ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, {End}                                                  ;|
    else                                                             ;|
        Send, +{End}                                                 ;|
    return                                                           ;|
}                                                                    ;|
else {                                                               ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, ^{End}                                                 ;|
    else                                                             ;|
        Send, +^{End}                                                ;|
    return                                                           ;|
}                                                                    ;|
return                                                               ;|
;---------------------------------------------------------------------o

;=====================================================================o
;                      CapsLock Page Navigator                       ;|
;-----------------------------------o---------------------------------o
;                      CapsLock + u |  PageUp                        ;|
;                      CapsLock + p |  PageDown                      ;|
;                      Ctrl, Alt Compatible                          ;|
;-----------------------------------o---------------------------------o
CapsLock & u::                                                       ;|
if GetKeyState("control") = 0                                        ;|
{                                                                    ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, {PgUp}                                                 ;|
    else                                                             ;|
        Send, +{PgUp}                                                ;|
    return                                                           ;|
}                                                                    ;|
else {                                                               ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, ^{PgUp}                                                ;|
    else                                                             ;|
        Send, +^{PgUp}                                               ;|
    return                                                           ;|
}                                                                    ;|
return                                                               ;|
;-----------------------------------o                                ;|
CapsLock & p::                                                       ;|
if GetKeyState("control") = 0                                        ;|
{                                                                    ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, {PgDn}                                                 ;|
    else                                                             ;|
        Send, +{PgDn}                                                ;|
    return                                                           ;|
}                                                                    ;|
else {                                                               ;|
    if GetKeyState("alt") = 0                                        ;|
        Send, ^{PgDn}                                                ;|
    else                                                             ;|
        Send, +^{PgDn}                                               ;|
    return                                                           ;|
}                                                                    ;|
return                                                               ;|
;---------------------------------------------------------------------o

;=====================================================================o
;                     CapsLock Mouse Controller                      ;|
;-----------------------------------o---------------------------------o
;                   CapsLock + Up   |  Mouse Up                      ;|
;                   CapsLock + Down |  Mouse Down                    ;|
;                   CapsLock + Left |  Mouse Left                    ;|
;                  CapsLock + Right |  Mouse Right                   ;|
;    CapsLock + Enter(Push Release) |  Mouse Left Push(Release)      ;|
;-----------------------------------o---------------------------------o
CapsLock & Up::    MouseMove, 0, -10, 0, R                           ;|
CapsLock & Down::  MouseMove, 0, 10, 0, R                            ;|
CapsLock & Left::  MouseMove, -10, 0, 0, R                           ;|
CapsLock & Right:: MouseMove, 10, 0, 0, R                            ;|
;-----------------------------------o                                ;|
CapsLock & Enter::                                                   ;|
SendEvent {Blind}{LButton down}                                      ;|
KeyWait Enter                                                        ;|
SendEvent {Blind}{LButton up}                                        ;|
return                                                               ;|
;---------------------------------------------------------------------o

;=====================================================================o
;                           CapsLock Deletor                         ;|
;-----------------------------------o---------------------------------o
;                     CapsLock + n  |  Ctrl + Delete (Delete a Word) ;|
;                     CapsLock + m  |  Delete                        ;|
;                     CapsLock + ,  |  BackSpace                     ;|
;                     CapsLock + .  |  Ctrl + BackSpace              ;|
;-----------------------------------o---------------------------------o
CapsLock & ,:: Send, {Del}                                           ;|
CapsLock & .:: Send, ^{Del}                                          ;|
CapsLock & m:: Send, {BS}                                            ;|
CapsLock & n:: Send, ^{BS}                                           ;|
;---------------------------------------------------------------------o

;=====================================================================o
;                            CapsLock Editor                         ;|
;-----------------------------------o---------------------------------o
;                     CapsLock + z  |  Ctrl + z (Cancel)             ;|
;                     CapsLock + x  |  Ctrl + x (Cut)                ;|
;                     CapsLock + c  |  Ctrl + c (Copy)               ;|
;                     CapsLock + v  |  Ctrl + z (Paste)              ;|
;                     CapsLock + a  |  Ctrl + a (Select All)         ;|
;                     CapsLock + y  |  Ctrl + z (Yeild)              ;|
;                     CapsLock + w  |  Ctrl + Right(Move as [vim: w]);|
;                     CapsLock + b  |  Ctrl + Left (Move as [vim: b]);|
;-----------------------------------o---------------------------------o
CapsLock & z:: Send, ^z                                              ;|
CapsLock & x:: Send, ^x                                              ;|
CapsLock & c:: Send, ^c                                              ;|
CapsLock & v:: Send, ^v                                              ;|
CapsLock & a:: Send, ^a                                              ;|
CapsLock & y:: Send, ^y                                              ;|
CapsLock & w:: Send, ^{Right}                                        ;|
CapsLock & b:: Send, ^{Left}                                         ;|
;---------------------------------------------------------------------o

;=====================================================================o
;                       CapsLock Media Controller                    ;|
;-----------------------------------o---------------------------------o
;                    CapsLock + F1  |  Volume_Mute                   ;|
;                    CapsLock + F2  |  Volume_Down                   ;|
;                    CapsLock + F3  |  Volume_Up                     ;|
;                    CapsLock + F3  |  Media_Play_Pause              ;|
;                    CapsLock + F5  |  Media_Next                    ;|
;                    CapsLock + F6  |  Media_Stop                    ;|
;-----------------------------------o---------------------------------o
CapsLock & F1:: Send, {Volume_Mute}                                  ;|
CapsLock & F2:: Send, {Volume_Down}                                  ;|
CapsLock & F3:: Send, {Volume_Up}                                    ;|
CapsLock & F4:: Send, {Media_Play_Pause}                             ;|
CapsLock & F5:: Send, {Media_Next}                                   ;|
CapsLock & F6:: Send, {Media_Stop}                                   ;|
;---------------------------------------------------------------------o

;=====================================================================o
;                      CapsLock Window Controller                    ;|
;-----------------------------------o---------------------------------o
;                     CapsLock + s  |  Ctrl + Tab (Swith Tag)        ;|
;                     CapsLock + q  |  Ctrl + W   (Close Tag)        ;|
;   (Disabled)  Alt + CapsLock + s  |  AltTab     (Switch Windows)   ;|
;               Alt + CapsLock + q  |  Ctrl + Tab (Close Windows)    ;|
;                     CapsLock + g  |  AppsKey    (Menu Key)         ;|
;-----------------------------------o---------------------------------o
CapsLock & s::Send, ^{Tab}                                           ;|
;-----------------------------------o                                ;|
CapsLock & q::                                                       ;|
if GetKeyState("alt") = 0                                            ;|
{                                                                    ;|
    Send, ^w                                                         ;|
}                                                                    ;|
else {                                                               ;|
    Send, !{F4}                                                      ;|
    return                                                           ;|
}                                                                    ;|
return                                                               ;|
;-----------------------------------o                                ;|
CapsLock & g:: Send, {AppsKey}                                       ;|
;---------------------------------------------------------------------o

;=====================================================================o
;                        CapsLock Self Defined Area                  ;|
;-----------------------------------o---------------------------------o
;                     CapsLock + d  |  Alt + d(Dictionary)           ;|
;                     CapsLock + f  |  Alt + f(Search via Everything);|
;                     CapsLock + e  |  Open Search Engine            ;|
;                     CapsLock + r  |  Open Shell                    ;|
;                     CapsLock + t  |  Open Text Editor              ;|
;-----------------------------------o---------------------------------o
CapsLock & d:: Send, !d                                              ;|
CapsLock & f:: Send, !f                                              ;|
CapsLock & e:: Run http://cn.bing.com/                               ;|
CapsLock & r:: Run Powershell                                        ;|
CapsLock & t:: Run C:\Program Files (x86)\Notepad++\notepad++.exe    ;|
;---------------------------------------------------------------------o

;=====================================================================o
;                        CapsLock Char Mapping                       ;|
;-----------------------------------o---------------------------------o
;                     CapsLock + ;  |  Enter (Cancel)                ;|
;                     CapsLock + '  |  =                             ;|
;                     CapsLock + [  |  Back         (Visual Studio)  ;|
;                     CapsLock + ]  |  Goto Define  (Visual Studio)  ;|
;                     CapsLock + /  |  Comment      (Visual Studio)  ;|
;                     CapsLock + \  |  Uncomment    (Visual Studio)  ;|
;                     CapsLock + 1  |  Build and Run(Visual Studio)  ;|
;                     CapsLock + 2  |  Debuging     (Visual Studio)  ;|
;                     CapsLock + 3  |  Step Over    (Visual Studio)  ;|
;                     CapsLock + 4  |  Step In      (Visual Studio)  ;|
;                     CapsLock + 5  |  Stop Debuging(Visual Studio)  ;|
;                     CapsLock + 6  |  Shift + 6     ^               ;|
;                     CapsLock + 7  |  Shift + 7     &               ;|
;                     CapsLock + 8  |  Shift + 8     *               ;|
;                     CapsLock + 9  |  Shift + 9     (               ;|
;                     CapsLock + 0  |  Shift + 0     )               ;|
;-----------------------------------o---------------------------------o
CapsLock & `;:: Send, {Enter}                                        ;|
CapsLock & ':: Send, =                                               ;|
CapsLock & [:: Send, ^-                                              ;|
CapsLock & ]:: Send, {F12}                                           ;|
;-----------------------------------o                                ;|
CapsLock & /::                                                       ;|
Send, ^e                                                             ;|
Send, c                                                              ;|
return                                                               ;|
;-----------------------------------o                                ;|
CapsLock & \::                                                       ;|
Send, ^e                                                             ;|
Send, u                                                              ;|
return                                                               ;|
;-----------------------------------o                                ;|
CapsLock & 1:: Send,^{F5}                                            ;|
CapsLock & 2:: Send,{F5}                                             ;|
CapsLock & 3:: Send,{F10}                                            ;|
CapsLock & 4:: Send,{F11}                                            ;|
CapsLock & 5:: Send,+{F5}                                            ;|
;-----------------------------------o                                ;|
CapsLock & 6:: Send,+6                                               ;|
CapsLock & 7:: Send,+7                                               ;|
CapsLock & 8:: Send,+8                                               ;|
CapsLock & 9:: Send,+9                                               ;|
CapsLock & 0:: Send,+0                                               ;|
;---------------------------------------------------------------------o
Contact GitHub API Training Shop Blog About

FAQ

  • Q: Why using as symbol of hyper key?

    A:Cause asterisk have the ascii code 42, which is the answer to life, the universe, and everything! while itself has meaning 'star'.  (Heavy-Asterisk) is a pretty version of *(Asterisk). Actually I would choose

时间: 2024-05-20 21:03:03

Mac&Win功能键魔改:让CapsLock焕发第二春的相关文章

站在移动互联网的风口上活下来,并焕发第二春:WPS重生记

中介交易 SEO诊断淘宝客 站长团购 云主机 技术大厅 关键时刻 1995年微软进入中国市场,给如金山软件这种国产办公软件厂商带来了巨大冲击.同时,由于中国盗版市场未被规范,金山WPS 很快便在"前有微软.后有盗版"的情况下举步维艰. 关键抉择 WPS决定在继承中创新,在生存中发展.并在移动互联网到来时全身心投入,谋求在新大陆上的发展,弯道超车. 关键策略 WPS将原先代码全部推倒重写,并在商业模式上采用"软件免费+服务增值"模式.当移动互联网到来时,抽取最精锐人员

开心网推新游戏焕发第二春 留守派分为三种立场

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 争车位.买卖奴隶--去年,突然刮起的开心网热潮着实让不少白领开心了一阵子.不过,网上过家家似的虚拟游戏能长久地吸引白领的注意力吗?早在去年9月,就有媒体就此提出了"开心网还能开心多久"的质疑.时隔半年,开心网似乎依然开心着,白领们在厌倦了停车.买卖奴隶之后,又在买房子和种菜中找到了新的乐趣. 每天,就忙着偷那几棵菜 &qu

刘伟称,《征途2》微端技术表现优越,有望焕发客户端游戏的第二春

"今年9月上线的<征途2>微端正在快速获取新的用户,并如我们所预期的已经开始贡献收入."刘伟表示,<征途2>微端版本已于9月登陆奇虎360平台并开启测试,目前运营势头良好,计划在2012年第四季度继续加开新区. 刘伟指出,<征途2>的微端技术,能给玩家提供类似页游的便捷玩法,但它比页游画面更优秀,同时比页游生命周期更长."通过前期联运表现看来,<征途2>的微端技术有望焕发端游市场的第二春". 据悉,巨人下一步计划把端游

Mac苹果电脑怎么改finder图标

  Mac怎么改finder图标?Mac怎么改finder字体大小?Mac系统上的Finder字体太小,在列表视图下的图标也太小,不利于浏览文件,特别是一些图片,只能一张一张地预览.下面百事网小编这里为大家介绍下方法. 更改前: 更改后: 这样一对比,大一些的图标及字体更容易查看. Mac改finder图标以及改finder字体大小方法: 打开 Finder ,点击菜单栏-查看显示选项,或者使用快捷键 CMD + J  ,呼出" Finder 字体大小" 面板. 好了,在这里就可以调整

焕发手机第二春 安卓系统软件推荐

金山电池医生金山电池医生 现在的手机,只要是同等价位,无论是性能还是配置都不会相差的太多,但是同样的手机,为什么有的人用上个半年就坏掉了而有的人则可以使用更长的时间呢?其实这其中除了拥有良好的个人习惯以外,最大的原因还在于软件的合理使用,今天小编我就为大家推荐几款不错的软件,让我们的手机变得更加强大,比如说运行更加流畅.待机时间更长,为了保护手机,你也赶紧行动起来吧.金山电池医生刚才笔者也提到了,好的软件可以明显的增加手机的续航能力,下面笔者就为大家推荐一款非常不错的电池软件--金山电池医生.金

2014年不容错过的20个实用网站

互联网是伟大的发明,它传递知识和信息,让我们的生活更加便捷,让事情更容易完成.从互联网崛起之日起,工具属性就如影随行,而网站也成为了传递信息提供服务的重要再起.在过去的几年里,互联网的高速发展为我们带来了许多比以往更加实用的工具. 这些网站提供了独特的服务,便捷的功能,以及不俗的体验,在激烈的竞争中脱颖而出.今天,让我们来看看2014年最不容错过的20个实用网站有哪些吧. Dictionary.com 其实Dictionary这个网站还是很极客的,虽然名为词典,但是它的功能远不止词典这么简单.除

蜗牛CEO石海谈10年创业史:不IPO就成小作坊

国内网游厂商游戏蜗牛创始人石海近日做客由腾讯科技和博瑞传播联合主办的<新媒体投资沙龙>,就公司创业板上市.10年历程等话题交流互动.石海指出,网游公司一定要上市,不上市会沦为小作坊似的窄众公司,与一线厂商差距扩大. 据了解,游戏蜗牛成立于2000年,是中国最早的3D网游研发公司,截至目前已研发及商业化运营<航海世纪>.<舞街区>.<天子>等多款游戏,并销往20多个国家和地区. 由于与游戏蜗牛同一批的网游公司很多已上市,游戏蜗牛则是创业10年仍在努力奋斗,被喻

谁能成为中国的亚马逊:盘点国内云服务商

说起"亚马逊",我们最早了解它,只是一个在网上卖书的公司,业务类似于国内的当当网.卓越等.但是,随着"云计算"这个IT热词,像热带雨林的风暴一样席卷中国市场时,我们才知道,原来早已经有一个非常成功的云计算提供商叫"亚马逊". 亚马逊公司云计算领域的成功和辉煌业绩,让国内外的很多科技公司垂涎三尺.很多IT能人志士纷纷下手探一探云计算的水到底有多深.在国内外云计算市场,有很多IT厂商希望能够学习"亚马逊"做云计算的模式,但是目前都

管理创新方法72变

创意是创造生意的源泉,是否具备创新精神,就在于你平时是否善于思考,乐于尝试新事物.新方式和新方法. 创意不是天生的,而是后天通过对规律的思考,对事物的判断,不断地演练形成的,培养创意的方法举不胜举,关键在于实用.笔者通过长期的思考,对和田十二法进行了新的诠释和例证,每一个方法都配有6个小案例,12个方法就构成了72变招,借由此帮助读者更好的理解,启迪读者用一种框架去看待事物,体会生活和工作,养成善于思考和创新的习惯. 和田创新十二法 1加一加:在原有的基础上改进就是创新(加大,加长,加高,加宽)