English | 中文



  • Intro: Capslock+ is a productivity tool that provides various functions by enhancing the Caps Lock key into a modifier key.
  • Version: 3.3.0 | 2023-10-22 by Junkai Chen
  • Disclaimer: Capslock+ is a paid software, though it’s not compulsory. Feel free to make a pledge based on your using time and frequency.
  • $ Payment page
  • Source code: GitHub
  • For macOS:  Capslox

About Capslock+

If you are new to Capslock+, you can find more here: What is the use of Capslock+

It introduces what Capslock+ brings, and how can you use them with words and images. The following instruction might be a bit boring (but comprehensive), and you can continue reading after reading the article above. You can also press Capslock + F1 to check this page, when forgetting the functions.



Capslock+_v3.3.0.exe (1.3 MB)

* Windows and browsers are likely to have incorrect warnings and blocking, the solutions (pick one):

  1. If the browser and antivirus software are blocking the download, please allow the download; if Windows prohibits the software from running, please add Capslock+ to the antivirus whitelist, e.g. Windows Security: Windows Security > Virus & threat protection > Virus & trheat protection settings > Exclusions > Add an exclusion > Select Capslock+ file
  2. Go to GitHub to download and run the source code

Go to Release Notes to see the updates


  • If you have found some unavailable hotkeys (Ctrl+C / V etc.), the only reason has been found so far is that Capslock+ is blocked by antivirus software. If you encounter this issue, try to add Capslock+ to the white list.

  • Key conflicts, the keyboard is not designed to allow certain keys to be pressed simultaneously, may cause some functions to be unavailable in Capslock+. If you find some hotkeys not working, please check with another keyboard, or set to another hotkey setting.

  • Capslock+ is designed for a global use, but different applications may have different responses to the same hotkeys. Capslock+ dose not guarantee its performance in all programs.

  • If you swap the Caps Lock key and Ctrl key by modifying the registry, you should press the Ctrl key (on the keyboard) instead of the Caps Lock key during using Capslock+.

  • If prompt that The publisher could not be verified. Are you sure you want to run this software?, click Run.

  • If prompt that Windows protected your PC, click More info, click Run anyway.

  • After starting Capslock+, please use the Capslock key as a modifier key similar to Shift, Ctrl and Alt, and combine it with other keys.

  • After starting Capslock+, the following files will be generated in the same folder:
    • CapsLock+settings.ini: The Capslock+ settings file, records various settings information, please refer to CapsLock+settingsDemo.ini, and write settings in this file.
    • CapsLock+settingsDemo.ini: This file contains examples and detailed instructions of various settings information. Please read this file carefully.
    • CapsLock+winsInfosRecorder.ini: The file is to store the data about Window Binding, just ignore it, and DO NOT modify it manually.
    • loadScript folder
      • scriptDemo.js: You can extend Capslock+ by loading js code, this is an example file. For more details, read the TabScript section below.
      • debug.html: For debugging the js code. Include the js file into this file, and open with a browser to debug in the console.
      If you don't need this folder and files, before deleting them, please remove the setting loadScript=... in Global section of the CapsLock+settings.ini file. Otherwise these files will be created automatically when Capslock+ starts.

  • After the first running of Capslock+, you can run Capslock+ by the hotkey Ctrl + Alt + Caps Lock.

  • Right click the Capslock+ icon in the system tray to pause or exit.

Functions Description

All the functions below are required to press Capslock down, and Capslock are omitted in the description below. For example, +Q is Capslock + Q

You can set hotkeys under the [Keys] section in CapsLock+settings.ini file. You can find specific instructions in Capslock+settingsDemo.ini

* Adding the Alt key to most of the basic functions for enhanced functions. For example, Capslock + E is Move Up, and Capslock + Alt + E is Move Up 3 Times. It is helpful to remember this pattern.

Basic Functions

