diff options
| author | 2026-09-24 09:42:39 +0000 | |
|---|---|---|
| committer | 2026-09-24 09:42:39 +0000 | |
| commit | a86bc9249f33bfd5701c861383a543279a12c23b (patch) | |
| tree | 4b913c367c326102b2f07dd1e09ea405e62b7d5b /openspec/changes/archive/2026-09-24-add-gnome-extension-manager | |
| parent | c2d09c74ab14b3eb8770fb1027e8da1db2d00010 (diff) | |
| download | desktop-flake-a86bc9249f33bfd5701c861383a543279a12c23b.tar.gz desktop-flake-a86bc9249f33bfd5701c861383a543279a12c23b.tar.bz2 desktop-flake-a86bc9249f33bfd5701c861383a543279a12c23b.zip | |
Archive add-gnome-extension-manager, sync desktop-applications spec
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HngxrvqEzq8oBEBDtrYJyB
Diffstat (limited to 'openspec/changes/archive/2026-09-24-add-gnome-extension-manager')
4 files changed, 47 insertions, 0 deletions
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 @@ | |||
| 1 | schema: spec-driven | ||
| 2 | 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 @@ | |||
| 1 | ## Why | ||
| 2 | |||
| 3 | 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. | ||
| 4 | |||
| 5 | ## What Changes | ||
| 6 | |||
| 7 | - 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`. | ||
| 8 | - 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. | ||
| 9 | - **BREAKING**: none — additive only. | ||
| 10 | |||
| 11 | ## Capabilities | ||
| 12 | |||
| 13 | ### New Capabilities | ||
| 14 | (none) | ||
| 15 | |||
| 16 | ### Modified Capabilities | ||
| 17 | - `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. | ||
| 18 | |||
| 19 | ## Impact | ||
| 20 | |||
| 21 | - **Affected code**: `modules/home/desktop-apps.nix` (add `pkgs.gnome-extension-manager` to the existing `gnomeOnlyApps` list, alongside `pkgs.gnome-tweaks`). | ||
| 22 | - **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). | ||
| 23 | - **Dependencies**: nixpkgs' `gnome-extension-manager` package (already present in the pinned `nixos-unstable` input; no new flake inputs). | ||
| 24 | - **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 @@ | |||
| 1 | ## ADDED Requirements | ||
| 2 | |||
| 3 | ### Requirement: GNOME Extension Manager is provisioned only where GNOME is enabled | ||
| 4 | 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. | ||
| 5 | |||
| 6 | #### Scenario: Included on a NixOS host with GNOME enabled | ||
| 7 | - **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 | ||
| 8 | - **THEN** GNOME Extension Manager is included in the provisioned package set | ||
| 9 | |||
| 10 | #### Scenario: Excluded on a standalone activation | ||
| 11 | - **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) | ||
| 12 | - **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 | ## 1. GNOME Extension Manager package | ||
| 2 | |||
| 3 | - [x] 1.1 Add `pkgs.gnome-extension-manager` to the `gnomeOnlyApps` list in `modules/home/desktop-apps.nix` (alongside `pkgs.gnome-tweaks`). | ||
| 4 | - [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). | ||
| 5 | - [x] 1.3 Build `nixosConfigurations.test-vm`'s system closure (`nix build '.#nixosConfigurations.test-vm.config.system.build.toplevel'`) and verify it succeeds. | ||
| 6 | |||
| 7 | ## 2. Spec sync | ||
| 8 | |||
| 9 | - [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. | ||
