切腹倶楽部
日々是切腹
xremapでSandS
ちょっと前にSandSという記事を書いたが,Linux系のシステム用にもうちょっと良い感じの方法を見つけたのでメモしておく。
𝑋𝑟𝑒𝑚𝑎𝑝 ⌨️ - https://github.com/k0kubun/xremap
まずはxremapを手元のPCにインストールするところから。
GentooはGURUのgui-apps/xremapを使うとよい。
ArchならAUR。
それ以外はREADMEを参照されたい。
現状,xremapにはウィンドウ関連の情報源を指定する排他的なビルドオプションがある。 GURUではUSEフラグでこれを管理しているが,AURではオプションごとに別名のパッケージを用意しているようだ。
modmap:
- remap:
CapsLock: Ctrl_L
- name: SandS
remap:
Space: { held: Shift_L, alone: Space, free_hold: true }
application:
not: '/^Minecraft 1/'
上記の設定によりSandSを実現できる。 適当なファイルに保存した後,下記のコマンドにより起動する。
xremap --watch=config,device /path/to/config.yml
権限で怒られたときは,自身をinputグループに追加した後,以下のようにする。
echo uinput | sudo tee /etc/modules-load.d/uinput.conf
echo 'KERNEL=="uinput", GROUP="input", TAG+="uaccess"' | sudo tee /etc/udev/rules.d/99-input.rules
sudo modprobe uinput
これだけ。
あとはお好みで自動起動を設定する。 ここではOpenRC (User Services)を用いる場合の例を示す。
~/.config/rc/init.d/xremap
#!/sbin/openrc-run
command="/usr/bin/xremap"
command_args="--watch=device,config ~/.config/xremap.yml"
command_background="true"
pidfile="${XDG_RUNTIME_DIR}/${RC_SVCNAME}.pid"
こんな感じにRCスクリプトを書いて,以下のコマンドで起動する。
rc-update -U add xremap
rc-service -U xremap start
総括
それでは良いSandSライフを!