昔からノートPCのキーボードって苦手です。
↑と↓のカーソルキーが普通のキーの半分の大きさしかなかったり、
↑の左右にPageUp, PageDownがあって押し間違いが多発したり。
かといって外付けキーボードは持ち歩きたくないですし。
AutoHotKeyを導入してからは超快適でキーボードに消耗することもなくなりました。
なもんで、AutoHotKeyの紹介です。
AutoHotKeyとは
キーの割り当てを変更したり、マクロを組んだり色々できちゃうスゴイやつ。
普段あまり使わない"変換"キーを所謂"Fn"キー相当にBindして
"変換" + E/S/D/Fでカーソル移動をする。
"変換"キーを2連打することでTerminalを起動または起動済みTerminalをアクティブにする。
"変換"キー + Enterで右クリックメニューを開く。
といったカスタマイズを加えると、ホームポジションから大きく手を動かす必要もなくストレスフリーな操作が可能となる。
ファイルをExplorerで操作する際も右クリックメニューが簡単に開けるのも非常に楽です。
オレオレキー配列
筆者の設定は以下の通り
カーソルキー
入力 | マッピングされるキー |
---|---|
"変換" + E | ↑ |
"変換" + S | ← |
"変換" + D | ↓ |
"変換" + F | → |
"変換" + W | Ctrl + ← |
"変換" + R | Ctrl + → |
Delete, Home, PageUp系
入力 | マッピングされるキー |
---|---|
"変換" + J | BackSpace |
"変換" + M | Delete |
"変換" + K | Home |
"変換" + , | End |
"変換" + l | PageUp |
"変換" + . | PageDown |
"変換" + ; | BackSpace |
Functionキー
入力 | マッピングされるキー |
---|---|
"変換" + 1 | F1 |
"変換" + 2 | F2 |
途中省略 | 途中省略 |
"変換" + 0 | F10 |
"変換" + - | F11 |
"変換" + ^ | F12 |
その他
入力 | マッピングされるキー |
---|---|
"変換" + Enter | 右クリックメニュー |
"変換" + T | 仮想デスクトップ一覧(※1) |
"変換" + G | 仮想デスクトップ左移動(※2) |
"変換" + H | 仮想デスクトップ右移動 |
"変換" + O | 作業用ディレクトリを開く |
"変換"を2連打 | Terminalを開く(※3) |
※1. "Ctrl + Win + ←"のやつ。
事前に"Win + Tab"を押下し画面上部から仮想デスクトップを追加する必要あり。
※2. "Win + Tab"のやつ。
※3. 既にHyper(Terminal)が開かれている場合、Hyper(Terminal)のウィンドウをアクティブ化する。
実際のAutoHotKeyファイル
実際の定義は私の開発環境用リポジトリにUpしてあります。
vk1C
は環境によっては異なるのでAutoHotKeyのツールで確認してください。
詳細はAHKのWikiが参考になると思います。
; カーソルキー vk1C & e::Send, {Blind}{up} vk1C & s::Send, {Blind}{left} vk1C & d::Send, {Blind}{down} vk1C & f::Send, {Blind}{right} vk1C & w::Send, {Blind}^{left} vk1C & r::Send, {Blind}^{right} ; Delete, Home, PageUp系 vk1C & j::Send, {Blind}{Backspace} vk1C & m::Send, {Blind}{Delete} vk1C & k::Send, {Blind}{Home} vk1C & ,::Send, {Blind}{End} vk1C & l::Send, {Blind}{PgUp} vk1C & .::Send, {Blind}{PgDn} vk1C & `;::Send, {Blind}{Backspace} ; Functionキー vk1C & 1::Send, {Blind}{F1} vk1C & 2::Send, {Blind}{F2} vk1C & 3::Send, {Blind}{F3} vk1C & 4::Send, {Blind}{F4} vk1C & 5::Send, {Blind}{F5} vk1C & 6::Send, {Blind}{F6} vk1C & 7::Send, {Blind}{F7} vk1C & 8::Send, {Blind}{F8} vk1C & 9::Send, {Blind}{F9} vk1C & 0::Send, {Blind}{F10} vk1C & -::Send, {Blind}{F11} vk1C & ^::Send, {Blind}{F12} ; その他 vk1C & Enter::Send, {Blind}{AppsKey} vk1C & t::Send, {Blind}#{Tab} vk1C & g::Send, {Blind}^#{left} vk1C & h::Send, {Blind}^#{RIGHT} vk1C & o::Run, C:\Users\%USERNAME%\work vk1C & x::Send, !{F4} ; 変換を2連続押下するとTerminalを起動する ; Terminalが起動済みの場合、TerminalのWindowをアクティブ化する $vk1C:: KeyWait, vk1C, T0.4 ; 0,4秒 if ErrorLevel { return } if A_TickCount < %HenkanDouble% { BashHandle = Hyper WinGet, mx, MinMax, %BashHandle% if (mx = -1) { WinRestore, %BashHandle% } else if(mx = "") { Run, "C:\Users\%USERNAME%\AppData\Local\hyper\Hyper.exe" } else { WinMinimize, %BashHandle% } HenkanDouble = 0 } else { HenkanDouble = %A_TickCount% HenkanDouble += 400 } return
おわり
これがないと開発できない体になってしまいました。。