【決定版】LinuxでAutoHotkeyを再現!keydで無変換・変換キーを修飾キー化する最強設定

日付内容
2026/04/16記事を大幅リライト。決定版として構成を刷新。Ubuntu 26.04 / 24.04 対応状況を追記。
2025/04/06初回公開。keyd を使った基本的な無変換・変換キーのカスタマイズ手順を紹介。

Ubuntu 24.04 (Noble Numbat) や、次期LTSとして期待される Ubuntu 26.04 など、近年の Linux デスクトップ環境は次々と Wayland への移行を果たしています。

この変化により、従来 X11 環境で愛用されていた「xkeysnail」などの強力なキーマッピングツールが動作しなくなり、不便を感じている方も多いのではないでしょうか。

Windows 環境で AutoHotkey (AHK) を使いこなし、「ホームポジションから一歩も動かない」快適なコーディング・執筆環境を構築している IT エンジニアにとって、Linux への移行における最大の壁は「キーマッピングツールの互換性」かもしれません。

本記事では、Wayland 環境におけるキーカスタマイズの最適解である「keyd」を使い、無変換・変換キーを修飾キーとして活用する最強の設定方法を解説します。

Windowsでの設定方法はこちら

なぜ「keyd」なのか

Wayland 環境で動作するツールはいくつかありますが、keyd は以下の点で非常に優れています。

  1. システムレベルで動作するため、デスクトップ環境(GNOME, KDE, Sway等)を問わず利用可能
  2. 設定がシンプルで、AutoHotkey のような柔軟な記述ができる
  3. 低レイテンシで、操作に違和感がない
  4. Ubuntu 24.04 および将来の Ubuntu 26.04 のような最新・次世代環境でも安定して動作する

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

「親指」というもっとも自由な指が担当する「無変換」と「変換」キー。 これらを修飾キー(ShiftやCtrlのような役割)として使うことで、ホームポジションのまま全身の操作を手中に収めることができます。

無変換キーとの組み合わせ(カーソル移動・編集系)

無変換キーを「左親指の修飾キー」として活用し、上下左右の移動や文字削除を効率化します。

組み合わせ動作説明
無変換 + hカーソル左移動
無変換 + jカーソル下移動
無変換 + kカーソル上移動
無変換 + lカーソル右移動
無変換 + aHome行頭にジャンプ
無変換 + eEnd行末にジャンプ
無変換 + nBackspace一文字削除(後ろ)
無変換 + mDelete一文字削除(前方)
無変換 + sEscエスケープ(Vim利用者にもおすすめ)
無変換 + ; / :Enter改行(親指Enterで小指の負担軽減)
無変換 + oShift + End + Deleteカーソル位置から行末までを一気に削除
無変換 + uCtrl + ←単語単位で左へ移動
無変換 + iCtrl + →単語単位で右へ移動
無変換 + 1〜0F1〜F10ファンクションキー
無変換 + – / ^F11 / F12ファンクションキー

変換キーとの組み合わせ(大移動・ブラウザ操作系)

変換キーを「右親指の修飾キー」として活用し、ページスクロールや履歴移動を割り当てます。

組み合わせ動作説明
変換 + hCtrl + Home文章の先頭にジャンプ
変換 + lCtrl + End文章の最後にジャンプ
変換 + jPage Down1ページ分下にスクロール
変換 + kPage Up1ページ分上にスクロール
変換 + uAlt + ←戻る(ブラウザやファイルマネージャー等)
変換 + iAlt + →進む(ブラウザやファイルマネージャー等)

手順 1:keyd のインストール

まずは、Wayland に対応した最新の keyd を導入します。多くのディストリビューションで利用可能ですが、ここでは Ubuntu を例にソースからビルドする方法を紹介します。

# ビルドに必要なツールをインストール
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:キーコードの特定(確認作業)

使用しているキーボードによって、無変換キーや変換キーがどのキーコードとして認識されるかを確認します。

sudo keyd -m

このコマンドを実行した状態で各種キーを押すと、認識されている名称が表示されます。

  • 一般的な日本語キーボードの例:
    • 無変換キー: muhenkan
    • 変換キー: henkan
    • 「^」キー: equal (キーボードレイアウトにより異なる場合があります)
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/ 配下の .conf ファイルに記述します。 今回は /etc/keyd/default.conf を作成(または編集)します。

[ids]
# すべてのキーボードを対象にする設定
*

[main]
# 無変換・変換キーを「単体押し」と「長押し(修飾キー)」で使い分ける設定
# overload 関数を使用:長押ししたときは指定のメタキー、単体で離したときは元のキーとして動作
muhenkan = overload(leftmeta, muhenkan)
henkan = overload(rightmeta, henkan)

[leftmeta]
# --- 無変換 + hjkl でのカーソル移動
h = left
j = down
k = up
l = right

# --- 無変換 + a/e/n/m による行移動と削除
a = home
e = end
n = backspace
m = delete

# --- 無変換 + s で Esc (ホームポジションのままEscが可能)
s = esc

# --- 無変換 + セミコロン/コロン で Enter
semicolon = enter
apostrophe = enter

# --- 無変換 + o でカーソル位置から行末を削除
o = macro(S-end delete)

# --- 無変換 + u/i で単語単位移動
u = C-left
i = C-right

# --- 無変換 + 数字キー で ファンクションキー
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]
# --- 変換 + h/l/j/k でページ移動と文書先頭・末尾ジャンプ
h = C-home
l = C-end
j = pagedown
k = pageup

# --- 変換 + u/i でブラウザ等の「戻る/進む」
u = A-left
i = A-right

手順 4:設定の反映

設定ファイルを保存したら、keyd サービスを再起動して設定を適用します。

sudo systemctl restart keyd

これで、設定が即座に反映されます。もし意図しない挙動になった場合は、設定ファイルを修正して再度このコマンドを実行してください。

補足:IME(日本語入力)切り替えとの競合回避

「無変換・変換キーを修飾キー化してしまうと、日本語入力のON/OFFができなくなるのでは?」と心配されるかもしれません。

本設定では、keyd の overload 機能を利用しているため、以下のような賢い挙動を実現しています。

  • 単独でポンと押したとき:従来の「無変換」「変換」キーとして IME に通知されます。
  • 他のキーと同時に押したとき:修飾キー(metaキー)として認識され、ショートカットが発動します。

これにより、IME の設定で「無変換キーでIME OFF」「変換キーでIME ON」といった便利な設定を維持したまま、ホームポジションでの高速操作を両立させることが可能です。

まとめ

Wayland への完全移行が進む Ubuntu 24.04、そして 26.04 世代において、keyd を使ったキーカスタマイズは非常に強力な武器になります。

一度ホームポジションを崩さない操作に慣れてしまうと、もう標準の矢印キーに手を伸ばす生活には戻れません。まさに、Linux 上で AutoHotkey 級の「真の自由」を手に入れるための第一歩と言えるでしょう。

ぜひ、本記事の設定をベースに、自分だけの最強のキーボード環境を構築してみてください!