Smart Caps Lock: Remap to Control AND Escape (Linux, Mac, Windows)
把 Caps Lock 變成智慧的 Control 以及 Escape :
- 單獨輕按一下就是 Escape 。
- 若按下時同時按著其他鍵,就會是 Control 。
這應該是 Vim 和 Emacs 的最佳解了!(Emacs? Bash 的快捷鍵就是 Emacs 系列的)
- Send Escape if you tap Caps Lock alone.
- Send Control if you press Caps Lock with another key.
For both Vim and Emacs world.
GNU/Linux
Step 1. Install XCAPE
Install XCAPE (xcape
). (Linux utility to configure modifier keys to act as other keys when pressed and released on their own.)
Ubuntu:
sudo apt-get install xcape
Step 2. Run the command
# make CapsLock behave like Ctrl:
setxkbmap -option ctrl:nocaps
# make short-pressed Ctrl behave like Escape:
xcape -e 'Control_L=Escape'
The effect should apply immediately.
Step 3. Autostart
Append code from Step 2 to file ~/.xprofile
to run the command when X starts.
macOS
- Download and install Karabiner-Elements, a powerful and stable keyboard customizer.
- Open Karabiner-Elements, select Complex Modifications tab, and click Add rule at the bottom.
- Click Import more rules from the Internet (open a web browser)
- Find Change caps_lock to dual keys, escape and left_control and click on enable.
The effect should apply immediately.
If you cannot find the rule, you can manually edit the config files at ~/.config/karabiner/karabiner.json, under profiles:
"rules": [
{
"description": "Post escape if caps is pressed alone, left_ctrl otherwise",
"manipulators": [
{
"from": {
"key_code": "caps_lock",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_control"
}
],
"to_if_alone": [
{
"key_code": "escape"
}
],
"type": "basic"
}
]
},
]
Windows
Option 1:
- Download and install AutoHotKey.
- Use the script CapsLockCtrlEscape.ahk.
Option 2:
Download and run dual-key-remap. (Note that in config.txt, CONTROL might needed to changed to LEFT_CTRL for some computers)
For both options, the effect should apply immediately.
Thanks!