Add the Niri editions (Noctalia and DMS shells) #65

Closed
TheDarkWizard wants to merge 1 commit from niri-editions into hyprland-editions

Stacked on #64 (merge that first; this PR then rebases onto main).

Adds niri-noctalia, niri-dms, and their NVIDIA variants on the wm-common base from #64. Niri comes from Fedora proper, installed with weak deps off so its alacritty/fuzzel/waybar/swaylock starter kit stays out; xwayland-satellite covers X11 clients and xdg-desktop-portal-gnome does screencast.

The system-wide /etc/niri/config.kdl is generated at build time from the niri rpm's own default-config.kdl (files/scripts/niri-default-config.sh), swapping in the shell autostart and the Ptyxis/launcher/lock binds. Anchor greps fail the build if upstream renames the lines, so a rebase can't silently ship a dead launcher bind, and upstream keybind changes flow in instead of rotting in a 600-line vendored copy.

The NVIDIA variants additionally bake the niri wiki's VRAM-leak fix: an nvidia application profile setting GLVidHeapReuseRatio=0 for the niri process, system-wide under /etc/nvidia/nvidia-application-profiles-rc.d.

Not boot-tested yet.

Stacked on #64 (merge that first; this PR then rebases onto main). Adds niri-noctalia, niri-dms, and their NVIDIA variants on the wm-common base from #64. Niri comes from Fedora proper, installed with weak deps off so its alacritty/fuzzel/waybar/swaylock starter kit stays out; xwayland-satellite covers X11 clients and xdg-desktop-portal-gnome does screencast. The system-wide /etc/niri/config.kdl is generated at build time from the niri rpm's own default-config.kdl (files/scripts/niri-default-config.sh), swapping in the shell autostart and the Ptyxis/launcher/lock binds. Anchor greps fail the build if upstream renames the lines, so a rebase can't silently ship a dead launcher bind, and upstream keybind changes flow in instead of rotting in a 600-line vendored copy. The NVIDIA variants additionally bake the niri wiki's VRAM-leak fix: an nvidia application profile setting GLVidHeapReuseRatio=0 for the niri process, system-wide under /etc/nvidia/nvidia-application-profiles-rc.d. Not boot-tested yet.
Add the Niri editions with Noctalia and DMS shells
Some checks failed
bluebuild / Release (pull_request) Has been cancelled
bluebuild / Generate Release (pull_request) Has been cancelled
bluebuild / Build Budgie NVIDIA (Budgie NVIDIA, recipe-budgie-nvidia.yml) (pull_request) Successful in 32m48s
bluebuild / Build Budgie (Budgie, recipe-budgie.yml) (pull_request) Successful in 30m1s
bluebuild / Build COSMIC (COSMIC, recipe-cosmic.yml) (pull_request) Successful in 30m15s
bluebuild / Build COSMIC NVIDIA (COSMIC NVIDIA, recipe-cosmic-nvidia.yml) (pull_request) Successful in 37m18s
bluebuild / Build GNOME NVIDIA (GNOME NVIDIA, recipe-gnome-nvidia.yml) (pull_request) Successful in 31m28s
bluebuild / Build GNOME (GNOME, recipe-gnome.yml) (pull_request) Successful in 24m35s
bluebuild / Build Hyprland DMS NVIDIA (Hyprland DMS NVIDIA, recipe-hyprland-dms-nvidia.yml) (pull_request) Successful in 34m16s
bluebuild / Build Hyprland DMS (Hyprland DMS, recipe-hyprland-dms.yml) (pull_request) Successful in 28m19s
bluebuild / Build Hyprland Noctalia NVIDIA (Hyprland Noctalia NVIDIA, recipe-hyprland-noctalia-nvidia.yml) (pull_request) Successful in 34m50s
bluebuild / Build Hyprland Noctalia (Hyprland Noctalia, recipe-hyprland-noctalia.yml) (pull_request) Successful in 26m11s
bluebuild / Build KDE (KDE, recipe-kde.yml) (pull_request) Successful in 31m10s
bluebuild / Build KDE NVIDIA (KDE NVIDIA, recipe-kde-nvidia.yml) (pull_request) Successful in 38m43s
bluebuild / Build Niri DMS (Niri DMS, recipe-niri-dms.yml) (pull_request) Successful in 31m15s
bluebuild / Build Niri DMS NVIDIA (Niri DMS NVIDIA, recipe-niri-dms-nvidia.yml) (pull_request) Successful in 33m19s
bluebuild / Build Niri Noctalia NVIDIA (Niri Noctalia NVIDIA, recipe-niri-noctalia-nvidia.yml) (pull_request) Successful in 30m32s
bluebuild / Build XFCE (XFCE, recipe-xfce.yml) (pull_request) Successful in 29m6s
bluebuild / Build XFCE NVIDIA (XFCE NVIDIA, recipe-xfce-nvidia.yml) (pull_request) Successful in 35m58s
bluebuild / Build Niri Noctalia (Niri Noctalia, recipe-niri-noctalia.yml) (pull_request) Successful in 28m56s
bluebuild / Check if a rebuild is needed (pull_request) Successful in 4s
PR Rebase Hint / Post rebase command (pull_request) Successful in 3s
0322614ef7
Four more images on the wm-common base the Hyprland editions
introduced: niri-noctalia, niri-dms, and NVIDIA variants. Niri comes
from Fedora proper, installed with weak deps off so the alacritty/
fuzzel/waybar/swaylock starter kit stays out (the shells cover all of
it); xwayland-satellite handles X11 clients and the portal-gnome
backend does screencast. The system-wide /etc/niri/config.kdl is
generated at build time from the rpm's own default-config.kdl with the
shell autostart and launcher/lock binds swapped in, so upstream keybind
changes arrive on rebase instead of rotting in a vendored copy. The
NVIDIA variants also bake the niri wiki's GLVidHeapReuseRatio=0
application profile, which stops the driver's VRAM creep under niri.

