Installing Nourish

What you need

Nourish ships today as a prebuilt package for Fedora 44 — a free, popular, beginner-friendly version of Linux. 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 downloads the prebuilt release, unpacks it, and launches a friendly interactive installer — it only pulls the runtime libraries Nourish needs (no developer toolchain), and it's safe to re-run. In fact, running it again later is exactly how you update Nourish to the latest release.

curl -fsSL https://nourish.snowies.com/release/latest/fedora44/package.tar.gz | tar -xz && y5-install/install.sh

Want to see exactly what it would do, changing nothing?

curl -fsSL https://nourish.snowies.com/release/latest/fedora44/package.tar.gz | tar -xz && y5-install/install.sh --dry-run

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.