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.

Configuring Nourish

Press Super+Tab to raise the overview panel. Everything is configurable right here — input, display, audio, network, Bluetooth, performance and more — and every keyboard binding is listed alongside, so you can see (and learn) the whole shortcut set at a glance.

The Nourish system configuration overview panel: config modules on the left, input settings in the middle, and the full list of keyboard bindings on the right.

Prefer a dedicated window? Open y5.compositor.settings — the standalone settings app — to configure the same system settings (display, input, audio, network, and the rest) through a focused interface instead of the overview panel.

Both write the same configuration the compositor reads at startup, so it's purely whichever you find more comfortable.