🧪 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-65-44
systemctl reboot

kde

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

xfce

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

cosmic

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

budgie

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

hyprland-noctalia

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

hyprland-dms

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

niri-noctalia

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

niri-dms

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

gnome-nvidia

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

kde-nvidia

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

xfce-nvidia

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

cosmic-nvidia

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

budgie-nvidia

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

hyprland-noctalia-nvidia

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

hyprland-dms-nvidia

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

niri-noctalia-nvidia

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

niri-dms-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-dms-nvidia:pr-65-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-65-44 systemctl reboot ``` **`kde`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/kde:pr-65-44 systemctl reboot ``` **`xfce`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/xfce:pr-65-44 systemctl reboot ``` **`cosmic`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/cosmic:pr-65-44 systemctl reboot ``` **`budgie`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/budgie:pr-65-44 systemctl reboot ``` **`hyprland-noctalia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-noctalia:pr-65-44 systemctl reboot ``` **`hyprland-dms`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-dms:pr-65-44 systemctl reboot ``` **`niri-noctalia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-noctalia:pr-65-44 systemctl reboot ``` **`niri-dms`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-dms:pr-65-44 systemctl reboot ``` **`gnome-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/gnome-nvidia:pr-65-44 systemctl reboot ``` **`kde-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/kde-nvidia:pr-65-44 systemctl reboot ``` **`xfce-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/xfce-nvidia:pr-65-44 systemctl reboot ``` **`cosmic-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/cosmic-nvidia:pr-65-44 systemctl reboot ``` **`budgie-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/budgie-nvidia:pr-65-44 systemctl reboot ``` **`hyprland-noctalia-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-noctalia-nvidia:pr-65-44 systemctl reboot ``` **`hyprland-dms-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-dms-nvidia:pr-65-44 systemctl reboot ``` **`niri-noctalia-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-noctalia-nvidia:pr-65-44 systemctl reboot ``` **`niri-dms-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-dms-nvidia:pr-65-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._
TheDarkWizard closed this pull request 2026-07-14 04:23:27 +00:00
Some checks failed
bluebuild / Release (pull_request) Has been cancelled
bluebuild / Generate Release (pull_request) Has been cancelled
bluebuild / Build Budgie NVIDIA (Budgie NVIDIA, recipe-budgie-nvidia.yml) (pull_request) Successful in 32m48s
bluebuild / Build Budgie (Budgie, recipe-budgie.yml) (pull_request) Successful in 30m1s
bluebuild / Build COSMIC (COSMIC, recipe-cosmic.yml) (pull_request) Successful in 30m15s
bluebuild / Build COSMIC NVIDIA (COSMIC NVIDIA, recipe-cosmic-nvidia.yml) (pull_request) Successful in 37m18s
bluebuild / Build GNOME NVIDIA (GNOME NVIDIA, recipe-gnome-nvidia.yml) (pull_request) Successful in 31m28s
bluebuild / Build GNOME (GNOME, recipe-gnome.yml) (pull_request) Successful in 24m35s
bluebuild / Build Hyprland DMS NVIDIA (Hyprland DMS NVIDIA, recipe-hyprland-dms-nvidia.yml) (pull_request) Successful in 34m16s
bluebuild / Build Hyprland DMS (Hyprland DMS, recipe-hyprland-dms.yml) (pull_request) Successful in 28m19s
bluebuild / Build Hyprland Noctalia NVIDIA (Hyprland Noctalia NVIDIA, recipe-hyprland-noctalia-nvidia.yml) (pull_request) Successful in 34m50s
bluebuild / Build Hyprland Noctalia (Hyprland Noctalia, recipe-hyprland-noctalia.yml) (pull_request) Successful in 26m11s
bluebuild / Build KDE (KDE, recipe-kde.yml) (pull_request) Successful in 31m10s
bluebuild / Build KDE NVIDIA (KDE NVIDIA, recipe-kde-nvidia.yml) (pull_request) Successful in 38m43s
bluebuild / Build Niri DMS (Niri DMS, recipe-niri-dms.yml) (pull_request) Successful in 31m15s
bluebuild / Build Niri DMS NVIDIA (Niri DMS NVIDIA, recipe-niri-dms-nvidia.yml) (pull_request) Successful in 33m19s
bluebuild / Build Niri Noctalia NVIDIA (Niri Noctalia NVIDIA, recipe-niri-noctalia-nvidia.yml) (pull_request) Successful in 30m32s
bluebuild / Build XFCE (XFCE, recipe-xfce.yml) (pull_request) Successful in 29m6s
bluebuild / Build XFCE NVIDIA (XFCE NVIDIA, recipe-xfce-nvidia.yml) (pull_request) Successful in 35m58s
bluebuild / Build Niri Noctalia (Niri Noctalia, recipe-niri-noctalia.yml) (pull_request) Successful in 28m56s
bluebuild / Check if a rebuild is needed (pull_request) Successful in 4s
PR Rebase Hint / Post rebase command (pull_request) Successful in 3s

Pull request closed

Sign in to join this conversation.
No description provided.