配置结构探讨

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