From a86bc9249f33bfd5701c861383a543279a12c23b Mon Sep 17 00:00:00 2001 From: Tom van der Lee Date: Thu, 24 Sep 2026 09:42:39 +0000 Subject: Archive add-gnome-extension-manager, sync desktop-applications spec Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01HngxrvqEzq8oBEBDtrYJyB --- .../add-gnome-extension-manager/.openspec.yaml | 2 -- .../add-gnome-extension-manager/proposal.md | 24 ---------------------- .../specs/desktop-applications/spec.md | 12 ----------- .../changes/add-gnome-extension-manager/tasks.md | 9 -------- .../.openspec.yaml | 2 ++ .../proposal.md | 24 ++++++++++++++++++++++ .../specs/desktop-applications/spec.md | 12 +++++++++++ .../tasks.md | 9 ++++++++ openspec/specs/desktop-applications/spec.md | 11 ++++++++++ 9 files changed, 58 insertions(+), 47 deletions(-) delete mode 100644 openspec/changes/add-gnome-extension-manager/.openspec.yaml delete mode 100644 openspec/changes/add-gnome-extension-manager/proposal.md delete mode 100644 openspec/changes/add-gnome-extension-manager/specs/desktop-applications/spec.md delete mode 100644 openspec/changes/add-gnome-extension-manager/tasks.md create mode 100644 openspec/changes/archive/2026-09-24-add-gnome-extension-manager/.openspec.yaml create mode 100644 openspec/changes/archive/2026-09-24-add-gnome-extension-manager/proposal.md create mode 100644 openspec/changes/archive/2026-09-24-add-gnome-extension-manager/specs/desktop-applications/spec.md create mode 100644 openspec/changes/archive/2026-09-24-add-gnome-extension-manager/tasks.md diff --git a/openspec/changes/add-gnome-extension-manager/.openspec.yaml b/openspec/changes/add-gnome-extension-manager/.openspec.yaml deleted file mode 100644 index 75289e4..0000000 --- a/openspec/changes/add-gnome-extension-manager/.openspec.yaml +++ /dev/null @@ -1,2 +0,0 @@ -schema: spec-driven -created: 2026-09-24 diff --git a/openspec/changes/add-gnome-extension-manager/proposal.md b/openspec/changes/add-gnome-extension-manager/proposal.md deleted file mode 100644 index d1d686d..0000000 --- a/openspec/changes/add-gnome-extension-manager/proposal.md +++ /dev/null @@ -1,24 +0,0 @@ -## Why - -Tom wants the GNOME Shell Extension Manager app ([mjakeman/extension-manager](https://github.com/mjakeman/extension-manager)) available for managing GNOME Shell extensions through a GUI, on NixOS hosts that run GNOME. - -## What Changes - -- Add `pkgs.gnome-extension-manager` to `modules/home/desktop-apps.nix`. Verified against the flake's pinned `nixos-unstable` nixpkgs: the attribute is named `gnome-extension-manager` (not `extension-manager`) and its `meta.homepage` is exactly `https://github.com/mjakeman/extension-manager`, confirming it's the same project; GPL-3.0-or-later license, Linux-only `meta.platforms`. -- Scoped the same way as GNOME Tweaks (added in `add-ghostty-gnome-tweaks-dark-mode`, already archived): gated on `(osConfig.services.desktopManager.gnome.enable or false)`, not on `pkgs.stdenv.hostPlatform.isLinux`. Extension Manager only makes sense where GNOME Shell is actually running — it's a management UI for GNOME Shell extensions — and `modules/home/desktop-apps.nix` is shared by both every NixOS host (GNOME force-enabled) and the standalone, non-NixOS `homeConfigurations."tom@linux"`, which has no GNOME involved. `osConfig ? null` is already present on the module's function signature from the prior change, so no further signature change is needed. -- **BREAKING**: none — additive only. - -## Capabilities - -### New Capabilities -(none) - -### Modified Capabilities -- `desktop-applications`: add a requirement that GNOME Extension Manager is provisioned only where GNOME is enabled, following the same pattern and wording style as the existing "GNOME Tweaks is provisioned only where GNOME is enabled" requirement. - -## Impact - -- **Affected code**: `modules/home/desktop-apps.nix` (add `pkgs.gnome-extension-manager` to the existing `gnomeOnlyApps` list, alongside `pkgs.gnome-tweaks`). -- **Not affected**: `lib/unfree-allowlist.nix` (free-licensed), `modules/nixos/common.nix` (GNOME is already enabled unconditionally for every NixOS host; no further system-level change needed). -- **Dependencies**: nixpkgs' `gnome-extension-manager` package (already present in the pinned `nixos-unstable` input; no new flake inputs). -- **Platforms**: Linux-only in nixpkgs today, and further scoped to NixOS hosts with GNOME enabled via `osConfig` — it will not appear on `tom@darwin`, on the standalone `tom@linux` homeConfiguration, or on a hypothetical future NixOS host that disables GNOME. diff --git a/openspec/changes/add-gnome-extension-manager/specs/desktop-applications/spec.md b/openspec/changes/add-gnome-extension-manager/specs/desktop-applications/spec.md deleted file mode 100644 index 87a7043..0000000 --- a/openspec/changes/add-gnome-extension-manager/specs/desktop-applications/spec.md +++ /dev/null @@ -1,12 +0,0 @@ -## ADDED Requirements - -### Requirement: GNOME Extension Manager is provisioned only where GNOME is enabled -GNOME Extension Manager SHALL be included in the provisioned package set only where the GNOME desktop is enabled (every NixOS host built from this flake's shared system module), and SHALL be excluded wherever GNOME is not known to be enabled, including standalone (non-NixOS) home-manager activations of the shared profile. - -#### Scenario: Included on a NixOS host with GNOME enabled -- **WHEN** the shared home profile is activated as part of a NixOS host built from this flake's shared system module, where GNOME is enabled -- **THEN** GNOME Extension Manager is included in the provisioned package set - -#### Scenario: Excluded on a standalone activation -- **WHEN** the shared home profile is activated standalone, not as part of a NixOS system (for example via `home-manager switch` on a non-NixOS machine) -- **THEN** GNOME Extension Manager is not included in the provisioned package set, regardless of the host's operating system diff --git a/openspec/changes/add-gnome-extension-manager/tasks.md b/openspec/changes/add-gnome-extension-manager/tasks.md deleted file mode 100644 index 6bec0aa..0000000 --- a/openspec/changes/add-gnome-extension-manager/tasks.md +++ /dev/null @@ -1,9 +0,0 @@ -## 1. GNOME Extension Manager package - -- [x] 1.1 Add `pkgs.gnome-extension-manager` to the `gnomeOnlyApps` list in `modules/home/desktop-apps.nix` (alongside `pkgs.gnome-tweaks`). -- [x] 1.2 Verify `nix eval '.#homeConfigurations."tom@linux".config.home.packages'` excludes `gnome-extension-manager` (standalone, no `osConfig`), while `nix eval '.#nixosConfigurations.test-vm.config.home-manager.users.tom.home.packages'` includes it (NixOS host, GNOME enabled). -- [x] 1.3 Build `nixosConfigurations.test-vm`'s system closure (`nix build '.#nixosConfigurations.test-vm.config.system.build.toplevel'`) and verify it succeeds. - -## 2. Spec sync - -- [x] 2.1 Verify `openspec validate --change add-gnome-extension-manager --strict` passes once the above are implemented, confirming the delta spec matches the shipped behavior. diff --git a/openspec/changes/archive/2026-09-24-add-gnome-extension-manager/.openspec.yaml b/openspec/changes/archive/2026-09-24-add-gnome-extension-manager/.openspec.yaml new file mode 100644 index 0000000..75289e4 --- /dev/null +++ b/openspec/changes/archive/2026-09-24-add-gnome-extension-manager/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-09-24 diff --git a/openspec/changes/archive/2026-09-24-add-gnome-extension-manager/proposal.md b/openspec/changes/archive/2026-09-24-add-gnome-extension-manager/proposal.md new file mode 100644 index 0000000..d1d686d --- /dev/null +++ b/openspec/changes/archive/2026-09-24-add-gnome-extension-manager/proposal.md @@ -0,0 +1,24 @@ +## Why + +Tom wants the GNOME Shell Extension Manager app ([mjakeman/extension-manager](https://github.com/mjakeman/extension-manager)) available for managing GNOME Shell extensions through a GUI, on NixOS hosts that run GNOME. + +## What Changes + +- Add `pkgs.gnome-extension-manager` to `modules/home/desktop-apps.nix`. Verified against the flake's pinned `nixos-unstable` nixpkgs: the attribute is named `gnome-extension-manager` (not `extension-manager`) and its `meta.homepage` is exactly `https://github.com/mjakeman/extension-manager`, confirming it's the same project; GPL-3.0-or-later license, Linux-only `meta.platforms`. +- Scoped the same way as GNOME Tweaks (added in `add-ghostty-gnome-tweaks-dark-mode`, already archived): gated on `(osConfig.services.desktopManager.gnome.enable or false)`, not on `pkgs.stdenv.hostPlatform.isLinux`. Extension Manager only makes sense where GNOME Shell is actually running — it's a management UI for GNOME Shell extensions — and `modules/home/desktop-apps.nix` is shared by both every NixOS host (GNOME force-enabled) and the standalone, non-NixOS `homeConfigurations."tom@linux"`, which has no GNOME involved. `osConfig ? null` is already present on the module's function signature from the prior change, so no further signature change is needed. +- **BREAKING**: none — additive only. + +## Capabilities + +### New Capabilities +(none) + +### Modified Capabilities +- `desktop-applications`: add a requirement that GNOME Extension Manager is provisioned only where GNOME is enabled, following the same pattern and wording style as the existing "GNOME Tweaks is provisioned only where GNOME is enabled" requirement. + +## Impact + +- **Affected code**: `modules/home/desktop-apps.nix` (add `pkgs.gnome-extension-manager` to the existing `gnomeOnlyApps` list, alongside `pkgs.gnome-tweaks`). +- **Not affected**: `lib/unfree-allowlist.nix` (free-licensed), `modules/nixos/common.nix` (GNOME is already enabled unconditionally for every NixOS host; no further system-level change needed). +- **Dependencies**: nixpkgs' `gnome-extension-manager` package (already present in the pinned `nixos-unstable` input; no new flake inputs). +- **Platforms**: Linux-only in nixpkgs today, and further scoped to NixOS hosts with GNOME enabled via `osConfig` — it will not appear on `tom@darwin`, on the standalone `tom@linux` homeConfiguration, or on a hypothetical future NixOS host that disables GNOME. diff --git a/openspec/changes/archive/2026-09-24-add-gnome-extension-manager/specs/desktop-applications/spec.md b/openspec/changes/archive/2026-09-24-add-gnome-extension-manager/specs/desktop-applications/spec.md new file mode 100644 index 0000000..87a7043 --- /dev/null +++ b/openspec/changes/archive/2026-09-24-add-gnome-extension-manager/specs/desktop-applications/spec.md @@ -0,0 +1,12 @@ +## ADDED Requirements + +### Requirement: GNOME Extension Manager is provisioned only where GNOME is enabled +GNOME Extension Manager SHALL be included in the provisioned package set only where the GNOME desktop is enabled (every NixOS host built from this flake's shared system module), and SHALL be excluded wherever GNOME is not known to be enabled, including standalone (non-NixOS) home-manager activations of the shared profile. + +#### Scenario: Included on a NixOS host with GNOME enabled +- **WHEN** the shared home profile is activated as part of a NixOS host built from this flake's shared system module, where GNOME is enabled +- **THEN** GNOME Extension Manager is included in the provisioned package set + +#### Scenario: Excluded on a standalone activation +- **WHEN** the shared home profile is activated standalone, not as part of a NixOS system (for example via `home-manager switch` on a non-NixOS machine) +- **THEN** GNOME Extension Manager is not included in the provisioned package set, regardless of the host's operating system diff --git a/openspec/changes/archive/2026-09-24-add-gnome-extension-manager/tasks.md b/openspec/changes/archive/2026-09-24-add-gnome-extension-manager/tasks.md new file mode 100644 index 0000000..6bec0aa --- /dev/null +++ b/openspec/changes/archive/2026-09-24-add-gnome-extension-manager/tasks.md @@ -0,0 +1,9 @@ +## 1. GNOME Extension Manager package + +- [x] 1.1 Add `pkgs.gnome-extension-manager` to the `gnomeOnlyApps` list in `modules/home/desktop-apps.nix` (alongside `pkgs.gnome-tweaks`). +- [x] 1.2 Verify `nix eval '.#homeConfigurations."tom@linux".config.home.packages'` excludes `gnome-extension-manager` (standalone, no `osConfig`), while `nix eval '.#nixosConfigurations.test-vm.config.home-manager.users.tom.home.packages'` includes it (NixOS host, GNOME enabled). +- [x] 1.3 Build `nixosConfigurations.test-vm`'s system closure (`nix build '.#nixosConfigurations.test-vm.config.system.build.toplevel'`) and verify it succeeds. + +## 2. Spec sync + +- [x] 2.1 Verify `openspec validate --change add-gnome-extension-manager --strict` passes once the above are implemented, confirming the delta spec matches the shipped behavior. diff --git a/openspec/specs/desktop-applications/spec.md b/openspec/specs/desktop-applications/spec.md index ec5e7fe..12720ba 100644 --- a/openspec/specs/desktop-applications/spec.md +++ b/openspec/specs/desktop-applications/spec.md @@ -37,3 +37,14 @@ GNOME Tweaks SHALL be included in the provisioned package set only where the GNO #### Scenario: Excluded on a standalone activation - **WHEN** the shared home profile is activated standalone, not as part of a NixOS system (for example via `home-manager switch` on a non-NixOS machine) - **THEN** GNOME Tweaks is not included in the provisioned package set, regardless of the host's operating system + +### Requirement: GNOME Extension Manager is provisioned only where GNOME is enabled +GNOME Extension Manager SHALL be included in the provisioned package set only where the GNOME desktop is enabled (every NixOS host built from this flake's shared system module), and SHALL be excluded wherever GNOME is not known to be enabled, including standalone (non-NixOS) home-manager activations of the shared profile. + +#### Scenario: Included on a NixOS host with GNOME enabled +- **WHEN** the shared home profile is activated as part of a NixOS host built from this flake's shared system module, where GNOME is enabled +- **THEN** GNOME Extension Manager is included in the provisioned package set + +#### Scenario: Excluded on a standalone activation +- **WHEN** the shared home profile is activated standalone, not as part of a NixOS system (for example via `home-manager switch` on a non-NixOS machine) +- **THEN** GNOME Extension Manager is not included in the provisioned package set, regardless of the host's operating system -- cgit v1.3