Add the Nourish edition (y5 infinite-canvas compositor) #66

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

Stacked on #65 (merge #64, then #65, then this; it rebases onto main as they land).

Adds nourish and nourish-nvidia. Nourish (github.com/y5-snowies/nourish) is the y5 compositor: Rust/smithay, Vulkan-rendered with GLES fallback, windows on an infinite pannable/zoomable canvas. There is no rpm anywhere; upstream ships prebuilt Fedora 44 binaries behind an interactive installer that refuses root and writes half its output to $HOME, so nourish.yml replicates it for an image build instead:

  • The installer's manifest was captured with --dry-run plus a real run in a container. Binaries (compositor, settings tool, dev log viewer, polkit agent, patched xwayland-satellite) and the PAM lock policy install from the tarball at build time.
  • Everything the installer generates per-user ships as static files promoted to image paths: the session wrapper and wayland-sessions entry, the y5/polkit/xwayland user units to /usr/lib/systemd/user (polkit + xwayland globally enabled), the portal config to /usr/share/xdg-desktop-portal, and the settings.json every session hard-requires seeded through /etc/skel with the GLES fallback turned on.
  • An ldd gate over the installed binaries fails the build if a future bundle grows a runtime dep the package list misses.

Deliberate calls, flagged for review: the image tracks upstream's rolling latest bundle (no digests/signatures exist to pin against), and screen capture stays on ffmpeg-free rather than pulling RPM Fusion's full ffmpeg into a Terra-mesa image. The bundle's patched xwayland-satellite means Fedora's own xwayland-satellite package must never be added to this edition.

Not boot-tested yet.

