xkeysnail
xkeysnial是一款进行键位映射的软件,通过xkeysnail可以很方便地进行键位自定义。
1
2
|
sudo apt install python3-pip
sudo pip3 install xkeysnail
|
配置
由于Ctrl键相比于CapsLock键更加常用,而CapsLock键的位置更容易按到,交换这两个键位会使得按键过程更加舒适和高效。
使用如下脚本即可配置xkeysnail的自动service,将会在进入用户账户时自动执行交换键位的脚本。
~/.config/systemd/user/xkeysnail.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# xkeysnail service config
[Unit]
Description=xkeysnail
[Service]
KillMode=process
ExecStart=/usr/local/bin/xkeysnail /home/liuyaqiu/.config/xkeysnail/config.py
ExecStartPre=/usr/bin/xhost +SI:localuser:root
ExecStop=/usr/bin/sudo kill -s QUIT $MAINPID
Type=simple
Restart=always
RestartSec=5
# Update DISPLAY to be the same as `echo $DISPLAY` on your graphical terminal.
Environment=DISPLAY=:0
[Install]
WantedBy=default.target
|
~/.config/xkeysnail/config.py
1
2
3
4
5
6
7
8
9
|
# -*- coding: utf-8 -*-
import re
from xkeysnail.transform import *
# [Global modemap]
define_modmap({
Key.CAPSLOCK: Key.LEFT_CTRL,
Key.LEFT_CTRL: Key.CAPSLOCK
})
|
运行
注意xkeysnail service脚本中的DISPLAY
变量需要设置为系统值,它默认情况下是0,但是也可能是其他值,可以通过echo $DISPLAY
来确认。
将脚本内容放到,然后执行指令systemctl --user enable xkeysnail
。
若在系统启动后插入外接键盘,运行命令systemctl --user restart xkeysnail
即可执行键位交换。