長年TUT-Codeというマイナーな入力方式(漢字直接入力)を使ってきたため、世間一般のキーカスタマイズソフトウェアに疎かったです。たまたま数ヶ月前、少し時間ができてPCキーボード関連の情報を見ていたら偶然 enthumble というソフトを知り、無変換キー(スペースの左隣)とアルファベットの組み合わせで上下左右カーソルにするというアイデアに興味を持ちました。

試してみると、無変換+アルファベットというホームポジションのまま上下左右移動できるのは非常に便利で、もっと早く知っていれば…と後悔。enthumbleにはカーソル以外のショートカットもあり(例えば無変換+スペース= ENTERなど)、よく使うキーをほとんど全てホームポジションに持ってこれると分かりました。

enthumbleからAutoHotkey
enthumble はとても良いソフトで、キーボード入力の多いWindowsユーザには超お勧めです。ただ自分は、一部のデフォルトの割り付けがしっくりこないのと、どうせならスペースの右隣の変換キーも活用して「ホームポジション化」をより進めたいと思い、さらに調べた結果AutoHotkeyに辿り着きました。プログラミングもし易く、今では全てのショートカットキーと日本語入力をAutoHotkeyだけで行っています。

そういう訳でenthumbleはもう使っていませんが、自分の入力環境を大きく変える契機になった点で感謝しています。以下、きっかけとなった無変換+アルファベットでのカーソルをAutoHotkeyで簡単に実現する手順のメモです。実行環境はいつもと同じWindows 7 32bit + AutoHotkey 1.1.21、ポータブルなUnicode 32bit
(ダウンロード元はこちら)

準備
適当な作業用フォルダを作り、下の三点セットを置きます。AutoHotkeyのプログラム本体、起動用バッチファイル、そしてスクリプト。バッチとスクリプトのファイル名(拡張子を除く)を合わせることで、いつも同じバッチを使い回しています。
autohotkey_ex3.batSelectRawtextBitbucket
@echo off
start "" AutoHotkey %~n0.ahk

スクリプト
下の前半が上下左右カーソル、後半がカーソルのついでにHome, End, PageUp, PageDownを足す一例です。無変換キーはsc07Bで、同時打鍵を意味する&に続けて好きなアルファベットを書くだけ。ただしセミコロンはsc027など、アルファベット以外は特別な書き方をする場合があります。(詳細: AutoHotkeyJp >リファレンス>キーリスト)
autohotkey_ex3.ahkSelectRawtextBitbucket
#SingleInstance force

;
; Cursor using MUHENKAN + IJKL shortcut key
;
sc07B & i::Send,{Blind}{Up}
sc07B & j::Send,{Blind}{Left}
sc07B & k::Send,{Blind}{Down}
sc07B & l::Send,{Blind}{Right}

;
; Example of adding Home, End, PageUp and, PageDown
;
sc07B & u::Send,{Blind}{PgUp}
sc07B & o::Send,{Blind}{PgDn}
sc07B & h::Send,{Blind}{Home}
sc07B & sc027::Send,{Blind}{End}

カーソルなどの記述はSend,に続けて{ }の中に書きます。直前の{Blind}は、他のキーとの同時打鍵を有効にするもの。これを入れると、例えばShift +無変換+アルファベットで文字等を選択しながら上下左右移動するなど、実際のカーソルキーと同じ使い方ができます。

使い方と結果
スクリプトができたら、同じフォルダにあるバッチファイルを実行するだけ。タスクトレイにAutoHotkeyのアイコンが出て常駐し、基本的に全てのアプリケーション上で有効になります。下のようにホームポジションの左右五列×三段を模式的にテーブルで表すと、無変換キーとの組み合せで右側中央がカーソルキーになります。
QWERT YUUpOP
ASDFGHLeftDownRight;
ZXCVBNM,./

↓ 付け加えたHome等の場所。PageUp, PageDownは暫定で、「下へ」のKより上の位置にPageDownがあるのはすっきりしませんが、文書やウェブ閲覧時にページのアップ・ダウンを繰り返す時の押しやすさを考え、現時点ではこうしています。
QWERT YPgUpIPgDnP
ASDFGHomeIKLEnd
ZXCVBNM,./

先ほど{Blind}の説明で書いたとおり、カーソル等の単独機能だけでなくShift, Ctrl, Altとの組み合わせも有効。例えばエクスプローラでは下記①②が、Terapadでは③④が動作しました。

① 無変換+ Alt + I… 一つ上のフォルダに移動
② 無変換+ Alt + J… 直前にいたフォルダに移動
③ 無変換+ Ctrl + I, K… 画面の上下移動(文書内でのカーソル位置は不変)
④ 無変換+ Ctrl + H,セミコロン … 文書の先頭,末尾に移動

まだ無変換と組み合わせていないキーがたくさんあるので、使う頻度の高いものから順次割り当てて「ホームポジション化」をより進める例を、次回書きます。