17
submitted 19 hours ago* (last edited 18 hours ago) by lyoko@lemm.ee to c/linux@lemmy.ml

Hi, I've recently discovered that steam client on linux requires the XTEST extension to handle input from controller. However, I can not enable XTEST on gdm no matter what I've done. Switch to lightdm solves it instanly but I prefer gdm.

Could you provide some hint how to debug it and have you experienced that before? Thank you very much!

I am using Arch Linux with Gnome and Wayland.

you are viewing a single comment's thread
view the rest of the comments
[-] lyoko@lemm.ee 1 points 6 hours ago

No steam uses XTEST under the hood for controller. You can see a bug report here. You could try to disable the XTEST extensions and the steam client will crash if you connect with a controller.

For the symptom, If I do a xdpyinfo it will print a list of enabled extensions and no matter what i've tried it does not have the XTEST extension.

[-] gnuhaut@lemmy.ml 1 points 5 hours ago

Interesting. I will say I suspect still this is to make the controller act as a mouse or keyboard somehow, which steam can do.

One interesting thing is that it says in the bug report, that steam also requires uinput, which is used to create virtual input devices from userspace. And maybe (speculating) you need that for XTEST to work on wayland or something, or maybe steam can use uinput instead of XTEST if it's not available.

Or maybe it's security-related somehow (Regular programs being able to create virtual keyboards is kind of a security issue).

For me the output of getfacl /dev/uinput will list my username with read/write permissions. I have no idea what is responsible for giving me this permission but there it is.

Can you check with getfacl in both sessions?

[-] lyoko@lemm.ee 1 points 3 hours ago

Unfortunately I can not login with GDM using X. I am having the same bug as in here :/ For wayland, I have both read/write permissions for my username.

Also I can use the PS5 controller as a mouse just fine. Another symptom I see is when I run xdotool mousemove 150 150, it will print Warning: XTEST extension unavailable on '(null)'. Some functionality may be disabled; See 'man xdotool' for more info.. The null here is concerning to me. Not sure how it says on other system.

[-] gnuhaut@lemmy.ml 1 points 25 minutes ago* (last edited 14 minutes ago)

Ok so it's not the uinput permissions.

When you use lightdm, do you use it to log into a Gnome wayland session, same as with GDM? Or is there any other difference between using GDM and LightDM? What exactly is/isn't working, and how can you tell it is related to the XTEST extension?

Also I can use the PS5 controller as a mouse just fine.

Ok, this could maybe be the kernel driver creating a "real" touchpad device. Steam is able to create fake/virtual mouse and keyboard devices, I suspect that's what steam uses XTEST and/or uinput for. So even though your PS5 touchpad works, that does not invalidate my theory that steam wants XTEST for mouse/keyboard input fakery, because that's what exactly what XTEST is for.

So technically, Steam wouldn't require XTEST for controller input, it would require XTEST to map controller inputs to fake mouse or keyboard inputs. I don't know what exactly steam does if XTEST isn't present, like what exactly doesn't work?

And XTEST is an X11 protocol extension, it probably doesn't work properly under Wayland anyway.

The null here is concerning to me.

Dunno, '(null)' might just refer to the default connection (or server or screen or whatever X11 object this refers to), so not sure if this something to be concerned about. I presume X11 clients in general do work? Like xterm or xeyes work, right?

I am having the same bug as in here :/

The fact that you cannot log in may seem/look like that exact issue you linked to, but that's from 2019 and may have a different cause. In general, GDM will start some executable, (i.e. gnome-session or something like that, or at least it used to be gnome-session, haven't used gnome in a while) which if it exits/crashes this will kick you back to GDM. It could crash for many reasons.


You should check the logs for sure for both issues. X11 session logs (relating to Gnome X11 not starting), should be in ~/.xsession-errors (or ~/.xsession-errors.old for the previous session, I think). There may be a /var/log/Xorg.0.log for xorg, which I guess could also be the thing crashing (maybe). There may be other things logged with journald that could be relevant. journalctl --user should show all the logs for the user session. Logs from Gnome, since it runs as your user, would presumably show up there. My guess is all the relevant logs for a Gnome wayland session would also be there, as well as (hopefully) Xwayland errors/warnings, since Xwayland is actually the thing that would report it doesn't support XTEST.

Note that journalctl likes to show the oldest logs first, so look at the timestamps. You can press G to scroll to the end. There are various ways to filter messages, look at journalctl --help. You might want to use --grep to look for anything related to XTEST or xwayland.

Lightdm and GDM are systemd units (systemctl list-units), the logs would show with something like sudo journalctl -u lightdm.

this post was submitted on 16 May 2025
17 points (100.0% liked)

Linux

54200 readers
504 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS