VOOZH about

URL: https://dev.to/pizidavi/minimal-fedora-install-with-niri-dankmaterialshell-34md

⇱ Minimal Fedora install with Niri + DankMaterialShell - DEV Community


I wanted a minimal Fedora base without giving up a modern Wayland desktop.

This guide shows a reproducible flow to install Fedora from the Everything ISO, then layer on:

  • Niri as the Wayland window manager
  • DankMaterialShell (DMS) as the desktop shell (Quickshell + Go) via the DankLinux installer

If your hardware differs (especially Wi‑Fi and GPU), driver/firmware steps may differ.

Table of contents

0) Before you start

  • A USB drive with the Fedora Everything ISO written to it
  • Basic familiarity with the Fedora installer
  • Internet connection (for updates + packages)

If you’re installing on a laptop, keep an Ethernet adapter/hotspot handy — Wi‑Fi firmware is the most common “minimal install” snag.

1) Install Fedora minimal

Boot from the USB and follow these steps in the Fedora installer:

  1. Select your language
  2. Set your keyboard layout
  3. In Software Selection, pick the minimal/custom option (keep it minimal)
  4. Configure the disk (choose your layout — Btrfs is a solid default)
  5. Create a user account and keep root disabled (recommended)

At this point you should boot into a minimal Fedora shell environment.

2) First boot: baseline setup

Maximize DNF download speed

Edit DNF’s configuration:

sudo nano /etc/dnf/dnf.conf

Add (or edit) this option:

[main]
max_parallel_downloads=10
defaultyes=True

Enable RPM Fusion repositories

RPM Fusion is needed for some codecs and (commonly) NVIDIA drivers.

sudo dnf install \
 https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
 https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

Update the system:

sudo dnf group upgrade core
sudo dnf upgrade --refresh

3) Install Niri and DankMaterialShell

Run the installer:

curl -fsSL https://install.danklinux.com | sh

In the wizard I selected:

  1. Niri as Window Manager
  2. Alacritty as terminal emulator
  3. dms-greeter as display manager/greeter (a greetd greeter)

Ensure a graphical boot target:

sudo systemctl set-default graphical.target

Now reboot!

4) Post-install: drivers and core functionality

Now that Fedora + Niri + DMS are installed, validate the “core stuff” (networking, graphics, portals, audio). The goal is to catch driver/firmware issues early.

Install core software and firmware packages

sudo dnf install which wget pciutils usbutils linux-firmware

Optional utils:

sudo dnf install plocate autoconf bison re2c libxml2-devel sqlite-devel oniguruma-devel libcurl-devel gd-devel libpq-devel libzip-devel

NOTE: pciutils provides lspci for hardware identification; linux-firmware provides firmware blobs for many peripherals.

Create XDG user directories

This sets up the standard home folders (Downloads, Documents, etc.) using xdg-user-dirs.

sudo dnf install xdg-user-dirs
xdg-user-dirs-update

Wi‑Fi (NetworkManager)

Install and enable NetworkManager:

sudo dnf install NetworkManager NetworkManager-wifi
sudo systemctl enable --now NetworkManager

Verify:

nmcli device status


GPU (Intel + NVIDIA)

Intel iGPU (Mesa)

Install Mesa drivers and the glxinfo tool:

sudo dnf install mesa-dri-drivers mesa-vulkan-drivers mesa-libGL mesa-demos

Verify:

glxinfo | grep "OpenGL renderer"
# Expected: "Mesa Intel(R) ..."

NVIDIA dGPU

Install NVIDIA drivers from RPM Fusion:

sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda

Verify PRIME offload rendering:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep "OpenGL renderer"
# Expected: "NVIDIA GeForce RTX ..."

XDG Desktop Portals (Flatpak + screenshots/screencast)

Install portal backends:

sudo dnf install xdg-desktop-portal xdg-desktop-portal-gnome xdg-desktop-portal-gtk xdg-desktop-portal-wlr

Add or edit the configuration in ~/.config/xdg-desktop-portal/portal.conf:

[preferred]
default=gnome;gtk
org.freedesktop.impl.portal.Screenshot=wlr
org.freedesktop.impl.portal.ScreenCast=wlr

This uses xdg-desktop-portal-gnome as default and keeps gtk/wlr available for Wayland-specific functionality.

Keyring

Install GNOME Keyring:

sudo dnf install gnome-keyring gnome-keyring-pam seahorse

Set the portal Secret provider in ~/.config/xdg-desktop-portal/portal.conf:

[preferred]
# ... existing config
org.freedesktop.impl.portal.Secret=gnome-keyring

Enable keyring auto-unlock in PAM

Enable fingerprint for sudo access:

sudo authselect enable-feature with-pam-gnome-keyring

Automatically change keyring password with user password

This only affects the login keyring

Append or uncomment to /etc/pam.d/passwd:

password optional pam_gnome_keyring.so use_authtok

Audio and microphone (PipeWire)

sudo dnf group upgrade multimedia --exclude=PackageKit-gstreamer-plugin
sudo dnf install pipewire pipewire-pulseaudio pipewire-alsa wireplumber alsa-sof-firmware

systemctl --user enable --now pipewire pipewire-pulse wireplumber

Bluetooth

Troubleshooting:

rfkill list
rfkill unblock bluetooth

Battery power profiles

sudo dnf install power-profiles-daemon

Fingerprint

Install:

sudo dnf install fprintd fprintd-pam

Enroll / list fingerprints:

fprintd-list <user>
fprintd-enroll

Enable fingerprint for sudo access

This will make keyring auto-unlock not work as expected

sudo authselect enable-feature with-fingerprint

Printer

sudo dnf install cups-pk-helper

"Open With" / URL handler

Install the common helper:

sudo dnf install xdg-utils

Set DankMaterialShell’s browser picker (dms-open.desktop) as the default browser handler:

xdg-settings set default-web-browser dms-open.desktop

Other quick checks

  • Keyboard function keys (volume, mute, brightness)
  • Camera
  • Screen sharing / recording
  • External monitor

5) Daily packages

Nautilus file manager + quick preview

sudo dnf install nautilus sushi

NOTE: sushi provides quick previews inside Nautilus.

FFmpeg (H.264 codecs)

sudo dnf swap ffmpeg-free ffmpeg --allowerasing

Flatpak + Flathub

sudo dnf install flatpak

# Add Flathub repository for Flatpak packages
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

Disks

sudo dnf install gnome-disk-utility

Btrfs Assistant

sudo dnf install btrfs-assistant

References