Linux Wayland で keyd を利用してキーマッピングする方法(変換キー、無変換キー+ ○)

Linux

Ubuntu 24.04 や Zorin OS 17.3 など、Wayland を採用した Linux デスクトップ環境において、キーマッピングツール「keyd」を使って、変換キー・無変換キーを修飾キーとして活用する方法をまとめました。

対象読者

  • Linux 上で xkeysnail など X11 専用のツールを使っていたが、Wayland 移行により代替ツールを探している方
  • Windows で AutoHotKey を使用しており、同様のキーマッピング環境を Linux でも構築したい方
  • 変換キー・無変換キーをカスタムショートカットキーとして活用したい方

実現するショートカット一覧

以下は、変換キーと無変換キーを「修飾キー」として使用し、さまざまな操作をキーボードで効率よく行うためのキーマップ例です。

🎮 無変換キーに割り当てるショートカット一覧

組み合わせ動作説明
無変換 + hカーソル左移動
無変換 + jカーソル下移動
無変換 + kカーソル上移動
無変換 + lカーソル右移動
無変換 + aHome行頭に移動
無変換 + eEnd行末に移動
無変換 + nBackspace一文字削除(後ろ)
無変換 + mDelete一文字削除(前方)
無変換 + sEscEsc キー押下
無変換 + ;/:Enter改行(Enter)
無変換 + uCtrl + ←単語単位で左移動
無変換 + iCtrl + →単語単位で右移動
無変換 + 1〜0F1〜F10ファンクションキー
無変換 + – / ^F11 / F12ファンクションキー

🎮 変換キーに割り当てるショートカット一覧

組み合わせ動作説明
変換 + hCtrl + Home先頭にジャンプ
変換 + lCtrl + End最後にジャンプ
変換 + jPage Downページダウン
変換 + kPage Upページアップ
変換 + uAlt + ←戻る(ブラウザなど)
変換 + iAlt + →進む(ブラウザなど)

ステップ 1:keyd のインストール

Wayland に対応した keyd をソースからインストールします。

sudo apt update
sudo apt install git build-essential
git clone https://github.com/rvaiya/keyd
cd keyd
make
sudo make install
sudo systemctl enable keyd
sudo systemctl start keyd

keyd が正常に動作しているか確認

sudo systemctl status keyd

ステップ 2:キーマップを調べる(確認用)

keyd にはキーコードを調べる機能があります。以下のコマンドを使います。

sudo keyd -m

調査結果の例

  • 無変換キー: muhenkan
  • 変換キー: henkan
  • 「^」キー(実際には = と認識される)
keyd virtual keyboard 0xxx:0xxx:bexxxxxx   muhenkan down
keyd virtual keyboard 0xxx:0xxx:bexxxxxx   muhenkan up
keyd virtual keyboard 0xxx:0xxx:bexxxxxx   henkan down
keyd virtual keyboard 0xxx:0xxx:bexxxxxx   henkan up
keyd virtual keyboard 0xxx:0xxx:bexxxxxx   = down
keyd virtual keyboard 0xxx:0xxx:bexxxxxx   = up

ステップ 3:設定ファイル作成

keyd の設定ファイルは /etc/keyd/ に作成します。
例として /etc/keyd/default.conf に以下を記述します。

[ids]
*

[main]
# 無変換・変換キーを使用
muhenkan = overload(leftmeta, muhenkan)
henkan = overload(rightmeta, henkan)

[leftmeta]

# --- leftmeta + hjkl でカーソル移動
h = left
j = down
k = up
l = right

# --- leftmeta + aemn → Home / End / Backspace / Delete
a = home
e = end
n = backspace
m = delete

# --- leftmeta + s → Esc
s = esc

# --- leftmeta + ;/: → Enter
semicolon = enter
apostrophe = enter

# --- leftmeta + u/i → Ctrl+Left / Ctrl+Right
u = C-left
i = C-right

# --- leftmeta + 数字 → F1〜F12
1 = f1
2 = f2
3 = f3
4 = f4
5 = f5
6 = f6
7 = f7
8 = f8
9 = f9
0 = f10
minus = f11
equal = f12

[rightmeta]
# --- rightmeta + h/l/j/k → Ctrl+Home / Ctrl+End / PgDn / PgUp
h = C-home
l = C-end
j = pagedown
k = pageup

# --- rightmeta + u/i → Alt + Left/Right
u = A-left
i = A-right

ステップ 4:設定の反映

設定ファイルを保存したら、以下のコマンドで keyd を再起動して反映します。

sudo systemctl restart keyd

設定を変更した後はこのコマンドで毎回再起動しましょう。

補足:IME 切り替えと競合しないようにする

変換キーや無変換キーは通常 IME(日本語入力)の ON/OFF に使われています。本記事では以下のように工夫しています:

  • 単独で押下 → 通常の IME キーとして挙動
  • 他キーと同時押下 → 修飾キーとして動作(rightmeta, leftmeta を代用)

IME 切り替え機能を残しつつ、ショートカットとしても使えるようにした設定です。代替キーとして f13〜f24 を使う方法もありますが、GNOME 環境で既に割り当てがあるため、今回は meta キー系を使用しました。

まとめ

Wayland 環境では、従来の X11 向けキーマッピングツールが使えず不便でしたが、「keyd」を使えば、変換・無変換キーを活用した柔軟なキーマッピングが可能になります。IME との併用も工夫次第で可能です。

ぜひ、Wayland 環境での快適なキーボード操作に活用してみてください!

Linux

Posted by snow