本篇文章发布4个月后补:
作者新添了一台mac,于是集齐了三台分别配有win,archlinux,macos系统的电脑,配置文件的管理方案也有所变化
win完全不考虑配置文件管理,因为我基本不在win下开发
archlinux配置文件则仍采用chezmoi部分管理,因为命令全alias了,所以基本无感,所有修改配置文件后都会推送到github,基本感觉不到chezmoi存在。这些配置文件只需要备份即可,需要用时再copy-paste
mac我想我只会有一台,配置文件去cp arch传到github上的,或者需要什么配置自行添加,不和arch做统一
有朋友新写了一个配置文件管理器,希望对配置文件做精细化管理的可以看关于点文件管理这件事
因为他有大量的配置文件和不同的机器,并且桌面环境采用hyprland,需要一个可供快速还原的点文件管理器
如果你不希望花大量时间和精力在点文件管理上,不妨参考下我的方案,足够lazy
前言
在许久之前自己手写了一个 dotfiles 的管理工具,但在开发的过程中还是遇到了不少问题,最后还是只能在自己的机器上复现,在其他人的机器上还不如直接复制粘贴来的方便。最近发现了这个 chezmoi 工具,它可以很方便的管理你的 dotfiles,解决了跨平台与兼容性、敏感数据安全、多设备配置同步与管理和模板与自动化问题。这里来推广一下并给出一份入门级使用教程。
注意:如果你想使用这个工具,请一定提前备份已有的 dotfiles,以免因为刚上手时不清楚命令的具体运作方式导致备份丢失。
chezmoi 会在你自己的机器上新建一个 ~/.local/share/chezmoi 目录,你可以往这个目录里手动添加你需要它管理的配置文件,然后 chezmoi 会将你原来的配置文件复制并改名为以 dot_xxx 形式的文件到这个新目录下,接着就可以通过 github 平台来管理这个新目录。除了 dot_xxx 形式的文件外,还可以创建 run_xxx 等形式的文件来存储跨平台用的脚本。
快速上手
初始化
1 | sudo pacman -S chezmoi # archlinux 安装 chezmoi |
添加命令
更完整的添加命令:
1 | chezmoi add .zshrc # 添加文件 |
~/.config/chezmoi/chezmoi.toml
使用chezmoi edit-config命令可以自动打开并编辑 chezmoi 的配置文件
我习惯所有修改配置文件的命令都是该程序名后面加个calias chezmoic="chezmoi edit-config"
更换编辑器
更改 chezmoi 默认编辑器为 nvim:
在 ~/.config/chezmoi/chezmoi.toml 中添加以下内容:
1 | [editor] |
更改配置文件并应用
1 | chezmoi edit ~/.zshrc # 日后的更改都是通过修改这个新目录下的配置文件来实现的 |
为了便于平常更改,我在 ~/.zshrc 中添加了以下内容:
1 | alias zshc="chezmoi edit ~/.zshrc --apply && source ~/.zshrc" |
查看更改
比较本地的两个配置文件之间的差异
1 | chezmoi diff |
~/.config/chezmoi/chezmoi.toml 配置文件
这个配置文件可以配置chezmoi自身的一些行为,这里提供我的一份简单配置:
1 | [data] |
值得注意的是,chezmoi 不允许添加自己的配置文件管理,也就是说这份 toml 文件是无法 chezmoi add 的。
模板
chezmoi 解决在多台机器上管理配置文件的方案是使用模板。模板里会留有一些变量,在不同机器上会根据机器的自身特性来动态替换这些变量。
以添加 ~/.gitconfig 为例
1 | chezmoi data | jq # 查看当前机器的模板变量 |
在其他设备上初始化时,可以使用如下命令:
1 | chezmoi init --apply https://github.com/kingpoem/dotconfig.git |
上传加密文件
1 | sudo pacman -S age # archlinux 安装 age 加密工具 |