d58c650d59
- flake.nix: NixOS + home-manager + nixos-wsl 三输入 - hosts/wsl + hosts/bare: WSL 与裸机共享模块,分主机配置 - modules/: base(CLI 工具) + dev(工具链+LSP) + docker + locale + shell - home/: zsh(oh-my-zsh+插件+别名) + git(delta) + starship + 工具集成 - scripts/install.sh: 一键安装脚本(WSL/裸机通用) - 原 bun/go 全局包 hack 改为 nixpkgs 声明式管理
116 lines
3.0 KiB
Markdown
116 lines
3.0 KiB
Markdown
# NixOS 声明式系统配置
|
||
|
||
使用 [NixOS](https://nixos.org/) + [Home Manager](https://github.com/nix-community/home-manager) + [Flakes](https://nix.dev/concepts/flakes) 声明式管理系统配置。
|
||
|
||
支持 **WSL** 和**裸机**两种部署方式,共享同一套模块。
|
||
|
||
## 快速开始
|
||
|
||
### WSL
|
||
|
||
1. 安装 [NixOS-WSL](https://github.com/nix-community/NixOS-WSL/releases):
|
||
|
||
```powershell
|
||
wsl --import NixOS C:\wsl\nixos nixos-wsl.tar.gz
|
||
wsl -d NixOS
|
||
```
|
||
|
||
2. 运行安装脚本:
|
||
|
||
```bash
|
||
bash <(curl -fsSL https://git.furtherverse.com/imbytecat/archlinux-config/raw/branch/nixos/scripts/install.sh)
|
||
```
|
||
|
||
3. 重新登录,配置 Git 身份:
|
||
|
||
```bash
|
||
git config --global user.name "你的名字"
|
||
git config --global user.email "你的邮箱"
|
||
```
|
||
|
||
### 裸机
|
||
|
||
1. 安装 NixOS 基础系统
|
||
2. 运行安装脚本(传入 `bare` 参数):
|
||
|
||
```bash
|
||
bash <(curl -fsSL https://git.furtherverse.com/imbytecat/archlinux-config/raw/branch/nixos/scripts/install.sh) bare
|
||
```
|
||
|
||
3. 生成硬件配置并重新应用:
|
||
|
||
```bash
|
||
cd ~/.config/nixos-config
|
||
sudo nixos-generate-config --show-hardware-config > hosts/bare/hardware-configuration.nix
|
||
# 取消 hosts/bare/default.nix 中 imports 的注释
|
||
sudo nixos-rebuild switch --flake .#bare
|
||
```
|
||
|
||
## 仓库结构
|
||
|
||
```
|
||
├── flake.nix # 入口:输入源 + 输出配置
|
||
├── hosts/
|
||
│ ├── wsl/default.nix # WSL:用户、WSL 设置
|
||
│ └── bare/default.nix # 裸机:引导、网络、硬件
|
||
├── modules/
|
||
│ ├── base.nix # 基础包(现代 CLI 工具)
|
||
│ ├── dev.nix # 开发工具链 + LSP
|
||
│ ├── docker.nix # Docker
|
||
│ ├── locale.nix # 区域 / 语言
|
||
│ └── shell.nix # Zsh 系统级启用
|
||
├── home/
|
||
│ ├── default.nix # Home Manager 入口
|
||
│ ├── shell.nix # Zsh + 终端增强工具
|
||
│ └── git.nix # Git + Delta
|
||
└── scripts/
|
||
└── install.sh # 一键安装脚本
|
||
```
|
||
|
||
**配置层级**:`hosts/*`(主机特定) → `modules/*`(共享系统) → `home/*`(用户级)
|
||
|
||
## 日常使用
|
||
|
||
```bash
|
||
cd ~/.config/nixos-config
|
||
|
||
# 更新配置
|
||
git pull && sudo nixos-rebuild switch --flake .#wsl
|
||
|
||
# 更新所有包版本
|
||
nix flake update && sudo nixos-rebuild switch --flake .#wsl
|
||
|
||
# 回滚到上一版本
|
||
sudo nixos-rebuild switch --rollback
|
||
|
||
# 清理旧 generation(释放磁盘)
|
||
sudo nix-collect-garbage -d
|
||
```
|
||
|
||
## 自定义
|
||
|
||
### 修改用户名
|
||
|
||
编辑 `hosts/wsl/default.nix`(或 `hosts/bare/default.nix`)顶部:
|
||
|
||
```nix
|
||
let
|
||
username = "你的用户名";
|
||
```
|
||
|
||
### 添加包
|
||
|
||
编辑 `modules/base.nix` 或 `modules/dev.nix`,在 `environment.systemPackages` 中添加:
|
||
|
||
```nix
|
||
environment.systemPackages = with pkgs; [
|
||
your-package # ← 添加
|
||
];
|
||
```
|
||
|
||
> 查包名:`nix search nixpkgs <关键词>`
|
||
|
||
### 添加 Shell 别名
|
||
|
||
编辑 `home/shell.nix` 中的 `shellAliases`。
|