diff options
| author | 2026-09-17 13:18:25 +0200 | |
|---|---|---|
| committer | 2026-09-17 13:18:25 +0200 | |
| commit | 39c14b0c6420ea1e1604201a1b8891edf24bb280 (patch) | |
| tree | 4015bd97e5fa29c944fd35050d9ea6f96fb25371 /openspec/changes/add-gnome-desktop/proposal.md | |
| parent | e91a12c68901d761812a855559331b9a7462a170 (diff) | |
| download | desktop-flake-39c14b0c6420ea1e1604201a1b8891edf24bb280.tar.gz desktop-flake-39c14b0c6420ea1e1604201a1b8891edf24bb280.tar.bz2 desktop-flake-39c14b0c6420ea1e1604201a1b8891edf24bb280.zip | |
Propose GNOME desktop for NixOS hosts
Planning artifacts only (proposal, spec, design, tasks) — GDM+GNOME,
NetworkManager, PipeWire, and CUPS+Avahi printing, applied
unconditionally to every NixOS host via modules/nixos/common.nix. Not
yet implemented.
Diffstat (limited to 'openspec/changes/add-gnome-desktop/proposal.md')
| -rw-r--r-- | openspec/changes/add-gnome-desktop/proposal.md | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/openspec/changes/add-gnome-desktop/proposal.md b/openspec/changes/add-gnome-desktop/proposal.md new file mode 100644 index 0000000..09a2e80 --- /dev/null +++ b/openspec/changes/add-gnome-desktop/proposal.md | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | ## Why | ||
| 2 | |||
| 3 | NixOS hosts built from this flake currently have no desktop environment at all — just a headless system. The user wants GNOME enabled as the default desktop on every NixOS system this flake provisions. | ||
| 4 | |||
| 5 | ## What Changes | ||
| 6 | |||
| 7 | - `modules/nixos/common.nix` gains: `services.xserver.enable`, `services.displayManager.gdm.enable`, `services.desktopManager.gnome.enable` — GNOME with GDM as the login manager, applied unconditionally to every NixOS host (not an opt-in per-host module), confirmed via direct Q&A. | ||
| 8 | - `networking.networkmanager.enable = true` — required for GNOME's own network settings UI to function. | ||
| 9 | - `services.pipewire` (`enable`, `pulse.enable`) + `security.rtkit.enable` — the standard NixOS audio stack GNOME expects. | ||
| 10 | - `services.printing.enable = true` (CUPS) + `services.avahi` (`enable`, `nssmdns4`, `openFirewall`) — printing support with network/AirPrint printer discovery, added per explicit user request; `openFirewall` so the firewall enabled in the prior `add-developer-environment` change doesn't block discovery traffic. | ||
| 11 | - Update `README.md` to document that NixOS hosts now boot into GNOME by default, with these companions. | ||
| 12 | |||
| 13 | ## Capabilities | ||
| 14 | |||
| 15 | ### New Capabilities | ||
| 16 | - `gnome-desktop`: NixOS hosts built from this flake boot into a working GNOME desktop (login manager, networking, audio, printing) by default. | ||
| 17 | |||
| 18 | ### Modified Capabilities | ||
| 19 | (none — this doesn't change any requirement from `nix-flake-bootstrap`, `dotfiles-management`, or `developer-environment`; it's a new, additive system capability) | ||
| 20 | |||
| 21 | ## Impact | ||
| 22 | |||
| 23 | - Affected code: `modules/nixos/common.nix`, `README.md`. | ||
| 24 | - Applies to every NixOS host built from this flake going forward. There is still no live NixOS host (only `hosts/template/`), so this only takes effect once a real host is scaffolded via `scripts/bootstrap-host.sh` — same situation as every prior NixOS-side change in this repo. | ||
| 25 | - Nix is still not installed on this development machine, so the exact module option paths (`services.displayManager.*`/`services.desktopManager.*`, which NixOS has been migrating out of the older `services.xserver.displayManager.*`/`services.xserver.desktopManager.*` nesting) can only be verified by manual review here, not by actually building — flagged explicitly as an implementation-time risk, not asserted with full confidence. | ||
| 26 | - Out of scope: per-user GNOME customization (dconf settings, Shell extensions), and any change to the user's existing `~/dotfiles` `herbstluftwm`/`xorg` packages, which this change doesn't touch. | ||
