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

简介: # Capslock *Make CapsLock Great Again!* ![trump.jpg](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/6b51ae83408d197e315b80dc0e215821.jpg) 显著提高APM!! * 功能强大:基于⇪CapsLock的新功能键Hyper可以与任何

Capslock

Make CapsLock Great Again!
trump.jpg

显著提高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为例:

keyboard-layout.png

右手核心区

  • 基本映射

    • 按住⇪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

目录
相关文章
|
IDE 开发工具 计算机视觉
关于opencv在PyCharm中没有提示的解决方案mac和win通用(不是改文件和复制)
由于最近有项目需要使用到IDE的debug功能,jupyter notebook没有debug功能,所以需要使用PyCharm。平时使用jupyter的时候也没有遇到opencv没有提示的问题,所以遇到这个问题的时候上网搜索了各种方法包括但不限于:复制文件,修改init文件,降低opencv版本等一系列方法都无效。我在三天内重装了5次系统n次anaconda,终于在最后解决了这个问题,放在这里供大家参考。
|
小程序 Linux 区块链
Python PyInstaller 打包成 Win、Mac 应用程序(app / exe)
Python PyInstaller 打包成 Win、Mac 应用程序(app / exe)
2585 0
|
3月前
|
IDE 开发工具 计算机视觉
关于opencv在PyCharm中没有提示的解决方案mac和win通用(不是改文件和复制)
关于opencv在PyCharm中没有提示的解决方案mac和win通用(不是改文件和复制)
|
6月前
|
小程序 Linux 区块链
Python PyInstaller 打包成 Win、Mac 应用程序(app / exe)
Python PyInstaller 打包成 Win、Mac 应用程序(app / exe)
375 0
|
Dart 开发工具 Windows
Dart(1)介绍 Win Mac上面分别搭建Dart环境 开发工具配置 以及运行Dart
Dart(1)介绍 Win Mac上面分别搭建Dart环境 开发工具配置 以及运行Dart
73 0
|
数据处理
Graphpad Prism9.5.1 (含Win/Mac版) 科研医学生物数据处理绘图软件详细安装教程 亲测有效!!!
GraphPad Prism是一款非常专业强大的科研医学生物数据处理绘图软件,它可以将科学图形、综合曲线拟合(非线性回归)、可理解的统计数据、数据组织结合在一起,除了最基本的数据统计分析外,还能自动生成统计图。
Graphpad Prism9.5.1 (含Win/Mac版) 科研医学生物数据处理绘图软件详细安装教程  亲测有效!!!
|
编解码 Windows
2023年win/mac电脑最好用的录屏软件Camtasia 2023官方中文版免费下载安装使用教程
Camtasia 2023专业的屏幕录制和视频剪辑软件 3000多万专业人士在全球范围内使用Camtasia展示产品,教授课程,培训他人,以更快的速度和更吸引人的方式进行沟通和屏幕分享。使您在Windows和Mac上进行录屏和剪辑创作专业外观的视频变得更为简单。
263 0
|
Web App开发 弹性计算 Android开发
阿里云无影云桌面客户端下载Win/Mac/iOS/安卓/Web端均支持
阿里云无影客户端下载系统Win/Mac/iOS/安卓/Web端均支持
4632 0
阿里云无影云桌面客户端下载Win/Mac/iOS/安卓/Web端均支持
|
安全 数据安全/隐私保护 iOS开发
iMazing官网下载安装教程 2023最新版兼容Win和Mac的iOS设备管理软件
iMazing是一款功能强大的iOS设备管理软件,它可以帮助用户备份和管理他们的iPhone、iPad或iPod Touch上的数据。除此之外,它还可以将备份数据转移到新的设备中、管理应用程序、导入和导出媒体文件等。本文将详细介绍iMazing的功能和安全性,并教大家如何使用iMazing来恢复备份数据。
509 0
|
Linux iOS开发 MacOS
Mac系统运行Win软件应用虚拟机软件CrossOver2023
CrossOver2023版是在Mac上运行Win软件的最简单方法,有了它,你无须 Win许可、重新启动或使用虚拟机即可在mac上使用Win软件。CrossOver23可以轻松地从Dock本地启动Win程序。CrossOver版还集成了macOS 功能,例如跨平台复制和粘贴,以及用于Win应用程序的共享文件系统。简单的使用方式,小白用户也可以自己安装虚拟机,让用户自己在mac电脑上安装Windows系统,增加电脑的使用方式,你可以用它来办公、来玩游戏,使用方式很广泛,需要注意的是,安装多个虚拟系统,需要电脑拥有很高的配置,方可支持运行!
255 0