Stacked on #65 (merge #64, then #65, then this; it rebases onto main as they land). Adds nourish and nourish-nvidia. Nourish (github.com/y5-snowies/nourish) is the y5 compositor: Rust/smithay, Vulkan-rendered with GLES fallback, windows on an infinite pannable/zoomable canvas. There is no rpm anywhere; upstream ships prebuilt Fedora 44 binaries behind an interactive installer that refuses root and writes half its output to $HOME, so nourish.yml replicates it for an image build instead: - The installer's manifest was captured with --dry-run plus a real run in a container. Binaries (compositor, settings tool, dev log viewer, polkit agent, patched xwayland-satellite) and the PAM lock policy install from the tarball at build time. - Everything the installer generates per-user ships as static files promoted to image paths: the session wrapper and wayland-sessions entry, the y5/polkit/xwayland user units to /usr/lib/systemd/user (polkit + xwayland globally enabled), the portal config to /usr/share/xdg-desktop-portal, and the settings.json every session hard-requires seeded through /etc/skel with the GLES fallback turned on. - An ldd gate over the installed binaries fails the build if a future bundle grows a runtime dep the package list misses. Deliberate calls, flagged for review: the image tracks upstream's rolling latest bundle (no digests/signatures exist to pin against), and screen capture stays on ffmpeg-free rather than pulling RPM Fusion's full ffmpeg into a Terra-mesa image. The bundle's patched xwayland-satellite means Fedora's own xwayland-satellite package must never be added to this edition. Not boot-tested yet.
Add the Nourish edition (y5 infinite-canvas compositor)
Some checks failed
bluebuild / Check if a rebuild is needed (pull_request) Successful in 3s
PR Rebase Hint / Post rebase command (pull_request) Successful in 3s
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 34m50s
bluebuild / Build Budgie (Budgie, recipe-budgie.yml) (pull_request) Successful in 26m43s
bluebuild / Build COSMIC NVIDIA (COSMIC NVIDIA, recipe-cosmic-nvidia.yml) (pull_request) Successful in 36m27s
bluebuild / Build GNOME NVIDIA (GNOME NVIDIA, recipe-gnome-nvidia.yml) (pull_request) Successful in 36m49s
bluebuild / Build Hyprland DMS NVIDIA (Hyprland DMS NVIDIA, recipe-hyprland-dms-nvidia.yml) (pull_request) Successful in 33m43s
bluebuild / Build Hyprland Noctalia NVIDIA (Hyprland Noctalia NVIDIA, recipe-hyprland-noctalia-nvidia.yml) (pull_request) Successful in 31m8s
bluebuild / Build Hyprland Noctalia (Hyprland Noctalia, recipe-hyprland-noctalia.yml) (pull_request) Successful in 25m44s
bluebuild / Build KDE (KDE, recipe-kde.yml) (pull_request) Successful in 30m31s
bluebuild / Build KDE NVIDIA (KDE NVIDIA, recipe-kde-nvidia.yml) (pull_request) Successful in 37m30s
bluebuild / Build Niri DMS NVIDIA (Niri DMS NVIDIA, recipe-niri-dms-nvidia.yml) (pull_request) Successful in 32m53s
bluebuild / Build Niri DMS (Niri DMS, recipe-niri-dms.yml) (pull_request) Successful in 24m40s
bluebuild / Build Niri Noctalia NVIDIA (Niri Noctalia NVIDIA, recipe-niri-noctalia-nvidia.yml) (pull_request) Successful in 34m17s
bluebuild / Build Niri Noctalia (Niri Noctalia, recipe-niri-noctalia.yml) (pull_request) Successful in 28m7s
bluebuild / Build Nourish (Nourish, recipe-nourish.yml) (pull_request) Successful in 27m13s
bluebuild / Build Nourish NVIDIA (Nourish NVIDIA, recipe-nourish-nvidia.yml) (pull_request) Successful in 31m58s
bluebuild / Build XFCE (XFCE, recipe-xfce.yml) (pull_request) Successful in 27m39s
bluebuild / Build COSMIC (COSMIC, recipe-cosmic.yml) (pull_request) Successful in 23m56s
bluebuild / Build GNOME (GNOME, recipe-gnome.yml) (pull_request) Successful in 26m29s
bluebuild / Build Hyprland DMS (Hyprland DMS, recipe-hyprland-dms.yml) (pull_request) Successful in 27m35s
bluebuild / Build XFCE NVIDIA (XFCE NVIDIA, recipe-xfce-nvidia.yml) (pull_request) Successful in 33m17s
738efe6fad
nourish and nourish-nvidia, on the wm-common greetd/tuigreet base.
Nourish has no rpm; upstream ships prebuilt Fedora 44 binaries behind
an interactive installer that refuses root and writes half its output
to $HOME, so nourish.yml replicates its manifest instead (captured via
--dry-run plus a real run in a container): binaries and the PAM lock
policy come from the tarball at build time, and everything the
installer generates per-user ships as static files promoted to the
right image-wide spots (session wrapper and entry, y5/polkit/xwayland
user units to /usr/lib/systemd/user, portal config to /usr/share, and
the settings.json every session requires seeded via /etc/skel with the
GLES fallback enabled). The bundle's patched xwayland-satellite
replaces any need for Fedora's, and an ldd gate fails the build if a
future bundle grows a runtime dep the manifest misses. Tracks
upstream's rolling latest bundle by design; capture stays on
ffmpeg-free rather than pulling RPM Fusion into a Terra-mesa image.

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

kde

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

xfce

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

cosmic

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

budgie

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

hyprland-noctalia

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

hyprland-dms

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

niri-noctalia

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

niri-dms

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

nourish

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

gnome-nvidia

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

kde-nvidia

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

xfce-nvidia

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

cosmic-nvidia

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

budgie-nvidia

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

hyprland-noctalia-nvidia

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

hyprland-dms-nvidia

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

niri-noctalia-nvidia

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

niri-dms-nvidia

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