Capslock + Function Description
Press Capslock
Toggle Caps Lock You can set the action by inserting a setting under [Keys] section in CapsLock+settings.ini. For example, to press Caps Lock to send Esc: press_caps=keyFunc_esc.
Press and hold Capslock
None Regard as hesitant operation.
Move Up / Down / Left / Right
Move Up / Down 3 Lines
Move 5 Characters Backward / Forward
Move Up / Down 10 Lines
Move Up / Down 30 Lines
Move 1 Word Backward / Forward
Move 3 Words Backward / Forward
Move to the Beginning / End of the Line
Move to the Beginning / End of the Page
Select the Character Up / Down / Backward / Forward
Select 3 Lines Up / Down
Select 3 Characters Backward / Forward
Select 10 Lines Up / Down
Select 30 Lines Up / Down
Select 1 Word Backward / Forward
Select 3 Words Backward / Forward
Select the Current Word
Select the Current Line
Select to the Beginning / End of the Line
Select to the Beginning / End of the Page
Delete / Forward Delete
Delete / Forward Delete Word
Delete to the Beginning / End of the Line
Delete to the Beginning / End of the Page
Delete Line
Delete All
Send input: Enter
Insert Line Below
  1. When text (file or folder) is selected, Cut / Copy.
  2. When editing text without selected text, Cut / Copy the line of the cursor.
  1. The independent clipboard allows you to copy and paste different content.
  2. The contents of the clipboard are always the latest used/modified contents (including Cut, Copy, and Paste). For example: Ctrl+C copies the text apple, then Capslock+C copies the text banana, and Right-click -> Paste, the result will be banana; And both Ctrl+V and Right-click -> Paste will paste apple.
  3. When you are not edting text, and have not selected any content, you may get an unexpected operation, for example, select and copy all files. Please don't use this hotkey in this case.
  4. Originally in Excel, selecting tables above a row (column), and the use of copy-related functions afterwards brings up pop-up notification of The picture is too large and will be truncated. That’s because Excel notifies when saving a large amount of data in clipboard. This problem also occurs in other clipboard management software which should be concerned as an Excel issue. The current solution of Capslock+ is to cancel the activation of Excel window when saving the clipboard data, and forbids the saving of data detection, then switch back till the data is saved. The negative effect is that the Excel window flickers. If it’s unacceptable, press Capslock+F12 to turn off the clipboard functions temporarily.
Paste the contents copied by +X / +C
LAlt +
Cut / Copy Another independent clipboard
LAlt +
Paste the contents copied by +LAlt+X / +LAlt+C
Open this document page
Show the Math Board window
  1. For the supported calculations, you can read About Calculations
  2. In this interface, press and hold Shift (or in upper case status):
    will output:
  3. Shift+Enter outputs the result (after calculating the result) at the beginning of the next line.
  4. Ctrl+Enter: Start a new line
  5. In this window, all characters to the left of the cursor will be regarded as mathematical expressions, instead of +Tab[1] - matching expressions automatically.
  6. In this interface, Enter calculates the mathematical expression on the left of the cursor and outputs the result on the right of the expression. The rules are similar to +Tab[1], except that all expressions are filled with =, instead of replacing the expression with the result.

[1]: Read more about +Tab.

  1. Translate to/from Chinese.
  2. Translate the selected text.
  3. If there's no selected text, translate the word where the cursor is at.
  4. You can submit new texts to translate again after removing the results of the translation window.
  5. A blank translation window pops out when there's no text can be copied.
  6. The translation function is implemented by calling Youdao API, you need to go to Youdao Translation to apply for the ID and key and set them to CapsLock+settings.ini[1]->TTranslate->apiKey. See CapsLock+settingsDemo.ini[1] for details.
  7. Do not use this feature if the network connection is bad, it will block the program.

[1]: CapsLock+settings.ini and CapsLock+settingsDemo.ini are generated after the first run of Capslock+. For a quick open, please read the command description of cl set of Qbar below.

  • Short press to toggle the current window to translucent or opaque;
  • Press and hold with Wheel Up / Down to increase / decrease the transparency of the window
