wo52616111/capslock-plus

An efficiency tool that provides various functions by enhancing the Caps Lock key into a modifier key.

AutoHotkey

1,314

72 commits

updated May 30, 2026

See the code

README

English | 中文


[!TIP] Capslox Capslox is the cross-platform successor to Capslock+. Capslock+ enriched the Caps Lock key. Capslox extends that idea across your whole keyboard — drive cursor, text, windows and clipboards from home row, with a default keymap that works out of the box and layered shortcuts you can change per app. Available on macOS and Windows.


master branch: v3.0+

v2 branch: v2.x

Docs

How to run the source code?

  1. Download and install AutoHotkey (v1.1.+)
  2. Clone the Capslock+ source code
  3. Run Capslock+.ahk

How to set a custom function to a hotkey?

  1. There is a key function keyFunc_example2 in demo.ahk.
  2. Add below setting under the [Keys] section in CapsLock+settings.ini: caps_f7=keyFunc_example2
  3. Save, reload Capslock+ (CapsLock+F5)
  4. Press CapsLock+F7 to invoke the function
  • In order to avoid calling the internal functions, all the key functions are restricted to start with keyfunc_

An example here:

Replace Capslock+Q with Listary

Listary is a good app launcher, now I want to add two features to it:

  1. Activate Listary with CapsLock+Q
  2. I want to fill the selected text into the pop-up text input box

We can make it like this:

  1. Copy the following code to /userAHK/main.ahk:
keyfunc_listary(){
    ; Get the selected text
    selText:=getSelText()

    ; Send win+F (the default hotkey of Listary) to activate Listary
    sendinput, #{f}

    ; Wait until Listary is activated
    winwait, ahk_exe Listary.exe, , 0.5

    ; If there is any selected text
    if(selText){
        ; Add "gg " before the selected text to google
        selText:="gg " . selText

        ; Fill the text, and press `home` key to move the cursor to the beginning,
        ; in order to add other keywords if you need.
        sendinput, %selText%{home}
    }
}
  1. Add a setting caps_q=keyfunc_listary() under [Keys] section in CapsLock+settings.ini, save, press CapsLock+F5 to reload, done.

How to modify the original functions?

CapsLock+.ahk is the entry file, library files are in the /lib folder, the function of each file is as follows:

FilenameDescription
lib_bindWins.ahkWindow binding
lib_clQ.ahkqbar
lib_clTab.ahkCapsLock+Tab
lib_functions.ahkSome utils
lib_init.ahkProgram initialization
lib_jsEval.ahkThe calculation function implemented by using the IE engine, required by Math Board and CapsLock+Tab
lib_json.ahkjson library
lib_keysFunction.ahkAll the key functions
lib_keysSet.ahkHotkey layouts
lib_loadAnimation.ahkLoading animation when the program starts
lib_mathBoard.ahkMath Board
lib_mouseSpeed.ahkMouse speed modification
lib_settings.ahkLoad the settings in CapsLock+settings.ini
lib_ydTrans.ahkYoudao Translation
autohotkey
capslock
efficiency
hotkey
keyboard
shortcut
tool

wo52616111/capslock-plus

An efficiency tool that provides various functions by enhancing the Caps Lock key into a modifier key.

AutoHotkey

1,314

72 commits

updated May 30, 2026

See the code

README

English | 中文


[!TIP] Capslox Capslox is the cross-platform successor to Capslock+. Capslock+ enriched the Caps Lock key. Capslox extends that idea across your whole keyboard — drive cursor, text, windows and clipboards from home row, with a default keymap that works out of the box and layered shortcuts you can change per app. Available on macOS and Windows.


master branch: v3.0+

v2 branch: v2.x

Docs

How to run the source code?

  1. Download and install AutoHotkey (v1.1.+)
  2. Clone the Capslock+ source code
  3. Run Capslock+.ahk

How to set a custom function to a hotkey?

  1. There is a key function keyFunc_example2 in demo.ahk.
  2. Add below setting under the [Keys] section in CapsLock+settings.ini: caps_f7=keyFunc_example2
  3. Save, reload Capslock+ (CapsLock+F5)
  4. Press CapsLock+F7 to invoke the function
  • In order to avoid calling the internal functions, all the key functions are restricted to start with keyfunc_

An example here:

Replace Capslock+Q with Listary

Listary is a good app launcher, now I want to add two features to it:

  1. Activate Listary with CapsLock+Q
  2. I want to fill the selected text into the pop-up text input box

We can make it like this:

  1. Copy the following code to /userAHK/main.ahk:
keyfunc_listary(){
    ; Get the selected text
    selText:=getSelText()

    ; Send win+F (the default hotkey of Listary) to activate Listary
    sendinput, #{f}

    ; Wait until Listary is activated
    winwait, ahk_exe Listary.exe, , 0.5

    ; If there is any selected text
    if(selText){
        ; Add "gg " before the selected text to google
        selText:="gg " . selText

        ; Fill the text, and press `home` key to move the cursor to the beginning,
        ; in order to add other keywords if you need.
        sendinput, %selText%{home}
    }
}
  1. Add a setting caps_q=keyfunc_listary() under [Keys] section in CapsLock+settings.ini, save, press CapsLock+F5 to reload, done.

How to modify the original functions?

CapsLock+.ahk is the entry file, library files are in the /lib folder, the function of each file is as follows:

FilenameDescription
lib_bindWins.ahkWindow binding
lib_clQ.ahkqbar
lib_clTab.ahkCapsLock+Tab
lib_functions.ahkSome utils
lib_init.ahkProgram initialization
lib_jsEval.ahkThe calculation function implemented by using the IE engine, required by Math Board and CapsLock+Tab
lib_json.ahkjson library
lib_keysFunction.ahkAll the key functions
lib_keysSet.ahkHotkey layouts
lib_loadAnimation.ahkLoading animation when the program starts
lib_mathBoard.ahkMath Board
lib_mouseSpeed.ahkMouse speed modification
lib_settings.ahkLoad the settings in CapsLock+settings.ini
lib_ydTrans.ahkYoudao Translation
autohotkey
capslock
efficiency
hotkey
keyboard
shortcut
tool

Significant stargazers

erenup

34 followers · starred Jun 2024

Glavo

944 followers · starred Dec 2022

Pengfei

58 followers · starred Nov 2017

Asurada

17 followers · starred Jun 2020