Skip to content

Commit 3a7fe56

Browse files
committed
documentation
1 parent a56e9c9 commit 3a7fe56

4 files changed

Lines changed: 83 additions & 33 deletions

File tree

ConfigParams.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ MacTcodeは`config.json`形式の設定ファイルを使用してカスタマ
103103
"system": {
104104
"recentTextMaxLength": 20,
105105
"excludedApplications": ["com.apple.loginwindow", "com.apple.SecurityAgent"],
106+
"disableOneYomiApplications": ["com.google.Chrome"],
107+
"syncStatsInterval": 1200,
106108
"keyboardLayout": "dvorak",
107109
"keyboardLayoutMapping": [
108110
"1", "2", "3", "4", "5", "6", "7", "8", "9", "0",
@@ -116,6 +118,14 @@ MacTcodeは`config.json`形式の設定ファイルを使用してカスタマ
116118

117119
- **`recentTextMaxLength`**: 最近入力したテキストの保存最大文字数(1-100)
118120
- **`excludedApplications`**: T-Code処理を無効化するアプリケーションのBundle IDリスト
121+
- **`disableOneYomiApplications`**: 1文字の読みを無効化するアプリケーションのBundle IDリスト
122+
- Google Chromeなど、一部のアプリケーションでは1文字の読みでの変換が正しく動作しない場合があります
123+
- このリストに含まれるアプリケーションでは、最低2文字の読みが必要になります
124+
- **`syncStatsInterval`**: 統計情報をファイルに出力する間隔(秒単位)
125+
- デフォルト値: 1200(20分)
126+
- 0に設定すると統計ファイルの出力が無効になります
127+
- 統計情報は入力メソッド切り替え時やアプリケーション終了時に自動的に保存されます
128+
- 詳細はREADME.mdの「統計情報の記録」セクションを参照してください
119129
- **`keyboardLayout`**: キーボードレイアウトの名前("dvorak", "qwerty"等)
120130
- **`keyboardLayoutMapping`**: 40個のキー配列マッピング(文字列配列)
121131
- **`logEnabled`**: デバッグログの出力有効/無効

README.md

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ macOS用のT-Codeが使えるIMとして[MacUIM](https://github.com/e-kato/macui
2222
- [x] 全角入力モード (v0.1.4.1)
2323
- [x] 配布パッケージ、notarization
2424
- [x] configファイルサポート
25+
- [x] 統計情報の記録
2526
- [ ] パスワード入力時はパススルーする
2627
- [ ] メニュー(config再読み込みとかテンプレ生成とか)
2728
- [ ] 1行入力(T-Code変換をしつつバッファにため、一気に入力するモード)
@@ -49,7 +50,8 @@ MacTcodeは設定ファイルを使用してカスタマイズできます。
4950

5051
### 設定ファイルの場所
5152

52-
設定ファイルは以下の場所に配置してください:
53+
54+
設定ファイルはsandboxに対応したアプリケーションサポートディレクトリに配置してください。通常は以下の場所にあると思います。
5355
```
5456
~/Library/Containers/jp.mad-p.inputmethod.MacTcode/Data/Library/Application Support/MacTcode/config.json
5557
```
@@ -84,6 +86,63 @@ MacTcodeを一度起動するとコピー先ディレクトリが作られます
8486
- **辞書ファイルパス**: 部首変換辞書のファイルパス
8587
- **ログ出力**: デバッグログの有効/無効
8688
- **バックスペース動作**: 変換時のバックスペース設定
89+
- **統計情報の記録**: 入力統計の自動記録(詳細は下記参照)
90+
91+
## 統計情報の記録
92+
93+
MacTcodeは入力操作の統計情報を自動的に記録します。
94+
95+
### 統計ファイルの場所
96+
97+
統計情報は `tc-record.txt` というファイルに追記されます。このファイルは設定ファイルと同じディレクトリにあります。
98+
99+
### 記録される統計情報
100+
101+
統計ファイルには以下の情報が記録されます:
102+
103+
```
104+
2025-10-19 14:30:45 文字: 1234 部首: 45(3%) 交ぜ書き: 23(1%) 機能: 12(0%)
105+
```
106+
107+
各項目の意味:
108+
- **日時**: 統計が記録された日時
109+
- **文字**: 基本文字の入力回数(T-Code基本入力)
110+
- **部首**: 部首変換の実行回数と全体に占める割合(%)
111+
- **交ぜ書き**: 交ぜ書き変換の実行回数と全体に占める割合(%)
112+
- **機能**: キーマップ内に割り当てられている機能(部首/交ぜ書き変換のトリガを含む)の実行回数と全体に占める割合(%)
113+
114+
### 統計出力のタイミング
115+
116+
統計情報は以下のタイミングで自動的に出力されます:
117+
118+
1. **定期的な出力**: `syncStatsInterval`(デフォルト1200秒=20分)で設定した間隔が経過し、入力メソッドを切り替えたとき
119+
2. **アプリケーション終了時**: MacTcodeが終了するとき
120+
3. **シグナル受信時**: プロセスがSIGINTまたはSIGTERMを受信したとき
121+
122+
### 統計出力の設定
123+
124+
設定ファイル(`config.json`)の`system`セクションで統計出力を制御できます:
125+
126+
```json
127+
"system": {
128+
"syncStatsInterval": 1200
129+
}
130+
```
131+
132+
- **`syncStatsInterval`**: 統計出力の間隔(秒単位)
133+
- デフォルト値: 1200(20分)
134+
- **0に設定すると統計ファイルへの出力が無効になります**
135+
- 正の値: 指定した秒数ごとに統計を出力
136+
137+
統計を記録したくない場合は、`syncStatsInterval`を0に設定してください:
138+
139+
```json
140+
"system": {
141+
"syncStatsInterval": 0
142+
}
143+
```
144+
145+
詳細な設定方法については[ConfigParams.md](ConfigParams.md)を参照してください。
87146

88147
## 参考文献
89148

TODO.md

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,12 @@
1-
# 入力統計をファイルに出力
1+
✅ 完了: 以下のドキュメントを更新しました
22

3-
- 統計情報をカウントするため、大域変数を4つ用意する。すべてInt型
4-
- basicCount
5-
- bushuCount
6-
- mazegakiCount
7-
- functionCount
8-
- totalActionCount
9-
- 以下の場合にカウントを増やす
10-
- Command.textの処理時
11-
- basicCountを1増やす
12-
- totalActionCountを1増やす
13-
- PostfixBushuActionの処理時
14-
- bushuCountを1増やす
15-
- PostfixMazegakiActionの処理時
16-
- mazegakiCountを1増やす
17-
- Command.actionの処理時
18-
- functionCountを1増やす
19-
- totalActionCountを1増やす
20-
- SIGINT, SIGTERMを受け取った場合、統計情報をファイルの末尾に追記する
21-
- ファイル名は `tc-record`
22-
- ファイルを置くディレクトリは applicationSupportDirectory/MacTcode とする
23-
- UserConfigsクラスでconfig.jsonの場所を計算しているので、同様の方法とする
24-
- ファイルおよびディアクトリが存在しなければ作成する
25-
- 追記する内容は1行
26-
- `\(date)文字: \(basicCount) 部首: \(bushuCount)(\(bushuPercent)) 交ぜ書き: \(mazegakiCount)(\(mazegakiPercent)%) 機能: \(functionCount)(\(functionPercent)%)`
27-
- dateは、書き出し時の日時をローカル時刻で `YYYY-mm-dd HH:MM` 形式で表現したもの
28-
- basicCount, bushuCount, mazegakiCount, functionCountはそれぞれ同名の大域変数の値を `%4d` 形式で桁そろえしたもの
29-
- bushuPercent, mazegakiPercent, functionPercentはそれぞれ、対応するCount変数の値のtotalActionCountを分母とした割合をパーセントで表現した整数部分
30-
- SIGINT, SIGTERMのハンドリングは以下の方法で登録したハンドラで行う
31-
- signalによって、デフォルトハンドリングを SIG_IGN する
32-
- DispatchSource.makeSignalSourceを用いてハンドラを登録する
3+
ConfigParams.md:
4+
- syncStatsIntervalの設定項目を追加
5+
- disableOneYomiApplicationsの設定項目を追加
6+
7+
README.md:
8+
- 「統計情報の記録」セクションを新規追加
9+
- 統計ファイルの場所: ~/Library/Application Support/MacTcode/tc-record.txt
10+
- 記録される統計情報の意味(文字、部首、交ぜ書き、機能)
11+
- 統計出力のタイミング
12+
- syncStatsIntervalを0に設定すると統計ファイルは出力されないこと

sample-config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@
7575
";", "q", "j", "k", "x", "b", "m", "w", "v", "z"
7676
],
7777
"logEnabled" : false,
78-
"recentTextMaxLength" : 20
78+
"recentTextMaxLength" : 20,
79+
"syncStatsInterval" : 1200
7980
},
8081
"ui" : {
8182
"backspaceDelay" : 0.05,

0 commit comments

Comments
 (0)