Only works for some windows.
Reload Capslock+
Pin / Unpin a window
Get the escaped selected characters for debugging Click here for details. Ignore this feature if you are not familiar with JavaScript.
Turn On / Off the Extra Clipboards feature To avoid the copy issue in Excel.

Advanced Functions




  1. If the string to the left of the cursor matched a key of a setting under [TabHotString], [QRun] or [QWeb] section section in Capslock+settings.ini[1], it will be replaced with the corresponding setting value.
  2. Calculate the value of the mathematical expression to the left of the cursor (actually running JavaScript code).


  • About hot string:
    1. For exmaple, there is a setting: email=123456789@abc.com under [TabHotString] section in Capslock+settings.ini, If enters asdfghjklemail, and press Capslock+Tab, the email will be replaced with 123456789@abc.com, and the string displays asdfghjkl123456789@abc.com.
    2. Don't use the same key name even in different sections ([TabHotString], [QRun] and [QWeb]).
  • About calculation:
    1. Supported mathematical expressions: arithmetic, nested brackets, ternary operation, relational operations, logic operations, bit operations, various functions, binary, hex, etc.
      For detailed instructions: see About Calculations
    2. When the mathematical expression does not contain equal sign (=) at the end, the expression will be replaced with the result. For example: 1+2+3->Capslock+Tab->6
    3. When the mathematical expression contain an equal sign (=) at the end, the result will be output to the right of the equal sign. For example: 1+2+3=->Capslock+Tab->1+2+3=6
    4. When calculation fails, the output will be ?. For example: 1+2+=->Capslock+Tab->1+2+=?
    5. From the cursor to the left, until encountering the first space character or the beginning of the line, the string between them will be regarded as an expression. If the expression to be calculated includes spaces, please select the expression, or add ` (back quote) at the beginning of the expression, such as: `1 + 1 = .
      All the selected characters or to the right of the backquote will be regarded as an expression.
      Expressions with more than one line can only be selected first. For example:


    * Capslock+ does not guarantee that the calculation result is absolutely correct. For strict calculations requirement, such as currency, please consider using the calculation functions carefully!
      If you are familiar with JavaScript:
    1. In fact, the mathematical expression calculation is just running JavaScript code, that's why you can also do this:
      Enter `var i=0,j=101; while(j--)i+=j;,then Capslock+Tab to get the sum of 1 to 100.
    2. You can also call a function like this:

      any text any text
      any text any text

      This way of calling a function is actually processing all the characters except the function written in the last line (the string method) into a single-line string, and then calling the string method. The processing process is: add an escape character \ in front of '"&\\n\r\t\b\f, then replace each newline character with \n.

      So after selecting the 3 lines above, Capslock+Tab, is equivalent to running the following code:

      'any text any text\nany text any text'.functionX()

      For eaxmple, for the following code:

      apple banana apple cat
      apple dog apple banana
      apple cat apple dog
      .replace(/apple/g, 'egg')

      Select the 4 lines above, after Capslock+Tab, it becomes:

      egg banana egg cat
      egg dog egg banana
      egg cat egg dog

    3. You can add custom methods by putting js files in the loadScript folder, and then update loadScript under [Global] section in CapsLock+settings.ini, add the file names you need (separated by ,). Capslock+ will load these files at startup floowing the setting order. Do not write functions into scriptDemo.js, it may be overwritten when Capslock+ is updated.
    4. Because the function calling mode above will escapes characters except the last line into a single-line string (see the second paragraph of this part), and that's why your custom function is required to operate on a string in this format. There are examples in loadScript/scriptDemo.js as reference. Besides you could select a section of texts, press Capslock+F8 to get the formatted string for debugging.
    5. This feature is implemented by calling the engine of IE, so your code should be written for IE browser. Type navigator.userAgent then Capslock+Tab to see the version of IE.
  • In sum up, the priority of +Tab for different formats of characters from high to low is as follows:
    1. For selected caracters:
      1. Multi-line and the last line is in format .xxx() -> JavaScript
      2. Other cases -> JavaScript
    2. Fro no selected characters:
      1. There is a string on the left of the cursor that matches [TabHotString], [QRun] or [QWeb]
      2. -> Hot String
      3. The string from the first ` from the beginning of the line to the cursor -> JavaScript
      4. The string from the cursor to the left until encounters the first space or the beginning of the line -> JavaScript

