Skip to content

Touchpad settings page missing; users cannot tune tap-to-click, scroll method, or acceleration #547

Description

@wzzfather

Touchpad settings page missing in OpenGamepadUI settings

Summary

OpenGamepadUI currently exposes no user-tunable parameters for the laptop/handheld touchpad. On Steam Big Picture / KDE Wayland, when InputPlumber (or directly libinput) feeds touchpad events through OpenGamepadUI and then into Steam, the user can only adjust Steam → Settings → Controller → Touchpad → Cursor Sensitivity. There is no way to set:

  • Tap-to-click and tap-to-drag
  • Two-finger / edge scroll method
  • PointerAcceleration (libinput adaptive / flat profile)
  • DisableWhileTyping
  • Natural / reverse scrolling
  • Click method (clickfinger / buttonareas)

When a non-Steam-Deck device is used (for example a GPD Win Mini 2024 with HTIX5288:00 0911:5288 touchpad), the default InputPlumber composite re-emits the touchpad as a uinput InputPlumber Touchpad device. That virtual device is forwarded by OpenGamepadUI to Steam without any configuration knobs, so users have no recourse to fix drifting cursors or broken two-finger scrolling.

Reproduction steps

  1. Boot Bazzite-Deck on a handheld/laptop with an i2c touchpad (HTIX5288 or similar).
  2. Open OpenGamepadUI → Settings.
  3. Note that there is no Touchpad section in the settings tree (verified on OpenGamepadUI shipped with Bazzite 44.20260908).
  4. While the touchpad works in Steam Big Picture, two-finger scrolling behaves erratically and tap-to-click cannot be enabled.

Expected behavior

OpenGamepadUI should expose a "Touchpad Settings" page with at least:

  • Tap to click (enable/disable)
  • Tap drag / drag lock
  • Two-finger scroll / edge scroll toggle
  • Scroll factor (low / medium / high)
  • Natural scrolling
  • Pointer acceleration profile (none / adaptive) and factor
  • Disable while typing

These settings should map to either:

  • DBus calls to org.shadowblip.InputPlumber (when InputPlumber is feeding the touchpad), or
  • A ~/.config/kcminputrc patcher that writes the corresponding [Libinput][...][Touchpad] section so libinput picks them up when the touchpad is passed through.

Implementation notes

  • OpenGamepadUI is a Godot app and stores its config in ~/.local/share/opengamepadui/settings.cfg. That config format does not currently contain any [touchpad] section.
  • Today, the binary opengamepad-ui.x86_64 contains only a single string match for TapTimer in any touchpad-related code path, confirming that there is no UI for tap/drag/scroll.
  • The Touchpad events are loaded as InputPlumberTouchpadEvent (res://core/systems/input/events/touchpad_event.gd).

Suggested fix

Add a new settings page in OpenGamepadUI that:

  1. Reads existing InputPlumber device properties (org.shadowblip.Input.Source.EventDevice) to detect touchpad source paths.
  2. Exposes a small subset of libinput properties via a TouchpadSettings section, persisted to ~/.local/share/opengamepadui/settings.cfg.
  3. Applies changes either by:
    • DBus org.shadowblip.InputPlumber calls (preferred), or
    • Writing ~/.config/kcminputrc entries when OpenGamepadUI's session does not own the touchpad directly.

Environment

  • Bazzite 44.20260908 (ghcr.io/ublue-os/bazzite-deck:stable)
  • OpenGamepadUI (current packaged)
  • InputPlumber 0.79.0
  • Steam client 1788652215
  • Touchpad: HTIX5288:00 0911:5288 (i2c, 67x48 mm, multitouch)

Workaround

Today the only knob is Steam → Settings → Controller → Touchpad → Cursor Sensitivity. Users have to manually edit ~/.config/kcminputrc and restart Plasma to recover libinput-level control on devices where InputPlumber does not grab the touchpad.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions