先日Helixというキーボードを導入したのを紹介しました。
こうした自作キーボードはカスタマイズ性が高く、色々なキーシーケンスをプログラミングによって生成できるので、前から興味のあった親指シフトによる日本語入力を試してみようと思いました。色々調べていると蜂蜜小梅配列と言う配列が考案されているのを知りました 。
この配列をHelixへ適用するに当たっては、derui氏という方が公開しているキーマップを改造して、蜂蜜小梅配列を再現したファームウェアをHelixに書き込みました。ありがとうございます。
まだキー同時押しによる撥音、促音の省略入力など、蜂蜜小梅配列のキーマップを完全に再現していませんが、一通り入力ができるようになっています。下記にGistのリンクを貼っておきます。
さて、こうなってくるとタイピングの練習をする必要があるので、効率的に練習するためについでにタイピング練習プログラムも自作しました。 Python とCursesライブラリを使っています。
このモードではHelixは蜂蜜小梅配列に対応した一連のアルファベットのキーコードを送出するので、練習プログラム使用時は、Mac側ではかな固定入力で入力を行うことを前提としています。
$ python trainer.py usage: trainer.py [-h] [-u] [-m] [-l] [-H {left,right,both}] [-N] [-D] [-X] [-A] [-n N_CHARS] [-o OUT_DIR] [-f WORD_FILE] [-w] [-b] [--hilight] optional arguments: -h, --help show this help message and exit -u, --upper 上段を追加 -m, --middle 中段を追加 -l, --lower 下段を追加 -H {left,right,both}, --hands {left,right,both} 使用する手 -N, --enable-normal-shift 正シフトの音を追加 -D, --disable-no-shift シフトなしの音を追加しない -X, --enable-cross-shift クロスシフトの音を追加 -A, --all-chars すべての音を追加 -n N_CHARS, --number-chars N_CHARS 練習する語数 -o OUT_DIR, --output-dir OUT_DIR ログの出力先 -f WORD_FILE, --word-file WORD_FILE 単語ファイルのパス -w, --word-mode 単語モード -b, --blind キーボードに音を表示しない --hilight キーボードに対象をハイライト表示する
このプログラムでは左右それぞれの上中下段のキー配列ごとに練習をすることができます 練習用の単語を集めたテキストファイルを用意することで、そのファイルの中から練習対象となっている音のみを含んだ単語を問題文として表示することができます。
ネット上には 各種IME のためのフリーの辞書ファイルが公開されているのでそういったものを加工して使うといいと思います。
練習が終わると、練習にかかった時間や誤って打鍵した数などを、練習対象のキーごとに集計したJSON形式のログファイルを書き出します 。
Cursesはワイドキャラクターを直接入力できる関数get_wchar()が用意されているので採用しました。新卒で就職して以来 UNIX 系の環境で開発を続けてきましたが、Unix界で古くから存在するCursesライブラリを使う機会がなく、使うのは初めてでした。デスクトップのウインドウアプリや、SPAをつくるほどのものでもない場合には便利かもしれません。
まったく誰得なプログラムなんですが、練習プログラムのキーマップの設定の部分などを適宜変更すれば、他の親指シフト系配列やキーボードの機種でも使えるようになると思うので、forkして使ってみてください。
ちなみにこのブログの文章は Google 音声入力で書きましたw