[1]: CapsLock+settings.ini and CapsLock+settingsDemo.ini are generated after the first run of Capslock+. For a quick open, please read the command description of cl set of Qbar below.






  1. Bind window:
    • Mode 1: Click to bind the current window
    • Mode 2: Double-click to add and bind the current window
    • Mode 3: Triple-click to bind all windows owned by the application to which the current window belongs


  1. Activate/Minimizethe binding window


  • About binding:
    1. Mode 1 and Mode 3 will overwrite the existing binding window on the key
    2. Mode 2 will add a window when the current mode is Mode 1 or Mode 2, will override when the current mode is Mode 3 (Same effect as Mode 1).
    3. Example for Mode 2:
      1. Activate window A, press and hold CapslockAlt, then double click 1;
      2. Activate window B, same as above;
      3. Activate window C, same as above;
      4. Press and hold Capslock, press 1 (multiple times) to switch between window A, B, C.
    4. When the binding window of mode 2 is closed and there's only one window left, it will automatically switch to mode 1 for binding (the window can be activated / minimized)
  • Activate / Minimize:
    1. In mode 1, when the original binding window does not exist, the activation action will automatically bind another window which belongs to the application.
    2. In mode 1 and mode 3, when the application to which the binding window belongs is not running, the activation action will start the application.
    3. When there is only one binding window, all modes will activate / minimize the window.




  1. Pop up the input box, and enter different commands to run different operations (read the description below).


  1. Press Esc or close the interface when losing the focus.
  2. Select the character and press +Q for filling into the input box.
  3. Select the file and press +Q, and the file path will be filled in the input box.


Command Function Description
cl about View version information
cl set Open Capslock+settings.ini and Capslock+settingsDemo.ini

Each section of Capslock+settings.ini:

  • Global: Global settings
  • QSearch: Search commands settings
  • QWeb: Webpages open settings
  • QRun: Start applications settings
  • QStyle: Style of +Q input box settings
  • TabHotString: Hot strings of +Tab settings
  • * Please read CapsLock+settingsDemo.ini for more details.
ooo -> xxx Add a setting ooo=xxx in a section in Capslock+settings.ini:
  1. If it is a searching website:
  2. If it is a file path:
  3. If it is a website[1]:
  4. None of the above:
  1. For example, enter mdn -> developer.mozilla.org, and you can enter mdn in +Q to open developer.mozilla.org after a complete recording.
  2. If the xxx is a shortcut of yyy, Capslock+ will automatically find and record the path of yyy.

* Please read CapsLock+settingsDemo.ini for more details.

  • ooo ->search xxx
  • ooo ->run xxx
  • ooo ->web xxx
  • ooo ->str xxx
Add a setting ooo=xxx under [QSearch] / [QRun] / [QWeb] / [TabHotString] in Capslock+settings.ini
  • You can enter ooo in +Q to search / open xxx file (folder) / open website / use hot string function of +Tab after complete recording.

* Please read CapsLock+settingsDemo.ini for more details.

    web xxx
Open the website: xxx If xxx starts with http:// or https:// or www., or including .com or .net or .org, the command web can be ignored, for example: google.com
  • s xxx
  • g xxx
  • gg xxx
Search xxx with Google
  1. Goole is the default searching engine, and you can search with the keyword, ignoring using this command unless the keyword includes other commands.
  2. You can modify the default searching engine, or add other searching engines in Capslock+settings.ini.

