Add the Hyprland editions (Noctalia and DMS shells) #64

Merged
TheDarkWizard merged 1 commit from hyprland-editions into main 2026-07-14 04:20:49 +00:00

Adds hyprland-noctalia, hyprland-dms, and their NVIDIA variants on the base-main pattern, plus the shared layers the coming Niri/Nourish PRs reuse.

New shared layers:

  • wm-common.yml: greetd + tuigreet as the display manager (greetd ships sysusers/tmpfiles but only relabels /var/lib/greetd, so a tmpfiles create rule rides along, same class of fix as XFCE's lightdm), Nautilus + gvfs, GNOME Disks, the GTK flatpak app family.
  • hyprland.yml: Hyprland 0.55.4 + xdg-desktop-portal-hyprland from the ashbuk/Hyprland-Fedora COPR. Fedora 44 doesn't carry hyprland and the solopasha COPR is abandoned there (stuck at 0.51, ABI-broken against F44's libdisplay-info); ashbuk vendors the hypr* libs with RPATH isolation so it coexists with the Terra-locked mesa.
  • noctalia.yml: Noctalia 5 from Terra. v5 is a single native binary (the quickshell noctalia-shell/noctalia-qs split is gone) and bundles its own polkit agent, night light, and theming.
  • dms.yml: DankMaterialShell from Fedora proper, own polkit agent included.
  • nvidia-wayland.yml: the session-side NVIDIA pieces the wm editions want on top of nvidia.yml: libva-nvidia-driver with LIBVA_DRIVER_NAME/NVD_BACKEND, ELECTRON_OZONE_PLATFORM_HINT via /etc/environment. The obsolete GBM_BACKEND/__GLX_VENDOR_LIBRARY_NAME advice is documented as deliberately absent.

Default hyprland.conf ships per shell via /etc/skel (0.55 deprecates hyprlang for Lua; the .conf still loads and the file notes the planned migration). Each edition carries a livesys session script that autologs the live user through greetd's initial_session, since livesys-scripts has no greetd support.

Not boot-tested yet; that's the follow-up once test tags publish.

