Main menu:

サーバ:

連続稼動中:
74日13時47分48秒

最高連続稼動記録:
167日3時59分6秒


リンク:

カテゴリー

アーカイブ

キーボードからマウスポインタを動かす

◎概要:
できればキーボードで全作業をしたい。ホームポジションから離れたくない。
というわけで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のトラックポイントに憧れてみたり、こんなのを買って散財してみたり。


でも結局この方法に落ち着いた。
とても変態的だけどやめられない。思考とコンピュータがシームレスに近づいた。俺はもうホームポジションから出ない。

Write a comment