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

    xiaoxiao2025-11-27  18

    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 ↦ FinderR ↦ iTerm⌘R ↦ ^R (IDE-Run)T ↦ Sublime Text⌘T ↦ TyporaF ↦ Dash⌘F ↦ DictionaryG ↦ IntelliJ IDEAG ↦ CLion

    键盘第一行:功能键

    功能键映射

    F1 ↦ BrightnessDownF2 ↦ BrightnessUpF3 ↦ ExposeAllF4 ↦ LaunchPadF5 ↦ KeyboardLightDownF6 ↦ KeyboardLightUpF7 ↦ MusicPrevF8 ↦ MusicPlayF9 ↦ MusicNextF10 ↦ MuteF11 ↦ VolumeDownF12 ↦ 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

    SymKey Hyper⌃Control⌥Option⇧Shift⌘Command

    Modifiers: ⊞Windows

    SymKey Hyper⌃Control⊞Windows⇧Shift⎇Alter

    Normal Keys

    GLYPHNAME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

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)