i3wmなどのタイル型WMを使っていると、「CapsLockをCtrlにする」という定番設定さえ、意外と面倒。
MacではKarabinerを使えば一発だったけど、Linuxではなぜか「input remap utility」というカテゴリの存在に自分はなかなか辿り着けなかった(多分ググり方が悪かった)。
最近ようやく全体像が見えてきたので、自分のメモとしてまとめておく。
1. OS標準の設定(GNOMEやmacOSなど)
もしi3のような軽量WMではなく、GNOMEやmacOSを使っているなら、OS標準のカスタマイズ機能を使うのが一番無難。 わざわざ追加ツールを入れなくても、OSの設定画面から安全にCapsLockをCtrlに変更できる。
2. xmodmap を使う方法
Xorg環境で古くから使われているユーティリティ。
- メリット: 仕組みが単純で、設定ファイル(
.Xmodmap)を読み込むだけで動く。 - デメリット: ホットプラグ(デバイスの抜き差し)に対応していない。新しいキーボードを繋ぐたびに設定を再適用しないといけないのが、今の時代にはかなり不便。
3. input remap utility を使う方法
ソフトウェアデーモンとして動作し、入力をフックして変換するツールの総称。デバイスの抜き差しにも強く、今の自分にとってはこれが正解。
- Input Remapper: 現在使用中。GUIとCLIの両方があり、デバイスごとの設定が直感的にできる。
- kanata: 今ちょっと興味があるツール。 Rust製で、WindowsやmacOSでも動くクロスプラットフォーム対応。設定ファイルが若干難しそう。input remap utilityの中では、勢いはありそうな気配
まとめ
- 軽量WM(i3など)なら:
input remap utility。今はinput remapperを使っている - 普通のOS(GNOMEなど)なら: OS標準設定で十分。
- xmodmapは: 抜き差しに弱いので、現代の環境では少し厳しい。
参考URL
- kanata (GitHub): https://github.com/jtroo/kanata
- 類似する機能を持つプロジェクトが載ってる
- Input remap utilities (ArchWiki): https://wiki.archlinux.org/title/Input_remap_utilities
- xmodmap (ArchWiki): https://wiki.archlinux.jp/index.php/Xmodmap