Q12345マクロの説明不足をだったなと思い、
覚え書きメモ程度ですが
忘れ無いうちに記事を書いておきます
Q12345のQにしたのには特に意味は無く、
キーボードの左上キーと
Qの見た目が識別しやすい文字
他で定義で使う予定が無いので
決まりました
keymapperで薙刀式を定義方針として
動作の再現度
書式も似た感じに
1行は短く
行数も少なく
まとめると
DvorakJ薙刀式をから楽に再定義できるように
して再現したい
Q12345
K12345
のマクロを利用する事で見た目上は
1キー単位の定義から5キー単位の定義に
それを3行まとめて見ると片手分の定義になり
右手、左手にキーボードの定義のように
見せるためのマクロとして使用します
#603行目から
# ********** 2キー同時 **********
# 濁音
# 左手 {右濁音}
Q_234_[ ___, gi[ぎ], de[で], zi[じ], ___, J, Q,W,E,R,T ]
Q12345[ ze[ぜ], ge[げ], do[ど], ga[が], di[ぢ], J, A,S,D,F,G ]
Q12345[ bo[ぼ], bi[び], ba[ば], go[ご], zo[ぞ], J, Z,X,C,V,B ]
# {左濁音} 右手
Q_2_45[ ___,za[ざ], ____, zu[ず], be[べ], F, Y,U,I,O,P ]
Q1__45[ gu[ぐ], ___, ____, du[づ], bu[ぶ], F, H,J,K,L,Semicolon ]
Q1____[ da[だ], ___, ____, ___, ___, F, N,M,Comma,Period,Slash ]
Q12345
K12345
のマクロはDvorakJのキーマップのような表形式に
似せるために使用しています
gi[ぎ]の“ぎ”は引数として評価されない事を
逆に利用したコメント文して利用しています
マクロの引数は
Q12345[出力1,出力2,出力3,出力4,出力5,同時押しキー, 入力1,入力2,入力3,入力4,入力5]
(同時押しキー 入力1) >> 出力1
(同時押しキー 入力2) >> 出力2
(同時押しキー 入力3) >> 出力3
(同時押しキー 入力4) >> 出力4
(同時押しキー 入力5) >> 出力5
と同じ定義したことになります
Q_234_のように数字が_になった箇所は
マクロの展開はありません
(同時押しキー 入力2) >> 出力2
(同時押しキー 入力3) >> 出力3
(同時押しキー 入力4) >> 出力4
DvorakJはキーマップで出力キーの定義がないと
キー入力をスルーします
それを再現をためには
keymapperは何もしないを定義してしまうので
マクロ名で引数の有効無効をマスクするように
しています
___ は未定義箇所の識別用にあるだけで、
引数としては評価されないです
Q_234_[ ___, gi[ぎ], de[で], zi[じ], ___, J, Q,W,E,R,T ]
1番目と5番目はのマクロ引数は評価されないので
未定義の___があってもエラーになりません
Q_234_[ Q, gi[ぎ], de[で], zi[じ], T, J, Q,W,E,R,T ]
___以外でもエラーになりません
Q__34_[ Q, gi[ぎ], de[で], zi[じ], T, J, Q,W,E,R,T ]
だとgi[ぎ] の定義されなくなり、
"ぎ"が出力しなくなります
Q1234_[ ___, gi[ぎ], de[で], zi[じ], ___, J, Q,W,E,R,T ]
は、
1番目のマクロ引数が評価されるので
___が未定義エラーになります
Q_234_[ ___, gi[ぎ], de[で], zi[じ], ___, J, Q,W,E,R,T ]
は
(J W) >> gi[ぎ]; (J E) >> de[で]; (J R) >> zi[じ]
と同じで
(J W) >> G I ^ #ぎ
(J E) >> D E ^ #で
(J R) >> Z I ^ #じ
と定義した事と同じになります