Installing Nourish
What you need
Nourish ships as a prebuilt package for every mainstream Linux, and Fedora 44 is the one we recommend — a free, popular, beginner-friendly version, and the one Nourish itself is built on. Don't want to commit your whole machine yet? You can run Nourish in a window inside your existing Linux desktop to try it.
The one-command install
Open the Terminal app and paste this. It works out which distribution and processor you have, downloads the matching prebuilt release, checks it hasn't been tampered with, and launches a friendly interactive installer — it only pulls the runtime libraries Nourish needs (no developer toolchain), and it's safe to re-run.
curl -fsSL https://nourish.snowies.com/install | bash
Fedora 44 is the recommended choice — it's the version Nourish is built and tested on every day, so it's the smoothest ride. If you're picking a Linux to start from, pick that one.
Fedora 43, Debian 13, Ubuntu 26.04, and Arch are
covered as well, on both Intel/AMD (x86_64) and ARM (aarch64) — so a
Raspberry Pi works too. On NixOS it prints the nix-ld setup
to add rather than installing imperatively.
Debian 12 and Ubuntu 24.04 are not supported — their system input library is older than the tablet-and-dial support Nourish is built against. The installer tells you so rather than leaving you with a build that won't start.
Want to see exactly what it would do, changing nothing?
curl -fsSL https://nourish.snowies.com/install | Y5_INSTALL_ARGS=--dry-run bash
Later on, y5.compositor.update re-runs this same script
to move to the newest release, and y5.compositor.uninstall
removes everything it installed. Your settings are kept either way —
add --purge to the uninstaller if you want those gone too.
The installer detects your graphics card and pre-selects the right
driver, installs the runtime packages with your permission (it uses
sudo for the system steps), and sets up the login session
entries. You can also optionally install the MX Master gesture daemon,
the developer log-viewer, and the lock-screen policy.
Starting Nourish
Log out, and on your login screen pick a "Y5…" session from the session menu (usually a small gear icon). Log back in — and you're home.
Build it yourself
The full source lives on GitHub.
git clone https://github.com/y5-snowies/nourish
cd nourish
# The compositor needs ~/.config/y5.compositor/settings.json to start.
# Author it first by running the settings tool straight from source:
cargo run --release --manifest-path compositor.installer/component/settings-editor/Cargo.toml
# Build & run the compositor nested in your current Wayland session:
environment/run-host.sh winit release
When you're ready to install it as a real login session, build the compositor binary:
# Build & install the compositor binary to /usr/bin/y5.compositor:
environment/build-release.sh system
Building from source needs the Rust toolchain plus the
system development libraries (Wayland, libinput, Mesa/Vulkan, ffmpeg, …).
On Fedora, run environment/install-deps.sh to pull them in;
on another distribution, feed that script to an AI agent to find the
equivalent packages. Building from source links against your own
distribution's system library versions — which is exactly why it works
beyond Fedora.
Setting up desktop and service files
The prebuilt installer generates these for you. Building by hand, you create three small files so your display manager lists Nourish and can launch it. Adjust the names if you prefer; just keep them consistent.
A wrapper script at /usr/bin/y5-session — it sets the
session identity and execs the compositor (it never writes
settings.json; that's yours, authored with
y5.compositor.settings):
#!/bin/bash
# /usr/bin/y5-session — ExecStart of y5.service
export XDG_CURRENT_DESKTOP=Y5Compositor
export XDG_SESSION_TYPE=wayland
# The compositor reads ALL of its config from settings.json and panics if it's
# missing. Configure it with the 'y5.compositor.settings' tool.
_y5_cfg="${XDG_CONFIG_HOME:-$HOME/.config}/y5.compositor"
if [ ! -f "$_y5_cfg/settings.json" ]; then
echo "y5: no configuration at $_y5_cfg/settings.json" >&2
echo "y5: run 'y5.compositor.settings' to configure, then start again." >&2
exit 1
fi
exec /usr/bin/y5.compositor
A systemd user service at
~/.config/systemd/user/y5.service that runs the wrapper:
[Unit]
Description=Y5 Wayland compositor
BindsTo=graphical-session.target
Before=graphical-session.target
Wants=graphical-session-pre.target
After=graphical-session-pre.target
[Service]
Slice=session.slice
Type=exec
ExecStart=/usr/bin/y5-session
And a session entry at
/usr/share/wayland-sessions/y5.desktop — this is what shows
up in your login screen's session menu:
[Desktop Entry]
Name=Y5
Comment=Y5 Compositor
Exec=systemctl --user --wait start y5.service
Type=Application
DesktopNames=Y5Compositor
Install them with the right permissions — the wrapper and session entry are system-wide, the service is per-user:
sudo install -m 755 y5-session /usr/bin/y5-session
sudo install -m 644 y5.desktop /usr/share/wayland-sessions/y5.desktop
install -Dm 644 y5.service ~/.config/systemd/user/y5.service
Lock screen support
The lock screen (Super+L) checks your password
through PAM, the proper way. Add a PAM service at
/etc/pam.d/y5-lock that mirrors your system's normal
interactive password policy:
# /etc/pam.d/y5-lock
# PAM service for the y5 compositor's lock screen.
# RHEL / Fedora / Arch / openSUSE:
auth include system-auth
account include system-auth
# Debian / Ubuntu — comment the two lines above and uncomment these:
# auth include common-auth
# account include common-account
Install it (it must be readable by root):
sudo install -m 644 y5-lock /etc/pam.d/y5-lock
On NixOS, PAM services are declarative — add
security.pam.services.y5-lock = {}; to your
configuration.nix instead, which produces an equivalent
default stack.
Stuck? Open an issue on GitHub or say hello on Discord and a human will help.