aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openspec/changes/archive/2026-09-18-add-gnome-desktop/.openspec.yaml (renamed from openspec/changes/add-gnome-desktop/.openspec.yaml)0
-rw-r--r--openspec/changes/archive/2026-09-18-add-gnome-desktop/design.md (renamed from openspec/changes/add-gnome-desktop/design.md)0
-rw-r--r--openspec/changes/archive/2026-09-18-add-gnome-desktop/proposal.md (renamed from openspec/changes/add-gnome-desktop/proposal.md)0
-rw-r--r--openspec/changes/archive/2026-09-18-add-gnome-desktop/specs/gnome-desktop/spec.md (renamed from openspec/changes/add-gnome-desktop/specs/gnome-desktop/spec.md)0
-rw-r--r--openspec/changes/archive/2026-09-18-add-gnome-desktop/tasks.md (renamed from openspec/changes/add-gnome-desktop/tasks.md)0
-rw-r--r--openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/.openspec.yaml (renamed from openspec/changes/filter-dotfiles-by-platform/.openspec.yaml)0
-rw-r--r--openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/design.md (renamed from openspec/changes/filter-dotfiles-by-platform/design.md)0
-rw-r--r--openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/proposal.md (renamed from openspec/changes/filter-dotfiles-by-platform/proposal.md)0
-rw-r--r--openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/specs/dotfiles-management/spec.md (renamed from openspec/changes/filter-dotfiles-by-platform/specs/dotfiles-management/spec.md)0
-rw-r--r--openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/tasks.md (renamed from openspec/changes/filter-dotfiles-by-platform/tasks.md)0
-rw-r--r--openspec/specs/dotfiles-management/spec.md15
-rw-r--r--openspec/specs/gnome-desktop/spec.md35
12 files changed, 50 insertions, 0 deletions
diff --git a/openspec/changes/add-gnome-desktop/.openspec.yaml b/openspec/changes/archive/2026-09-18-add-gnome-desktop/.openspec.yaml
index d28e909..d28e909 100644
--- a/openspec/changes/add-gnome-desktop/.openspec.yaml
+++ b/openspec/changes/archive/2026-09-18-add-gnome-desktop/.openspec.yaml
diff --git a/openspec/changes/add-gnome-desktop/design.md b/openspec/changes/archive/2026-09-18-add-gnome-desktop/design.md
index 09e2481..09e2481 100644
--- a/openspec/changes/add-gnome-desktop/design.md
+++ b/openspec/changes/archive/2026-09-18-add-gnome-desktop/design.md
diff --git a/openspec/changes/add-gnome-desktop/proposal.md b/openspec/changes/archive/2026-09-18-add-gnome-desktop/proposal.md
index 09a2e80..09a2e80 100644
--- a/openspec/changes/add-gnome-desktop/proposal.md
+++ b/openspec/changes/archive/2026-09-18-add-gnome-desktop/proposal.md
diff --git a/openspec/changes/add-gnome-desktop/specs/gnome-desktop/spec.md b/openspec/changes/archive/2026-09-18-add-gnome-desktop/specs/gnome-desktop/spec.md
index ee932c2..ee932c2 100644
--- a/openspec/changes/add-gnome-desktop/specs/gnome-desktop/spec.md
+++ b/openspec/changes/archive/2026-09-18-add-gnome-desktop/specs/gnome-desktop/spec.md
diff --git a/openspec/changes/add-gnome-desktop/tasks.md b/openspec/changes/archive/2026-09-18-add-gnome-desktop/tasks.md
index b1032ea..b1032ea 100644
--- a/openspec/changes/add-gnome-desktop/tasks.md
+++ b/openspec/changes/archive/2026-09-18-add-gnome-desktop/tasks.md
diff --git a/openspec/changes/filter-dotfiles-by-platform/.openspec.yaml b/openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/.openspec.yaml
index f2cbbe6..f2cbbe6 100644
--- a/openspec/changes/filter-dotfiles-by-platform/.openspec.yaml
+++ b/openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/.openspec.yaml
diff --git a/openspec/changes/filter-dotfiles-by-platform/design.md b/openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/design.md
index 60cff21..60cff21 100644
--- a/openspec/changes/filter-dotfiles-by-platform/design.md
+++ b/openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/design.md
diff --git a/openspec/changes/filter-dotfiles-by-platform/proposal.md b/openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/proposal.md
index 6cf7af4..6cf7af4 100644
--- a/openspec/changes/filter-dotfiles-by-platform/proposal.md
+++ b/openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/proposal.md
diff --git a/openspec/changes/filter-dotfiles-by-platform/specs/dotfiles-management/spec.md b/openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/specs/dotfiles-management/spec.md
index e49bac6..e49bac6 100644
--- a/openspec/changes/filter-dotfiles-by-platform/specs/dotfiles-management/spec.md
+++ b/openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/specs/dotfiles-management/spec.md
diff --git a/openspec/changes/filter-dotfiles-by-platform/tasks.md b/openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/tasks.md
index f2a93d7..f2a93d7 100644
--- a/openspec/changes/filter-dotfiles-by-platform/tasks.md
+++ b/openspec/changes/archive/2026-09-18-filter-dotfiles-by-platform/tasks.md
diff --git a/openspec/specs/dotfiles-management/spec.md b/openspec/specs/dotfiles-management/spec.md
index 7585cc9..2d45dc1 100644
--- a/openspec/specs/dotfiles-management/spec.md
+++ b/openspec/specs/dotfiles-management/spec.md
@@ -43,3 +43,18 @@ If symlinking one package would conflict with an existing file or symlink not ow
43#### Scenario: One package conflicts 43#### Scenario: One package conflicts
44- **WHEN** one dotfiles package's target path is already occupied by an unrelated existing file 44- **WHEN** one dotfiles package's target path is already occupied by an unrelated existing file
45- **THEN** that package is skipped with a visible warning, and every other package is still processed 45- **THEN** that package is skipped with a visible warning, and every other package is still processed
46
47### Requirement: Platform-irrelevant packages are skipped
48The system SHALL skip stowing a dotfiles package when that package is platform-irrelevant, either because it matches a built-in platform default (based on the current OS) or because it has been explicitly listed for exclusion, rather than always stowing every top-level package directory.
49
50#### Scenario: A package is excluded by built-in platform default
51- **WHEN** the dotfiles repository contains a top-level package directory that is known to be relevant only to a different platform than the one currently running (for example, a macOS-only package on a Linux system, or a Linux-only package on a macOS system)
52- **THEN** that package is not symlinked, and a visible message indicates it was skipped as not relevant on this platform
53
54#### Scenario: A package is excluded via explicit configuration
55- **WHEN** a package name has been explicitly configured for exclusion, regardless of the built-in platform defaults
56- **THEN** that package is not symlinked, and a visible message indicates it was skipped
57
58#### Scenario: A non-excluded package is still stowed
59- **WHEN** a top-level package directory is neither a built-in platform-mismatched package nor explicitly excluded
60- **THEN** that package is symlinked into the home directory as described by the existing package-symlinking requirement
diff --git a/openspec/specs/gnome-desktop/spec.md b/openspec/specs/gnome-desktop/spec.md
new file mode 100644
index 0000000..3351d13
--- /dev/null
+++ b/openspec/specs/gnome-desktop/spec.md
@@ -0,0 +1,35 @@
1# gnome-desktop Specification
2
3## Purpose
4
5Provides a working GNOME desktop environment, including login, networking, audio, and printing, on every NixOS host built from this flake.
6
7## Requirements
8
9### Requirement: GNOME is the default desktop on every NixOS host
10Every NixOS host built from this flake's shared system module SHALL boot into a GNOME desktop session via a graphical login manager, without requiring per-host opt-in.
11
12#### Scenario: Graphical login is available after boot
13- **WHEN** a NixOS host built from this flake's shared system module finishes booting
14- **THEN** a graphical login manager is presented, and selecting the default session starts a GNOME desktop
15
16### Requirement: Desktop networking is functional
17The desktop environment SHALL provide working network configuration through its own UI, not require a separate manual networking setup step.
18
19#### Scenario: Network settings are usable from the desktop
20- **WHEN** a user opens the desktop's network configuration UI
21- **THEN** available networks can be viewed and configured without additional manual setup outside the desktop environment
22
23### Requirement: Desktop audio is functional
24The desktop environment SHALL provide working audio output and input, including compatibility with applications expecting a PulseAudio-compatible audio server.
25
26#### Scenario: Audio applications can play sound
27- **WHEN** an application on the desktop attempts to play or capture audio
28- **THEN** the audio server is running and available to handle the request
29
30### Requirement: Printing is supported and printers are discoverable
31The desktop environment SHALL support printing to CUPS-compatible printers, and SHALL be able to discover network printers automatically without requiring the firewall to be manually reconfigured.
32
33#### Scenario: A network printer is discoverable
34- **WHEN** a network printer advertises itself on the local network
35- **THEN** it can be discovered and configured for printing without the host's firewall blocking the discovery traffic