Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Setup Checklist

Tested on Fedora Workstation 44, RTX 5060 Ti eGPU, ThinkPad X1 Yoga

Minimal Fedora Workstation Install

  1. Download: Fedora Workstation Live ISO

  2. Install:

    • Select “Minimal Install” (or “Server with GUI” for even less bloat).

    • Partitioning: Use automatic (Btrfs) or manual (ext4 for /, XFS for /home).

    • User: Create your account with sudo access.

  3. First boot:

    sudo dnf update -y
    sudo dnf install -y git curl wget flatpak
    flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Install NVIDIA Proprietary Drivers

# Enable RPM Fusion (non-free for NVIDIA)
sudo dnf install -y https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf groupupdate -y "NVIDIA CUDA Toolkit"  # Optional for AI/ML

# Install NVIDIA drivers + CUDA (for RTX 5060 Ti)
sudo dnf install -y akmod-nvidia xorg-x11-drv-nvidia-cuda

# Rebuild initramfs and load kernel module
sudo akmods --force
sudo dracut --force
sudo modprobe nvidia

Verify driver install:

nvidia-smi  # Should show your RTX 5060 Ti
glxinfo | grep "OpenGL renderer"  # Should show NVIDIA

Enable Kernel Modesetting (Critical for Wayland)

sudo grubby --update-kernel=ALL --args="nvidia-drm.modeset=1"

Reboot now to apply:

sudo systemctl reboot

Install Niri

sudo dnf install -y niri niri-settings

Install Noctalia

# Add Terra repo (Fyra Labs)
sudo dnf install -y --nogpgcheck --repofrompath='terra,https://repos.fyralabs.com/terra$releasever' terra-release

# Install Noctalia + Quickshell (dependency)
sudo dnf install -y noctalia-shell quickshell

Configure Niri to Launch Noctalia

  1. Create config directory:

    mkdir -p ~/.config/niri
  2. Edit ~/.config/niri/config.kdl:

    cat > ~/.config/niri/config.kdl <<EOF
    # Niri base config
    ...
    
    # Launch Noctalia (Quickshell component)
    spawn-at-startup "qs" "-c" "noctalia-shell"
    
    # Required for portals (screenshots, file dialogs, etc.)
    spawn-at-startup "dbus-update-activation-environment" "--systemd" "WAYLAND_DISPLAY" "XDG_CURRENT_DESKTOP=niri"
    
    # Optional: Enable animations
    animation {
        enable true
    }
    EOF
  3. Create environment file (~/.config/niri/environment):

    cat > ~/.config/niri/environment <<EOF
    # Ensure Wayland works with NVIDIA
    export NVIDIA_DRM_MODESET=1
    export XDG_SESSION_TYPE=wayland
    export XDG_CURRENT_DESKTOP=niri
    export QT_QPA_PLATFORM=wayland
    export SDL_VIDEODRIVER=wayland
    export CLUTTER_BACKEND=wayland
    EOF

Set Up Display Manager (GDM)

  1. Create a custom session for Niri + Noctalia:

    sudo tee /usr/share/xsessions/niri-noctalia.desktop <<EOF
    [Desktop Entry]
    Name=Niri + Noctalia
    Comment=Scrollable-tiling Wayland compositor with Noctalia shell
    Exec=/usr/bin/niri
    Type=Application
    DesktopNames=Niri
    EOF
  2. Disable GNOME’s Wayland session (to avoid confusion):

    sudo mv /usr/share/xsessions/gnome-wayland.desktop /usr/share/xsessions/gnome-wayland.desktop.bak
  3. Reboot and select “Niri + Noctalia” at the GDM login screen.

Thunderbolt eGPU Setup

  1. Install Thunderbolt tools:

    sudo dnf install -y bolt
  2. Authorize your eGPU enclosure (run after first plug-in):

    sudo boltctl authorize <device-UUID>  # List devices with `boltctl list`
  3. Enable persistent authorization (so it remembers your eGPU):

    sudo boltctl enroll

Post-Install Checks

Verify Wayland Session

echo $XDG_SESSION_TYPE  # Should output "wayland"
echo $XDG_CURRENT_DESKTOP  # Should output "niri"

Test NVIDIA eGPU Detection

lspci | grep -i nvidia  # Should show your RTX 5060 Ti
nvidia-smi             # Should show GPU info (may take ~10-30 sec after plugging in)

Test Noctalia

Troubleshooting

Black Screen on Login?

  1. Check kernel modesetting:

    cat /proc/cmdline | grep nvidia-drm.modeset=1

    If missing, reapply Step 3 and reboot.

  2. Fallback to TTY:

    • Press Ctrl+Alt+F2 to switch to a TTY.

    • Run sudo journalctl -u gdm -b to check GDM logs.

Noctalia Doesn’t Launch?

  1. Check Niri logs:

    journalctl -u niri -f
  2. Manually test Noctalia:

    qs -c noctalia-shell

    If this works, your Niri config is misconfigured.

eGPU Not Detected?

  1. Check Thunderbolt:

    boltctl list

    If unauthorized, run sudo boltctl authorize <UUID>.

  2. Check PCIe:

    lspci | grep -i nvidia

    If missing, your eGPU may need to be plugged in before boot.

Final Notes

Hotplug Behavior

Performance Tips