Skip to content

Gamepad navigation tweaks #1971

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

Merged

Conversation

wbrtm
Copy link
Contributor

@wbrtm wbrtm commented Oct 31, 2022

Several tweaks regarding gamepad controls. The goal is app-wide consistency and better integration with steam deck controls.

  • "A"-button on game cards and list items always opens the game info page (list/grid/installed or not), launching/installing directly from library still works with "Y"-button
  • Relabeled Controller hints
    • instead of None
    • Select instead of Activate
    • Options instead of Context menu
  • Back button closes the context menu if open
  • Added controller hints to library list view
  • Autofocus play/install button on game page
  • Icons in library grid view (install, play, settings, update) are hidden when gamepad input is active
  • More options in game card context menu (play, stop, settings, remove from queue, cancel installation)

Use the following Checklist if you have changed something on the Backend or Frontend:

  • Tested the feature and it's working on a current and clean install.
  • Tested the main App features and they are still working on a current and clean install. (Login, Install, Play, Uninstall, Move games, etc.)
  • Created / Updated Tests (If necessary)
  • Created / Updated documentation (If necessary)

@flavioislima
Copy link
Member

If you have the time, one good idea is to hide the buttons to play, install, etc on the card when a controller is detected, this will make the navigation smoother since right now it goes through the icons for every card.

You can just hide the element and also would need to enable the settings option on the context menu and the play option as well.

@wbrtm
Copy link
Contributor Author

wbrtm commented Nov 1, 2022

#e52644c does that, give it a try.

So you are not a fan of disabling the buttons permanently but only when gamepad is being used? Personally, I would remove the icons for good and not just when a gamepad is being used. They make the library view too cluttered and this would result in a consistent and clean look.

@wbrtm wbrtm force-pushed the controller-navigation branch from 0b229c4 to e52644c Compare November 1, 2022 14:49
@flavioislima
Copy link
Member

#e52644c does that, give it a try.

So you are not a fan of disabling the buttons permanently but only when gamepad is being used? Personally, I would remove the icons for good and not just when a gamepad is being used. They make the library view too cluttered and this would result in a consistent and clean look.

Yes but clean look wont make it practical because then we would need to always open or the context menu (that some people dont know about it) or open the game page to access the settings and play the game, etc.

Adding the buttons there actually was a request from several people when Heroic started because we didn't have them at first :)

@flavioislima
Copy link
Member

I am changing this to ready for review so we can grab the build files to test 👍🏽

@flavioislima flavioislima marked this pull request as ready for review November 1, 2022 17:52
@flavioislima
Copy link
Member

Ok, the navigation without the buttons now looks good.
But we have no way of playing the game without entering the game page first. So adding the option to the context menu (play and settings) would solve that. 👍🏽

@wbrtm
Copy link
Contributor Author

wbrtm commented Nov 1, 2022

Thanks for testing and feedback. Context menu options up next then.

@arielj
Copy link
Collaborator

arielj commented Nov 2, 2022

I would prefer not to lose the ability to open the game's setting or launch the game or trigger the install dialog with a single button. I think it's fine to make the A button always open the game page and to remove the buttons from the cards, but we could still keep actions in the gamepad buttons.

With this change we don't have the buttons to fake the clicks, but we can still navigate to the settings page with javascript or launch the game sending a message to the backend for example.

@wbrtm
Copy link
Contributor Author

wbrtm commented Nov 2, 2022

Not sure I understand what you mean. Something like launching/installing with button Y?

@wbrtm wbrtm force-pushed the controller-navigation branch from e52644c to a964b9c Compare November 2, 2022 12:19
@flavioislima
Copy link
Member

Not sure I understand what you mean. Something like launching/installing with button Y?

Currently, If you are using a controller you can select the card and use A to launch the game, or Y to open the game page.
On your changes we lost this behavior and we can only play a game by opening the game page.

@wbrtm
Copy link
Contributor Author

wbrtm commented Nov 2, 2022

Yes, that was my intention. I think using the game page or the context menu to do anything with a game is fine. That's how it is done on the Steam Deck. Switching to heroic you find yourself launching games by pressing A you did not want to.
Do you want me to add launch/install to button Y instead?

@flavioislima
Copy link
Member

Yes, that was my intention. I think using the game page or the context menu to do anything with a game is fine. That's how it is done on the Steam Deck. Switching to heroic you find yourself launching games by pressing A you did not want to. Do you want me to add launch/install to button Y instead?

Thats true. on the Deck using A makes the Game Page open.
Cool, let's keep it like the steam does then, so it is more familiar to everyone. :)

@arielj
Copy link
Collaborator

arielj commented Nov 2, 2022

I would still keep something like Y to launch/install too, not instead. I think it's good to have all the options in the context menu but it's also nice to be able to access those options with less gamepad movements like it is now.

I imagine a combination of:

  • making A consistent (always open the game page, like it is in this PR)
  • adding missing options in the context menu (like discussed in this PR)
  • having shortcuts with the gamepad to trigger actions on the specific game with a single button (to not lose the current behavior)

@wbrtm
Copy link
Contributor Author

wbrtm commented Nov 2, 2022

Cool, looks like everyone can agree on play/install on Y in addition to the current PR.
Not everything has to be done the same as on Steam Deck but we should also not underestimate the amount of users the Deck brings to Heroic. By welcoming them Heroic might quickly become the default alternative launcher available on the Deck. Steam put alot of effort and thoughts into their deck interface, it is very polished and well designed.