* Please read CapsLock+settingsDemo.ini for more details.

  • bd xxx
Search xxx with Baidu
m xxx Search xxx with MDN
wk xxx Search xxx with Wiki
tb xxx Search xxx with Taobao
aa bb Open bb with aa

aa: An application recored in [QRun]

bb: Abbreviation of file (folder) or URL recorded in [QRun] / [QWeb], or a specific file (folder) path or URL.

For example:
The setting ie=C:\Program Files\Internet Explorer\iexplore.exe is recorded in [Qrun]; The setting clp=http://junkai.me/capslock+/ is recorded in [QWeb], and ie clp will open http://junkai.me/capslock+/ with IE, you can also ie capslox.com/capslock-plus/en.html to open capslox.com/capslock-plus/en.html with IE.

  1. Run the corresponding file (folder) or website, if there is a shortcut setting in [QRun] or [QWeb].
  2. Open the file file (folder), if it is a file (folder) path.
  3. If it is a website[1], open it.
  4. If it is none of the above, google[2] it.
  1. It displays a list based on the input, including the settings in [QRun] or [QWeb] or the files (folders)[3] under the input path.
  2. You can use wildcards ? and * to match one or multiple characters, for example:
    ?atmatches bat, cat, fat...
    g*dmatches god, good, gold...
  3. When the prompt list is not displayed, press Tab to expand the list (If there are settings in QRun or QWeb).
  4. When the prompt list is displayed, press Tab to fill the selected or the first file name in the input box.
  5. When displaying the files under the path, press \ (or /[4]) to fill the file (folder) name in the input box, press Capslock+- and return to parent folder, press Capslock+= to go to the next folder.
  6. If you want to search a keyword simmilar to URLs, please use a search command, such as s com.com, otherwise, it will be opened as a website.
  7. For the settings under [QSearch], [QRun] or [QWeb], you can add <xxx> as a hint after the key name in the setting, for example: cx <capslox>=capslox.com
  8. If you need to add startup parameters to the program or (and) open it as administrator under [QRun], the path should be enclosed in quotation marks, then add *RunAs to the left of this section, and startup parameters on the right of this section. For example:
    ie=*RunAs "C:\Program Files\Internet Explorer\iexplore.exe" -k
    * For more details, read CapsLock+settingsDemo.ini.
  9. Ctrl+Enter will open the input string as a website with www. prefix and .com suffix. For example:
    Enter capslox -> Ctrl+Enter -> Open www.capslox.com
  10. Qbar supports searching all the installed programs, if a program is installed / uninstalled after starting Capslock+, you need to reload Capslock+.

[1]: The string starts with http:// or https:// or www., or including .com or .net or .org will be considered as a URL.

[2]: Modify the default setting under [QSearch] in Capslock+settings.ini to set the default search engine.

[3]: If there are too many files, Capslock+ will not load icons for all files for the sake of loading speed.

[4]: \ is frequently used when entering file paths, but the key is too far on the keyboard, so Capslock+ makes / key also outputs \, if you need to output /, press Capslock+/.


About Text Operations Mechanism

In Capslock+, there are several functions based on text. For example, the selected text's autofill in Qbar and TabScript, etc. These functions get text via sending Ctrl+C. Because of this, please pay attention that Ctrl+C may cause an unexpected operation. It is usually makes an exit operation in terminal.

In many code editor, Ctrl+C will copy a line when you hvae not selected text, and it will cause Capslock+ to be unable to accurately determine whether the user has selected any text in these interfaces. To solve this problem, Capslock+ determines whether the copied text ends with a newline character. But if you are on the last line, this solution will may be inaccurate because the last line may not end with a newline character. So, avoid using related functions in the last line of a code editor.

