Skip to content

NVIDIA Drivers on Garuda Sway

The Sway project does not support the proprietary NVIDIA driver. Sway refuses to start with it unless it is launched with the --unsupported-gpu flag. Garuda Sway handles this for you, so the proprietary driver works without manual configuration.

PartWhat it does
Live ISOSway ISOs from 260705 onward support the proprietary driver in the live session, with the boot option “Boot allowing proprietary drivers”.
Hardware profileThe NVIDIA hardware profile installs the driver, enables nvidia-drm modesetting and fbdev, and loads nvidia-drm at boot.
GreeterThe login screen is nwg-hello on greetd. greetd starts the greeter’s Sway with --unsupported-gpu.
Sessionnwg-hello sets SWAY_UNSUPPORTED_GPU=1 for the sessions it starts. The regular Sway session works with NVIDIA, so no extra session is needed.

You do not need to add nvidia_drm.modeset=1 or nvidia_drm.fbdev=1 as kernel parameters. You also do not need a force_drivers line in a dracut config.

  1. Download a Garuda Sway ISO from 260705 or newer.

  2. Boot it and pick “Boot allowing proprietary drivers”. The live session installs the driver while it boots, so reaching the desktop can take a few minutes.

  3. Install Garuda as usual and reboot.

  4. Log in with the regular Sway session.

The driver comes from the Garuda hardware profile. The Garuda Hardware Tool picks the right profile for your card. The Setup Assistant offers the same step.

  1. Update the system and reboot.

    Terminal window
    garuda-update
  2. Install the NVIDIA profile.

    Terminal window
    sudo garuda-hardware-tool --nonfree
  3. Reboot and log in with the regular Sway session.

The tool chooses one of two profiles:

ProfileDriverCards
garuda-hardware-profile-nvidianvidia-open-dkms 590 or newerTuring and newer
garuda-hardware-profile-nvidia-580xxnvidia-580xx-dkmsMaxwell, Pascal and Volta

Cards older than Maxwell get no NVIDIA profile. They keep the open source Nouveau driver. See the Arch Wiki NVIDIA page for the details of each driver branch.

Terminal window
nvidia-smi

The output lists your card and the driver version. garuda-health also reports when the NVIDIA driver is installed but the wrong hardware profile is active.

Glxgears and nvidia-smi running on Sway

This section is only for sessions that do not start through Garuda’s greeter, for example your own greetd command or a launch from a TTY. The hardware profile still sets up the driver. Only the Sway launch needs the flag.

Start Sway with the flag:

Terminal window
sway --unsupported-gpu

For a custom desktop file, put the flag in the Exec line. Create a new file instead of editing /usr/share/wayland-sessions/sway.desktop, which package updates overwrite.

/usr/share/wayland-sessions/sway-custom.desktop
[Desktop Entry]
Name=Sway (custom)
Exec=sway --unsupported-gpu
Type=Application

The default setup needs none of these. Add them one at a time, and only for a problem they address. Set them in a wrapper script that launches Sway, as shown in the greetd wiki.

VariableUse it when
WLR_NO_HARDWARE_CURSORS=1The cursor is invisible or glitches. This switches wlroots to software cursors.
GBM_BACKEND=nvidia-drmApps fail to pick the NVIDIA GBM backend.
__GLX_VENDOR_LIBRARY_NAME=nvidiaSeveral OpenGL implementations are installed and you want the NVIDIA one.
LIBVA_DRIVER_NAME=nvidiaHardware video decoding through VA-API should use the NVIDIA driver.
WLR_RENDERER=vulkanYou want the Vulkan renderer. It can stop Sway from starting, so test it from a TTY first.

See the Arch Wiki pages on Wayland and Xwayland for more NVIDIA notes.