Linuxで特定のフレーズを自動置換したりショートカットにスクリプト実行を割り当て可能なAutoKeyの使い方
はじめに
AutoKeyは、キーボードのショートカットにスクリプト実行を割り当てたり特定のフレーズを入力した時に事前登録したテキスト文に自動で置換したりしてくれるLinux用のユーティリティツールです。Windowsでは似たようなアプリAutoHotKeyがあり、それのLinux版です。この記事では、AutoKeyのインストール方法と簡単な使い方をまとめます。
AutoKeyについて
まずはじめにAutoKeyでできることの動作イメージを載せます。以下のGIF画像のようにユーザが設定した特定のフレーズ(以下GIF画像内ではtestauto
)を適当なテキストエディタで入力すると、入力してEnterやスペースキーを押下した時点で事前に割り当てて登録していたテキスト文(以下GIF画像内では置換したい内容
というテキスト文)に置換してくれます。
また、aulink
という適当なフレーズをへとも自動置換しています。
さらに、上記のような特定のフレーズだけでなく、特定のショートカットに対してPythonスクリプトを実行させることができます。
以下がAutoKeyの公式リポジトリです。
前提と環境
以下の通りです。Ubuntu18.04にインストールしました。
- OS : Ubuntu18.04
- Python : 3以上
AutoKeyをインストールして起動する
まず、こちらの公式リポジトリから2つのdebパッケージファイルをダウンロードします。以下の0.95.7-0
は2019年10月時点での最新のバージョン番号です。公式リポジトリで最新のバージョンを確認してより新しいのがある場合は置き換えてください。
autokey-common_0.95.7-0_all.deb
autokey-gtk_0.95.7-0_all.deb
ただし、autokey-gtk_0.95.7-0_all.deb
はGNOME、Mate、Unity環境を使用している場合です。もしKDEを使用している場合は、autokey-gtk_0.95.7-0_all.deb
ではなく、autokey-qt_0.95.7-0_all.deb
に置き換えてください。
ちなみに、apt
経由でも上記2つのパッケージをインストールできますが、これらはバージョンが古くPython3系ではなくPython2系が必要となります。機能も古いため、公式リポジトリからパッケージをダウンロードしてPython3系環境で使用することをおすすめします。ここでは、最新パッケージをダウンロードしてPython3系の環境を前提で進めます。
2つのdebパッケージファイルをダウンロードしたら、以下のコマンドを実行します。ここでは、ホームディレクトリ下のDownloadsディレクトリにそれぞれダウンロードしたとします。
$ sudo dpkg --install autokey-common_0.95.7-0_all.deb autokey-gtk_0.95.7-0_all.deb
$ sudo apt --fix-broken install
上記を実行してもし以下のようなエラーが表示される場合は、指示通りにpython3-xlib
をインストールしてください。
$ sudo dpkg --install autokey-common_0.95.7-0_all.deb autokey-gtk_0.95.7-0_all.deb
以前に未選択のパッケージ autokey-common を選択しています。
(データベースを読み込んでいます ... 現在 441994 個のファイルとディレクトリがインストールされています。)
autokey-common_0.95.7-0_all.deb を展開する準備をしています ...
autokey-common (0.95.7-0) を展開しています...
以前に未選択のパッケージ autokey-gtk を選択しています。
autokey-gtk_0.95.7-0_all.deb を展開する準備をしています ...
autokey-gtk (0.95.7-0) を展開しています...
dpkg: 依存関係の問題により autokey-common の設定ができません:
autokey-common は以下に依存 (depends) します: python3-xlib ...しかし:
パッケージ python3-xlib はまだインストールされていません。
以下でpython3-xlib
をインストールできます。
$ sudo apt install python3-xlib
上記実行後、改めて実行すると以下のように何もエラーが表示されなければOKです。
$ sudo dpkg --install autokey-common_0.95.7-0_all.deb autokey-gtk_0.95.7-0_all.deb
(データベースを読み込んでいます ... 現在 442198 個のファイルとディレクトリがインストールされています。)
autokey-common_0.95.7-0_all.deb を展開する準備をしています ...
autokey-common (0.95.7-0) で (0.95.7-0 に) 上書き展開しています ...
autokey-gtk_0.95.7-0_all.deb を展開する準備をしています ...
autokey-gtk (0.95.7-0) で (0.95.7-0 に) 上書き展開しています ...
autokey-common (0.95.7-0) を設定しています ...
autokey-gtk (0.95.7-0) を設定しています ...
hicolor-icon-theme (0.17-2) のトリガを処理しています ...
man-db (2.8.3-2ubuntu0.1) のトリガを処理しています ...
bamfdaemon (0.5.3+18.04.20180207.2-0ubuntu1) のトリガを処理しています ...
Rebuilding /usr/share/applications/bamf-2.index...
desktop-file-utils (0.23-1ubuntu3.18.04.2) のトリガを処理しています ...
gnome-menus (3.13.3-11ubuntu1.1) のトリガを処理しています ...
mime-support (3.60ubuntu1) のトリガを処理しています ...
以下のようにヘルプが表示されれば無事にインストール完了です。
$ autokey -h
Usage: autokey [options]
Options:
-h, --help show this help message and exit
-l, --verbose Enable verbose logging
-c, --configure Show the configuration window on startup
後は、AutoKeyを起動以下で起動します。AutoKeyを起動するには、以下のようにautokey
と実行するだけです。&
はバックグランド起動のためです。
$ autokey &
上記を実行しただけでは何も起きませんが、続いてAutokeyの設定を行います。
Autokeyの設定を行う
端末で以下のコマンドを実行します。
$ autokey -c
上記を実行すると、以下のようなウィンドウが開きます。
Autokeyでは、設定をフォルダー毎に保存することができます。まずはじめに、自身の設定を保存するための適当なディレクトリを作成します。デフォルトではいくつかディレクトリが作成されていますが、別に作成します。以下のように、メニューの「File」→「New」→「Folder」をクリックします。
以下のように「新規」から作成してもOKです。
上記のいずれかで「Folder」をクリックすると、以下のようにAutokeyの設定を保存したいディレクトリを選択するようウィンドウが開くので適当なディレクトリを選択します。デフォルトでは、設定ファイルの置き場所は
下のディレクトリになっているので、ここではこのディレクトリ下に新しいディレクトリを作成します。
以下のように、/.config/autokey/data/.config/autokey/data
まで移動し、そこで新しいディレクトリを作成します。フォルダ作成のアイコンをクリックすると、フォルダ名を入力するフォームが表示されるので、適当な名前を入力します。ここでは、「MySettings」としました。
フォルダ名を入力してEnterを押下すると、以下のように設定が変更された旨と、AutoKeyの設定ウィンドウを一度閉じて再度開かないと反映されない旨が表示されます。
指示通りにAutoKeyの設定ウィンドウを閉じて再度autokey -c
を実行して開きます。すると以下のように作成したフォルダが追加されています。
このフォルダに自身の設定を追加していきます。
AutoKeyにフレーズを追加する
事前に割り当てたテキスト文を自動置換するため対象となるフレーズを登録します。まず以下のように「Phrase」をクリックします。
するとフレーズ名を入力するフォームが表示されるので、適当な名前を入力して「OK」をクリックします。ここでは「New Phrase」のままにします。
以下のようにフレーズが追加されるので、ここで設定を行っていきます。
例として、testauto
という適当なフレーズを自動で置換したい内容
という適当なテキスト文に置換するよう設定してみます。この設定には、以下のように①、②、③を設定します。
①、②、③の設定内容は以下のようになっています。
項目 | 内容 |
---|---|
① 置換する内容 | ここに特定のフレーズを検出したら自動で置換させたい内容を記述します。 |
② 置換を何で行うか | 置換をCtrl + Vとして実行するか、もしくはキーボード入力として実行するかなどを指定します。基本的にはCtrl + Vを指定していればOKだと思います。 |
③ 置換対象とするフレーズ | 置換対象としたいフレーズを登録します。この登録方法は後述します。 |
③ 置換対象とするフレーズについての補足
置換対象とするフレーズを設定するには、以下の画像にあるように「Set」をクリックします。
「Set」をクリックすると、以下のようにフレーズに関する設定ウィンドウが開きます。
ここで、まず「追加」をクリックして適当なフレーズ(ここでは、testauto
)を入力してEnterを押下します。
フレーズを入力した後に必ずEnterを押下しないと登録されません。また、セレクトボックスとチェックボックスが並んでいますが、これらの内容は以下です。
項目 | 内容 |
---|---|
Trigger on | デフォルトの「All non-word」だと文字以外のキーいずれでも置換をトリガします。例えば、testauto と入力してEnter、スペース、Tabなどいずれを入力した時点で置換します。 |
Remove typed abbreviation | チェックを入れると、置換対象のフレーズを削除して置換します。チェックを外すと、置換対象のフレーズを残したまま置換後のテキスト文を貼り付けます。 |
Omit trigger character | チェックを入れると、トリガとなるキー入力を削除します。例えば、フレーズを入力してスペースを押下した時点で置換する場合、スペース入力を削除します。チェックを入れない場合はスペース入力を残します。 |
Match phrase case to typed abbreviation | この機能は置換する内容が英語の場合に有効となります。チェックを入れると大文字小文字を置換対象のフレーズと合わせます。これにチェックを入れると下の「Ignore case of typed Abbreviation」も自動でチェックされます。 |
Ignore case of typed Abbreviation | チェックを入れると大文字小文字を区別しません。 |
Trigger when typed as part of a word | チェックを入れると単語の一部としてフレーズが使用された場合でも置換します。例えばフレーズがtestauto の場合にabctestauto と入力しても置換します。 |
Trigger immediately (don't require a trigger character) | チェックを入れるとフレーズを検出した時点で即座に置換します。Enterやスペースなどを押下せずとも自動置換します。 |
上記の設定は、実際にチェックボックスを入れたり外したりしてみて試すと分かると思います。設定が完了したら「OK」をクリックします。
設定を保存する
設定が終わったら、必ず以下にあるように「Save」をクリックします。「Save」をクリックしないと設定が保存されず反映されません。
この状態で、試しに適当なテキストエディタでtestauto
と入力してEnterやスペースキーを押下してみてください。冒頭のGIF画像のように置換したい内容
というテキスト文に置換されると思います。
何も起きない場合は、以下のコマンドでAutoKeyを起動してみてください。&
はバックグランド起動のためです。
$ autokey &
AutoKeyでショートカットキーにスクリプト実行を割り当てる
以下のように「新規」→「Script」をクリックします。
適当なスクリプト名を入力して「OK」をクリックします。
後はフレーズを割り当てた場合と同じように設定します。例えば、以下はCtrl + 上矢印キー
をkeyboard.send_key('
という内容のスクリプトの実行に割り当てます。設定後は忘れずに「Save」をクリックします。
上記のスクリプト内容である以下は「Homeキーを1度だけ押下する」という内容です。すなわち、Ctrl + 上矢印キー
というショートカットキーをHomeキーに割り当てています。
keyboard.send_key('<home>',repeat=1)
これは例として載せましたが、スクリプトとしてもっと複雑な実用的なものももちろん割り当て可能です。例えば、何かファイルを新規作成したりウィンドウを移動したりなど色々とできそうです。詳しくは以下の公式APIドキュメントを見てみてください。
The API examples shown here are for AutoKey-GTK. The examples show how to use the various API calls that AutoKey provides.
まとめ
Linuxの設定だけではどうしても難しいショートカットキーの割り当てなども、AutoKeyを使用すればおそらく問題なく実現できると思います。インストールも特に難しくなく、色々な応用ができそうです。
関連記事
- 公開日:2020/02/16 更新日:2020/02/16
圧縮、暗号化、リモート対応の差分バックアップを作成できる「Borg Backup」の使い方
圧縮、暗号化に対応し差分バックアップを作成できるソフトウェアである「Borg Backup」をUbuntuにインストールして使ってみたのでその手順をまとめます。「Borg Backup」はLinux、macOSに対応しています。
- 公開日:2020/02/14 更新日:2020/02/14
自分専用の後で読むサービスを構築できる「Wallabag」をUbuntu + Nginxで構築する手順
後で読むサービスのPocketにかなり近く、機能豊富なオープンソースのWallabagをUbuntuにインストールしたのでその手順をまとめます。
- 公開日:2020/02/12 更新日:2020/02/12
ファイル単位で暗号化して保存できるCryptomatorをインストールして使う手順
Cryptomatorは、ファイル単位での暗号化が可能なソフトウェアです。この記事では、UbuntuにCryptomatorをインストールする手順と使い方をまとめます。
- 公開日:2020/01/22 更新日:2020/01/22
WireGuardでVPNサーバーを構築してスマホやPCから接続する手順
WireGuardはOpenVPNよりもシンプルで高速、より安全なVPNとして開発が進められており、OpenVPNに代わるVPNとして期待されています。この記事ではWireGuardを使ってVPNサーバーを構築し、そのVPNサーバーにUbuntuやiPhoneから実際に接続してみるまでの手順をまとめます。
- 公開日:2020/01/17 更新日:2020/01/17
ディレクトリ表示や移動をインタラクティブに実行できるコマンドツール「Broot」
Linuxで端末を使っている時にディレクトリ構造をざっくり確認したり各ディレクトリにどのようなファイルが入っているかを確認したりしたい場合があると思います。Brootはディレクトリ構造を表示しつつさらにそこから各ディレクトリに移動したりファイルを検索したりできるコマンドラインツールです。