Going to add that and then the PR can use some more testing.

@arielj
Copy link
Collaborator

arielj commented Nov 2, 2022

Speaking about steam deck, what are your thoughts on using the menu (the 3 lines) button to show the context menu? currently it's X but the steam deck uses that one to show the options

@wbrtm
Copy link
Contributor Author

wbrtm commented Nov 2, 2022

Did not notice the deck uses X but we should probably use the options button as well then. Just to not confuse users of both too much.

@arielj
Copy link
Collaborator

arielj commented Nov 2, 2022

Did not notice the deck uses X but we should probably use the options button as well then. Just to not confuse users of both too much.

to clarify, the deck does not use the X for the context, we do

@wbrtm
Copy link
Contributor Author

wbrtm commented Nov 2, 2022

Got it. Something to keep in mind for the future if someone is at it. The reduced button usage in heroic works for now, other quality of life improvements like autofocus in library or navigation of store pages is more urgent I think.

@arielj
Copy link
Collaborator

arielj commented Nov 2, 2022

I'm not sure if navigating the stores with a controller is even possible

@wbrtm wbrtm force-pushed the controller-navigation branch from a964b9c to c191d29 Compare November 2, 2022 13:59
@flavioislima
Copy link
Member

I'm not sure if navigating the stores with a controller is even possible

perhaps if we find a way of at least accepting the touch input like Steam does with external URLs on the deck.
But yes, don't know if it is possible or not.

@flavioislima
Copy link
Member

@wbrtm let us know once it is ready to review 👍🏽

@arielj
Copy link
Collaborator

arielj commented Nov 2, 2022

I'm not sure if navigating the stores with a controller is even possible

perhaps if we find a way of at least accepting the touch input like Steam does with external URLs on the deck. But yes, don't know if it is possible or not.

hmmm not sure I understand the issue, I can use the stores with the touch screen, maybe it's an issue that happens only in gaming mode? I always use the heroic interface in desktop mode

@flavioislima
Copy link
Member

I'm not sure if navigating the stores with a controller is even possible

perhaps if we find a way of at least accepting the touch input like Steam does with external URLs on the deck. But yes, don't know if it is possible or not.

hmmm not sure I understand the issue, I can use the stores with the touch screen, maybe it's an issue that happens only in gaming mode? I always use the heroic interface in desktop mode

I use it in Gaming Mode most of the time and it is not possible to use the touch for that.

@wbrtm
Copy link
Contributor Author

wbrtm commented Nov 2, 2022

Should open another issue for that.

@arielj
Copy link
Collaborator

arielj commented Nov 2, 2022

I'm not sure if navigating the stores with a controller is even possible

perhaps if we find a way of at least accepting the touch input like Steam does with external URLs on the deck. But yes, don't know if it is possible or not.

hmmm not sure I understand the issue, I can use the stores with the touch screen, maybe it's an issue that happens only in gaming mode? I always use the heroic interface in desktop mode

I use it in Gaming Mode most of the time and it is not possible to use the touch for that.

I'll try later, sure. Can you try one thing? when you hold down the STEAM button it should allow the right touch controls to move the mouse and act as a click, is that working?

@flavioislima
Copy link
Member

@arielj tried that already, tried everything to make it work. The only thing that works is clicking the scrollbar using the touchscreen or the Steam button + R2.
On desktop the touch works fine, that's true.

@flavioislima
Copy link
Member

@wbrtm testing it again here and one thing I noticed, not sure if it was introduced on this PR or on a previous one, is that after you get on a game page and then get back to library, the controller do not work anymore because heroic loses focus so you need to click on the window to activate the controller again.

@wbrtm
Copy link
Contributor Author

wbrtm commented Nov 3, 2022

@flavioislima Yeah that was quite annoying while testing but I thought that was not introduced by my changes, didn't check though. Does that also occur on the deck?

@flavioislima
Copy link
Member

@flavioislima Yeah that was quite annoying while testing but I thought that was not introduced by my changes, didn't check though. Does that also occur on the deck?

found the issue, was an if statement that was preventing the joystick to work. It was introduced several weeks ago in a refactor. Now it is working fine. If you have the time take a look at my PR with this and other fixes #1979

@@ -33,7 +33,7 @@
},
"uninstall": {
"checkbox": "Remove prefix: {{prefix}}{{newLine}}Note: This can't be undone and will also remove not backed up save files.",
"message": "Voulez-vous désinstaller ce jeu?",
"message": "Voulez-vous désinstaller ce jeu\u202f?",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove these characters otherwise they will break the translations.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will do. I have no idea how this happened.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems resolved after rebase, please confirm.

@wbrtm wbrtm force-pushed the controller-navigation branch from c191d29 to fec8032 Compare November 4, 2022 14:26
Copy link
Collaborator

@arielj arielj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

@arielj
Copy link
Collaborator

arielj commented Nov 7, 2022

@arielj tried that already, tried everything to make it work. The only thing that works is clicking the scrollbar using the touchscreen or the Steam button + R2. On desktop the touch works fine, that's true.

Weird, I just tried running heroic in gaming mode and I can navigate the stores just fine. Holding down the Steam button I can move around and click things in the store by either clicking the right touchpad or pressing R2.

Copy link
Member

@flavioislima flavioislima left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good stuff!
Thanks for that 👍

@flavioislima flavioislima merged commit c555988 into Heroic-Games-Launcher:beta Nov 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants