2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

xkeysnailでCAPS LOCKをCtrlにリマップする in debian buster

Last updated at Posted at 2020-03-22

追記 2020.3.23

/etc/modules-load.d へ uinput をロードする設定を追記する必要があるのを失念していたため追記.

参考にした記事

ExecStartPreを削らないとdebianでは動作しなかった.ということに気付くのに結構時間がかかったという話.

目標

ノートPCに入れた debian buster で xkeysnail を使って CAPS LOCK を 左Ctrl として使いたい.

手順

1. install xkeysnail

xkeysnail をインストールする.
python2 では importerror を吐くので,諦めて公式(mooz/xkeysnail: Yet another keyboard remapping tool for X environment)に従い python3 で導入する.

sudo apt install python3-pip
pip3 install -U
pip3 install xkeysnail

2. input/uinput を write mode で開けるよう設定

基本的には,この記事に従って設定する.
xkeysnailをsystemdでデーモン化 - Qiita

group を作って,自分を groupに所属させる.

sudo groupadd uinput
sudo gpasswd -a hadacchi input
sudo gpasswd -a hadacchi uinput

次に /dev/input/* や /dev/uinput の設定.

input.rules
KERNEL=="event*", NAME="input/%k", MODE="660", GROUP="input"
uinput.rules
KERNEL=="uinput", GROUP="uinput"

kernel moduleのロードを設定.

/etc/modules-load.d/uinput.conf
uinput

設定ファイルをコピーし,記事のコマンドでは,やはりうまいくかないので再起動する.

sudo cp input.rules uinput.rules /etc/udev/rules.d/
sudo reboot

3. xkeysnailの設定

今回はCAPS LOCKを左Ctrlに変換するだけなので,マッピングの設定はここまで減らせる.

~/.xkeysnail/config.py
from xkeysnail.transform import *

define_modmap({
    Key.CAPSLOCK: Key.LEFT_CTRL
})

次にxkeysnailを自動起動させる設定を行なう.
ここが一番ハマった.

systemd の service ファイルはこう.
xhostにrootで接続するための設定は,今回の方法ではいらない.DISPLAY変数は,リモートアクセスする場合に必要となる可能性はあるけど,ノートPCなのでリモートアクセスの予定もないし,試していないのであしからず.

~/.config/systemd/user/xkeysnail.service
# 1. Copy this from ~/.config/systemd/user/xkeysnail.service
# 2. systemctl --user enable xkeysnail

[Unit]
Description=xkeysnail

[Service]
KillMode=process
ExecStart=/usr/local/bin/xkeysnail /home/hada/.xkeysnail/config.py
# ExecStartPre=/usr/bin/xhost +SI:localuser:root
# ↑input/uinputグループの権限で実行するのでrootでxhostに接続する必要なし.
# むしろ,こいつがエラーを引き起こす
Type=simple
Restart=always

# Update DISPLAY to be the same as `echo $DISPLAY` on your graphical terminal.
# Environment=DISPLAY=:0
# ↑sudoでxkeysnailを起動する時は,上のxhostのコマンドとセットで必要となるが,今回はいらない.

[Install]
WantedBy=default.target

xkeysnail.service を動作させる.

systemctl --user enable xkeysnail

CAPS LOCKでCtrlとして動作するか確認.
次にリブートして最初から動作するか確認.

完了.

hadacchiの設定

ノートPCで日本語キーボードのため変換キーとか無変換キーとか無駄なキーが多い.
今はこうなっている.

~/.xkeysnail/config.py
from xkeysnail.transform import *

define_modmap({
    Key.CAPSLOCK: Key.LEFT_CTRL,
    Key.MUHENKAN: Key.LEFT_ALT,
    Key.HENKAN: Key.RIGHT_ALT,
    Key.KATAKANAHIRAGANA: Key.RIGHT_ALT,
    Key.LEFT_ALT: Key.LEFT_META,
})
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?