打鍵コストを計測してみよう!
こういう感じでばーっと計測した打鍵コストの記録を正規化して AA で見せてくれるくんを作った↓
https://github.com/Terfno/KeyTransitionAnalyzer やってみてね
前提として可視化は物理配列を ANSI 配列 にしている。
計測自体は任意の配列の30キーでやれるようになっているので、analyzer の表示部分さえ書き換えれば拡張可能。
code:sh
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬───────────┐
│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backspace │
├─────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬────────┤
│ Tab │ 10 │ 06 │ 03 │ 07 │ 05 │ 08 │ 08 │ 05 │ 01 │ 07 │ │ │ \ │
├────────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴────────┤
│ Caps │ 09 │ 04 │ 07 │ 06 │ 07 │ 08 │ 08 │ 03 │ 01 │ 12 │ ' │ Enter │
├─────────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─────────────┤
│ Shift │ 20 │ 15 │ 16 │ 09 │ 07 │ 09 │ 03 │ 17 │ 13 │ 16 │ Shift │
├──────┬─────┴┬────┴─┬───┴─────┴─────┴─────┴─────┴─────┴─────┴┬────┴─┬───┴──┬──────┬──────┤
│ Ctrl │ Win │ Alt │ Space │ Alt │ Win │ Ctrl │ Menu │
└──────┴──────┴──────┴────────────────────────────────────────┴──────┴──────┴──────┴──────┘
Legend:
• Numbers shown are arrival time scores (1=fastest, 20=slowest)
• Scores represent time to reach that key as 2nd character
• Keys without scores show the key character
• Lower scores indicate faster arrival times
ロジック
30キーをベースにそこからランダムに 2 文字をピックして表示
たとえば s -> g のように表示される
s が入力されたらタイマースタート、g が入力されたらタイマーストップ
これを 50 回実施したら measure.rb は停止する
論理的には 870 パターンくらい計測しないと一通り計算できない
analyze.rb を実行して記録の tsv ファイルを選択すると↑のようなスコア可視化 AA が出力される
1つのファイルに870パターン分までしか記録できないけど、tsv ファイルを連結すれば評価自体はまとめて実施できるので、たくさんやって精度を上げることもできる
色つけとかはとくにやってないので雰囲気
結果の話
信頼性はいまいち。
すでに qwerty でそれなりの速度でタイピングできる人間がランダムに表示される 2 文字を叩いたときにかかる時間をベースに計算している
ので、たとえば O キーの位置が 01 スコアを持ってて強かったり、右手小指(;)のスコアは 12 と低いのに P は 07 と高い、みたいな現象が起きている
log
実際に計測してみる mini app を実装してみた (2025-07-04)