nixos-config/
│
├── flake.nix # 入口:定义所有 machine,切换方案
├── flake.lock
│
├── lib/ # Nix 辅助函数
│ └── default.nix
│
├── hardware/ # 硬件层:每台设备一个文件
│ ├── laptop-A.nix
│ ├── server-B.nix
│ └── pad-C.nix
│
├── system/ # 系统层:NixOS 系统树
│ │
│ ├── kernel.nix # 内核:版本、模块、参数
│ │
│ ├── base/ # 基础系统
│ │ ├── default.nix # 汇总
│ │ ├── nix.nix # nix.settings、GC、flakes
│ │ ├── locale.nix # 时区、locale、键盘布局
│ │ ├── users.nix # 用户组、系统用户
│ │ └── state.nix # system.stateVersion
│ │
│ ├── desktop/ # 桌面环境
│ │ ├── kde.nix
│ │ ├── gnome.nix
│ │ └── hyprland.nix
│ │
│ ├── components/ # 系统组件
│ │ ├── default.nix # 汇总
│ │ ├── network.nix # NetworkManager、DNS
│ │ ├── input-method.nix # fcitx5 / ibus
│ │ ├── audio.nix # PipeWire / PulseAudio
│ │ ├── fonts.nix # 字体、字体渲染
│ │ └── power.nix # TLP、upower、电池
│ │
│ ├── services/ # 系统服务
│ │ ├── default.nix # 汇总
│ │ ├── sshd.nix # SSH 服务
│ │ ├── docker.nix # Docker 引擎(不碰容器)
│ │ └── firewall.nix # 防火墙
│ │
│ └── cron.nix # 定时任务
│
├── home/ # 用户层:Home Manager 树
│ │
│ ├── userA/
│ │ ├── default.nix # 汇总
│ │ │
│ │ ├── docker/ # docker 实例配置
│ │ │ ├── default.nix # 汇总
│ │ │ ├── mysql.nix
│ │ │ ├── nginx.nix
│ │ │ ├── git.nix
│ │ │ └── hermes.nix
│ │ │
│ │ ├── packages/ # 安装工具
│ │ │ ├── default.nix # 汇总
│ │ │ ├── browsers.nix # chrome
│ │ │ ├── editors.nix # vscode, notepad++
│ │ │ ├── terminals.nix # alacritty, kitty, wezterm
│ │ │ └── tools.nix # 其他工具
│ │ │
│ │ └── shell.nix # bash/zsh/fish、别名
│ │
│ └── userB/
│ ├── default.nix
│ ├── docker/
│ │ ├── default.nix
│ │ └── ...
│ ├── packages/
│ │ ├── default.nix
│ │ └── ...
│ ├── shell.nix
│ ├── editor.nix
│ └── terminal.nix
│
├── overlays/ # 补丁覆盖
│ └── default.nix
│
└── machines/ # 机器层:完整方案组装
├── laptop-A/
│ └── default.nix
├── server-B/
│ └── default.nix
└── pad-C/
└── default.nix