别怕完整配置:探索 nix-darwin-kickstarter 的 rich-demo,从触发角到 Git 邮箱分离的高级技巧
【免费下载链接】nix-darwin-kickstartermacOS as Code! A beginner-friendly nix-darwin + home-manager + flakes startup configuration. 一份易于理解的 nix-darwin 初始配置模板,专为新手制作.项目地址: https://gitcode.com/gh_mirrors/ni/nix-darwin-kickstarter
nix-darwin-kickstarter 是一个专为新手打造的 nix-darwin 初始配置模板,帮你用"MacOS as Code"的方式声明式管理 macOS 系统。除了安全稳妥的 minimal 模板外,它还提供了一份"完全体"的 rich-demo 参考配置:从 macOS 触发角到 Git 邮箱分离的高级技巧都藏在这里,是学习 nix-darwin 系统配置的最佳素材。
📖 为什么敢看"完整配置"?先了解 rich-demo 的定位
很多新手看到几百行的 nix-darwin 配置会望而却步。其实 rich-demo 的设计初衷不是直接部署,而是当一本活的参考手册:每个文件、每行配置都带有详尽注释,你可以读懂后按需"抄作业"到自己系统里。
⚠️ 注意:rich-demo 可能覆盖你的系统配置,切勿直接部署到本机。正确姿势是先用 minimal 跑通流程,再逐段搬运你需要的配置。
rich-demo 的目录结构一目了然:
rich-demo/modules/:系统层配置(应用、系统行为、用户与主机名)rich-demo/home/:home-manager 管理用户层 dotfiles(shell、git、starship)rich-demo/Justfile:把繁琐的 nix-darwin 命令封装成一条 just 命令rich-demo/scripts/darwin_set_proxy.py:为 nix 与 homebrew 配置代理加速
🔥 触发角配置:鼠标一碰角落,效率翻倍
macOS 的触发角(Hot Corners)是隐藏的高效利器,而 rich-demo 在rich-demo/modules/system.nix的 dock 配置里用短短 4 行就把它安排明白了:
- 左上角 → Mission Control
- 右上角 → 锁定屏幕
- 左下角 → 切换应用窗口
- 右下角 → 显示桌面
配合 Finder 显示完整路径、触摸板轻触点击与三指拖拽,这些在图形界面里要点七八下的设置,在 nix-darwin 中全部变成了可版本化的代码。
nix-darwin rich-demo 配置 macOS 触发角、dock、Finder 与触摸板的 system.nix 文件
🪄 一行代码启用 Touch ID 认证 sudo
想在输入 sudo 密码时用 Touch ID 完成认证?rich-demo 只用了这样一行(位于rich-demo/modules/system.nix):
security.pam.services.sudo_local.touchIdAuth = true;
这就是 nix-darwin 的优雅之处:零散的系统偏好被收敛为一个个语义清晰的选项,改完执行一次部署命令即可生效。
nix-darwin rich-demo 中一行代码启用 Touch ID 进行 sudo 认证
📧 Git 邮箱分离:工作与个人身份一键切换
开发者最痛的点之一:公司仓库和个人仓库要用不同邮箱。rich-demo 的rich-demo/home/git.nix给出了 nix-darwin 风格的解法——在 Git 配置中加入一条带条件的 include:
- 全局身份:使用你在 flake 中定义的
useremail - 条件规则:当仓库位于
~/work/目录下时,自动改用~/work/.gitconfig里定义的工作邮箱和姓名
以后只要把公司项目放在~/work/,Git 就会"自动变脸",彻底告别手动git config user.email的来回切换。同一份文件里还顺手配置了常用别名(如git st、git co)、pull.rebase与 ISO 格式日志日期。
⌨️ 更多值得偷师的高级技巧
- 键盘映射:
remapCapsLockToEscape = true把 Caps Lock 变成 Esc,vim 用户狂喜(rich-demo/modules/system.nix) - Starship 提示符:终端一行显示 Git 分支、云账号,还贴心地隐藏了 gcloud 敏感信息(
rich-demo/home/starship.nix) - 应用双轨制:nixpkgs 装 CLI 工具、homebrew 装 GUI 应用,
onActivation自动升级与清理(rich-demo/modules/apps.nix) - 国内网络加速:Homebrew 镜像源配置 + 代理脚本,构建不卡壳(
rich-demo/modules/homebrew-mirror.nix、rich-demo/scripts/darwin_set_proxy.py)
🚀 部署与常用 just 命令速查
读懂并挑选配置后,把选中的片段复制进自己的配置目录,然后用 Justfile 封装的命令管理整个生命周期:
| 命令 | 作用 |
|---|---|
just darwin | 构建并部署当前 nix-darwin 配置 |
just up | 更新所有 flake 输入(升级 nixpkgs 等) |
just clean/just gc | 清理系统历史版本、回收 nix store 空间 |
just fmt | 格式化所有 nix 文件 |
🗂️ 核心文件路径速查
| 文件 | 管什么 |
|---|---|
rich-demo/flake.nix | 配置入口,填写用户名、主机名与系统架构 |
rich-demo/modules/system.nix | 触发角、dock、Finder、触摸板、键盘等系统行为 |
rich-demo/modules/apps.nix | nixpkgs 与 homebrew 应用清单 |
rich-demo/modules/host-users.nix | 主机名与系统用户定义 |
rich-demo/home/git.nix | Git 全局配置与邮箱分离规则 |
rich-demo/Justfile | nix-darwin 工作流命令封装 |
一句话总结:别怕完整配置——rich-demo 的每一个高级技巧背后,都只是几行带注释的声明式代码。先 minimal 打基础,再从 rich-demo 里按图索骥,你的 macOS 也会成为可复现、可回滚、可分享的"代码资产"。
【免费下载链接】nix-darwin-kickstartermacOS as Code! A beginner-friendly nix-darwin + home-manager + flakes startup configuration. 一份易于理解的 nix-darwin 初始配置模板,专为新手制作.项目地址: https://gitcode.com/gh_mirrors/ni/nix-darwin-kickstarter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考