キーボードの特殊キーをトグル可能にする
背景
Brain は機種によって一部のキーの同時押しができたりできなかったりする。キーマトリクスを自力で読む PW-SH3 以降であればソフトの改善によって解決する線が有り得るが、PW-SH2 以前では仕様不明の MCU がキーを読んでいるため自力では読み取り処理を改善できない。Windows の固定キー機能のように、一回特殊キーを押すと押されっぱなしになるような実装が必要。
基本方針
Kernel space の準備
キーボードのドライバに手を入れて記号、Ctrl、Shift、Alt の4つのトグル状態を rootfs に export する
User space の準備
素のターミナルでトグル状態を出すために ncte をエンハンスしたラッパーを噛ます tmux が動いてなくても tmux set status-left を呼びっぱなしにする実装が可能であれば tmux 向けのヘルパーデーモンと統一できそう
tmux が子プログラムの表示サイズをオーバーライドする流れ
fdforkpty() を呼ぶ時に ws を渡してサイズ指定ありで pseudo terminal (pty) を操作するプロセスを fork する tmux のシグナル処理は proc_signal_cb() から関数ポインタ tp->signalcb を呼ぶ