# 鼠须管配置与排障
## 当前状态
- 主题说明:本主题汇编 Codex.Labs 下关于本机 Rime / 鼠须管的配置入口、动态输入、输入源异常、微信兼容、重启恢复和动态词频维护记录。
- 来源记录数:6
- 时间范围:2026-07-04 至 2026-07-10
- 最新记录:`26.0710-Codex.Labs.鼠须管配置-动态词频.md`
- 当前稳定判断:本机鼠须管主要方案为 `cong_kuaima`;用户级配置入口在 `/Users/ar/Library/Rime`;不要直接修改 `build/` 生成文件或用户词典数据库。
## 最近结论摘录
- 2026-07-10 已为 `cong_kuaima` 显式开启用户词典动态词频:`translator/enable_user_dict: true`。
- 动态词频源配置写在 `/Users/ar/Library/Rime/cong_kuaima.custom.yaml`,生成配置应在 `/Users/ar/Library/Rime/build/cong_kuaima.schema.yaml` 中出现 `enable_user_dict: true`。
- 不手动编辑 `/Users/ar/Library/Rime/cong_kuaima.userdb`;它由 Rime 运行时根据用户选择维护。
- 手动添加固定自定义词仍只改 `/Users/ar/Library/Rime/cong_kuaima.my.dict.yaml`。
- 重启后鼠须管完全不能用时,已确认关键层面是 macOS 输入源运行态、`HIToolbox` 和用户目录服务 `dsAttrTypeNative:inputSources`;恢复时应同时处理 TIS 运行态、偏好和目录服务残留。
- 微信兼容问题采用应用级 `inline: true` 最小修复,只覆盖微信主程序及辅助进程 bundle id。
## 核心事实补录
### 配置路径与边界
| 用途 | 推荐位置 | 不要改哪里 | 证据来源 |
| --- | --- | --- | --- |
| 当前快码方案用户补丁 | `/Users/ar/Library/Rime/cong_kuaima.custom.yaml` | `/Users/ar/Library/Rime/build/cong_kuaima.schema.yaml` | `26.0706-Codex.Labs.鼠须管动态输入-idate-inow.md`、`26.0710-Codex.Labs.鼠须管配置-动态词频.md` |
| 固定自定义词 | `/Users/ar/Library/Rime/cong_kuaima.my.dict.yaml` | `cong_kuaima.dict.yaml`、`cong_kuaima.userdb` | `26.0704-Codex.Labs.电脑使用索引-鼠须管词库位置.md` |
| 鼠须管应用级规则 | `/Users/ar/Library/Rime/squirrel.custom.yaml` | 鼠须管安装包、快码词库 | `26.0708-Codex.Labs.鼠须管输入异常-微信兼容.md` |
| 运行时用户词典 | `/Users/ar/Library/Rime/cong_kuaima.userdb` | 不手动编辑 | `26.0710-Codex.Labs.鼠须管配置-动态词频.md` |
| 本机文件位置总索引 | `/Users/ar/Documents/Codex.Labs/00-doc-index@m1648.md` | 不晋升为全局规则 | `26.0704-Codex.Labs.电脑使用索引-鼠须管词库位置.md` |
### 动态日期时间输入
已确认使用 Lua processor + Lua translator,而不是旧词库中的 `$ddcmd(...)`。关键快照:
- Lua 文件:`/Users/ar/Library/Rime/rime.lua`
- 方案补丁:`/Users/ar/Library/Rime/cong_kuaima.custom.yaml`
- 生成配置:`/Users/ar/Library/Rime/build/cong_kuaima.schema.yaml`
- 识别模式:`^(idate|inow|irq|ishij|ishijian)$`
- 预期输出:
- `idate` -> `YYYY-MM-DD`
- `inow` -> `HH:MM`
- `irq` -> `YY.MMDD`
- `ishij` -> `YY.MMDD-HHMM`
- `ishijian` -> `YY.MMDD-HHMMSS`
- 边界:`ishij` 是 `ishijian` 的前缀,打完 `ishij` 后需要按空格确认;`ishijian` 在最后一个 `n` 输入后自动上屏。
### 微信 inline 兼容规则
`/Users/ar/Library/Rime/squirrel.custom.yaml` 的 `patch:` 下应包含:
```yaml
app_options/com.tencent.xinWeChat:
inline: true
app_options/com.tencent.flue.WeChatAppEx:
inline: true
app_options/com.tencent.flue.helper.renderer:
inline: true
app_options/com.tencent.flue.WeApp:
inline: true
```
边界:只影响微信相关 App / Helper 的展示和上屏路径,不影响快码词库、动态日期时间、系统输入源列表或其他 App。
### 动态词频开关
`/Users/ar/Library/Rime/cong_kuaima.custom.yaml` 的 `patch:` 下应包含:
```yaml
translator/enable_user_dict: true
```
验证证据来自 2026-07-10 原始记录:源配置和生成配置均已命中 `enable_user_dict`;YAML 语法检查通过;`rime_deployer --build` 与 `Squirrel --reload` 已执行。
### macOS 输入源恢复基线
已确认不要把输入源清到只剩 Rime。应保留 `U.S.` / `ABC` 作为英文兜底,因为第三方 IMK 输入法在某些窗口或安全输入场景可能无法稳定接管。
关键状态目标:
- `im.rime.inputmethod.Squirrel.Hans` 存在,`enabled=1`,`selectable=1`。
- `Squirrel` 进程运行:`/Library/Input Methods/Squirrel.app/Contents/MacOS/Squirrel`。
- 用户目录服务 `dsAttrTypeNative:inputSources` 不保留 `SCIM` / `SCIM.ITABC` 拼音残留,只保留 `U.S.`、`Squirrel` 和 `Squirrel.Hans`。
- 失效开发残留 `com.shanghai3168.privatevoicedictation.inputmethod.round0` 已从用户级第三方输入法启用列表移除。
- `/Library/Input Methods/PrivateVoiceIMK.app` 曾作为残余风险存在:签名可验证但 `spctl --assess` rejected;如果问题复现,应由用户提供管理员密码后可回滚移出系统输入法目录。
## 来源索引
| 日期 | 原始会话路径 | 主题内用途 |
| --- | --- | --- |
| 2026-07-04 | `../26.0704-Codex.Labs.电脑使用索引-鼠须管词库位置.md` | 记录固定自定义词唯一推荐修改位置和本机文件索引原则。 |
| 2026-07-06 | `../26.0706-Codex.Labs.鼠须管动态输入-idate-inow.md` | 记录 Lua 动态日期时间输入实现、验证和回滚命令。 |
| 2026-07-07 | `../26.0707-Codex.Labs.鼠须管输入异常-输入源注册清理.md` | 记录输入源注册污染、失效 PrivateVoice 输入法残留和 U.S. 兜底原则。 |
| 2026-07-08 | `../26.0708-Codex.Labs.鼠须管输入异常-微信兼容.md` | 记录微信 bundle id 与 `inline: true` 应用级兼容规则。 |
| 2026-07-08 | `../26.0708-Codex.Labs.鼠须管输入异常-重启后恢复.md` | 记录重启后 Squirrel 未启动、HIToolbox / dscl / TIS 三层恢复判断。 |
| 2026-07-10 | `../26.0710-Codex.Labs.鼠须管配置-动态词频.md` | 记录 `cong_kuaima` 用户词典动态词频开关和验证证据。 |
## 时间线
### 2026-07-04 - 26.0704-Codex.Labs.电脑使用索引-鼠须管词库位置.md
建立 `/Users/ar/Documents/Codex.Labs/00-doc-index@m1648.md` 作为本机文件位置总索引,首条记录明确鼠须管 / Rime 自定义词语只改 `/Users/ar/Library/Rime/cong_kuaima.my.dict.yaml`。该索引只记录个人本机文件位置,不自动晋升为全局规则。后续可用 `rg "关键词" /Users/ar/Documents/Codex.Labs/00-doc-index@m1648.md` 检索。
### 2026-07-06 - 26.0706-Codex.Labs.鼠须管动态输入-idate-inow.md
为 `cong_kuaima` 加入动态日期时间能力。确认本机鼠须管自带 `librime-lua.dylib`,放弃 `$ddcmd(...)`,新增 `/Users/ar/Library/Rime/rime.lua` 与 `/Users/ar/Library/Rime/cong_kuaima.custom.yaml`。通过 Lua processor 拦截前缀,避免快码无重码自动上屏提前提交;通过 Lua translator 输出 `idate`、`inow`、`irq`、`ishij`、`ishijian`。验证包括生成 schema 包含 `lua_processor@date_time_processor`、`lua_translator@date_time_translator`,日志加载 Lua 插件,`luac -p /Users/ar/Library/Rime/rime.lua` 通过。
### 2026-07-07 - 26.0707-Codex.Labs.鼠须管输入异常-输入源注册清理.md
排查“已选中但突然不能用”、菜单灰色或重复项。结论不是词库、Lua 动态日期或 Squirrel 签名问题,而是 macOS 输入源注册状态混入失效 / 开发残留输入法,影响 `TextInputMenuAgent`。已清理 `com.shanghai3168.privatevoicedictation.inputmethod.round0`,注销项目 build 目录的 `PrivateVoiceRound0InputMethod.app` 注册,并恢复 `U.S.` 键盘布局作为英文兜底。残余风险是 `/Library/Input Methods/PrivateVoiceIMK.app` 仍在系统输入法目录中,如复现应可回滚移出。
### 2026-07-08 - 26.0708-Codex.Labs.鼠须管输入异常-微信兼容.md
排查微信窗口无法使用 Rime / 鼠须管。确认微信相关 bundle id:`com.tencent.xinWeChat`、`com.tencent.flue.WeChatAppEx`、`com.tencent.flue.helper.renderer`、`com.tencent.flue.WeApp`。在 `/Users/ar/Library/Rime/squirrel.custom.yaml` 中为这些 bundle id 添加 `inline: true`,重新部署后 `/Users/ar/Library/Rime/build/squirrel.yaml` 出现对应规则。文件和部署层面完成,真实微信输入框仍需用户手动测试。
### 2026-07-08 - 26.0708-Codex.Labs.鼠须管输入异常-重启后恢复.md
重启后鼠须管仍完全不能用。检查发现 `Squirrel` 没有运行,当前选中输入源回到 `U.S.`,但 `im.rime.inputmethod.Squirrel.Hans` 在 TIS 全量列表中存在且可选。进一步确认 `HIToolbox` 会被 `cfprefsd`、TextInput 服务和用户目录服务记录重写,`dsAttrTypeNative:inputSources` 中残留 `SCIM` 会导致 `SCIM` 或 `U.S.` 抢回输入源。恢复动作包括备份 `HIToolbox` 和 dscl 记录、清理 `SCIM` 残留、启用 `U.S.` 兜底和 `Squirrel.Hans`、拉起 Squirrel、重启 `TextInputMenuAgent` 和 `ControlCenter`。验证显示 Squirrel 日志和统一日志均有激活 / 插入文本事件。
### 2026-07-10 - 26.0710-Codex.Labs.鼠须管配置-动态词频.md
确认 Rime 支持用户词典 / 动态调频,本机已有 `/Users/ar/Library/Rime/cong_kuaima.userdb` 且日志有更新。为当前 `cong_kuaima` 方案在 `/Users/ar/Library/Rime/cong_kuaima.custom.yaml` 新增 `translator/enable_user_dict: true`,用 `rime_deployer --build` 重建并用 `Squirrel --reload` 重新加载。验证生成后的 `/Users/ar/Library/Rime/build/cong_kuaima.schema.yaml` 已包含 `enable_user_dict: true`。范围只影响 `cong_kuaima`,不改基础词库、个人词库和运行时 userdb。