blechmusikの日記

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

QWERTY 配列の [;] で sticky-shift を実現する DvorakJ 用の設定を用意した

表題の通りである。; を打鍵してからa を打鍵すると、大文字の A を出力する。; の打鍵後に2 を打鍵すると " を出力する。通例、shift の動作を実現するには、当たり前のことだが、Shift を押したままにしておかなければならない。これに対して、この設定を使用するなら、; を通常通り打鍵するだけでよい。Shiftまで指を伸ばすのを億劫がる方に、この打鍵方法をおすすめしよう*1
以下の内容の設定のファイルを、本日付の DvorakJ に収録した。.\data\en\QWERTY に "QWERTY 配列 (OADG 109A版、[;] でいわゆる sticky-shift)"というファイル名で保存している。興味を抱いた方は試してみて欲しい。

順に打鍵する配列

sticky-shift
http://homepage1.nifty.com/blankspace/emacs/sticky.html

/*
 * OADG 109Aキーボード JISによる参照キーボードに!
 * http://www.oadg.or.jp/news/news2/notice/109A-JIS.html
 *
 * http://www.oadg.or.jp/images/109A.pdf
 *
 * キー配列 - Wikipedia
 * http://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%BC%E9%85%8D%E5%88%97#109.E3.82.AD.E3.83.BC.E3.83.9C.E3.83.BC.E3.83.89
 */


-option-input[
    [;] | -27
]


[
1|2|3|4|5|6|7|8|9|0|-|{^}|\|
q|w|e|r|t|y|u|i|o|p|@|[  |
a|s|d|f|g|h|j|k|l| |:|]  |
z|x|c|v|b|n|m|,|.|/|\|
]

[;][
{!}|" |{#}|$ |% |{&}|' |( |) |   |=|~  |@@@|
Q  |W |E  |R |T |Y  |U |I |O |P  |`|{{}|
A  |S |D  |F |G |H  |J |K |L |{+}|*|{}}|
Z  |X |C  |V |B |N  |M |< |> |?  |_|
]

-shift[
{!}|" |{#}|$ |% |{&}|' |( |) | |=|~  |@@@|
Q  |W |E  |R |T |Y  |U |I |O |P|`|{{}|
A  |S |D  |F |G |H  |J |K |L |;|*|{}}|
Z  |X |C  |V |B |N  |M |< |> |?|_|
]


2015-03-27追記:

 上記の設定をそのまま利用すると、 [;] を先に入力するキー配列の使用を取りやめる場合にうまく対処できないことが分かった(JapanYoshi さんの指摘による。コメント欄を参照のこと。)。
 そこで、[;]を二度続けて入力した場合には [;] を押し下げたという情報を保持しない設定を次のように考えてみた。[;] を二度続けて入力する場合に、ダミーのキー情報を何かしら発行する。ここでは F23 キーというものを仮想的に発行することにしよう。発行するキーの設定方法については、キーリスト - AutoHotkey Wikiを参照してほしい。これで、[;] を二度続けて入力すれば [;] の押し下げを取りやめたような挙動を実現する。
 また、上記の設定では [;]を二度続けて入力した場合に + を出力していたが、今度の設定では、 + を出力するためには、シフトキーを押しながら [;] を押すこととなる。そして、 [;] を出力するには、[;] を押してから [:] を押す必要がある。
 同様に、シフトキーを押し下げたあとで、その押し下げを取りやめたような挙動を実現するために、シフトキーの方にも F23 キーを仮想的に発行する設定を盛り込んだ(最下段右端)。

順に打鍵する配列

sticky-shift
http://homepage1.nifty.com/blankspace/emacs/sticky.html

/*
 * OADG 109Aキーボード JISによる参照キーボードに!
 * http://www.oadg.or.jp/news/news2/notice/109A-JIS.html
 *
 * http://www.oadg.or.jp/images/109A.pdf
 *
 * キー配列 - Wikipedia
 * http://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%BC%E9%85%8D%E5%88%97#109.E3.82.AD.E3.83.BC.E3.83.9C.E3.83.BC.E3.83.89
 */


-option-input[
    [;] | -27
]


[
1|2|3|4|5|6|7|8|9|0|-|{^}|\|
q|w|e|r|t|y|u|i|o|p|@|[  |
a|s|d|f|g|h|j|k|l| |:|]  |
z|x|c|v|b|n|m|,|.|/|\|
]

[;][
{!}|" |{#}|$ |% |{&}|' |( |) |   |=|~  |@@@|
Q  |W |E  |R |T |Y  |U |I |O |P  |`|{{}|
A  |S |D  |F |G |H  |J |K |L |{F23}|;|{}}|
Z  |X |C  |V |B |N  |M |< |> |?  |_|
]

-shift[
{!}|" |{#}|$ |% |{&}|' |( |) | |=|~  |@@@|
Q  |W |E  |R |T |Y  |U |I |O |P|`|{{}|
A  |S |D  |F |G |H  |J |K |L |{+}|*|{}}|
Z  |X |C  |V |B |N  |M |< |> |?|{F23}|
]

*1:なお、Shift の処理を他の手法で実現したものが SandS である。