Install script to configure a brand-new minimal Fedora install with Niri and Dank Material Shell (DMS) on an NVIDIA GPU.
- Preflight — verifies Fedora, sudo, network, base CLI tools, and an NVIDIA GPU.
- System update —
dnf upgrade --refresh. - Terra repository + sub-repos — installs
terra-releaseand theterra-release-extras,terra-release-mesa,terra-release-nvidia(andterra-release-multimediaon Fedora 43+) subpackages, which lay down the matching.repofiles. Terra provides the NVIDIA driver, Niri, DMS, and the DMS greeter, so no RPM Fusion is needed. See https://developer.fyralabs.com/terra/installing. - NVIDIA drivers (from Terra) —
akmod-nvidia+ CUDA + VAAPI; setsnvidia-drm.modeset=1, blacklists nouveau, waits for the kernel module to build. - Niri compositor — installs
niri. All Wayland session bits (xdg-desktop-portal, PipeWire, Polkit, etc.) come along automatically as Niri's dependencies. - Dank Material Shell — installs
dmsfrom Terra.quickshell,dgop, fonts, and other DMS deps are pulled in automatically. - File manager — installs
nautilus. - DMS greeter — enables Copr
avengemedia/danklinux(the greeter is not in Terra) and installsdms-greeter(which pulls ingreetd). Writes/etc/greetd/config.tomlwithcommand = "dms-greeter --command niri"and sets the graphical target as default. Docs: https://danklinux.com/docs/dankgreeter/ - Niri config — writes a starter
~/.config/niri/config.kdlthat auto-spawns DMS and sets the NVIDIA Wayland env vars.
The script is idempotent — re-running it skips anything already in place.
From a TTY on a freshly logged-in minimal Fedora install (run as your normal user, not root):
curl -fsSL https://raw.githubusercontent.com/lmaule/fedniridms/main/install.sh -o install.sh
chmod +x install.sh
./install.shOr, if you cloned the repo:
git clone https://github.com/lmaule/fedniridms.git
cd fedniridms
./install.shWhen it finishes, reboot so the NVIDIA kernel command line (nvidia-drm.modeset=1) and the freshly built akmod-nvidia module take effect. On reboot you'll be greeted by dms-greeter (running under greetd); log in and Niri will start with DMS auto-spawning.
nvidia-smi
cat /sys/module/nvidia_drm/parameters/modeset # expect: Y
dnf repolist --enabled | grep -i terra
systemctl status greetd
niri --version