親指シフトが同時打鍵と判定される時間範囲
・事の発端
たとえば、小指シフトのように「シフトキーを押している間だけシフトがかかる」というようなシフト方式でソフトを作ったとします。
親指シフトでは、同時打鍵シフトということで文字キーと親指シフトキーを同時に打鍵してシフトをかけるのですが、実際にはまったく同時ということはなく、どちらかが先になります。
シフトキーが先になったときには普通にシフトがかかってそれでよいのですが、文字キーの方が先になったときには絶対にシフトがかかりません。
これはやはり問題で、親指シフト的には、文字キーを押したすぐ後にシフトキーを押したならば、同時に打鍵したとしてその文字にシフトがかかってほしいと思うわけです。
当然の選択として、この「文字キーを押したすぐ後にシフトキーを押したならば、同時に打鍵したとしてその文字にシフトがかかる」を採用するとして、これを実際に実装しようとすると、さらに問題にぶつかります。
その「すぐ後」って、どれくらいの時間範囲にすればいいのだろうか?
・やまぶきの場合
この時間範囲の決め方にはいろいろな方法がありますが、やまぶきでは、「文字キーを押した時点を0、その文字キーを放すか別のキーを押した時点を100として、どれくらいの時間範囲を同時打鍵と判定される時間範囲とするかユーザーに設定してもらう」という方法をとりました。
たとえば、「親指シフトが同時打鍵と判定される時間範囲」を60に設定したとすると、文字キーが押されてからそのキーが放されるか別のキーが押されるまでの時間の前半60%以内で親指シフトキーが押されていれば、同時打鍵とみなされてその文字にシフトがかかります。