因为修改太多,所以只简单写一下本PR的why
之前一直用 WM而非DE,但是折腾了很久,很多东西的优化终究还是有很多问题。所以转去用GNOME
最终也证实了确实是个正确的选择。
背景
本 PR 将桌面环境从 Hyprland/Niri 切换为 GNOME,并重构 home/modules 结构,同时强化 NixOS 基础与 macOS 配置。
主要变更
- 桌面环境:新增
modules/nixos/desktop/gnome.nix与home/nixos/gnome.nix,默认改用 GNOME;移除 hyprland、niri、fuzzel 等配置和脚本;补充 GNOME 快捷键速查cheatsheet/gnome.yml。 - Home 模块重构:
home/base/gui拆分为home/base/desktop/{IDE,browser,terminal,media},集中 IDE 配置(Goland/VSCode/Zed);TUI 模块按领域重排(ai/devops/langs/kernel/ms/zzz 等),精简与迁移旧包。 - NixOS 基础与安全:
modules/nixos/base重新拆分网络、安全、openssh、nix-tools 等子模块,合并 VPS/容器通用配置;新增 netbird 客户端、nix-tools、openssh 加固,精简 coredump/healthcheck 等组件。 - Desktop/NixOS 其他:新增 desktop 音频、磁盘、singbox 调整;
tuptime替换原 time 模块;extra目录收纳 avahi/guix/restic 等独立组件。 - macOS:Brew 默认禁用 Rosetta 并加入 fetch CLI;采用 Determinate Nix 安装/配置;singbox 任务下沉到 Taskfile;优化 aerospace/jankyborders/netbird 等细节。
- Hosts 与 outputs:更新 macos-ws、nixos-ws/vps 等主机配置与硬件描述;darwin 输出切换为
aarch64-darwin;移除不再使用的文档与包(todui、nirius 等)。
可能的影响
- hyprland/niri/fuzzel 被移除,需使用 GNOME 会话或自行恢复旧 WM 配置。
- VPS/容器配置并入 base,可能影响自定义 overrides;请检查
modules/nixos/base中网络与安全默认值。 - Taskfile 清理了部分 mac 任务(alfred/snippets 等),如需继续使用需手动补回。
- Brew 关闭 Rosetta,依赖 x86_64 包的环境需重新评估。
- openssh 与 security 模块的加固可能改变默认登录/转发行为。
验证建议
- 运行
nix flake check确认 flake 与模块完整性。 - 针对 GNOME 桌面主机执行
nixos-rebuild switch --flake .#<host>验证桌面与网络、安全配置。 - 在 macOS 上运行
task mac:...相关任务(如 singbox、brew)确认脚本可用。