背景
先日購入した Uni V4 で、英語ステノの練習をしています。

ステノ (stenography) とは速記のことで、複数キーの同時押し (ストローク) を活かして多数の文字を瞬時に入力できるシステムです。元々は数百万円台の専用機に実装されていたようですが、 Open Steno Project のおかげで庶民の手にも届くようになりました。
ステノユーザはインターネットにもほぼいないので、これを習得すれば突出できると思います。あわよくば技術同人誌なども書けると嬉しいです。
今回はステノの練習に先立って、周辺環境の構築に関する取り組みを紹介します。
Yak shaving
ブログ上のキーボード表示
Uni のストロークを html のカスタム要素して表示できるようにしました。たとえば KAT (cat) というストロークは、次のように表示されます:
これは steno-outline
要素として実装されており、 html grid として描画されます:
<steno-outline>KAT</steno-outline>
練習用ツールの作成
ステノは Typey Type というサイトで練習できます。毎回レッスンデータを入力するのが面倒だったため、コマンドラインで練習するためのツールを作成中です (plover-drills
) 。

画面は Python の Textual ライブラリで表示しています。キーボード部分も Textual での表示に移行したいと思います。
plover-flake
の導入
ステノの実装は Plover というソフトウェアです:
Nix 環境では、 nixpkgs 上の plover
の実行に失敗しました。 plover-flake の方からインストールすると導入に成功しました。
plover-flake
にいくつか修正すべき点があったため、取り組んでいます。
plover.cfg
の生成
plover-flake
の home-manager module は、 Plover の設定ファイル (plover.cfg
) を生成し、 symlink を配置してくれます。 plover.cfg
は次のような ini ファイルです:
[Gemini PR]
baudrate = 9600
bytesize = 8
parity = N
port = /dev/serial/by-id/usb-StenoKeyboards_The_Uni-if02
stopbits = 1
timeout = 2.0
[Logging Configuration]
log_file = strokes.log
[Machine Configuration]
auto_start = True
machine_type = Gemini PR
[Output Configuration]
undo_levels = 100
[Plugins]
enabled_extensions = ["plover_lapwing_aio","plover_auto_reconnect_machine","plover_console_ui"]
[Startup]
[System]
name = Lapwing
[System: Lapwing]
dictionaries = [{"enabled": false, "path": "user.json"}, {"enabled": true, "path": "jeff-phrasing.py"}, {"enabled": true, "path": "abby-left-hand-modifiers.py"}, {"enabled": true, "path": "emily-modifiers.py"}, {"enabled": true, "path": "emily-symbols.py"}, {"enabled": true, "path": "lapwing-movement.modal"}, {"enabled": true, "path": "lapwing-commands.json"}, {"enabled": true, "path": "lapwing-numbers.json"}, {"enabled": true, "path": "lapwing-uk-additions.json"}, {"enabled": true, "path": "lapwing-proper-nouns.json"}, {"enabled": true, "path": "lapwing-base.json"}]
[Translation Frame]
opacity = 100
通常の ini ファイルとは異なり、値部分が JSON となっているキーがあります。これへの対応の PR を作成しました。
macOS のサポート確認 (未)
plover.cfg
の生成パスが ~/.config/plover/plover.cfg
になっており、 macOS が考慮されていません。修正用 PR の動作確認のため、 Mac Mini を購入しました 。到着待ちです。
/nix/store
中の辞書データを参照する (未)
ステノ辞書データのダウンロードや、設定ファイル (plover.cfg
) への取り込みまで plover-flake
で実行可能にしたいと思います。
Wayland サポート (未)
Wayland でのみ psutil
パッケージが必要になりそうです。謎のエラーが出ている人もいて、 QT6 のインストールが必要だったりする……? これは綺麗に解決するのが難しそうです。
まとめ
英語ステノを快適に練習し、ブログで紹介できるようになりました。このキーボード表示は結構お気に入りです:
plover-flake
には引き続き PR を出して行きたいと思います。