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即可执行键位交换。