🦍

LinuxでもEmacs風なキーバインドを設定する

2021/03/09に公開

初めに

普段Macでカーソル移動をする時は方向キーを使わず、<C-n><C-f><C-b>などのEmacs風のキーバインドを使っています。
ホームポジションを崩さずにカーソルを移動できるこのキーバインドはたいへん便利ですが、Linuxではデフォルトでこのようなキーバインドを使えないです。
そのため、普段Linuxを使っているとそこが少し不便さを感じていました。

本記事では自分の備忘録も兼ねて、上記の問題を解消できるautokeyというのを紹介していきます。
なお、筆者の環境は次になります。

OS Ubuntu 20.04 TLS
Desktop Xorg

Autokeyとは

簡単にいうとキーバインドを設定できるソフトウェアになります。
ちゃんと調べていないですが、イメージとしてはX11を通してソフトウェアに送信されるキー情報を書き換えるという感じでしょうか。
これを使用することで、キーバインドを自由に設定できます。

Ubuntuでは、次のコマンドで導入できます。

$ sudo apt install autokey-gtk

なぜAutokeyなのか

Ubuntuユーザーであれば知っていると思いますが、Gnome Tweak Toolというアプリケーションがあります。
このアプリケーションではキーバインドをEmacs風に変更できます。しかし/<C-n>/<C-p>で代用できない、といった適用しきれていない問題があります。

そこでAutokeyも併用することでさきほどの問題を解決できます。今のところ特に問題なく使えているので設定を気を付ければ競合は起きないと思います。

設定

設定は大きく分けて次の3ステップあります。詳細を説明していきます。

  1. フォルダを作成する
  2. フォルダとアプリケーションを紐付ける
  3. キーバインドを設定する

autokeyはアプリケーションごとにキーバインドを設定できます
。筆者は1アプリケーションに1フォルダというふうにしていますが、特にルールはなくフォルダを自由に作成でき、名前も任意に付けられます。

フォルダとアプリケーションを紐付けるにはフォルダを選択した状態で右側にあるWindow FilterSetボタンから、Detect Window Propertiesを選択して対象のアプリケーションにウィンドウ切り替えをすればよいです。

次にキーバインドの設定ですが、フォルダ内にスクリプトを追加していき、設定を書いていきます。
フォルダを選択した状態で新規ボタンからScriptを選択して、任意の名前を付けます。筆者の場合はキー名(たとえば削除ならdeleteなど)にしています。

次に入力したキーとそれに対応するキーの設定をしていきます。スクリプトを選択して画面右側のHotKeyを選択すると入力キーを設定できます。
次の画面でPress to Setを押してからキーを入力するとキャプチャしてくれます。

次に対応するキーはスクリプト入力部でkeyboard.send_keys("<ctrl>+f")と入力します。これでHotKeyにて設定したキーを押されたらスクリプトで設定したキーが送られます。

ちなみに筆者は次のように設定しています。

HotKey SendKeys
<super>+f <ctrl>+f
<ctrl>+h <backspace>
<ctrl>+n <down>
<ctrl>+p <up>
<ctrl>+b <left>
<ctrl>+f <right>

参考文献

最後に

ざっくりですがAutoKeyについて紹介しました。これでQOLがだいぶ上がったので、みなさんもぜひ試してみて下さい。
また、AutoKeyの設定のより詳細な情報は参考文献を見ていただければと思います。

Discussion