上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- -- l スポンサー広告 l top
前回のDvorakJの挙動に関して作者さんからコメントをもらい、
また作者さんのブログでこの問題に対する私見を考察されておられたので
この二つを踏まえてどのような実装がさまざまな打鍵に適合するか考察したいと思う
前回の「同時打鍵」は「順に打鍵」の時間制限バージョンではないのかという意見に関してはコメントによるとその通りだったらしい
また、将来的にはこれらを組み合わせるらしいので、そうなってもらえると確かにかなり設定に幅が出てくるのでありがたいと思う

以後混乱防止のため、以下この記事の中では、現在の順に打鍵を順打鍵、現在の同時打鍵を制限つき順打鍵、現在のShiftなどを組み合わせた場合の打鍵を(真の)同時打鍵ということにする

Shiftキーのような真の同時打鍵に関しては

Shift キーのような動作、すなわち何かのキーを実際に押し下げているときに文字キーを打鍵するという動作を実現することは、実は簡単なのです。といいますのも、Shift キーのみ、私が意図的にあのような動作を実現させたのですから。


という事で実は簡単に実装できるものだったらしい。ただし作者さんの発言によると

同時に打鍵するために使用するキーを単独で使用するときは、キーを実際に押し上げねばなりません。たとえば、[無変換] を(ずっと)物理的に押し下げているときに、[無変換] + [A] を出力できるようにするとしましょう。すると、[無変換]を単独で使用したいときは、[無変換]を押すだけではなく、押し上げねばなりません。そこまでしないと、キーが単独で押されたとAutoHotkeyが判断しないのです。


という注意点があるらしい。

またコメントと作者さんのブログから
1.直接入力用の配列で順に打鍵に対応
2.直接入力、日本語入力双方で順に打鍵、制限つき順打鍵に対応
3.複数キーによる制限つき順打鍵の実装
4.真の同時打鍵に双方で対応(?)
という形を狙っているらしい

ところで作者さんのブログの中でいくつか打鍵方法が出てきたが、これは3つに分けて考えたほうがいいように思う
順に打鍵に適した配列    : DvorakJP、JLOD配列、チーズタイピング、月配列
制限つき順打鍵に適した配列 : 黒塗り下駄配列
真の同時打鍵に適した配列    : NICOLA 配列、小梅配列

黒塗り下駄配列は例えば右手上段小指のキーをコンビキーとして右手人差し指下段を打鍵キーとするといううち方もあるので、真の同時打鍵は難しい。
一方で、NICOLAや小梅配列はコンビキーとして使われるのが変換、無変換、スペース、シフトキーぐらいなので、全て親指(シフトは小指)でカバーできる。親指を置きっぱなしにした状態で打鍵が可能なので、真の同時打鍵に適していると思われる
仮に押し上げるまで単独キーでの打鍵ができないというDisadvantageを抱えていたとしてもこちらのほうが便利だと思う人は少数派ではないと思われる。
そう考えると複数キーの制限つき順打鍵の実装より、真の同時打鍵の実装のほうがニーズがあるかもしれない
また何より真の同時打鍵を実装することによりコンビキーを押しっぱなしにして続けて打鍵ができるというメリットが得られる。
どうやら過去に作者さんのブログでも要望としてあがっていたようだ。



そこで1から4を実現した時の設定ファイルの記述およびDvorakJの持つ単一キー設定との兼ね合いを考察してみたいと思う

現在-optionとしてキーのグルーピング設定が可能となっているが、同じように真の同時打鍵と、現在同時打鍵において5段目に設定している「単独打鍵時の挙動」を設定できるようにする

例:
-option2[
-space : -shift : {space}
-henkan : -henkan : {無変換}
-muhenkan : -muhenkan :
-backspace : : {BS}
...以下略
]
このあとに-Shift,-henkan,-muhenkanを押した時のキーマップを記述

この記述は
一つ目が真の同時打鍵として使いたいキー、二つ目が使用するキーマップ、三つ目が単独押下時の出力である
解説すると
spaceキーを押している間ははShiftキーをコンビキーとして使う出力を、その間入力が何もなければスペースを出力。(つまりSandS)
変換キーを押している間は変換キーをコンビキーとして使う出力を、その間入力が何もなければ無変換を出力。
無変換キーを押している間は無変換キーをコンビキーとして使う出力を、その間入力が何もなければ出力なし。
バックスペースキーを押している間に入力がなければ一文字消す。押しっぱなしで連続で出力されるのを止めるだけの設定。
を意味している

またこの設定をした後で、単一キー設定により右WinキーをSpaceキーに割り当てたとする
すると、右WinキーがSandS機能を持つスペースキーとして使えるようになるということだ


次に順に打鍵と制限つき順打鍵を混合させる方法だ。
これはキーフックの設定時に記号をおくようにすれば解決するように思う
ここでは仮に制限つき順打鍵のフックを*としようすると

例:
-space*{a}*[...以下キーマッピング
-space*{a}*{k}[...以下キーマッピング
-henkan*{a}*{k}{n}*[...以下キーマッピング
-henkan*{a}*{k}{n}{v}*{c}[...以下キーマッピング

一つ目はスペースをコンビキーとしてaを制限つき順打鍵とした場合のキーマッピング
二つ目はスペースをコンビキーとしてa,kを制限つき順打鍵とした場合のマッピング
三つ目は変換キーをコンビキーとしてa,kを制限つき順打鍵、その後nを順に打鍵した場合のマッピング
四つ目は変換キーをコンビキーとしてa,kを制限つき順打鍵、その後vをコンビキーとしてcを制限つき順打鍵とした場合のマッピング
とすれば良さそうだ
最後に*がついている場合(1,3個目)はそのキーマップ自体も制限つき順打鍵になる(このオプションの設定はいるかどうか不明)

ちなみに制限つき順打鍵時の時間制限はDvorakJ→その他タブ→出力待機の設定時間に沿うことにする
と同時に、ここの待機時間は2秒ぐらいまで設定できてもいいんじゃないかなぁと最近思うわけです

2010.05.12 Wed l DvorakJ l コメント (1) トラックバック (0) l top

コメント

No title
 こんばんは。考察してくださりありがとうございます。参考になります。
 「真の同時打鍵と、現在同時打鍵において5段目に設定している『単独打鍵時の挙動』を設定できるようにする」必要はないと思います。前者の設定は、表で設定する文字キーの部分こそその設定だからです。他方、後者の設定は、何かしら指定する必要があります。
 「順に打鍵と制限つき順打鍵を混合させる方法」が特に参考になります。そのように実装すれば、可読性も保持しつつ柔軟に設定できるでしょう。
 キー三つ以上を同時に打鍵するときには、文字の出力を遅らせる時間をもっと長く設定できるようにします。
2010.05.14 Fri l blechmusik. URL l 編集

コメントの投稿












トラックバック

トラックバック URL
http://omine3.blog119.fc2.com/tb.php/110-18dbb4aa
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。