About Calculations

  • The calculation of Capslock+F2 and Capslock+Tab suports using functions (also called methods) to help calculation. A function is something like functionxxx(). To use a function, just write the value to be calculated in parentheses, and separate multiple value with commans. For example: average(1,3,5,7,12,32)
  • Supported constants and functions: JavaScript Math Object
  • In addition to the functions listed as above, the following functions are also supported:
    Function Description
    average(a,b,c...) Calculate the average of a, b, c ...
    variance(a,b,c...) Calculate the variance of a, b, c ...
    spVariance(a,b,c...) Calculate the sample variance of a, b, c ...
    * If you want to add custom functions to Capslock+, you can write it in JavaScript, and put the js file in loadScript folder, then set the file name to CapsLock+settings.ini -> Global -> loadScript, Capslock+ will load the functions in the js file at startup.
  • Supported values: JavaScript Numbers
  • Supported operators: JavaScript Operators
  • Supported comparison and logical operators: JavaScript Comparison and Logical Operators
  • If you want to learn more about JavaScript: JavaScript Tutorial
  • Give it a try: (Try Capslock+Tab here)
  • Since the calculation function applies the JavaScript engine, and in JavaScript, the operation of decimals may have some deviations. For example: 0.1+0.2=0.30000000000000004. For this issue, though Capslock+ has used some measures to solve this problem, however, Capslock+ does not guarantee that the accuracy of the calculation. You need to take it as a concern when using the calculation functions for a strict requirements, and take the consequences.

Contact Me

If you hunt a bug, feedback, suggestions on documentation, please feel free to reach me at .

Release Notes

  • v3.3.0 | 2023-10-22

    • Modified: Youdao free API is no longer supported.
    • Modified: Bugs fixed and improvements.
  • v3.2.0 | 2020-10-24

    • Modified: Some users are unable to bind windows with Caps Lock + Win + Number keys, Caps Lock + LAlt + Number keys are also works now.
    • Modified: Bugs fixed and improvements.
  • v3.1.0 | 2020-04-25

    • Download: Capslock+_v3.1.0.exe (1.20 MB)
    • Modified: The default action of pressing Caps Lock is case switching now. You can set it under [Keys] section in CapsLock+settings.ini. For example, to press Caps Lock to send Esc: press_caps=keyFunc_esc.
    • Modified: In the activated Qbar, press the activation hotkey again to hide. And fixed some bugs of it.
  • v3.0.0 | 2020-04-05

  • v2.8.0 | 2020-04-05

    v2.x update details are omitted, since it is the same as below and can be neglected for versions above v3.0. Please see 版本历史 in Chinese if you want to.

  • v2.7.0 | 2016-11-30

  • v2.6.0 | 2016-6-30

  • v2.5.3 | 2016-6-12

  • v2.5.2 | 2016-3-27

  • v2.5.1 | 2016-3-18

  • v2.5.0 | 2016-2-14

  • v2.4.5 | 2015-12-22

  • v2.4.4 | 2015-12-04

  • v2.4.3 | 2015-11-23

  • v2.4.2 | 2015-10-25

  • v2.4.1 | 2015-10-17

  • v2.4.0 | 2015-10-15

  • v2.3.2 | 2015-10-11

  • v2.3.1 | 2015-09-28

  • v2.3.0 | 2015-09-25

  • v2.2.3 | 2015-09-23

  • v2.2.2 | 2015-09-22

  • v2.2.1 | 2015-09-01

  • v2.2.0 | 2015-08-10

  • v2.1.3 | 2015-08-08

  • v2.1.2 | 2015-07-16

  • v2.1.1 | 2015-07-13

  • v2.1.0 | 2015-06-12

  • v2.0.5 | 2015-06-06

  • v2.0.4 | 2015-05-28

  • v2.0.3 | 2015-05-21

  • v2.0.2 | 2015-05-15

  • v2.0.1 | 2015-05-14

  • v2.0.0 | 2015-05-11

  • v1.x | 2014

    • Hotkeys for text operations