Skip to content

flake: add niri-flake + DMS inputs (ADR-028 slice 3a)#42

Merged
dannyfaris merged 1 commit into
mainfrom
desktop-env/01-flake-inputs
May 28, 2026
Merged

flake: add niri-flake + DMS inputs (ADR-028 slice 3a)#42
dannyfaris merged 1 commit into
mainfrom
desktop-env/01-flake-inputs

Conversation

@dannyfaris

Copy link
Copy Markdown
Owner

Summary

Adds the two flake inputs that ADR-028 slice 3 consumes:

  • niri-flake (sodiboo/niri-flake) — niri compositor. Exposes nixosModules.niri (system: package + polkit + dconf + OpenGL + wayland-session entry) and homeModules.niri (typed programs.niri.settings.* surface, auto-imported via the nixosModule's HM integration).
  • dank-material-shell (AvengeMedia/DankMaterialShell) — Quickshell-based Material You shell. Exposes homeModules.dank-material-shell. Slice 3b will bridge this into HM via home-manager.sharedModules (the home-manager.nix wrapper forwards only hostContext via extraSpecialArgs; sharedModules is the existing NixOS-side mechanism for adding HM modules without expanding that contract).

Both follow nixpkgs.

No consumers in this sub-slice — closure unchanged. Slice 3b imports the niri nixosModule and adds the DMS sharedModules bridge.

Test plan

  • nix flake update niri-flake dank-material-shell locks both with nixpkgs follows.
  • nix build .#nixosConfigurations.metis.config.system.build.toplevel --no-link succeeds (exit 0).
  • Pre-commit hooks pass (deadnix, statix, shared-purity, hardware-config-banner, actionlint).
  • CI matrix green on aarch64-linux + x86_64-linux.

Refs: #33 (ADR-028 slice 3 tracker), ADR-028.

🤖 Generated with Claude Code

Adds two new flake inputs that the desktop-env bundles in subsequent
sub-slices will consume:

- niri-flake (sodiboo/niri-flake) — niri compositor; exposes
  nixosModules.niri (system: package + polkit + dconf + OpenGL +
  wayland-session entry) and homeModules.niri (typed
  programs.niri.settings.* surface, auto-imported via the nixosModule's
  HM integration).

- dank-material-shell (AvengeMedia/DankMaterialShell) — Quickshell-based
  Material You shell; exposes homeModules.dank-material-shell. Slice 3b
  bridges this into HM via home-manager.sharedModules (the
  home-manager.nix wrapper forwards only hostContext via
  extraSpecialArgs; sharedModules is the existing NixOS-side mechanism
  for adding HM modules without expanding that contract).

Both follow nixpkgs.

Build-verified: nix build .#nixosConfigurations.metis... succeeds. No
consumers yet — closure unchanged.

Per ADR-028 §Implementation slice 3.
@dannyfaris
dannyfaris enabled auto-merge (squash) May 28, 2026 09:15
@dannyfaris
dannyfaris merged commit 47d5d2e into main May 28, 2026
4 checks passed
@dannyfaris
dannyfaris deleted the desktop-env/01-flake-inputs branch May 28, 2026 09:18
dannyfaris added a commit that referenced this pull request May 28, 2026
First commit that imports the slice-3 desktop bundles into a real host.
Two-line addition to hosts/metis/default.nix:

- modules/core/nixos/bundles/desktop-env.nix added to `imports`
  (alongside bundles/remote-access.nix).
- home/core/nixos/bundles/desktop-env.nix added to
  hostContext.extraHomeModules (after the shared theming bundle,
  before standalones).

This is the integration test for the four merged slice-3 PRs:
  - #42 (3a) — flake inputs
  - #44 (3b) — system bundle scaffold (niri + greetd + fonts + DMS bridge)
  - #55 (3c) — home bundle scaffold (niri binds + foot + DMS)
  - #57 (3b.5) — niri.cachix.org substituter in nix.settings

…plus the CI-side half currently in flight at #59 (extra_nix_config
in flake-check workflow). This branch is stacked on
desktop-env/ci-niri-cache-trust so the CI workflow trust is in place
when CI evaluates this PR.

Closure delta on metis (expected): niri (from niri.cachix.org), greetd
+ tuigreet, Quickshell + Qt6 + matugen + DMS deps,
xdg-desktop-portal-gnome, polkit-kde-agent-1, gnome-keyring, Inter,
Noto Color Emoji, foot. No regression expected on mercury or
nixos-vm — neither imports the bundles.

Local build verification not possible — dbf is not in nix's
trusted-users, so runtime substituter additions are rejected. The
integration test fires in CI where the GH Actions runner is trusted
and the workflow already declares extra-substituters via #59 (which
this branch inherits). No `nh os switch` here; that's slice 5.

Peer-reviewed (8 checkpoints: bundle placement, no auto-discovery,
closure delta sanity, eval-without-cache, CI matrix arch scoping, CI
ordering / branch base, merge-order safety, edge cases including HM
module order, Stylix font conflicts, pre-commit hooks).

Per ADR-028 §Implementation slice 3.
dannyfaris added a commit that referenced this pull request May 28, 2026
First commit that imports the slice-3 desktop bundles into a real host.
Two-line addition to hosts/metis/default.nix:

- modules/core/nixos/bundles/desktop-env.nix added to `imports`
  (alongside bundles/remote-access.nix).
- home/core/nixos/bundles/desktop-env.nix added to
  hostContext.extraHomeModules (after the shared theming bundle,
  before standalones).

This is the integration test for the four merged slice-3 PRs:
  - #42 (3a) — flake inputs
  - #44 (3b) — system bundle scaffold (niri + greetd + fonts + DMS bridge)
  - #55 (3c) — home bundle scaffold (niri binds + foot + DMS)
  - #57 (3b.5) — niri.cachix.org substituter in nix.settings

…plus the CI-side half currently in flight at #59 (extra_nix_config
in flake-check workflow). This branch is stacked on
desktop-env/ci-niri-cache-trust so the CI workflow trust is in place
when CI evaluates this PR.

Closure delta on metis (expected): niri (from niri.cachix.org), greetd
+ tuigreet, Quickshell + Qt6 + matugen + DMS deps,
xdg-desktop-portal-gnome, polkit-kde-agent-1, gnome-keyring, Inter,
Noto Color Emoji, foot. No regression expected on mercury or
nixos-vm — neither imports the bundles.

Local build verification not possible — dbf is not in nix's
trusted-users, so runtime substituter additions are rejected. The
integration test fires in CI where the GH Actions runner is trusted
and the workflow already declares extra-substituters via #59 (which
this branch inherits). No `nh os switch` here; that's slice 5.

Peer-reviewed (8 checkpoints: bundle placement, no auto-discovery,
closure delta sanity, eval-without-cache, CI matrix arch scoping, CI
ordering / branch base, merge-order safety, edge cases including HM
module order, Stylix font conflicts, pre-commit hooks).

Per ADR-028 §Implementation slice 3.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant