Skip to content

Investigate Dynamic Device Permissions for Virtual Devices (udev, ACLs) #19

@ruffsl

Description

@ruffsl

Summary:
Modern Linux systems use udev and systemd-logind to dynamically manage device permissions (ACLs) for input devices, granting access to the active user. However, virtual devices created by CtrlAssist may not always receive the correct permissions, leading to issues with detection and usability, especially on platforms like SteamDeck.

Expected Behavior:
Virtual devices created by CtrlAssist should have the correct read/write permissions for the active user/session, just like physical devices, so they are accessible to games, launchers, and diagnostic tools.

Current Behavior:
Virtual device nodes (e.g., /dev/input/event*) may only be owned by root:input and lack rw permissions for the session user. This can prevent Steam, games, or other software from detecting or using the device, even if it is visible to CtrlAssist.

Possible Cause:

  • udev rules may not tag virtual devices with uaccess or similar properties.
  • systemd-logind may not recognize or apply ACLs to devices created by uinput.
  • Packaging or install instructions may not include the necessary udev rules for virtual devices.
  • SteamOS/SteamDeck may have custom device handling that differs from standard distros.

Suggested Solution:

  • Audit and update udev rules to ensure virtual devices are tagged for ACL assignment (e.g., KERNEL=="event*", SUBSYSTEM=="input", TAG+="uaccess").
  • Update documentation and install guides to include udev rule setup for users and packagers.
  • Test and document behavior on SteamDeck and other platforms with custom device management.
  • Consider patching virtual device creation or packaging to ensure compatibility with modern permission models.

Related Issues:

Notes:

  • Fixing this will improve out-of-the-box usability and reduce support issues for new users, especially on modern and gaming-focused Linux distributions.

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions