keyd:Wayland時代の新定番・システム全体対応キーマッピング

目次
keyd(Linux用の低レベルキーマッピングデーモン)についての概要と詳細
keydとは
keyd
は、Linux環境全体でキーボードの入力を柔軟かつ高速に再マッピングする低レベルなキーボードデーモンです。WaylandやX11に依存せず、コンソール(tty)を含むすべての環境で動作する点が大きな特徴です。
キーのリマッピング、モード切替、同時押しやホールド動作の定義などが可能で、システム全体に影響するキーバインド制御を実現できます。
主な用途
- CapsLockキーをCtrlやEscに変更
- 左右Shiftで異なるキー操作を割り当て
- モディファイア付きの独自キー定義(例:SpaceFN)
- Waylandでもキーボードリマッピングを実現
- X11やWayland、TTY間で一貫したキー設定を適用
特徴
- Wayland/X11/TTY対応: すべての環境で動作
- 低レベルでのリマッピング: input subsystem(/dev/input)を使用
- 軽量かつ高速: Cで実装され、遅延ゼロの高速応答
- 設定が直感的で柔軟: ファイルベースのシンプルな構成
インストール方法
Debian/Ubuntu系
$ sudo apt install keyd
Fedora系
$ sudo dnf install keyd
またはGitHubから最新版をビルド:
$ git clone https://github.com/rvaiya/keyd
$ cd keyd
$ make
$ sudo make install
$ sudo systemctl enable --now keyd
基本的な設定ファイル
設定ファイルは /etc/keyd/default.conf
に配置します。
例:CapsLock → Ctrlに変更
[ids]
*
[main]
capslock = control
例:スペースFN(SpaceをホールドでFn、タップでSpace)
[ids]
*
[main]
space = overload(space, fn)
[fn]
h = left j = down k = up l = right
設定ファイルの再読み込み
$ sudo systemctl restart keyd
デバイス識別と個別設定
[ids]
セクションで特定のキーボードデバイスに対して設定を分けることができます。 keyd
は以下のコマンドで識別子を表示可能です:
$ keyd -d
注意点
- root権限でデバイス(/dev/input/event*)にアクセスするため、サービスとして起動
- 他のキーマッピングツール(xmodmap, setxkbmap, xkeysnail等)と併用する際は競合に注意
- Waylandの制限を受けずに利用できる数少ないツール
他のツールとの比較
ツール | 特徴 |
---|---|
keyd | Wayland対応。全環境共通。低レベル処理で高速 |
xkeysnail | X11限定。柔軟なPython設定。Emacs風に最適 |
setxkbmap | X11標準。単純なリマップに向く |
xmodmap | 古い方法。複雑なことには不向き |
まとめ
keyd
は、Linux全体に影響する安定したキーボード再マッピングを提供するツールです。Wayland時代にも対応し、複雑なキー操作も直感的に設定可能なため、プログラマやパワーユーザーにとって非常に有用です。設定の柔軟性、軽快な動作、環境非依存性を兼ね備えた、次世代のキーマッピングソリューションです。