はじめに
こんにちは、もちもちMAXです。
私は普段、AutoHotKeyを使って矢印キーを「変換キー」+「f,g,h,j」で代替できるようにしています。矢印キーを入力する時に、手をホームポジションから動かしたくないんですよね。で、この前Ubuntuを導入する機会がありセットアップをしていたのですが、どうもWindowsのようにAutoHotKeyを入れることができないようで、かなり困りました。
そこで、AutoKeyを使って矢印キーのマッピングを実現したので、本記事に書き残しておきます。
やりたいこと
下記の通り、矢印キーをマッピングする
- ← = 「変換」+「f」
- ↑ = 「変換」+「g」
- ↓ = 「変換」+「h」
- → = 「変換」+「j」
今回は上記をAutoKeyで実現します。
手順
ざっくりとした手順は下記の通りとなります。
- ディスプレイサーバをX.OrgからX11に変更する
- キーボードの入力を日本語にする
- 「変換」キーを仮想キーの「Hyper」にマッピングする
- AutoKeyでマッピングの設定をおこなう
次にそれぞれの手順の詳細を説明します。
ディスプレイサーバをX.OrgからX11に変更する
Ubuntu 22.04からディスプレイサーバがX.Org(X11)からWaylandに変わりました。正直ディスプレイシステムというのが何かはあまり分かってないのですが、AutoKeyはWaylandでは正しく動かないようです。これに気付かなかったために苦しむことになりました。
まずは、下記のコマンドでディスプレイサーバがどうなっているかを確認します。
echo $XDG_SESSION_TYPE
この表示がX11であれば、問題ありませんがWaylandとなっている場合はX11に変えましょう。
ディスプレイサーバをX11に変える場合、ubuntuを再起動してログイン時の画面右下にある歯車アイコンを選択しUbuntu on Xorgを選べばOKです。
キーボードの入力を日本語にする
ディスプレイサーバを変えた影響なのか、キーボード入力がUSになっていたり色々とおかしくなっていました。もし、特に異常ない場合は本項目はスキップして良いと思います。
私の場合は、設定->キーボード->入力ソースを日本語(Mozc)としたら日本語に戻りました。
あとは、設定->地域と言語も日本語にしておきます。(一応)
「変換」キーを仮想キーの「Hyper」にマッピングする
次に、「変換」キーを仮想キーの「Hyper」にマッピングしますが、まず先にこの手順が必要な理由を説明します。一度、AutoKeyの画面を見てみましょう。
これは、最終目的である「変換」キー+「f,g,h,j」キーを矢印キーにマッピングする際の画面ですが、画面中央に「Control」「Alt」「Shift」「Super」「Hyper」「Meta」キーが並んでおり、その下にはPress to Setボタンで任意のキーが選べるようになっています。AutoKeyでは、任意のキーと上述の6つのキーの組み合わせが選べるようになっています。この6つには「変換」キーは入っていません。そのため、「変換」キーを6つのキーのいずれかにマッピングしておかないと「変換」+「f,g,h,j」という組み合わせが選べないのです。6つのいずれかであればよいので、「変換」キーのマッピングは「Hyper」でなくても「Super」や「Meta」などでも問題ありません。
それでは改めて「変換」キーを「Hyper」キーにマッピングしましょう。
/usr/share/X11/xkb/symbols
の中のinet
かpc
辺りのファイルにkey <HENK> {[ Henkan ]}
という行があるはずなので、その行をkey <HENK> {[ Hyper_L ]}
に書き換えましょう。(画像の80行目)
そして次のコマンドを実行しましょう。
sudo setxkbmap -layout jp
以上で、「変換」キー「Hyper」へのマッピングは終了です。
AutoKeyでマッピングの設定をおこなう
とりあえずAutoKeyのインストール
sudo apt install autokey-gtk
AutoKeyを起動したら画面左上の新規
ボタンからScriptを選び、任意の名前を入力します。
次に画面右下にあるSet Hotkey
を選び、Hyper
とPress to Setで任意のキーを入力します。
最後に、scriptを記述します。keyboard.send_keys("<right>")
あとは、矢印キーの数(4つ)だけ同じようにscriptを作成すれば終了です。
さいごに
今回はUbuntu24.04で矢印キーをマッピングする方法について説明しました。普通にAutoHotKeyを使えば良いと思っていたので、なかなか上手くいかず苦労しました。本記事で同じように悩んでいる人の助けになれば幸いです。
ブログ↓
https://mochinochikimchi.com
自作アプリLP↓
https://mochinochikimchi.com/applications/mealmotion/index.html