Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gamescope: Add Steam Big picture overlay synthesis patch #439

Draft
wants to merge 1 commit into
base: development
Choose a base branch
from

Conversation

samueldr
Copy link
Member

@samueldr samueldr commented Nov 2, 2024

This patch set aims to make the Steam Overlay (“Steam Menu”) and the QAM
(“Quick Access Menu”) through additional bindings.

The bindings are the following:

  • F21 → Steam Overlay
  • F22 → QAM

The bindings were chosen so it would be unlikely to clash with any
keyboard input.

The bindings are expected to be used through external configuration,
changing a user-selected input into F21 or F22 to bring those menus.

For example, using udev and hwdb to remap a keyboard key.

Additionally, an in-gamescope method to bring-up the Steam Overlay was
added. This is needed since adding a system-wide remap for the keyboard
is undesirable, when this is a workaround for the lack of a feature
within Steam.

@samueldr samueldr added 8. hardware: other 2. priority: 2. normal 2. topic: system integration About our integration of Steam stuff within NixOS 2. topic: Bespoke stuff Things that are specific to Jovian Experiments 1. type: Enhancement Contributes a new feature, or a new package labels Nov 2, 2024
@K900
Copy link
Contributor

K900 commented Nov 3, 2024

Wasn't there a magic steam:// URL we could call for this?

@samueldr
Copy link
Member Author

samueldr commented Nov 3, 2024

Wasn't there a magic steam:// URL we could call for this?

I might take a fresh look to see, but I don't remember there being one.

Another option I would have liked exploring is finding out the exact way the QAM is being handled within Steam on the steam deck, but I am betting it's a codepath specific to steaminput's handling of the gamepad protocol, and not "just" hooking itself on like BTN_somethingOrOther.

(There's another shortcut that steam input can use, the MENU+A combo, but that's not helping in any way here, since it would require synthesis for the combo in some way too...)


Side-tangent... I completely forgot when implementing that, that I also needed to add support for some useful combo to get back to steam from a keyboard only. Currently, AFAICT, the only way to get back to steam is still to press the MENU button on a controller. That's not really nice for one of my use-case, where I use keyboard+mouse to play some games using the Steam Deck interface and semantics.

The CTRL+1 and CTRL+2 combos (which feel like temporary bindings) are only being handled when Steam has keyboard focus, which is not the case when a game has focus. This is also why the volume keys handling this is based off of is done that way.

@samueldr
Copy link
Member Author

samueldr commented Nov 7, 2024

(Drafting since it should also include a "normal" keyboard-based fix... and nothing depends on this landing yet.)

@samueldr
Copy link
Member Author

samueldr commented Nov 9, 2024

Currently using this patch set locally, I'm letting it soak in just in case:

Though I also have to re-think this a tiny bit... And see if InputPlumber is a way forward for this.

I think it's likely the patch set will be needed, but for the Steam Overlay on keyboard input only... The QAM synthesis being handled via InputPlumber.

It seems unwise to me to want to send the keyboard inputs through InputPlumber, though I'm mainly thinking about the use-case of a system where the Jovian Experiments are used in parallel to a more standard desktop system. (Like I do on my GPD Win Mini.)


Updated the commit and PR body with this patch set. Still keeping it drafted for now.

This patch set aims to make the Steam Overlay (“Steam Menu”) and the QAM
(“Quick Access Menu”) through additional bindings.

The bindings are the following:

 - F21 → Steam Overlay
 - F22 → QAM

The bindings were chosen so it would be unlikely to clash with any
keyboard input.

The bindings are expected to be used through external configuration,
changing a user-selected input into F21 or F22 to bring those menus.

For example, using udev and hwdb to remap a keyboard key.

Additionally, an in-gamescope method to bring-up the Steam Overlay was
added. This is needed since adding a system-wide remap for the keyboard
is undesirable, when this is a workaround for the lack of a feature
within Steam.
@samueldr samueldr force-pushed the feature/QAM-synthesis branch from f6949c9 to ac0e983 Compare November 9, 2024 01:33
@samueldr samueldr changed the title gamescope: Add QAM synthesis patch gamescope: Add Steam Big picture overlay synthesis patch Nov 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. type: Enhancement Contributes a new feature, or a new package 2. priority: 3. low 2. topic: Bespoke stuff Things that are specific to Jovian Experiments 2. topic: system integration About our integration of Steam stuff within NixOS 8. hardware: other
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants