diff options
| author | 2026-09-18 15:46:46 +0200 | |
|---|---|---|
| committer | 2026-09-18 15:46:46 +0200 | |
| commit | 57d9646b8094d0ca37af087d14ae677698e4efab (patch) | |
| tree | 8c9015cdd45e5c1540896d580c152ae0e93b3f3b /openspec | |
| parent | f5357c5dca485f2848ed46588c1af4818b74e8c3 (diff) | |
| download | desktop-flake-57d9646b8094d0ca37af087d14ae677698e4efab.tar.gz desktop-flake-57d9646b8094d0ca37af087d14ae677698e4efab.tar.bz2 desktop-flake-57d9646b8094d0ca37af087d14ae677698e4efab.zip | |
Archive filter-dotfiles-by-platform and add-gnome-desktop
Sync main specs with both completed changes: dotfiles-management
gains the platform-exclude requirement, and gnome-desktop becomes
a new main spec.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
Diffstat (limited to 'openspec')
| -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.md | 15 | ||||
| -rw-r--r-- | openspec/specs/gnome-desktop/spec.md | 35 |
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 | ||
| 48 | The 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 | |||
| 5 | Provides 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 | ||
| 10 | Every 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 | ||
| 17 | The 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 | ||
| 24 | The 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 | ||
| 31 | The 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 | ||
