macOS用のT-Codeが使えるIMとしてMacUIMを使っていましたが、永らく更新されていません。 ソースコードは公開されているものの、自分でビルドするのは成功していません。saryとかの用意が難しく…(Ruby 1.9.3をSonomaに入れるとか難しい)。
そこで、単純なT-Codeだけのドライバなら作っちゃえばいいんじゃね? ということで始めました。
おおむね優先度順
- 基本文字の入力
- postfix部首変換
- postfix交ぜ書き変換
- 変換候補選択画面
- 送りがなサポート
- 全角入力モード (v0.1.4.1)
- 配布パッケージ、notarization
- configファイルサポート
- 統計情報の記録
- パスワード入力時はパススルーする
- メニュー(config再読み込みとかテンプレ生成とか)
- 1行入力(T-Code変換をしつつバッファにため、一気に入力するモード)
- (3ストローク以上の基本文字サポート)
- (仮想鍵盤)
- ユーザー設定でログをオンにすると(デフォルトはオフ)、NSLogに全ストロークが出力されます。プライバシー注意!
- GitHubのリリースタグにdmgがある場合は、開いて以下を実施してください
sudo cp -r MacTcode.app /Library/Input\ Methods/- アップデートの場合はまず消してから
- dmgがない場合はごめんなさい
- ログアウトしてログインし直すと、入力ソースとして選択できるようになります
- 一部アプリに対して部首交換、交ぜ書き変換する場合、バックスペースを送るためにアクセシビリティ機能を使っています
- システム設定 → プライバシーとセキュリティー → アクセシビリティ でMacTcodeに制御を許可してください
MacTcodeは設定ファイルを使用してカスタマイズできます。 ConfigParams.mdも参考にしてください。
設定ファイルはsandboxに対応したアプリケーションサポートディレクトリに配置してください。通常は以下の場所にあると思います。
~/Library/Containers/jp.mad-p.inputmethod.MacTcode/Data/Library/Application Support/MacTcode/config.json
MacTcodeを一度起動するとディレクトリが作られます。
設定ファイルはJSON形式で、以下の5つのカテゴリーに分かれています:
- mazegaki: 交ぜ書き変換の設定
- bushu: 部首変換の設定
- keyBindings: キーバインドの設定
- ui: ユーザーインターフェースの設定
- system: システム動作の設定
プロジェクトルートのsample-config.jsonファイルに完全なサンプル設定があります。このファイルをコピーして使用してください:
cp sample-config.json ~/Library/Containers/jp.mad-p.inputmethod.MacTcode/Data/Library/Application\ Support/MacTcode/config.jsonMacTcodeを一度起動するとコピー先ディレクトリが作られます。
- T-Code基本文字表: 40x40の文字マッピングテーブル
- 候補選択キー: 変換候補を選択するためのキー設定
- 除外アプリ: T-Code変換を無効化するアプリケーション
- 辞書ファイルパス: 部首変換辞書のファイルパス
- ログ出力: デバッグログの有効/無効
- バックスペース動作: 変換時のバックスペース設定
- 統計情報の記録: 入力統計の自動記録(詳細は下記参照)
MacTcodeは入力操作の統計情報を自動的に記録します。
統計情報は tc-record.txt というファイルに追記されます。このファイルは設定ファイルと同じディレクトリにあります。
統計ファイルには以下の情報が記録されます:
2025-10-19 14:30:45 文字: 1234 部首: 45(3%) 交ぜ書き: 23(1%) 機能: 12(0%)
各項目の意味:
- 日時: 統計が記録された日時
- 文字: 基本文字の入力回数(T-Code基本入力)
- 部首: 部首変換の実行回数と全体に占める割合(%)
- 交ぜ書き: 交ぜ書き変換の実行回数と全体に占める割合(%)
- 機能: キーマップ内に割り当てられている機能(部首/交ぜ書き変換のトリガを含む)の実行回数と全体に占める割合(%)
統計情報は以下のタイミングで自動的に出力されます:
- 定期的な出力:
syncStatsInterval(デフォルト1200秒=20分)で設定した間隔が経過し、入力メソッドを切り替えたとき - アプリケーション終了時: MacTcodeが終了するとき
- シグナル受信時: プロセスがSIGINTまたはSIGTERMを受信したとき
設定ファイル(config.json)のsystemセクションで統計出力を制御できます:
"system": {
"syncStatsInterval": 1200
}syncStatsInterval: 統計出力の間隔(秒単位)- デフォルト値: 1200(20分)
- 0に設定すると統計ファイルへの出力が無効になります
- 正の値: 指定した秒数ごとに統計を出力
統計を記録したくない場合は、syncStatsIntervalを0に設定してください:
"system": {
"syncStatsInterval": 0
}詳細な設定方法についてはConfigParams.mdを参照してください。
- https://github.com/ensan-hcl/azooKey-Desktop
- https://github.com/google/mozc/
- azooKey on macOSの開発知見
- 日本語入力を作るときに必要だった本
- Typut
MIT
