Easy steps to enable wayland for nvidia users in gnome

  1. Follow the guide here - https://discovery.endeavouros.com/nvidia/nvidia-optional-enhancements-and-troubleshooting/2021/03/

I just did steps 1 & 2.

Also added the provided tool by eos team sudo pacman -S nvidia-hook which should update mkinitcpio every time there is a nvidia-dkms update.

  1. Edit this file & comment out Driver==“nvidia” example below
    sudo nano /usr/lib/udev/rules.d/61-gdm.rules
 disable Wayland on Hi1710 chipsets
ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", RUN+="/usr/lib/gdm-runtime-config set daemon WaylandEnable false"
# disable Wayland when using the proprietary nvidia driver
# DRIVER=="nvidia", RUN+="/usr/lib/gdm-runtime-config set daemon WaylandEnable false"
# disable Wayland if modesetting is disabled
IMPORT{cmdline}="nomodeset", RUN+="/usr/lib/gdm-runtime-config set daemon WaylandEnable false"
  1. Enable kms modifier
gsettings set org.gnome.mutter experimental-features '["kms-modifiers"]'

Reboot and you should now be running wayland. To make it permanent and not make every new updates overwrite the file 61-gdm.rules, you can copy it to /etc/udev/rules.d/

5 Likes

for plasma it is needed to set Nvidia Modesetting enabled by adding nvidia-drm.modeset=1 to kernel boot line.
Just tested this… also plasma on Wayland and Nvidia is not a perfect choice as compositing is still an issue.

I want only to add that this is most likely also needed for Gnome.

3 Likes

Yes, the first part of the step already covers this. :ok_hand:

2 Likes

It seems like 61-gdm.rules was changed and now I’m noticing Wayland is not being enabled anymore for me. Not sure if anyone else is seeing this behaviour.

1 Like

Not sure what changed, i moved back to windows 11 on the gnome machine, so i cant test how to switch to wayland.

# disable Wayland on Hi1710 chipsets
ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", GOTO="gdm_disable_wayland"

# disable Wayland if modesetting is disabled
IMPORT{cmdline}="nomodeset", SUBSYSTEM=="drm", KERNEL=="card[0-9]*", GOTO="gdm_>

# Disable wayland when nvidia modeset is disabled or when drivers are a lower
# version than 470, in any case always prefer Xorg
KERNEL!="nvidia_drm", GOTO="gdm_nvidia_drm_end"
SUBSYSTEM!="module", GOTO="gdm_nvidia_drm_end"
ACTION!="add", GOTO="gdm_nvidia_drm_end"
# disable wayland if nvidia-drm modeset is not enabled
ATTR{parameters/modeset}!="Y", GOTO="gdm_disable_wayland"
# disable wayland for nvidia drivers versions lower than 470
ATTR{version}=="4[0-6][0-9].*|[0-3][0-9][0-9].*|[0-9][0-9].*|[0-9].*", GOTO="gd>
GOTO="gdm_prefer_xorg"
LABEL="gdm_nvidia_drm_end"

GOTO="gdm_end"

From what I read, this was supposed to only disable Wayland if the user is running a version of the nvidia driver below 470 and also does not have modeset enabled. Well I’m running 495 and have modeset enabled yet wayland still appears to be disabled. I don’t have Gnome on xorg as an option on login.

Still waiting until Wayland is improved and works as reliable and painless, as X11 does. No need to hurry. Can see no real advantages right now. :wink:

1 Like

/etc/gdm/custom.conf

Change to WaylandEnable=true

I think I had tried this before and it had no effect but I tried it again just now and nope. No option for GNOME on Xorg in the login and logging in, it’s still running X11.

Try this out.

So I didn’t feel comfortable completely commenting out 61-gdm.rules and I noticed my mkinitcpio.conf was using the wrong syntax for the modules (although it doesn’t explain why wayland still worked before). I fixed that and still the same so kind of decided screw it. Completely commented out 61-gdm.rules and now I have wayland back. So it’s odd that that file has been rewritten to solve this and yet it still breaks wayland?

1 Like