【AutoHotkey】普通のキーボードでHHKBばりにホームポジションを堅持するためのスクリプト

先日、HHKB(Happy Hacking Keyboard)を注文して納期待ちなので、HHKBの練習のために、手持ちの激安メンブレンでHHKB風の操作をすることを目的としたAutoHotKeyスクリプトを書いてみた。

HHKB英語配列モデルを使っている人の中では「Z」の左下にある「Alt Opt」キーにFnを割り当ててる人がメジャーなようだ。この位置は僕の手持ちの激安メンブレンではちょうどWindowsキーにあたる。なのでWindowsキーを小指で押した状態で特定のキー入力が通常とは違う入力がなされる、という動作を実現したいと思う。

はじめに

AutoHotKeyは導入済みであるとする。AutoHotkeyのインストール関連の情報は、比較的に多いと思うので探してみてください。

何ができるのか

左側のWindowsキーの通常動作を無効化し、代わりにHHKBのFnキーであるかのように扱う。つまり左Winキーを押しながら「J」「K」などを押したときに矢印キーが押されたのと同じ動作をするようにできる。

右手を矢印キーに延ばさなくてもブラインドタッチ(タッチタイピング)のポジションを維持したままで矢印キーの操作が可能になるというわけだ。AutoHotKeyというソフトウェアを使うわけなので、どんなキーボードでも実現できるだろう。

まあ一日8時間Excelシートと格闘する仕事の人には、物理矢印キーがないキーボードなんて使えるわけがない、と言われてしまいそうだけども…

Win + Lキーのグローバルホットキー(コンピュータのロック」を無効化する

レジストリエディタで以下の操作を行う。

※Windowsのロックが使えなくなるので注意!スタートメニューからロックを実行してもロック画面にならなくなる

レジストリはいじりたくないとか、Windowsのロックをどうしても使いたい!という人はここは飛ばしてもらってOK。ただその場合、Lキーは使えないので代わりのキーを考えてください。

  1. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies
  2. 「system」という名前でキーを新規作成する
  3. 「system」の中に「DisableLockWorkstation」という名前でDWORD(32ビット値)を作成する
  4. 「DisableLockWorkstation」の「値のデータ」を「1」にする
レジストリ値 DisableLockWorkstation

これで標準のホットキーが無効化された。即時反映なので保存などの操作は必要ない。

AutoHotKeyスクリプトの内容

;Winキーの単独押しを無効にする
LWin::
return

;Winキーと他のキーの組み合わせを設定
LWin & j::
Send, {Left}
return

LWin & i::
Send, {Up}
return

LWin & l::
Send, {Right}
return

LWin & k::
Send, {Down}
return

AutoHotKeyのスクリプトはこれだけ。以下のことをやっている。

  • Winキー単独押しを無効にする
  • Winキーとその他のキーが押された場合の動作を定義する

組み合わせの自由度は高い、たとえば、

LWin & u::
Send, {Home}

とすれば、Winキーを押しながら「U」を押すと「Home」が押されたことになる。

タイトルとURLをコピーしました