Rime 输入法配置仓库。追踪 update 不会覆盖的本地配置层,支持跨设备复用。
- 上游:
https://github.com/amzxyz/rime-wanxiang - 前端配置:
cmd/frontends.yaml(frontend = Rime 的 frontend/壳子)
首次使用前必须创建配置文件:
cp cmd/frontends.yaml.tmpl cmd/frontends.yaml编辑 cmd/frontends.yaml,设置各前端的目标目录(target_dir):
frontends:
squirrel:
active: auto # macOS 上自动运行
target_dir: ~/Library/Rime
hamster3:
active: true # 强制运行(可与 squirrel 同时使用)
target_dir: ~/Library/Mobile Documents/.../rime-wanxiangactive 标志说明:
auto(默认):系统检测到该平台时自动运行true:强制运行(无论系统检测,可多选)false:禁用
# 首次使用(初始化 + 更新)
./cmd/update.sh --init
# 日常更新(自动处理所有 active frontends)
./cmd/update.sh依赖(Scoop):
scoop install cwrsync yq jq unzip curl配置(cmd/frontends.yaml,Windows 下 target_dir 只接受 Git Bash 路径风格 /c/...):
frontends:
weasel:
active: auto
# Weasel 默认目录:%APPDATA%\\Rime
target_dir: /c/Users/<User>/AppData/Roaming/Rime运行建议(先 dry-run 看日志):
./cmd/update.sh --init --debug
./cmd/update.sh --dry-run --debug
./cmd/update.sh --debugupdate.ps1 是 update.sh 的 PowerShell 7 移植版,无需 rsync,用原生文件操作替代。
依赖:PowerShell 7+ 和 yq
scoop install pwsh yq配置(cmd/frontends.yaml,target_dir 使用 /c/... 或 C:\... 均可):
frontends:
weasel:
active: auto
target_dir: /c/Users/<User>/.config/rime运行:
# 首次使用
pwsh cmd/update.ps1 -Init
# 日常更新
pwsh cmd/update.ps1
# 预览 + 调试
pwsh cmd/update.ps1 -DryRun
pwsh cmd/update.ps1 -DryRun -Delete如需静默部署(无 UI 弹窗),可在 cmd/frontends.yaml 中配置 redeploy_cmd:
frontends:
weasel:
# 静默部署示例(需根据实际安装路径调整 WeaselDeployer.exe 位置)
redeploy_cmd: 'powershell.exe -Command "Start-Process -FilePath \"D:\\Applications\\Scoop\\apps\\weasel\\current\\WeaselDeployer.exe\" -ArgumentList \"/deploy\" -WindowStyle Hidden"'注意: 需将 WeaselDeployer.exe 路径替换为实际安装位置。
# 预览要删除的文件(清理废弃配置)
./cmd/update.sh --dry-run --delete
# 执行清理
./cmd/update.sh --delete
# 只更新不同步(不触发 Rime 用户词库同步)
./cmd/update.sh --no-sync
# 更新后同步用户词库到云端
./cmd/update.sh --cloud-syncmacOS 作为中转站,双向同步 iCloud ↔ OneDrive,实现跨平台用户词库共享:
Windows (weasel) ←→ OneDrive ←→ macOS (squirrel) ←→ iCloud ←→ iOS (hamster/hamster3)
依赖: brew install unison
配置(cmd/frontends.yaml):
userdict_sync:
icloud: ~/Library/Mobile Documents/com~apple~CloudDocs/RimeUserSync
onedrive:
darwin: ~/Library/CloudStorage/OneDrive-Personal/Apps/RimeSync
windows: /c/Users/<User>/OneDrive/Apps/RimeSync使用:
# 预览同步内容
./cmd/sync-userdict.sh --dry-run
# 执行双向同步
./cmd/sync-userdict.sh
# 详细输出
./cmd/sync-userdict.sh --verbosecustom_phrase_user.txt 的路径在 wanxiang*.custom.yaml 中通过 custom_phrase/user_dict 指定。用户需根据本地 Rime 用户目录调整路径,例如:
- macOS (Squirrel):
~/Library/Rime/custom_phrase_user.txt - Windows (Weasel / Git Bash):
/c/Users/<User>/AppData/Roaming/Rime/custom_phrase_user.txt(对应%APPDATA%\Rime\custom_phrase_user.txt) - iOS (Hamster): 通过 app 内部文件管理访问
--sync:触发 Rime 用户词库同步(默认开启)--no-sync:只更新配置文件,不触发用户词库同步
*.custom.yaml:schema patch(通用层)custom_phrase.txt:自定义词组示例(引导用户复制定制)cmd/common/default.custom.yaml:通用 UI patchcmd/<ui>/*.custom.yaml:UI 特定 patchcmd/<ui>/{installation.yaml,user.yaml}:初始化模板cmd/<ui>/update-rsync.filter:同步过滤规则cmd/<ui>/bootstrap-rsync.filter:初始化过滤规则
custom_phrase_user.txt:用户自定义词组(基于 custom_phrase.txt 复制定制)
cmd/frontends.yaml:用户本地配置(从 frontends.yaml.tmpl 复制)- 上游文件(通过
update.sh/update.ps1可重建) *.userdb/用户词库数据库build/(下载缓存、marker、stage 等)
┌─────────────────────────────────────────────────────────────────────────────┐
│ build_stage_dir() │
│ (per frontend: build/stage/<frontend>/) │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 1. Base Layer: build/upstream/ (下载自 GitHub) │
│ - schema (rime-wanxiang-base.zip) │
│ - dicts (base-dicts.zip) │
│ - grammar (wanxiang-lts-zh-hans.gram) │
└─────────────────────────────────────────────────────────────────────────────┘
│
│ rsync -a
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 2. Local Layer: 仓库追踪文件(覆盖 Base) │
│ - custom_phrase_user.txt │
│ - *.custom.yaml (schema patches) │
└─────────────────────────────────────────────────────────────────────────────┘
│
│ rsync -a (覆盖)
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 3. UI Overlay Layer: 前端特定配置(覆盖 Local) │
│ - cmd/common/default.custom.yaml │
│ - cmd/<ui_layer>/*.custom.yaml │
│ (例: cmd/squirrel/squirrel.custom.yaml) │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Result: build/stage/<frontend>/ │
│ (完整合并结果,准备 rsync 到 target) │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ rsync_stage_to_target() │
│ ────────────────────────── │
│ rsync -a --filter="merge cmd/<frontend>/update-rsync.filter" │
│ build/stage/<frontend>/ -> <target_dir>/ │
│ │
│ 过滤规则示例 (cmd/squirrel/update-rsync.filter): │
│ + *.custom.yaml # 只同步自定义 schema patch │
│ + *.txt # 自定义词组文件 │
│ - * # 排除其他(避免覆盖用户自定义) │
└─────────────────────────────────────────────────────────────────────────────┘
AI-specific instructions and context are in AGENTS.md.