protonscr

[Feature Request] Steam input controller navigation layer

steamclosed
ValveSoftware/steam-for-linux#12527 · opened 2025-12-05 by kr-nn · updated 2025-12-05 · 1 comments · github
Kkr-nn 2025-12-05 github

Issue:

Many games have menus that use mouse to click on the buttons to get around, while many controller layouts require at least one mouse config to use menus. This often means using up a track pad that you could otherwise save for other uses.

Solution:

Hierarchical controller menu layout creation.
Lets say a game opens up to a menu with no controller support. Rather than using up a trackpad for a mouse, someone can build a menu layout that overlays the buttons on the screen. Navigable with your directional pad, and when selected, performs a mouse click.

This is to improve:

  • Accessbility options for disabled users
  • Improve user experience
  • Enhance controller usability
  • Improve deck verified status in games that still require mouse for navigation

Working concept:

Menu navigation:

Once the UI has been interacted with you can either switch to another layout, remove the layout, or keep the current layout.

Layout Options:

Buttons: Simple mouse click elements.

Sliders: Make sliders interactable with selecting the slider range and use the directional pad to change the steps, speed, click behavior to move a slider point between the limits of the slider.

carousel: A dropdown of buttons in vertical or horizontal direction, can be infinite looped

Input Options:

Menu:
Each menu has a layout made of the layout options.
Each option can trigger whatever press you want, but should default to predictable mouse click behavior that would be expected for that option.

Menu Trigger:
Button presses should be able to trigger menus (such as pausing the game)
Menu options should be able to trigger menus
Back button definition: A standard back button should be chosen per menu (triggers previous menu)

sub-menu:
A sub menu is a layer of a layout. When the sub-menu is triggered the current menu is still being used but is modified.
Back behavior should return to the original menu layout.
Interacting with the menu with a selection should trigger a back behavior.

Example: A button can trigger a sub-menu that adds a carousel for a dropdown menu. Once an option is selected, the back behavior closes the carousel back to the original menu

Feedback

This is what I came up with when I was trying to find a way to implement this with mouse regions and button presses, which didn't really accomplish what I was looking for.
Feedback on ideas are welcome.

Kkisak-valve maintainer 2025-12-05 github

Hello @kr-nn, Steam Input already generally provides this functionality, with a gamepad-centric layout, you can hold the Steam button (or equivalent) and use the right touchpad to move the mouse along with clicking via L2/R2/touchpad click. More complicated setups that would make sense for specific games are better customized by action sets.

Nothing extracted yet.