您的 chezmoi 源目录位于:~/.local/share/chezmoi
- 源目录 (Source State):位于
~/.local/share/chezmoi,这是被 Git 管理的代码仓库。 - 目标状态 (Target State):您的家目录
~。 - 命名规则:
dot_前缀:对应目标位置的隐藏文件(点文件)。例如dot_zshrc->~/.zshrc。readonly_前缀:应用后在目标位置为只读。empty_前缀:即使源文件为空,也会在目标位置创建该文件。
| 操作 | 命令 | 说明 |
|---|---|---|
| 应用更新 | chezmoi apply |
将源目录的配置同步到家目录(最常用) |
| 添加文件 | chezmoi add <文件> |
将现有的配置文件纳入 chezmoi 管理 |
| 编辑源文件 | chezmoi edit <文件> |
编辑源目录中的文件,保存后可自动应用 |
| 查看差异 | chezmoi diff |
查看源目录与当前家目录配置的区别 |
| 进入源目录 | chezmoi cd |
直接进入 ~/.local/share/chezmoi 所在的 Shell |
| 状态查询 | chezmoi status |
查看哪些文件已被修改且尚未应用 |
场景 A:修改现有配置
- 执行
chezmoi edit ~/.zshrc。 - 编辑并保存(这会直接修改源目录里的
dot_zshrc)。 - 执行
chezmoi apply将更改同步到系统。
场景 B:添加新配置(如新装了软件)
- 执行
chezmoi add ~/.config/new_tool/config.toml。 - 进入源目录:
chezmoi cd。 - 提交更改:
git add . && git commit -m "Add new_tool config" && git push。
场景 C:在另一台机器上同步
- 安装
chezmoi。 - 初始化:
chezmoi init <您的仓库URL>。 - 查看差异:
chezmoi diff。 - 应用:
chezmoi apply。
- Shell:
zsh(.zshrc,.p10k.zsh)。 - 编辑器:
nvim(完整的插件配置)。 - 终端与环境:
ghostty,zellij,niri,yazi。 - Git:
.gitconfig已通过dot_gitconfig管理。
对于 SSH 密钥等敏感文件,建议使用 rage 进行加密:
- 配置:在
~/.config/chezmoi/chezmoi.toml中指定加密方式:encryption = "age" [age] identity = "~/.config/chezmoi/key.txt" recipient = "age1..." # 您的公钥
- 添加加密文件:使用
--encrypt参数:chezmoi add --encrypt ~/.ssh/id_rsa - 注意:在源目录中,该文件会以
.age后缀存储。
避免在配置文件中写死密码,利用 bw CLI 动态获取:
- 基本语法:在
.tmpl模板文件中使用:password = {{ (bitwarden "item" "my-password-uuid").login.password }} - 工作流:
- 确保已安装
bw且已登录 (bw login)。 - 在应用配置前执行
bw unlock获取会话密钥。
- 确保已安装
- 增量添加目录:
chezmoi add ~/.config/xxx。 - 忽略文件:修改
.chezmoignore排除不需要同步的文件。 - 模板功能:使用
.tmpl后缀配合{{ .chezmoi.os }}等变量。