Overview
- 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 Chen Junkai
- Supported system: Windows
- Statement: Although there are no measures to enforce charges, Capslock+ is a paid software with no fixed amount. Please determine the amount yourself based on the duration and frequency of use. If your financial situation does not allow, you can also contribute by sharing Capslock+ with those in need.
-
$ Payment page
- Source code: GitHub
✨ Capslox - Another efficient choice
Capslox has most of the optimized features of Capslock+, with better stability, efficiency, and a more beautiful and user-friendly interface. It supports Windows and macOS.
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.
Download
Download
* Windows and browsers are likely to have incorrect warnings and blocking, the solutions (pick one):
- 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
- Go to GitHub to download and run the source code
Go to Release Notes to see the updates
Using
- 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 andCtrl
key by modifying the registry, you should press theCtrl
key (on the keyboard) instead of theCaps Lock
key during using Capslock+. -
If prompt that
The publisher could not be verified. Are you sure you want to run this software?
, clickRun
. -
If prompt that
Windows protected your PC
, clickMore info
, clickRun anyway
. -
After starting Capslock+, please use the Capslock key as a modifier key similar to
Shift
,Ctrl
andAlt
, 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 toCapsLock+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.
loadScript=...
inGlobal
section of theCapsLock+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. |
E
D
S
F
|
Move Up / Down / Left / Right | |
LAlt +
E
D
|
Move Up / Down 3 Lines | |
LAlt +
S
F
|
Move 5 Characters Backward / Forward | |
T
B
|
Move Up / Down 10 Lines | |
LAlt +
T
B
|
Move Up / Down 30 Lines | |
A
G
|
Move 1 Word Backward / Forward | |
LAlt +
A
G
|
Move 3 Words Backward / Forward | |
P
;
|
Move to the Beginning / End of the Line | |
LAlt +
P
;
|
Move to the Beginning / End of the Page | |
I
K
J
L
|
Select the Character Up / Down / Backward / Forward | |
LAlt +
I
K
|
Select 3 Lines Up / Down | |
LAlt +
J
L
|
Select 3 Characters Backward / Forward | |
Y
N
|
Select 10 Lines Up / Down | |
LAlt +
Y
N
|
Select 30 Lines Up / Down | |
H
.
|
Select 1 Word Backward / Forward | |
LAlt +
H
.
|
Select 3 Words Backward / Forward | |
,
|
Select the Current Word | |
LAlt +
,
|
Select the Current Line | |
U
O
|
Select to the Beginning / End of the Line | |
LAlt +
U
O
|
Select to the Beginning / End of the Page | |
W
R
|
Delete / Forward Delete | |
LAlt +
W
R
|
Delete / Forward Delete Word | |
[
/
|
Delete to the Beginning / End of the Line | |
LAlt +
[
/
|
Delete to the Beginning / End of the Page | |
Backspace
|
Delete Line | |
LAlt +
Backspace
|
Delete All | |
Space
|
Send input: Enter | |
Enter
|
Insert Line Below | |
X
C
|
|
|
V
|
Paste the contents copied by +X / +C |
|
LAlt
+
X
C
|
Cut / Copy |
Another independent clipboard |
LAlt
+
V
|
Paste the contents copied by +LAlt+X / +LAlt+C |
|
F1
|
Open this document page | |
F2
|
Show the Math Board window |
[1]: Read more about |
F3
|
Translate |
[1]: |
F4
|
|
Only works for some windows. |
F5
|
Reload Capslock+ | |
F6
|
Pin / Unpin a window | |
F8
|
Get the escaped selected characters for debugging | Click here for details. Ignore this feature if you are not familiar with JavaScript. |
F12
|
Turn On / Off the Extra Clipboards feature | To avoid the copy issue in Excel. |
Advanced Functions
TabScript
Function
-
If the string to the left of the cursor matched a key of a setting under
[TabHotString]
,[QRun]
or[QWeb]
section section inCapslock+settings.ini
[1], it will be replaced with the corresponding setting value. - Calculate the value of the mathematical expression to the left of the cursor (actually running JavaScript code).
Description
-
About hot string:
-
For exmaple, there is a setting:
email=123456789@abc.com
under[TabHotString]
section inCapslock+settings.ini
, If entersasdfghjklemail
, and pressCapslock+Tab
, theemail
will be replaced with123456789@abc.com
, and the string displaysasdfghjkl123456789@abc.com
. -
Don't use the same key name even in different sections (
[TabHotString]
,[QRun]
and[QWeb]
).
-
For exmaple, there is a setting:
-
About calculation:
-
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 -
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
-
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
-
When calculation fails, the output will be
?
. For example:1+2+=
->Capslock+Tab
->1+2+=?
-
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:
a=1; b=2; c=3; a+b+c=
-
If you are familiar with JavaScript:
-
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;
,thenCapslock+Tab
to get the sum of 1 to 100. -
You can also call a function like this:
any text any text any text any text .functionX()
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, afterCapslock+Tab
, it becomes:egg banana egg cat egg dog egg banana egg cat egg dog
-
You can add custom methods by putting
js
files in theloadScript
folder, and then updateloadScript
under[Global]
section inCapsLock+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 intoscriptDemo.js
, it may be overwritten when Capslock+ is updated. -
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, pressCapslock+F8
to get the formatted string for debugging. -
This feature is implemented by calling the engine of IE, so your code should be written for IE browser.
Type
navigator.userAgent
thenCapslock+Tab
to see the version of IE.
-
Supported mathematical expressions: arithmetic, nested brackets, ternary operation, relational operations, logic operations, bit operations, various functions, binary, hex, etc.
-
In sum up, the priority of
+Tab
for different formats of characters from high to low is as follows:-
For selected caracters:
- Multi-line and the last line is in format
.xxx()
->JavaScript
- Other cases ->
JavaScript
- Multi-line and the last line is in format
-
Fro no selected characters:
- There is a string on the left of the cursor that matches
[TabHotString]
,[QRun]
or[QWeb]
-> - The string from the first
`
from the beginning of the line to the cursor ->JavaScript
- The string from the cursor to the left until encounters the first space or the beginning of the line ->
JavaScript
Hot String
- There is a string on the left of the cursor that matches
-
For selected caracters:
[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.
WinBind
Or
Capslock+Function
-
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
Function
Activate
/Minimize
the binding window
Description
-
About binding:
- Mode 1 and Mode 3 will overwrite the existing binding window on the key
- 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).
- Example for Mode 2:
-
Activate window A, press and hold
Capslock
Alt
, then double click1
; - Activate window B, same as above;
- Activate window C, same as above;
-
Press and hold
Capslock
, press1
(multiple times) to switch between window A, B, C.
-
Activate window A, press and hold
- 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:
- In mode 1, when the original binding window does not exist, the activation action will automatically bind another window which belongs to the application.
- 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.
- When there is only one binding window, all modes will activate / minimize the window.
Qbar
Function
- Pop up the input box, and enter different commands to run different operations (read the description below).
Description
-
Press
Esc
or close the interface when losing the focus. -
Select the character and press
+Q
for filling into the input box. -
Select the file and press
+Q
, and the file path will be filled in the input box.
Command
Command | Function | Description |
---|---|---|
cl about |
View version information | |
cl set |
Open Capslock+settings.ini and Capslock+settingsDemo.ini
|
Each section of
|
ooo -> xxx |
Add a setting ooo=xxx in a section in Capslock+settings.ini :
|
* Please read |
|
Add a setting ooo=xxx under [QSearch] / [QRun] /
[QWeb] / [TabHotString] in Capslock+settings.ini |
* Please read |
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
|
|
Search xxx with Google |
* Please read |
|
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 |
For example: |
xxx |
|
|
[1]: The string starts with
[2]: Modify the [3]: If there are too many files, Capslock+ will not load icons for all files for the sake of loading speed.
[4]: |
Others
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
andCapslock+Tab
suports using functions (also called methods) to help calculation. A function is something likefunctionxxx()
. 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 ... loadScript
folder, then set the file name toCapsLock+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.
-
Modified: Some users are unable to bind windows with
-
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 inCapsLock+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
- Download: Capslock+_v3.0.0.exe (1.20 MB)
- Modified: New hotkey layout, convenient and easy to use.
-
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