窓使いの憂鬱からAutoHotkeyへ移行
これまで「窓使いの憂鬱」でキーボード配列をカスタマイズしていたが、Windows 7への移行を視野に入れて、レジストリとAutoHotkeyの併用に切り替えた。
ドライバを使う窓使いの憂鬱はVistaで動作しないため開発終了となった。Applet氏が「のどか」で開発を引き継いだが、有償ソフトになってしまったし、改版履歴を見るとマイナーなバグが取り切れていないようである。しばらくAutoHotkeyでやってみることにした。
さて、入れ替えるべきキーは以下の通りである。
- Esc → 全角/半角
- 全角/半角 → Esc
- CapsLock → Ctrl
- 左Ctrl → Enter
- 右Ctrl → Windows
- Alt + h/j/k/l → vi風カーソル(←/↓/↑/→)
- Ctrl + h → Back Space
- Ctrl + t → Delete
これに加えて、ATOKのキーカスタマイズで以下のキーアサインを行っている。
- x → 長音記号(ー)
- 無変換 → IMEオフ (参考記事1)
- 変換 → IMEオン(参考記事1)
ところがAutoHotkeyはCapsLockの入れ替えがうまくいかない。日本語環境特有の問題らしい。窓使いの憂鬱やAutoHotkeyは、他の人にPCを操作させるとき、一時的に入れ替えを無効にして標準キー配列に戻せるところが便利だった。これはあきらめて、単体キーの入れ替えはレジストリで対処することにした。
Windowsの仕様(参考記事2、3)をもとにレジストリキーを書き換えるのもそれほど大変ではないが、Change KeyはGUIで設定できて便利だ。標準配列にリセットするコマンドもある(PC再起動が必要)。
vi風カーソルとCtrl + h/tはAutoHotkeyで定義する。Shiftキーを押しながらカーソルキーで文字列を選択することが多いから、Shift付きも定義する。
;Alt + H → 左カーソル
!h::Send {Left}
+!h::Send +{Left}
;Alt + L → 右カーソル
!l::Send {Right}
+!l::Send +{Right}
;Alt + J → 下カーソル
!j::Send {Down}
+!j::Send +{Down}
;Alt + K → 上カーソル
!k::Send {Up}
+!k::Send +{Up}
;Ctrl + H → BackSpace
^h::Send {Backspace}
;Ctrl + T → Delete
^t::Send {Delete}
(参考記事1)キーボード入力におけるモードについて(栗原潔のテクノロジー時評Ver2)
http://blogs.itmedia.co.jp/kurikiyo/2006/10/post_2250.html
(参考記事2)Archive: Scan Code Mapper for Windows(Windows Hardware Developer Center)
http://www.microsoft.com/whdc/archive/w2kscan-map.mspx
(参考記事3)
Windows Vista/XP/2000/NT4.0のキー配列の変更方法(藤枝和宏氏)
http://www.jaist.ac.jp/~fujieda/scancode.html
(2009/05/30追記)
のどかの現状について誤解を招く表現があったので修正した。
(2011/05/12追記)
IMEのオン/オフはCtrl-スペースに変更した。
日本語キーボードを英語配列で使うカスタマイズ
http://raven.air-nifty.com/night/2010/12/post-b166.html
| 固定リンク
コメント
こんにちは。
のどかのカーネルドライバにはバグがあるとのことですが
どんなバグでしょうか?
投稿: applet_at_h | 2009年5月30日 10時07分
>appletさん
誤解を招く表現、失礼しました。本文を修正しました。
投稿: raven | 2009年5月30日 10時54分
お世話になっています。迅速な本文御修正など
大変どうもありがとうございます。
私が把握していないバグがあるのもと思ったしだいです。
今後とも、よろしくお願いいたします。
投稿: applet_at_h | 2009年5月30日 10時59分
CapsLockをEnterに置き換えるには、
sc03A::Enter
これだけで出来ます
投稿: t.soota | 2012年6月28日 10時26分