AutoHotkeyの設定について

HHKBのファンクションキー

 
これまで試用してきたキーボードについては 別ページ に整理したとおり、現在ではHHKBに落ち着いている(参考:楽天市場での「HHKB Professional JP type-s」の検索結果)。

keyboard

ただ、汎用性を考慮してHHKBの背面スイッチの設定で「Ctrl」キーの位置を通常の左下(HHKBの元の「Fn」キーの位置)に、そして元の「Ctrl」キーの位置を「Caps Lock」キーに戻したことで、HHKBの「Fn」キーが右下にしかなくなっていたので、ここでは、「AutoHotkey」を使って「無変換」キーと「変換」キーを「Fn」キーのように設定する方法についてメモしておく。

Fnキーの設定について

 
「Fn」を「無変換」, 「変換」キーに設定するにあたり、「Fn」キーと組み合わせるキーについても直感的にわかるように変更した。例えば、F1~F12のファンクションキーは、「Fn」キーと数字キーの組み合わせとしているのは分かりやすいのだが、「Home」キーや「End」キーは、その頭文字で「Fn」+「H」、「Fn」+「E」とするなどしておくと非常に使いやすい。また、方向キーについても、「↑」「↓」「←」「→」を、「I」「K」「J」「L」と右手のホームポジションの位置に設定しておくと、キーボード上での手の移動が少ない。そんなことから、「Fn」キーとの組み合わせを以下のように設定することとした。

「Fn」+「I」⇒「↑」
「Fn」+「K」⇒「↓」
「Fn」+「J」⇒「←」
「Fn」+「L」⇒「→」
「Fn」+「1」⇒「F1」
「Fn」+「2」⇒「F2」
「Fn」+「3」⇒「F3」
「Fn」+「4」⇒「F4」
「Fn」+「5」⇒「F5」
「Fn」+「6」⇒「F6」
「Fn」+「7」⇒「F7」
「Fn」+「8」⇒「F8」
「Fn」+「9」⇒「F9」
「Fn」+「0」⇒「F10」
「Fn」+「-」⇒「F11」
「Fn」+「^」⇒「F12」
「Fn」+「BS」⇒「Del」
「Fn」+「Esc」⇒「全角/半角」
「Fn」+「↑」⇒「PgUp」
「Fn」+「↓」⇒「PgDn」
「Fn」+「←」⇒「Home」
「Fn」+「→」⇒「End」
「Fn」+「H」⇒「Home」
「Fn」+「E」⇒「End」
「Fn」+「U」⇒「PgUp」
「Fn」+「D」⇒「PgDn」
「Fn」+「B」⇒「Pause」
「Fn」+「P」⇒「PrintScreen」
「Fn」+「S」⇒「ScrollLock」
「Fn」+「O」⇒「Ins」

上記の「Pause」は「PrintScreen」の「P」と重複するので「Pause/Break」から「B」とし、「Ins」も「I」は「↑」の方が使い勝手が良いので、「挿入/上書き」から「OverWrite」の「O」としている。

この設定にしてからは、特にキーボードを見なくても直感的に「Fn」キーとの組み合わせが分かるので、キーボードに「Fn」キーとの組み合わせが書いていなくても特に不自由することはなくなった。

AutoHotkeyの設定

 
あとは、「AutoHotkey」をダウンロード/インストールして、上記の設定を反映させる。以下に簡単な手順をメモ。

1. AutoHotkeyのホームページ の「Download」から「Installer」をダウンロード。
2. ダウンロードした「installer」をインストール。
3. 適当なファイル名でテキストファイルを作成し拡張子を「~.txt」→「~.ahk」に変更。
4. 「~.ahk」を右クリックして編集(Edit script)。
5. 以下のスクリプトを書き込む

#NoEnv
#UseHook
#InstallKeybdHook
#SingleInstance force
SendMode Input
LWin::return
;無変換:vk1Dsc07B
vk1Dsc07B & i::
Send,{Blind}{Up Down}
Sleep,30
Send,{Blind}{Up Up}
Return
vk1Dsc07B & k::
Send,{Blind}{Down Down}
Sleep,30
Send,{Blind}{Down Up}
Return
vk1Dsc07B & j::
Send,{Blind}{Left Down}
Sleep,30
Send,{Blind}{Left Up}
Return
vk1Dsc07B & l::
Send,{Blind}{Right Down}
Sleep,30
Send,{Blind}{Right Up}
Return
vk1Dsc07B & 1::
Send,{Blind}{F1}
Return
vk1Dsc07B & 2::
  Send,{Blind}{F2}
