# NixOS Configuration 洛尘(luochen570)的 NixOS 配置仓库,采用 Flakes + home-manager + sops-nix 架构。 ## 架构 ``` nixos/ ├── flake.nix # Flake 入口 ├── lib/ │ ├── mkHost.nix # 主机生成函数 │ └── hosts.nix # 主机定义 ├── profiles/ # 角色配置组合 │ ├── README.md │ ├── desktop.nix # 桌面机 │ ├── server.nix # 服务器 │ ├── wsl.nix # WSL (Debian/Windows) │ ├── virtualbox.nix # VirtualBox 虚拟机 │ └── lxc.nix # Proxmox LXC 容器 ├── modules/ # 模块化配置 │ ├── core/ # 所有机器共享的基础配置 │ │ ├── default.nix │ │ ├── core.nix # Nix 设置、时区、语言、GC │ │ ├── pkg.nix # 基础系统包 │ │ ├── users.nix # 用户与 Shell │ │ └── sops.nix # 密钥管理 │ ├── server/ # 服务器模块(默认启用) │ │ ├── default.nix │ │ ├── docker.nix │ │ └── ssh.nix │ ├── optional/ # 选装模块(按需引用) │ │ ├── README.md │ │ ├── virtualbox-guest.nix # VirtualBox Guest 增强 │ │ └── vscode-server.nix # VS Code Server │ ├── desktop/ # 桌面模块 │ │ ├── default.nix │ │ ├── pkg.nix # 桌面应用包 │ │ ├── apps.nix # MIME 与默认应用 │ │ ├── fcitx5.nix # 中文输入法 │ │ └── de/ │ │ ├── default.nix │ │ └── kde.nix # KDE Plasma 6 + SDDM │ └── drivers/ │ ├── nvidia.nix # NVIDIA 独显 │ └── amdgpu.nix # AMD 核显(RDNA2) ├── home/ # home-manager 用户配置 │ ├── README.md │ ├── default.nix │ ├── pkg.nix # 用户级包 │ ├── git.nix │ ├── ssh.nix # SSH 密钥(sops 挂载) │ ├── zsh.nix # ZSH + Powerlevel10k │ └── nvchad.nix # Neovim (NvChad) ├── hosts/ # 主机专属配置 │ ├── README.md │ ├── desktop/ # 桌面机(AMD + NVIDIA) │ ├── server/ # 服务器 │ ├── wsl/ # WSL (NixOS-WSL) │ ├── virtualbox/ # VirtualBox 虚拟机 │ └── nixos-lxc/ # Proxmox LXC 容器 (s0.sermc.net) └── secrets/ # sops-nix 加密密钥(不公开) └── users/luochen570.enc.yaml ``` ## 主机列表 | 主机 | 角色 | 架构 | 说明 | |------|------|------|------| | `desktop` | desktop | x86_64-linux | 桌面机,NVIDIA + AMD 双显卡 | | `server` | server | x86_64-linux | 服务器 | | `nixos-wsl` | wsl | x86_64-linux | WSL | | `virtualbox` | virtualbox | x86_64-linux | VirtualBox 虚拟机 | | `nixos-lxc` | lxc | x86_64-linux | Proxmox LXC 容器 (s0.sermc.net) | ## 使用 ```bash # 构建/切换 sudo nixos-rebuild switch --flake .#desktop # 仅构建不切换 sudo nixos-rebuild build --flake .#server # 更新 flake lock nix flake update # 垃圾回收 sudo nix-collect-garbage --delete-older-than 14d ``` ## 关键特性 - **Flakes** — 可复现的 NixOS 配置 - **home-manager** — 用户级包与配置管理 - **sops-nix** — 加密存储 SSH 密钥、密码哈希等敏感信息 - **NixOS-WSL** — WSL 集成 - **KDE Plasma 6** — 桌面环境(SDDM 显示管理器) - **fcitx5 + Rime** — 中文输入法 - **Docker** — 容器运行时,自动每周清理 - **PipeWire** — 音频系统 - **Nix4NvChad** — Neovim (NvChad) 配置即代码 ## 镜像源 使用 TUNA(清华)和 SJTU(上交)镜像加速 Nix 包下载,适合国内网络环境。 ## 注意事项 - NVIDIA 模块的 PRIME(双显卡切换)方案已注释,启用前需通过 `lspci` 确认 PCIe Bus ID - LXC 容器使用 Proxmox LXC 模块,关闭了 systemd 挂载报错的服务 - `secrets/` 目录经过 sops 加密,需有对应 age key 才能解密 - 各主机目录下有各自的 `README.md`,含该主机的硬件信息与应用列表 - `modules/optional/` 下的模块为非默认启用,按需在 profile 中引用