把 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.
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
# make CapsLock behave like Ctrl:
setxkbmap -option ctrl:nocaps
# make short-pressed Ctrl behave like Escape:
xcape -e 'Control_L=Escape' -t 250
The effect should apply immediately.
Append code from Step 2 to file ~/.xprofile
to run the command when X starts.
对于Arch及其衍生发行版,可以安装interception-tools
和interception-caps2esc
。然后将下面的内容复制到/etc/interception/udevmon.yaml
,然后执行sudo systemctl restart udevmon
。
- JOB: intercept -g $DEVNODE | caps2esc -m 1 | uinput -d $DEVNODE
DEVICE:
EVENTS:
EV_KEY: [KEY_CAPSLOCK, KEY_ESC]
- 0:default
- caps as esc/ctrl
- esc as caps
- 1:minimal
- caps as esc/ctrl
- 2:useful on 60%% layouts
- caps as esc/ctrl
- esc as grave accent
- grave accent as caps
- 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.
- Find Post escape if caps is pressed alone, left_ctrl otherwise and click on enable.
The effect should apply immediately.
{
"description": "left-option to left-control",
"manipulators": [
{
"from": {
"key_code": "left_option"
},
"to": [
{
"key_code": "left_control",
"repeat": true
}
],
"type": "basic"
}
]
}
{
"description": "left-command to left-option",
"manipulators": [
{
"from": {
"key_code": "left_gui"
},
"to": [
{
"key_code": "left_option",
"repeat": true
}
],
"type": "basic"
}
]
}
{
"description": "left-control to left-command",
"manipulators": [
{
"from": {
"key_code": "left_control"
},
"to": [
{
"key_code": "left_gui",
"repeat": true
}
],
"type": "basic"
}
]
}
{
"description": "left-command to left-control",
"manipulators": [
{
"from": {
"key_code": "left_gui"
},
"to": [
{
"key_code": "left_control",
"repeat": true
}
],
"type": "basic"
}
]
}
{
"description": "Post escape if caps is pressed alone, left_ctrl otherwise",
"manipulators": [
{
"from": {
"key_code": "caps_lock",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_command"
}
],
"to_if_alone": [
{
"key_code": "escape"
}
],
"type": "basic"
}
]
}
{
"description": "Change Command+Tab to Control+Tab",
"manipulators": [
{
"from": {
"key_code": "tab",
"modifiers": {
"mandatory": [
"command"
],
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "tab",
"modifiers": [
"control"
]
}
],
"type": "basic"
}
]
}
{
"description": "Change Control+Tab to Command+Tab",
"manipulators": [
{
"from": {
"key_code": "tab",
"modifiers": {
"mandatory": [
"control"
],
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "tab",
"modifiers": [
"command"
]
}
],
"type": "basic"
}
]
}
- Download and install AutoHotKey.
- Use the script CapsLockCtrlEscape.ahk.
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.