blechmusikの日記

キー・カスタマイズ・ソフトウェア "DvorakJ" の覚え書きをはじめとして様々なことを書いています。

DvorakJ で Alt + S が Alt + Ctrl + S となってしまう不具合と解決法

表題の通りの報告を受けた。QWERTY 配列か Dvorak 配列かに関わらず、Alt+S を出力しようとすると、つぎのようなキーストロークが生み出されることが解った。 AutoHotkey の key stroke and script info より。

A4  038	 	d	0.25	Alt
4F  018	h	d	0.03	O
4F  018	i	d	0.00	O
4F  018	i	u	0.00	O
A4  038	i	u	0.00	Alt
A2  01D	i	d	0.00	Ctrl
A4  038	i	d	0.00	Alt
A2  01D	i	u	0.00	Ctrl
4F  018	s	u	0.09	O
A4  038	 	u	0.23	Alt
A2  01D	i	d	0.00	Ctrl
A2  01D	i	u	0.00	Ctrl

Ctrlがキーストロークに紛れ込んでいる。勝手に修飾キーが押されてしまうのだ。
これを解決するには、DvorakJ.ahk の667行目の Send,を Send,{Blind}と書き換える。すると、以下のキーストロークが生み出される。

A4  038	 	d	3.31	Alt
4F  018	h	d	0.16	O
4F  018	i	d	0.00	O
4F  018	i	u	0.00	O
4F  018	s	u	0.09	O
A4  038	 	u	0.13	Alt
A2  01D	i	d	0.00	Ctrl
A2  01D	i	u	0.00	Ctrl

この手法により問題の症状を解消できた。最新版の DvorakJ ではこの設定を取り込んでいる。まあ、ストロークの最後にゴミが少々ついているわけだが……