Skip to content

QAM button detected but not forwarded in hori_steam mode after Steam client update #333

Description

@parmeetdx

Description

On an ASUS ROG Ally X running Bazzite, the physical Command Center/QAM button no longer opens Steam's right-side Quick Access Menu when HHD controller emulation is set to hori_steam (Steam Controller (HHD)).

HHD detects every physical button press and logs QAM Pressed 1., but Steam does not react to the generated QAM/share event.

The same physical button works immediately after changing HHD controller emulation to uinput. The Ctrl+Shift+Tab QAM shortcut also works, confirming that Steam's Quick Access UI is functional.

The problem appeared around the Steam client update installed on 2026-07-05. Steam changed from build 1780352834 to 1782861641. HHD was not changed at that time.

Hardware and software

  • Device: ASUS ROG Ally X RC72LA
  • OS: Bazzite Deck stable 43.20260420
  • HHD: 4.1.5-1.fc43
  • HHD UI: 3.4.0-1.fc43
  • gamescope: ba148-1.bazzite
  • gamescope-session-plus: 0.0.git.426.df099b31-1.fc43
  • Steam client build: 1782861641

HHD configuration

controllers:
  rog_ally:
    controller_mode:
      mode: hori_steam
      hori_steam:
        handheld_mode: false
        noob_mode: false
        sync_gyro: true
        flip_z: true

## Steps to reproduce

1. Set the Ally controller emulation mode to `Steam Controller (HHD)` / `hori_steam`.
2. Press the physical Command Center/QAM button once.
3. Observe that HHD logs the press, but Steam's Quick Access Menu does not open.
4. Switch controller emulation to Xbox/uinput.
5. Press the same physical button; the Quick Access Menu opens correctly.
6. Switch back to `hori_steam`; the failure returns.

## Expected behavior

A single press of the physical QAM button opens Steam's right-side Quick Access Menu in `hori_steam` mode while retaining gyro and native paddle support.

## Actual behavior

HHD logs the press, but Steam does not open the menu:

```text
ALLY   INFO     QAM Pressed 1.
ALLY   INFO     QAM Pressed 1.

Steam detects the emulated controller normally:

Product: Steam Controller (HHD)
Steam controller device opened for index 0.
SDL Mapping for f0d/196: ... paddle1:b13,paddle2:b12,misc2:b11 ...

There is no corresponding Guide button sent to JS entry after the QAM presses. Normal controller inputs, gyro, and paddles continue to work.

Troubleshooting performed

  • Restarted hhd.service; the controller was recreated successfully, but QAM still failed.
  • Confirmed Ctrl+Shift+Tab opens the Quick Access Menu.
  • Confirmed HHD records every physical QAM press.
  • Confirmed the Quick Access Menu works with the same hardware button in uinput mode.
  • Switching back to hori_steam reproduces the failure immediately.
  • Compared HHD 4.1.5 with upstream 4.1.10; no subsequent changes appear to modify hori_steam QAM translation.

Suspected cause

hori_steam sets has_qam = True, causing HHD to emit the dedicated share event mapped through the emulated HORIPAD for Steam (0f0d:0196) as misc2. The current Steam client appears to ignore this dedicated event. In uinput mode, HHD uses its fallback QAM chord, which still works.

Would it make sense to add an option or compatibility fallback that sends the standard Steam QAM chord in hori_steam mode when the dedicated share event is not recognized?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions