🥱
【Hyprland】CapsLockをctrlに割り当てる
先日SwayからHyprlandに移行した際にCapsLockをControlとして使う設定に手こずったので備忘録として書き残しておきます。
ドキュメント通りの設定(input.kb_options = ctrl:nocaps
)やxmodmap
が動かなかった人向けです。
TLDR;
caps2escを使う
環境
Hyprland: 03ebbe18ed8517ee22591eac82cd54322f42cb7d
Kernel Version: Linux 6.6.10-arch1-1
caps2escのインストール
sudo pacman -S interception-caps2esc
udevmonのconfig
お好みのエディタで/etc/udevmon.yaml
に以下の内容を書き込みます。
udevmon.yaml
- JOB: intercept -g $DEVNODE | caps2esc | uinput -d $DEVNODE
DEVICE:
EVENTS:
EV_KEY: [KEY_CAPSLOCK, KEY_ESC]
escを保持する設定
上記の設定ではescをCapsLockに割り当てています。
単純にCapsLockをctrlに置き換えたい場合は以下の内容を/etc/udevmon.yaml
に書き込んでください。
udevmon.yaml
- JOB: intercept -g $DEVNODE | caps2esc -m 1 | uinput -d $DEVNODE
DEVICE:
EVENTS:
EV_KEY: [KEY_CAPSLOCK]
systemd serviceの追加
systemdのserviceファイル/etc/systemd/system/udevmon.service
を追加します。
[Unit]
Description=udevmon
Wants=systemd-udev-settle.service
After=systemd-udev-settle.service
[Service]
ExecStart=/usr/bin/nice -n -20 /usr/bin/udevmon -c /etc/udevmon.yaml
[Install]
WantedBy=multi-user.target
最後にこのサービスを有効化し起動することでCapsLockとCtrlを入れ替えることができます。
sudo systemctl daemon-reload
sudo systemctl enable --now udevmon
参考文献
Discussion