nourish-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/nourish-nvidia:pr-66-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-66-44 systemctl reboot ``` **`kde`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/kde:pr-66-44 systemctl reboot ``` **`xfce`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/xfce:pr-66-44 systemctl reboot ``` **`cosmic`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/cosmic:pr-66-44 systemctl reboot ``` **`budgie`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/budgie:pr-66-44 systemctl reboot ``` **`hyprland-noctalia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-noctalia:pr-66-44 systemctl reboot ``` **`hyprland-dms`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-dms:pr-66-44 systemctl reboot ``` **`niri-noctalia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-noctalia:pr-66-44 systemctl reboot ``` **`niri-dms`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-dms:pr-66-44 systemctl reboot ``` **`nourish`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/nourish:pr-66-44 systemctl reboot ``` **`gnome-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/gnome-nvidia:pr-66-44 systemctl reboot ``` **`kde-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/kde-nvidia:pr-66-44 systemctl reboot ``` **`xfce-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/xfce-nvidia:pr-66-44 systemctl reboot ``` **`cosmic-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/cosmic-nvidia:pr-66-44 systemctl reboot ``` **`budgie-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/budgie-nvidia:pr-66-44 systemctl reboot ``` **`hyprland-noctalia-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-noctalia-nvidia:pr-66-44 systemctl reboot ``` **`hyprland-dms-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-dms-nvidia:pr-66-44 systemctl reboot ``` **`niri-noctalia-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-noctalia-nvidia:pr-66-44 systemctl reboot ``` **`niri-dms-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-dms-nvidia:pr-66-44 systemctl reboot ``` **`nourish-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/nourish-nvidia:pr-66-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:25:59 +00:00
Some checks failed
bluebuild / Check if a rebuild is needed (pull_request) Successful in 3s
PR Rebase Hint / Post rebase command (pull_request) Successful in 3s
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 34m50s
bluebuild / Build Budgie (Budgie, recipe-budgie.yml) (pull_request) Successful in 26m43s
bluebuild / Build COSMIC NVIDIA (COSMIC NVIDIA, recipe-cosmic-nvidia.yml) (pull_request) Successful in 36m27s
bluebuild / Build GNOME NVIDIA (GNOME NVIDIA, recipe-gnome-nvidia.yml) (pull_request) Successful in 36m49s
bluebuild / Build Hyprland DMS NVIDIA (Hyprland DMS NVIDIA, recipe-hyprland-dms-nvidia.yml) (pull_request) Successful in 33m43s
bluebuild / Build Hyprland Noctalia NVIDIA (Hyprland Noctalia NVIDIA, recipe-hyprland-noctalia-nvidia.yml) (pull_request) Successful in 31m8s
bluebuild / Build Hyprland Noctalia (Hyprland Noctalia, recipe-hyprland-noctalia.yml) (pull_request) Successful in 25m44s
bluebuild / Build KDE (KDE, recipe-kde.yml) (pull_request) Successful in 30m31s
bluebuild / Build KDE NVIDIA (KDE NVIDIA, recipe-kde-nvidia.yml) (pull_request) Successful in 37m30s
bluebuild / Build Niri DMS NVIDIA (Niri DMS NVIDIA, recipe-niri-dms-nvidia.yml) (pull_request) Successful in 32m53s
bluebuild / Build Niri DMS (Niri DMS, recipe-niri-dms.yml) (pull_request) Successful in 24m40s
bluebuild / Build Niri Noctalia NVIDIA (Niri Noctalia NVIDIA, recipe-niri-noctalia-nvidia.yml) (pull_request) Successful in 34m17s
bluebuild / Build Niri Noctalia (Niri Noctalia, recipe-niri-noctalia.yml) (pull_request) Successful in 28m7s
bluebuild / Build Nourish (Nourish, recipe-nourish.yml) (pull_request) Successful in 27m13s
bluebuild / Build Nourish NVIDIA (Nourish NVIDIA, recipe-nourish-nvidia.yml) (pull_request) Successful in 31m58s
bluebuild / Build XFCE (XFCE, recipe-xfce.yml) (pull_request) Successful in 27m39s
bluebuild / Build COSMIC (COSMIC, recipe-cosmic.yml) (pull_request) Successful in 23m56s
bluebuild / Build GNOME (GNOME, recipe-gnome.yml) (pull_request) Successful in 26m29s
bluebuild / Build Hyprland DMS (Hyprland DMS, recipe-hyprland-dms.yml) (pull_request) Successful in 27m35s
bluebuild / Build XFCE NVIDIA (XFCE NVIDIA, recipe-xfce-nvidia.yml) (pull_request) Successful in 33m17s

Pull request closed

Sign in to join this conversation.
No description provided.