Return
vk1Dsc07B & 3::
Send,{Blind}{F3}
Return
vk1Dsc07B & 4::
Send,{Blind}{F4}
Return
vk1Dsc07B & 5::
Send,{Blind}{F5}
Return
vk1Dsc07B & 6::
Send,{Blind}{F6}
Return
vk1Dsc07B & 7::
Send,{Blind}{F7}
Return
vk1Dsc07B & 8::
Send,{Blind}{F8}
Return
vk1Dsc07B & 9::
Send,{Blind}{F9}
Return
vk1Dsc07B & 0::
Send,{Blind}{F10}
Return
vk1Dsc07B & -::
Send,{Blind}{F11}
Return
vk1Dsc07B & ^::
Send,{Blind}{F12}
Return
vk1Dsc07B & BS::
Send,{Blind}{Del}
Return
vk1Dsc07B & Esc::
Send,{Blind}{vkF3sc029}
Return
vk1Dsc07B & Up::
Send,{Blind}{PgUp}
Return
vk1Dsc07B & Down::
Send,{Blind}{PgDn}
Return
vk1Dsc07B & Left::
Send,{Blind}{Home}
Return
vk1Dsc07B & Right::
Send,{Blind}{End}
Return
vk1Dsc07B & h::
Send,{Blind}{Home}
Return
vk1Dsc07B & e::
Send,{Blind}{End}
Return
vk1Dsc07B & u::
Send,{Blind}{PGUP}
Return
vk1Dsc07B & d::
Send,{Blind}{PGDN}
Return
vk1Dsc07B & b::
Send,{Blind}{Pause}
Return
vk1Dsc07B & p::
Send,{Blind}{PrintScreen}
Return
vk1Dsc07B & s::
Send,{Blind}{ScrollLock}
Return
vk1Dsc07B & o::
Send,{Blind}{Ins}
Return
;変換:vk1Csc079
vk1Csc079 & i::
Send,{Blind}{Up Down}
Sleep,30
Send,{Blind}{Up Up}
Return
vk1Csc079 & k::
Send,{Blind}{Down Down}
Sleep,30
Send,{Blind}{Down Up}
Return
vk1Csc079 & j::
Send,{Blind}{Left Down}
Sleep,30
Send,{Blind}{Left Up}
Return
vk1Csc079 & l::
Send,{Blind}{Right Down}
Sleep,30
Send,{Blind}{Right Up}
Return
vk1Csc079 & 1::
Send,{Blind}{F1}
Return
vk1Csc079 & 2::
Send,{Blind}{F2}
Return
vk1Csc079 & 3::
Send,{Blind}{F3}
Return
vk1Csc079 & 4::
Send,{Blind}{F4}
Return
vk1Csc079 & 5::
Send,{Blind}{F5}
Return
vk1Csc079 & 6::
Send,{Blind}{F6}
Return
vk1Csc079 & 7::
Send,{Blind}{F7}
Return
vk1Csc079 & 8::
Send,{Blind}{F8}
Return
vk1Csc079 & 9::
Send,{Blind}{F9}
Return
vk1Csc079 & 0::
Send,{Blind}{F10}
Return
vk1Csc079 & -::
Send,{Blind}{F11}
Return
vk1Csc079 & ^::
Send,{Blind}{F12}
Return
vk1Csc079 & BS::
Send,{Blind}{Del}
Return
vk1Csc079 & Esc::
Send,{Blind}{vkF3sc029}
Return
vk1Csc079 & Up::
Send,{Blind}{PGUP}
Return
vk1Csc079 & Down::
Send,{Blind}{PGDN}
Return
vk1Csc079 & Left::
Send,{Blind}{Home}
Return
vk1Csc079 & Right::
Send,{Blind}{End}
Return
vk1Csc079 & h::
Send,{Blind}{Home}
Return
vk1Csc079 & e::
Send,{Blind}{End}
Return
vk1Csc079 & u::
Send,{Blind}{PgUp}
Return
vk1Csc079 & d::
Send,{Blind}{PgDn}
Return
vk1Csc079 & b::
Send,{Blind}{Pause}
Return
vk1Csc079 & p::
Send,{Blind}{PrintScreen}
Return
vk1Csc079 & s::
Send,{Blind}{ScrollLock}
Return
vk1Csc079 & o::
Send,{Blind}{Ins}
Return

6. 保存して閉じたら「~.ahk」をダブルクリック(タスクバーに[H]が表示されて終了)。
 
これで、「無変換」、「変換」を「Fn」キーとした前述の組み合わせについて設定することができた。方向キーの割り当てにわざわざUp/DownとSleepを入れているのは、たまに方向キーが効かないアプリケーションや、いわゆる「すり抜け」が発生することが多々あったので入れることにしている。

職場での利用(コンパイル)など

 
最後に、出来上がったスクリプト(~.ahk)を右クリックして「Compile Script」からコンパイルする(ソース(~.ahk)と同じディレクトリに実行ファイル(~.exe)が生成される)。これにより動作も安定するので、これをスタートアップに入れてPC起動時に読み込ませることにしている。また、職場のPCではセキュリティの問題で個人でアプリケーションをインストールすることはできないのだが、コンパイルした実行ファイルであれば起動するだけなので使用することができる。
このAHKの設定については、必要があれば今後も使いやすいように改善していきたいと思う。

 
スポンサーリンク





コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です