<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Udev on berezovskyi notes</title><link>https://blog.berezovskyi.dev/tags/udev/</link><description>Recent content in Udev on berezovskyi notes</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 18 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.berezovskyi.dev/tags/udev/index.xml" rel="self" type="application/rss+xml"/><item><title>DualSense Access Lost When Switching Linux Users</title><link>https://blog.berezovskyi.dev/notes/dualsense-hidraw-user-switch/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://blog.berezovskyi.dev/notes/dualsense-hidraw-user-switch/</guid><description>&lt;h2 id="the-problem"&gt;The Problem&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://blog.berezovskyi.dev/notes/linux-multi-seat-gaming-part-3"&gt;multi-seat gaming setup&lt;/a&gt; runs Steam in a
gamescope session as a systemd user service. The machine has two users: the gaming user
who owns the gamescope service, and a separate work user. Both users are on seat0.
Switching to the work user while the gamescope session is running caused the DualSense
controller to stop responding in Steam.&lt;/p&gt;
&lt;h2 id="why-the-controller-goes-through-hidraw"&gt;Why the Controller Goes Through hidraw&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://blog.berezovskyi.dev/notes/linux-multi-seat-gaming-part-3"&gt;Part 3&lt;/a&gt; explains this in detail. The short
version: &lt;code&gt;TemporaryFileSystem=/dev/input&lt;/code&gt; in the gamescope service hides all evdev
devices from the service process tree. Steam Input bypasses this entirely - it reads the
DualSense through &lt;code&gt;/dev/hidraw*&lt;/code&gt; (the raw HID interface) for full-feature support:
adaptive triggers, haptics, gyro, touchpad. The evdev path is never used.&lt;/p&gt;</description></item></channel></rss>