Things are never too easy with this little console.
Quick Notes
Each of these things is unexpectedly fiddly for devices that are supposedly usable by normal people without technical backgrounds:
- SteamDeck itself has enough quirks for a few months worth of posts.
- The official SteamDeck dock is too cool for DisplayPort->HDMI adapters and randomly stopped charging the console while I was plugging cables in and out (but plugging the charger directly still works, as does using the console's factory charger with the dock)
- If you are connecting Verbatim PMT-14 with a HDMI + USB-A
(which I had to because the dock has no USB-C outputs),
you have to connect power after USB-A or the touchscreen will not work.
Or you could hold down the Power button for a few seconds until the display turns off, and then hold it for a few more seconds until it turns on (and now sees the data cable).
So, after overcoming these minor hurdles and being briefly concerned that the dock decided has had enough of my experiments, I connect everything and the touchscreen works, but there's a catch: tapping the top-left corner of the display moves the cursor to the top-left corner of the desktop (read: all displays combined) instead of the top-left corner of the display.
This isn't uncommon for USB touchpads as the operating system doesn't know what screen it is for, though usually the behaviour is to map it to the primary screen, not the whole desktop.
Setting up xinput on SteamDeck
As in, the Xorg utility for testing and configuring input devices like mice, keyboards, and touchpads.
The utility is pretty tiny and usually comes pre-installed on Linux distributions, but I guess gamers don't need such conveniences. Anyway,
You can install AUR packages on SteamDeck, but they will disappear during system updates as the system partition gets completely overwritten. In other words, save a copy of this snippet / page in case you'll need to re-adjust your displays later.
sudo steamos-readonly disable sudo pacman-key --init sudo pacman-key --populate archlinux sudo pacman-key --populate holo sudo pacman -S xorg-xinput
Or you could go through the whole ordeal with setting up a separate directory for your pacman packages, though I don't think that's worth it for a single thing.
Calibrating
Supposedly people usually use xinput_calibrator for this, but that does not simply install on SteamDeck, and it's just a little math anyway, so I made a little web-based calculator.
First, do xinput list in terminal (Konsole). You'll see something like this
⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Valve Software Steam Controller id=18 [slave pointer (2)] ⎜ ↳ ... ⎜ ↳ Silicon Integrated System Co. SiS HID Touch Controller Mouse id=27 [slave pointer (2)] ⎜ ↳ Silicon Integrated System Co. SiS HID Touch Controller id=28 [slave pointer (2)]
In my example, touchscreen is evidently ID 28. Write it down in the following field:
Then, do xrandr in terminal to list your displays;
copy-paste the output into this field:
If all is well, you should be able to pick a display here: And here's the command to map the chosen touchscreen to the chosen display:
And that's all