最近になってプライベート用にWindowsPCを新調したのですが、仕事用のMacではKarabiner Elementsで右option + ijkl
で矢印キーとして使っていたので、Windowsでも同じように右ctrl + ijkl
を矢印キーとして使いたいと思い、AutoHotKeyに手を出してみました。
AutoHotKeyを使い始めるにあたってこちらの記事を最初に読んだのですが、こちらの記事ではChange KeyとAutoHotkeyという2つのアプリケーションを使ってhjkl
キーの矢印キー化を実現していました。
ただ、「AutoHotKeyでもKeyのRemapってできるし、もしかしたらAutoHotKeyだけでやりたいことをもっとシンプルにかなえられるんじゃないか」と思い、公式ドキュメントを見ながらまず作ってみたのが下記の内容です。
#InstallKeybdHook
#UseHook
#SingleInstance Force
RControl::Return
RCtrl & j::Send {Left}
RCtrl & k::Send {Down}
RCtrl & i::Send {Up}
RCtrl & l::Send {Right}
ただ、この内容でしばらく使っていて気づいたのですが、このままだと範囲選択を行うためにshift + right-ctrl + l
を押下したときにも、ただ右矢印を押したときと同じ挙動となってしまい、期待していたような挙動ができないようになっていました。
試行錯誤した結果の完成形はこの通りです。
#InstallKeybdHook
#UseHook
#SingleInstance Force
; right-ctrl + ijkl to emulate arrow keys
Hotkey, *i, Off
Hotkey, *j, Off
Hotkey, *k, Off
Hotkey, *l, Off
*RCtrl::
Hotkey, *i, on
Hotkey, *j, on
Hotkey, *k, on
Hotkey, *l, on
return
*RCtrl up::
Hotkey, *i, off
Hotkey, *j, off
Hotkey, *k, off
Hotkey, *l, off
return
*i::send {blind}{up}
*j::send {blind}{left}
*k::send {blind}{down}
*l::send {blind}{right}
この内容で、MacのKarabiner Elementsを使ってoption + ijkl
を矢印キーとして扱っていた時と同じ挙動にできたのでひとまず一件落着でした🎉
Windowsでも同じような使い方をしてみたい方は是非お試しください!