bf01c40ebbf0eeaf38c812af5b6de27027499226
Enable ssh-env and ssh-terminfo in Ghostty shell integration for automatic terminfo handling on remote hosts, and add ghostty.terminfo to NixOS system packages for coverage when Ghostty SSH wrapper is bypassed.
Nix Config
使用 nix-darwin + NixOS-WSL + Home Manager + Flakes 声明式管理三台设备的系统配置。
设备
| 设备 | 平台 | Flake 目标 | 主机名 |
|---|---|---|---|
| Mac Mini | aarch64-darwin | mac-mini |
awesome-mac-mini |
| MacBook Air | aarch64-darwin | macbook-air |
awesome-macbook-air |
| Windows PC (WSL) | x86_64-linux | wsl |
awesome-wsl |
快速开始
macOS (Mac Mini / MacBook Air)
- 安装 Lix(Nix 的社区分支,nix-darwin 官方推荐):
curl -sSf -L https://install.lix.systems/lix | sh -s -- install
- 克隆仓库并首次构建:
git clone <repo-url> ~/nix-config
cd ~/nix-config
# 首次(nix-darwin 尚未安装):
sudo nix run nix-darwin -- switch --flake .#mac-mini
# 之后日常重建:
sudo darwin-rebuild switch --flake .#mac-mini
WSL (Windows PC)
- 安装 NixOS-WSL:
wsl --import NixOS C:\wsl\nixos nixos-wsl.tar.gz
wsl -d NixOS
- 克隆仓库并构建:
git clone <repo-url> ~/nix-config
cd ~/nix-config
sudo nixos-rebuild switch --flake .#wsl
仓库结构
├── flake.nix # 入口:输入源 + 输出配置
├── flake.lock # 依赖锁定文件
├── hosts/
│ ├── mac-mini/default.nix # Mac Mini 特定配置
│ ├── macbook-air/default.nix# MacBook Air 特定配置
│ └── wsl/default.nix # WSL 特定配置
├── modules/
│ ├── darwin/default.nix # macOS 模块(Homebrew、系统偏好等)
│ ├── nixos/ # NixOS 模块
│ │ ├── base.nix # 基础包
│ │ ├── docker.nix # Docker 配置
│ │ ├── locale.nix # 区域 / 语言
│ │ └── default.nix # 入口(用户、shell)
│ └── shared/ # 共享模块(Nix 设置)
├── home/ # Home Manager 配置
│ ├── default.nix # 入口 + 用户级包
│ ├── theme.nix # Catppuccin 主题
│ ├── dev/ # 开发工具
│ │ ├── neovim.nix
│ │ ├── languages.nix # 语言运行时、LSP
│ │ └── git.nix
│ └── shell/ # Shell 配置
│ ├── fish.nix # Fish shell
│ ├── starship.nix # Prompt
│ └── tools.nix # fzf, atuin, zoxide 等
├── lib/default.nix # 构建辅助函数
├── overlays/ # 自定义包覆盖
└── pkgs/ # 自定义包
配置层级:hosts/*(主机特定) → modules/*(平台模块) → home/*(用户级,跨平台共享)
日常使用
# 重建(abbreviation 自动选择 darwin-rebuild 或 nixos-rebuild)
rebuild
# 更新所有依赖
update
# 回滚(NixOS)
sudo nixos-rebuild switch --rollback
# 清理旧 generation
sudo nix-collect-garbage -d # NixOS
nix-collect-garbage -d # macOS
Shell
使用 Fish 作为默认 shell,搭配:
- Starship — 跨平台 prompt
- Atuin — shell 历史搜索
- Zoxide — 智能 cd(
cd= zoxide,cdi= 交互选择) - FZF — 模糊搜索(Ctrl-R 历史, Ctrl-T 文件, Alt-C 目录)
- Direnv — 自动加载项目环境
- Catppuccin Mocha — 统一主题
自定义
- 添加 fish abbreviation: 编辑
home/shell/fish.nix中的shellAbbrs - 添加包: 编辑
home/default.nix或home/dev/languages.nix - 添加 Homebrew cask: 编辑
modules/darwin/default.nix中的homebrew.casks - 查包名:
nix search nixpkgs <关键词>或 search.nixos.org
Description
Languages
Nix
90.6%
Just
9.4%