Adds hyprland-noctalia, hyprland-dms, and their NVIDIA variants on the base-main pattern, plus the shared layers the coming Niri/Nourish PRs reuse. New shared layers: - wm-common.yml: greetd + tuigreet as the display manager (greetd ships sysusers/tmpfiles but only relabels /var/lib/greetd, so a tmpfiles create rule rides along, same class of fix as XFCE's lightdm), Nautilus + gvfs, GNOME Disks, the GTK flatpak app family. - hyprland.yml: Hyprland 0.55.4 + xdg-desktop-portal-hyprland from the ashbuk/Hyprland-Fedora COPR. Fedora 44 doesn't carry hyprland and the solopasha COPR is abandoned there (stuck at 0.51, ABI-broken against F44's libdisplay-info); ashbuk vendors the hypr* libs with RPATH isolation so it coexists with the Terra-locked mesa. - noctalia.yml: Noctalia 5 from Terra. v5 is a single native binary (the quickshell noctalia-shell/noctalia-qs split is gone) and bundles its own polkit agent, night light, and theming. - dms.yml: DankMaterialShell from Fedora proper, own polkit agent included. - nvidia-wayland.yml: the session-side NVIDIA pieces the wm editions want on top of nvidia.yml: libva-nvidia-driver with LIBVA_DRIVER_NAME/NVD_BACKEND, ELECTRON_OZONE_PLATFORM_HINT via /etc/environment. The obsolete GBM_BACKEND/__GLX_VENDOR_LIBRARY_NAME advice is documented as deliberately absent. Default hyprland.conf ships per shell via /etc/skel (0.55 deprecates hyprlang for Lua; the .conf still loads and the file notes the planned migration). Each edition carries a livesys session script that autologs the live user through greetd's initial_session, since livesys-scripts has no greetd support. Not boot-tested yet; that's the follow-up once test tags publish.
Add the Hyprland editions with Noctalia and DMS shells
All checks were successful
bluebuild / Check if a rebuild is needed (pull_request) Successful in 3s
PR Rebase Hint / Post rebase command (pull_request) Successful in 4s
bluebuild / Build COSMIC (COSMIC, recipe-cosmic.yml) (pull_request) Successful in 33m36s
bluebuild / Build Budgie (Budgie, recipe-budgie.yml) (pull_request) Successful in 34m38s
bluebuild / Build Budgie NVIDIA (Budgie NVIDIA, recipe-budgie-nvidia.yml) (pull_request) Successful in 38m53s
bluebuild / Build GNOME NVIDIA (GNOME NVIDIA, recipe-gnome-nvidia.yml) (pull_request) Successful in 38m23s
bluebuild / Build GNOME (GNOME, recipe-gnome.yml) (pull_request) Successful in 25m27s
bluebuild / Build Hyprland DMS (Hyprland DMS, recipe-hyprland-dms.yml) (pull_request) Successful in 30m4s
bluebuild / Build Hyprland DMS NVIDIA (Hyprland DMS NVIDIA, recipe-hyprland-dms-nvidia.yml) (pull_request) Successful in 35m44s
bluebuild / Build Hyprland Noctalia NVIDIA (Hyprland Noctalia NVIDIA, recipe-hyprland-noctalia-nvidia.yml) (pull_request) Successful in 32m28s
bluebuild / Build Hyprland Noctalia (Hyprland Noctalia, recipe-hyprland-noctalia.yml) (pull_request) Successful in 23m39s
bluebuild / Build XFCE (XFCE, recipe-xfce.yml) (pull_request) Successful in 31m1s
bluebuild / Build KDE NVIDIA (KDE NVIDIA, recipe-kde-nvidia.yml) (pull_request) Successful in 38m7s
bluebuild / Build XFCE NVIDIA (XFCE NVIDIA, recipe-xfce-nvidia.yml) (pull_request) Successful in 36m30s
bluebuild / Build COSMIC NVIDIA (COSMIC NVIDIA, recipe-cosmic-nvidia.yml) (pull_request) Successful in 37m51s
bluebuild / Build KDE (KDE, recipe-kde.yml) (pull_request) Successful in 32m53s
bluebuild / Generate Release (pull_request) Successful in 23s
bluebuild / Release (pull_request) Successful in 0s
2f09c1fba9
Four images on the base-main pattern: hyprland-noctalia, hyprland-dms,
and their NVIDIA variants. New shared layers: wm-common.yml (greetd +
tuigreet, Nautilus + the GTK app family, tmpfiles for greetd's /var
dirs), hyprland.yml (ashbuk/Hyprland-Fedora COPR; Fedora dropped the
ball on hyprland in 44 and solopasha is abandoned), noctalia.yml (Terra,
plus mate-polkit since Noctalia's agent is a per-user plugin), dms.yml
(Fedora proper, has its own polkit agent), and nvidia-wayland.yml
(libva-nvidia-driver + LIBVA/NVD/ELECTRON env; the driver-side pieces
already live in nvidia.yml). Default hyprland.conf ships via /etc/skel
per shell, and each edition carries a livesys session script that
autologs the live user in through greetd's initial_session.

🧪 Test this PR on a real install

Once the build checks on this PR pass, a signed test image is published for each edition this PR builds. Pick the one matching your hardware and, from an existing Monolith install (which already has the signing policy), rebase onto it:

gnome

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/gnome:pr-64-44
systemctl reboot

kde

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/kde:pr-64-44
systemctl reboot

xfce

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/xfce:pr-64-44
systemctl reboot

cosmic

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/cosmic:pr-64-44
systemctl reboot

budgie

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/budgie:pr-64-44
systemctl reboot

hyprland-noctalia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-noctalia:pr-64-44
systemctl reboot

hyprland-dms

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-dms:pr-64-44
systemctl reboot

gnome-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/gnome-nvidia:pr-64-44
systemctl reboot

kde-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/kde-nvidia:pr-64-44
systemctl reboot

xfce-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/xfce-nvidia:pr-64-44
systemctl reboot

cosmic-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/cosmic-nvidia:pr-64-44
systemctl reboot

budgie-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/budgie-nvidia:pr-64-44
systemctl reboot

hyprland-noctalia-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-noctalia-nvidia:pr-64-44
systemctl reboot

hyprland-dms-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-dms-nvidia:pr-64-44
systemctl reboot

The tags are rebuilt on every new commit here, so rpm-ostree upgrade pulls the latest build. When you're done testing, return to your edition's released image (:latest).

The commands cover the editions this PR affected when it was opened; commits that touch more editions publish their tags too, just without a refreshed comment. The test tags stop updating once this PR is merged or closed.

### 🧪 Test this PR on a real install **Once the build checks on this PR pass**, a signed test image is published for each edition this PR builds. Pick the one matching your hardware and, from an existing Monolith install (which already has the signing policy), rebase onto it: **`gnome`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/gnome:pr-64-44 systemctl reboot ``` **`kde`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/kde:pr-64-44 systemctl reboot ``` **`xfce`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/xfce:pr-64-44 systemctl reboot ``` **`cosmic`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/cosmic:pr-64-44 systemctl reboot ``` **`budgie`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/budgie:pr-64-44 systemctl reboot ``` **`hyprland-noctalia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-noctalia:pr-64-44 systemctl reboot ``` **`hyprland-dms`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-dms:pr-64-44 systemctl reboot ``` **`gnome-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/gnome-nvidia:pr-64-44 systemctl reboot ``` **`kde-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/kde-nvidia:pr-64-44 systemctl reboot ``` **`xfce-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/xfce-nvidia:pr-64-44 systemctl reboot ``` **`cosmic-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/cosmic-nvidia:pr-64-44 systemctl reboot ``` **`budgie-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/budgie-nvidia:pr-64-44 systemctl reboot ``` **`hyprland-noctalia-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-noctalia-nvidia:pr-64-44 systemctl reboot ``` **`hyprland-dms-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-dms-nvidia:pr-64-44 systemctl reboot ``` The tags are rebuilt on every new commit here, so `rpm-ostree upgrade` pulls the latest build. When you're done testing, return to your edition's released image (`:latest`). _The commands cover the editions this PR affected when it was opened; commits that touch more editions publish their tags too, just without a refreshed comment. The test tags stop updating once this PR is merged or closed._
Sign in to join this conversation.
No description provided.