キーボードの入力を自由にカスタマイズ「AutoHotKey」を使ってみた。

AutoHotKeyなるものを知ったので使ってみました。

AutoHotKeyとは

キーボードの入力を簡単にカスタマイズできるツールです。

.ahkという拡張子のテキストファイルの中に簡単なプログラムを書いてコンパイルすると.exeの実行ファイルを生成してくれます。

インストール方法

AutoHotKey
Downloadからダウンロードしてはいを押しておけばok。
後は拡張子の紐付けとかやってくれます。

基本的な使い方

拡張子が.ahkなテキストファイルを作って開きます。
自分はVisual Studio Codeに色を付けるだけでしたが拡張が合ったので入れて使っています。

そして中にスクリプトを書いていきます。

スクリプト

基本的な書き方

秒数指定など細かい指定もできますが今はキーが押されたらこうするというだけの簡単なものを使っています。

キーをここで指定 & 複数指定もできる::
ここに処理
return

処理の部分には基本的にはsendを使ってキーを送信します

// 実際にはこの形式でコメントアウトできません

// aと入力する
send,a

// F1を押したことにする 特殊なキーは{}で囲む
send,{F1}

// Alt F4でウィンドウを閉じる(Altなどは記号を使う ※後述)
send,!{F4}

CapsLockを殺す

※英字配列のT460sを使っています。
CapsLockキーが誤爆しやすいので殺します。

SetCapsLockState, AlwaysOff

この使わなくなったCapsLockキーを使って便利にカスタマイズしていきます。

でもCapsLock機能を使いたいときもあるのでShiftとCapsLockでCapsLockの機能をオンオフします。
日本語では(?)Shift+CapsLockで特殊キーが発行されるのでそれを指定します。
特殊キーの調べ方は「キーの種類」で解説します。

Shift & vkF0sc03A::
send,{CapsLock}
return

カーソル移動

CapsLock と Jで右にカーソルを移動させます。
文字選択の時にカーソルが入力されるとShiftが離れてしまい文字を選択できなくなるのでShiftが押されている時は「+」を使ってShiftに足して入力してあげます。

CapsLock & j::
if GetKeyState("shift", "P")
    send,+{Left}
else
    send,{Left}
return

実行方法

.ahkをダブルクリックすると実行して常駐してくれます。
右クリックでコンパイルを選択すると.exeを作ってくれます。なのでそれをスタートアップに入れるといいでしょう。

キーの種類

キーがわからなくなったら以下を見ましょう。
キーリスト
Altなどのキー

特殊なキー

日本語には変換無変換などの特殊なキーが存在します。それを調べるにはまずなんでもいいのでAutoHotKeyのプログラムを実行します。
そして常駐しているアイコンをダブルクリックをして以下を見ます。
View > Key history and script into

そこにあるVK SCがそうです。以下のように指定します。 sc{ここに入れる}vk{ここに入れる}
例)vkF0sc03A

おわり

自分がT460sに使っているものです。
https://github.com/matsudamper/Tools/blob/master/AutoHotKey/T460s-en.ahk

AltやCtrlは左右別々で認識してくれるのでAlt左右に日本語英語を割り当てると良さそうですね。