先日、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キーは使えないので代わりのキーを考えてください。
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies
- 「system」という名前でキーを新規作成する
- 「system」の中に「DisableLockWorkstation」という名前でDWORD(32ビット値)を作成する
- 「DisableLockWorkstation」の「値のデータ」を「1」にする

これで標準のホットキーが無効化された。即時反映なので保存などの操作は必要ない。
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」が押されたことになる。