4.4 KiB
Nix驱动的dotfiles配置
dotfiles nix macOS NixOS 开发环境
~ 🍭 ~
用于在任意 Unix 机器(Darwin/Linux)上搭建开发环境。该配置官方支持 macOS 与 NixOS,由 nix 统一管理。
字体为 Pragmata Pro,主题是基于 vim-colors-plain 的个人定制版本,终端为 Ghostty
包含哪些内容?
以下是主要配置项:
- nix:管理大多数依赖的安装;macOS 上的 GUI 应用仍通过
nix-darwin中的 homebrew 模块,借助 Homebrew cask 安装 - aerc:邮件阅读客户端
- tmux 2.3 或更高版本
- Neovim
- Zsh
- Git
- Ghostty:终端模拟器
- hammerspoon:macOS 自动化工具,用于窗口管理等
官方支持的操作系统
- ARM macOS Sequoia
- [实验性] NixOS(已在 22.11 上测试)
安装步骤
- 安装
nix
Note
请务必查阅
quirks部分的说明
curl --proto '=https' --tlsv1.2 -sSfL https://artifacts.nixos.org/nix-installer | sh -s -- install
- 进行配置
Note
flake 属性通常为主机名,若未传入则默认使用
$(hostname -s)
在线方式:
nix --experimental-features 'nix-command flakes' run "github:ahmedelgabri/dotfiles" -- <flake 属性>
首次运行时,引导程序会使用启动时内置的 flake 源,随后将仓库克隆到 ~/.dotfiles 以供后续重建使用。
Homebrew
我主要仍用 Homebrew 安装 GUI 应用,因为 Nix 和/或 Home-manager 对 GUI 应用的支持在符号链接到 Applications/ 文件夹时存在问题。Homebrew 完全由 nix 管理,通过 nix-homebrew 进行安装和运行。
注意事项
- zsh:将以下内容添加到
${XDG_DATA_HOME}/$(hostname)/zshrc
export HOMEBREW_GITHUB_API_TOKEN =
export GITHUB_TOKEN =
- Git:将 GPG 密钥信息添加到
${XDG_DATA_HOME}/$(hostname)/gitconfig
[user]
signingkey =
别忘了将公钥上传到 GitHub!
注意:GitHub 显示提交为"已验证"需要三处邮箱一致:提交邮箱、GitHub 邮箱以及公钥关联邮箱。
关于如何创建 GPG 密钥并为提交签名,请参阅此文档。
邮件
邮件通过 isync 在远程服务器与本机之间同步,使用 aerc 阅读,搜索索引由 notmuch 构建。
链接 dotfiles 后,还需完成以下几项配置。
认证
每个账户需分别对 IMAP 服务器和 SMTP 服务器进行认证,密码需存储在 Pass 中。
对于 Fastmail 或启用了双因素认证的 Gmail 账户,请使用应用专用密码。
密码存储中需包含以下条目:
service/email/source:(仅 Fastmail 使用,用于访问邮件的 JMAP 密码)service/email/outgoing:(仅 Fastmail 使用,用于发送邮件的 JMAP 密码)service/email/contacts:(仅 Fastmail 使用,用于访问联系人的 JMAP 密码)service/email/password:应用专用密码,用于mbsync本地邮件同步及msmtp发送邮件
定期同步
收件箱消息在 mbsync(即 isync 的可执行文件名)运行时从远程服务器拉取。
macOS 上使用 launchd,NixOS 上使用 systemd。详见 mail.nix。
