I recently learned about Bazzite, a version of Linux based on Fedorah that has been customized to run video games. It’s essentially SteamOS. I tried it on an older gaming desktop and noticed an immediate improvement in game performance. I then decided to install it on our gaming laptop and, finally, into a partition on my Lenovo Yoga.

I have yet to encoutner any problems running games in Bazzite on the two gaming devices, but did run into a major problem with games in Bazzite on my Lenovo Yoga 7 2-in-1 (83DM0003US).

I spent many hours over two days trying to resolve this problem. In No Man’s Sky the pointer would constantly jump around regardless of the input device that I used. I tried every combination of gamepad/SteamInput settings to no avail. I disabled the trackpad and touch screen, one at a time, and tried various methods and combinations of configurations. Absolutely nothing worked despite reading many, many posts about similar (but not exactly the same) issues that others experienced.

I suspected the touch screen was the cause from the start, but it took a long time to find direct evidence for it. Disabling the touch screen through Settings in Bazzite, or by installing and using the Hand Held Daemon did not solve it.

Unfortunately, the BIOS/UEFI settings available on the Lenovo Yoga 7 are extremely limited and does not provide the ability to disable the touchscreen (or many other devices).

Eventually, I discovered that while holding one of the joysticks on the Xbox controller, or pushing in the same direction with the trackapd did not prevent the cursor/screen from jumping, I did find that holding a finger on the touchscreen would prevent it from jumping as long as I was touching the screen. It even did this with the touchscreen disabled in Bazzite.

That was the first piece of evidence indicating the touch screen was the culprit.

The second was found by using a Linux tool to monitor device input. I wasn’t able to find a tool already built-into Bazzite, but I was able to install one for this. I used evtree. The desktop verson of Bazzite that I have did not appear to have this tool, even though some posts indicated that it was already included.

To install evtool, I used this command at a terminal:

sudo rpm-ostree install evtest

It takes a moment to obtain and install the required files. After install, I then rebooted the system directly from the terminal:

systemctl reboot

After logging back in, I was able to run evtest from a terminal. However, before I could do that, I needed to know which device to monitor. The following command will list the event device files on the system:

ls /dev/input/event*

To monitor for input from one of these devices with evtest, use this format. Note that you will need to replace the n with a device number:

sudo evtest /dev/input/eventn

For example, to look at #6 you would enter:

sudo evtest /dev/input/event6

I wasn’t sure which file corresponded to which device, so I numerated through each one until I found one that referenced the Wacom Pen. Once you’ve identified the approriate device file, leave the terminal up and note whether any activity is appearing before starting Steam and the desired game.

In my case, I observed that no input was received from this device until I entered the initial No Man’s Sky loading menu. As soon as I loaded my game save, the input activity lit up with constant updates. I don’t know why, but the device seems to think it is receiving touch events the moment the starfield appears during the initial loading screen. At that point, and once in the game, it showed constant updates being logged.

This was a very clear sign that this is an issue related to the touch screen. I’m uncertain if this is caused by Bazzite itself or how Steam handles input, but it clearly wasn’t an issue until the a certain point in the game.

What’s the solution? I don’t have a solution, yet, but I do have an effective work-around.

Run the games in a window instead of fullscreen. That’s it. I stumbled upon this solution while setting up my windows so I could observe the input activity in a terminal window while testing input in No Man’s Sky. I’ve verified that this has solved the problem in three games I have played through Steam in Bazzite – No Man’s Sky, Once Human and Stardew Valley.

The above reduced the frequency of false inputs affecting the games but did not remove them. I’m still researching this as nothing I’ve done has fully disabled touch screen/pen input.

Update: Due to the immutable nature of Bazzite, none of the additional methods I attempted were viable. I decided to remove Bazzite from my system, at least for now, though I plan to continue using it on my other devices, neither of which have touch screens.

One response to “Device Input Problems With No Man’s Sky in Steam on Bazzite (Lenovo Yoga 7 2-in-1)”

  1. […] with an input issue I had in Bazzite recently, getting Bazzite installed was, itself, a major effort on my Lenovo Yoga 7. I went through a lot of […]

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

I’m Mike

Welcome to my blog, which I have maintained for several years, off and on, to share things that I’ve learned from numerous projects and various problem solving escapades. This is my way of giving something back to the online communities that have helped me learn more about a wide variety of topics.