I am using Manjaro GNOME. I wanted to use automatic1111, but it wasn’t recognising my graphics card (NVIDIA 1660 ti) and wasn’t proceeding to the next stage of installation (the terminal kept crashing when it got to a certain point), so Bing said that switching from wayland to x11 might fix it. I changed the /etc/gdm/custom.conf file to

# GDM configuration storage

[daemon]
AutomaticLoginEnable=False
# Uncomment the line below to force the login screen to use Xorg
WaylandEnable=false

[security]

[xdmcp]

[chooser]

[debug]
# Uncomment the line below to turn on debugging
#Enable=true

and ran sudo systemctl restart gdm

When I did that, automatic1111 started working, in a sense (it still wouldn’t detect the models or loras I’d put in the models folder), but other stuff broke, in that swiping with three fingers no longer switched workspaces, the Ctrl-C Ctrl-V shortcuts stopped working, and Blender would crash upon opening. For those reasons, I wanted to switch back to wayland from x11, or even getting those features working with x11, I didn’t mind, but the former seemed easier.

I re-commented the line in the above file and ran sudo systemctl restart gdm again, but running echo $XDG_SESSION_TYPE returned x11 rather than wayland. The settings icon next to my username doesn’t let me switch between wayland and x11, but only GNOME and GNOME Classic.

Can you please help, if you can, with my predicament?

        • russjr08@outpost.zeuslink.net
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          Hmm, I know at one point GNOME/GDM locked out Wayland for Nvidia cards - but that hasn’t been the case for a while (and possibly was distro specific).

          Is there any output from:

          cat /etc/udev/rules.d/61-gdm.rules
          cat /usr/lib/udev/rules.d/61-gdm.rules
          
          • JackGreenEarth@lemm.eeOP
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            1 year ago

               ~  cat /etc/udev/rules.d/61-gdm.rules  ✔ cat: /etc/udev/rules.d/61-gdm.rules: No such file or directory    ~  cat /usr/lib/udev/rules.d/61-gdm.rules  1 ✘ SUBSYSTEM!=“pci”, GOTO=“gdm_pci_device_end” ACTION!=“bind”, ACTION!=“add”, GOTO=“gdm_pci_device_end”

            # cirrus
            ATTR{vendor}=="0x1013", ATTR{device}=="0x00b8", ATTR{subsystem_vendor}=="0x1af4", ATTR{subsystem_device}=="0x1100", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end"
            # virtio
            ATTR{vendor}=="0x1af4", ATTR{device}=="0x1050", ATTR{subsystem_vendor}=="0x1af4", ATTR{subsystem_device}=="0x1100", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end"
            # qxl
            ATTR{vendor}=="0x1b36", ATTR{device}=="0x0100", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end"
            # vga
            ATTR{vendor}=="0x1234", ATTR{device}=="0x1111", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end"
            
            # disable Wayland on Hi1710 chipsets
            ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", GOTO="gdm_disable_wayland"
            
            # disable Wayland on Matrox chipsets
            ATTR{vendor}=="0x102b", ATTR{device}=="0x0522", GOTO="gdm_disable_wayland"
            ATTR{vendor}=="0x102b", ATTR{device}=="0x0524", GOTO="gdm_disable_wayland"
            ATTR{vendor}=="0x102b", ATTR{device}=="0x0530", GOTO="gdm_disable_wayland"
            ATTR{vendor}=="0x102b", ATTR{device}=="0x0532", GOTO="gdm_disable_wayland"
            ATTR{vendor}=="0x102b", ATTR{device}=="0x0533", GOTO="gdm_disable_wayland"
            ATTR{vendor}=="0x102b", ATTR{device}=="0x0534", GOTO="gdm_disable_wayland"
            ATTR{vendor}=="0x102b", ATTR{device}=="0x0536", GOTO="gdm_disable_wayland"
            ATTR{vendor}=="0x102b", ATTR{device}=="0x0538", GOTO="gdm_disable_wayland"
            
            # disable Wayland on aspeed chipsets
            ATTR{vendor}=="0x1a03", ATTR{device}=="0x2010", GOTO="gdm_disable_wayland"
            ATTR{vendor}=="0x1a03", ATTR{device}=="0x2000", GOTO="gdm_disable_wayland"
            
            LABEL="gdm_pci_device_end"
            
            # disable Wayland if modesetting is disabled
            KERNEL!="card[0-9]*", GOTO="gdm_nomodeset_end"
            KERNEL=="card[0-9]-*", GOTO="gdm_nomodeset_end"
            SUBSYSTEM!="drm", GOTO="gdm_nomodeset_end"
            # but keep it enabled for simple framebuffer drivers
            DRIVERS=="simple-framebuffer", GOTO="gdm_nomodeset_end"
            IMPORT{parent}="GDM_MACHINE_HAS_VIRTUAL_GPU"
            ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}!="1", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-hardware-gpu"
            IMPORT{cmdline}="nomodeset", GOTO="gdm_disable_wayland"
            LABEL="gdm_nomodeset_end"
            
            # The vendor nvidia driver has multiple modules that need to be loaded before GDM can make an
            # informed choice on which way to proceed, so force GDM to wait until NVidia's modules are
            # loaded before starting up.
            KERNEL!="nvidia", GOTO="gdm_nvidia_end"
            SUBSYSTEM!="module", GOTO="gdm_nvidia_end"
            ACTION!="add", GOTO="gdm_nvidia_end"
            RUN+="/usr/bin/touch /run/udev/gdm-machine-has-vendor-nvidia-driver"
            
            # Check if suspend/resume services necessary for working wayland support is available
            TEST{0711}!="/usr/bin/nvidia-sleep.sh", GOTO="gdm_disable_wayland"
            TEST{0711}!="/usr/lib/systemd/system-sleep/nvidia", GOTO="gdm_disable_wayland"
            IMPORT{program}="/bin/sh -c \"sed -e 's/: /=/g' -e 's/\([^[:upper:]]\)\([[:upper:]]\)/\1_\2/g' -e 's/[[:lower:]]/\U&/g' -e 's/^/NVIDIA_/' /proc/driver/nvidia/params\""
            ENV{NVIDIA_PRESERVE_VIDEO_MEMORY_ALLOCATIONS}!="1", GOTO="gdm_disable_wayland"
            IMPORT{program}="/bin/sh -c 'echo NVIDIA_HIBERNATE=`systemctl is-enabled nvidia-hibernate`'"
            ENV{NVIDIA_HIBERNATE}!="enabled", GOTO="gdm_disable_wayland"
            IMPORT{program}="/bin/sh -c 'echo NVIDIA_RESUME=`systemctl is-enabled nvidia-resume`'"
            ENV{NVIDIA_RESUME}!="enabled", GOTO="gdm_disable_wayland"
            IMPORT{program}="/bin/sh -c 'echo NVIDIA_SUSPEND=`systemctl is-enabled nvidia-suspend`'"
            ENV{NVIDIA_SUSPEND}!="enabled", GOTO="gdm_disable_wayland"
            LABEL="gdm_nvidia_end"
            
            # If this machine has an internal panel, take note, since it's probably a laptop
            # FIXME: It could be "ghost connectors" make this pop positive for some workstations
            # in the wild. If so, we may have to fallback to looking at the chassis type from
            # dmi data or acpi
            KERNEL!="card[0-9]-eDP-*", GOTO="gdm_laptop_check_end"
            SUBSYSTEM!="drm", GOTO="gdm_laptop_check_end"
            ACTION!="add", GOTO="gdm_laptop_check_end"
            RUN+="/usr/bin/touch /run/udev/gdm-machine-is-laptop"
            GOTO="gdm_hybrid_nvidia_laptop_check"
            LABEL="gdm_laptop_check_end"
            
            # If this is a hybrid graphics setup, take note
            KERNEL!="card[1-9]*", GOTO="gdm_hybrid_graphics_check_end"
            KERNEL=="card[1-9]-*", GOTO="gdm_hybrid_graphics_check_end"
            SUBSYSTEM!="drm", GOTO="gdm_hybrid_graphics_check_end"
            ACTION!="add", GOTO="gdm_hybrid_graphics_check_end"
            IMPORT{program}="/bin/sh -c \"echo GDM_NUMBER_OF_GRAPHICS_CARDS=`ls -1d /sys/class/drm/card[0-9] | wc -l`\""
            ENV{GDM_NUMBER_OF_GRAPHICS_CARDS}=="1", RUN+="/usr/bin/rm -f /run/udev/gdm-machine-has-hybrid-graphics"
            ENV{GDM_NUMBER_OF_GRAPHICS_CARDS}!="1", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-hybrid-graphics"
            LABEL="gdm_hybrid_graphics_check_end"
            
            # If this is a hybrid graphics laptop with vendor nvidia driver, disable wayland
            LABEL="gdm_hybrid_nvidia_laptop_check"
            TEST!="/run/udev/gdm-machine-is-laptop", GOTO="gdm_hybrid_nvidia_laptop_check_end"
            TEST!="/run/udev/gdm-machine-has-hybrid-graphics", GOTO="gdm_hybrid_nvidia_laptop_check_end"
            TEST!="/run/udev/gdm-machine-has-vendor-nvidia-driver", GOTO="gdm_hybrid_nvidia_laptop_check_end"
            GOTO="gdm_disable_wayland"
            LABEL="gdm_hybrid_nvidia_laptop_check_end"
            
            # Disable wayland in situation where we're in a guest with a virtual gpu and host passthrough gpu
            LABEL="gdm_virt_passthrough_check"
            TEST!="/run/udev/gdm-machine-has-hybrid-graphics", GOTO="gdm_virt_passthrough_check_end"
            TEST!="/run/udev/gdm-machine-has-virtual-gpu", GOTO="gdm_virt_passthrough_check_end"
            TEST!="/run/udev/gdm-machine-has-hardware-gpu", GOTO="gdm_virt_passthrough_check_end"
            GOTO="gdm_disable_wayland"
            LABEL="gdm_virt_passthrough_check_end"
            
            # Disable wayland when there are multiple virtual gpus
            LABEL="gdm_virt_multi_gpu_check"
            TEST!="/run/udev/gdm-machine-has-hybrid-graphics", GOTO="gdm_virt_multi_gpu_check_end"
            TEST!="/run/udev/gdm-machine-has-virtual-gpu", GOTO="gdm_virt_multi_gpu_check_end"
            TEST=="/run/udev/gdm-machine-has-hardware-gpu", GOTO="gdm_virt_multi_gpu_check_end"
            LABEL="gdm_virt_multi_gpu_check_end"
            
            # Disable wayland when nvidia modeset is disabled or when drivers are a lower
            # version than 470,
            # For versions above 470 but lower than 510 prefer Xorg,
            # Above 510, prefer Wayland.
            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="gdm_disable_wayland"
            # For nvidia drivers versions Above 510, keep Wayland by default
            ATTR{version}=="[5-9][1-9][0-9].*", GOTO="gdm_end"
            # For nvidia drivers versions 470-495, prefer Xorg by default
            GOTO="gdm_prefer_xorg"
            LABEL="gdm_nvidia_drm_end"
            
            GOTO="gdm_end"
            
            LABEL="gdm_prefer_xorg"
            RUN+="/usr/lib/gdm-runtime-config set daemon PreferredDisplayServer xorg"
            GOTO="gdm_end"
            
            LABEL="gdm_disable_wayland"
            RUN+="/usr/lib/gdm-runtime-config set daemon WaylandEnable false"
            GOTO="gdm_end"
            
            LABEL="gdm_end"
            
            • russjr08@outpost.zeuslink.net
              link
              fedilink
              English
              arrow-up
              1
              ·
              1 year ago

              Hmm, so as long as you have 510 or above on the Nvidia driver you should not be getting blocked by that. I’m unfortunately not sure then.

              Perhaps you could try installing sddm which is KDE’s display manager (the equivalent of GDM) and see if it shows the Wayland option?

              Pretty sure it doesn’t require the whole KDE suite, once it’s installed run:

              sudo systemctl disable gdm && sudo systemctl enable sddm and reboot, then you should get SDDM and can try to change the session type at the bottom left.

              Note that when using SDDM, you can’t lock your screen in Gnome since that is tied to GDM - you’ll get a notification saying that the screen lock isn’t available.

              If SDDM doesn’t show it either, then somehow I think you’d be missing the actual session entry files? Not sure how that would happen though.

              • JackGreenEarth@lemm.eeOP
                link
                fedilink
                English
                arrow-up
                1
                ·
                edit-2
                1 year ago

                But I was on wayland before by default and I didn’t change any files? Unless automatic1111 changed them when I installed it. That’s the only thing I can think of.

                • russjr08@outpost.zeuslink.net
                  link
                  fedilink
                  English
                  arrow-up
                  2
                  ·
                  1 year ago

                  Yeah that’s what I’m unsure about unfortunately. I’d be very surprised if that disabled Wayland. At one point, there was some remote desktop software that disabled Wayland silently, to get around the security restrictions of Wayland… But this project wouldn’t be bound by any Wayland restrictions as far as I can tell.