◎概要:
できればキーボードで全作業をしたい。ホームポジションから離れたくない。
というわけでautohotkeyでマウスポインタを動かしてキーボードだけで生きていこう、という話。
奇抜に思えるけど、慣れると離れられなくなる。
スクリプトは以下の通り。
;【マウスの移動】
;Qキーをホットキーとするが、単独利用時は通常通り機能させる
q::send q
+q:: send Q
;マウスポインタの移動距離
LARGE=500
MIDDLE=150
SMALL:=15
MIN=3
;6, 7, 8, 9 で MIN の移動
q & 9::MouseMove, MIN, 0, 0, R
q & 6::MouseMove, -MIN, 0, 0, R
q & 7::MouseMove, 0, MIN, 0, R
q & 8::MouseMove, 0, -MIN, 0, R
;y, u, i, o で SMALL の移動
q & o::MouseMove, SMALL, 0, 0, R
q & y::MouseMove, -SMALL, 0, 0, R
q & u::MouseMove, 0, SMALL, 0, R
q & i::MouseMove, 0, -SMALL, 0, R
;h, j, k, l で MIDDLE の移動
q & l::MouseMove, MIDDLE, 0, 0, R
q & h::MouseMove, -MIDDLE, 0, 0, R
q & j::MouseMove, 0, MIDDLE, 0, R
q & k::MouseMove, 0, -MIDDLE, 0, R
;n, m, [,], [.] で LARGE の移動
q & .::MouseMove, LARGE, 0, 0, R
q & n::MouseMove, -LARGE, 0, 0, R
q & m::MouseMove, 0, LARGE, 0, R
q & ,::MouseMove, 0, -LARGE, 0, R
;小指の位置のキーでマウス左クリック
q & vkBAsc027::send {LButton}
q & p::send {LButton}
q & 0::send {LButton}
;小指+右に1つ移動した位置のキーで右クリック
q & '::send {RButton}
q & -::send {RButton}
q & [::send {RButton}
◎解説:
・ここでは「Q」キーをホットキーに使う。
理由は以下の2つ。
「多量の良ポジションのキーを消費するので専用のホットキーが欲しい」
「日本語なら使わないし、英語でもそれほど使わない」
あと個人的に「使っているHHKに余ってるキーが無い」という事情もある。
もちろん自分の好きなホットキーでOK。
・移動距離を4つの変数に格納しておく。単位はピクセル
・バインドはvi互換とする。
理由は以下のとおり。
「移動距離のレベルを段階的に分け易い。これはダイアモンドテーブルやemacsバインドでは難しい」
「QWERTYのホームポジションがベースなので指の移動コストが低い」
「すでにviバインドに慣れていれば学習コストが低い」
・左右のクリックも割り当てる。
※注意点:
・スクリプトはHHK Lite(英語版)のもので、環境によってキーのコードが異なる場合がある。
キーの調べ方は、タスクトレイアイコンをダブルクリック →
View > Key history and script info →
調べたいキーを押してF5
・移動距離はディスプレイ等の環境によって使い勝手が異なる。使いながら微調整を重ねると吉。
・素直にマウスを使ったほうが良い場合もある。例:ドラッグ&ドロップなど。
マウスまで手を伸ばすのが億劫で、いろいろ試行錯誤した。
ThinkPadのトラックポイントに憧れてみたり、こんなのを買って散財してみたり。
でも結局この方法に落ち着いた。
とても変態的だけどやめられない。思考とコンピュータがシームレスに近づいた。俺はもうホームポジションから出ない。