進捗

QMK薙刀式の新しいロジックは、おおよそ実用的な実装ができた。

github.com

評価関数としては、キーごとに「他のキーとラップしている時間/キーを押している時間」を計算して、平均値を取っている。これで、今のところ調子良く打てている。

https://github.com/eswai/qmk_firmware/blob/a9f730ae3c9b96fcae48fb3d6e5a19ea10da370e/users/naginata_v15x/naginata_v15x.c#L1057

おもしろいのは前置シフトのみか、後置シフトも認めるかも、評価関数で処理できたことかな。2キー目がシフトだったら0点を返すとするだけで、後置シフトしない設定にできた。

https://github.com/eswai/qmk_firmware/blob/a9f730ae3c9b96fcae48fb3d6e5a19ea10da370e/users/naginata_v15x/naginata_v15x.c#L1039

今のところ4キーまでの組み合わせを評価している。5キー目を押すと変換を開始するが、例えば「もみもみ」みたいにシフトを押しながら5キー目に入る場合は、バッファを完全にクリアせず、シフトキーはバッファに残さないといけない。 5キーにバッファを拡張したいが、バッファをあふれた時の処理を先に煮詰めないといけないのかな。