From 39c14b0c6420ea1e1604201a1b8891edf24bb280 Mon Sep 17 00:00:00 2001 From: Tom van der Lee Date: Thu, 17 Sep 2026 13:18:25 +0200 Subject: Propose GNOME desktop for NixOS hosts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- openspec/changes/add-gnome-desktop/proposal.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 openspec/changes/add-gnome-desktop/proposal.md (limited to 'openspec/changes/add-gnome-desktop/proposal.md') 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 @@ +## Why + +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. + +## What Changes + +- `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. +- `networking.networkmanager.enable = true` — required for GNOME's own network settings UI to function. +- `services.pipewire` (`enable`, `pulse.enable`) + `security.rtkit.enable` — the standard NixOS audio stack GNOME expects. +- `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. +- Update `README.md` to document that NixOS hosts now boot into GNOME by default, with these companions. + +## Capabilities + +### New Capabilities +- `gnome-desktop`: NixOS hosts built from this flake boot into a working GNOME desktop (login manager, networking, audio, printing) by default. + +### Modified Capabilities +(none — this doesn't change any requirement from `nix-flake-bootstrap`, `dotfiles-management`, or `developer-environment`; it's a new, additive system capability) + +## Impact + +- Affected code: `modules/nixos/common.nix`, `README.md`. +- 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. +- 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. +- 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. -- cgit v1.3