seerge / g-helper

Lightweight Armoury Crate alternative for Asus laptops and ROG Ally. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models
https://seerge.github.io/g-helper/
GNU General Public License v3.0
7.4k stars 265 forks source link

GameBar Compact mode widget #3272

Open indiesaudi opened 2 days ago

indiesaudi commented 2 days ago

Rules

Is your feature request related to a problem? Please describe

Cannot control settings in Fullscreen mode in games without flickering cannot control settings exclusively with a controller

Describe the solution you'd like

Since GameBar is integrated into the OS, there are no issues with it overlaying on top of fullscreen modes. The compact mode of GameBar is also very controllable with a controller.

Having a g-helper GameBar widget would make it easily controllable in fullscreen as well as exclusively with a controller

Describe alternatives you've considered

There was no options available to show g-helper options in fullscreen without interrupting the exclusivity of the graphics driver to the game.

Device and Model

Ally, Ally X

Additional information.

https://support.xbox.com/en-US/help/games-apps/game-setup-and-play/game-bar-compact-mode

indiesaudi commented 2 days ago

I am trying to work on this, but I am trying to learn about how g-helper works a little. Is there a discord or a place where I can talk with you on this?

This are the options we have https://learn.microsoft.com/en-us/gaming/game-bar/guide/communicating-apps

Which options makes more sense for g-helper? Which classes should I be looking at?

seerge commented 2 days ago

@indiesaudi hello,

What kind of controls do you want to add to GameBar ? If it's performance mode switching - then it's just way easier to just bind one of the buttons (i just use command center button) to toggle them.

indiesaudi commented 2 days ago

a normal Xbox controller does not have enough buttons to create all shortcuts.

I do want to be able to control performance presets, AutoTDP, AMD overlay with a controller for games in full screen mode (not borderless window). I think a visual UI that could be controlled within a game in exclusive fullscreen with a controller is essential to deliver a console like experience, especially with a standard external controller.

opening command center can interfere with exclusive fullscreen games and cannot be controlled by a controller away from the device.

indiesaudi commented 2 days ago

Also, how do you bind performance mode switching to a button on the built in controller, and also to an external controller?

I also I think creating a GameBar widget that just presses the keyboard shortcuts for them would be a lot easier. Will the keyboard shortcuts work on the Ally and Ally x or are those replaced for those handhelds?

indiesaudi commented 2 days ago

The keyboard bindings seems to work on the handhelds. The one that I am finding a hard time to find is the AutoTDP switch. Is there a keybinding for that?

seerge commented 2 days ago

@indiesaudi

Also, how do you bind performance mode switching to a button on the built in controller, and also to an external controller?

For the device itself:

For external controllers - the only way would be emitting one of existing keybindings as you have correctly guessed

I also I think creating a GameBar widget that just presses the keyboard shortcuts for them would be a lot easier. Will the keyboard shortcuts work on the Ally and Ally x or are those replaced for those handhelds?

They will work on any device. Furthermore Ally has few more undocumented hotkeys, that internal controller can emit

The keyboard bindings seems to work on the handhelds. The one that I am finding a hard time to find is the AutoTDP switch. Is there a keybinding for that?

There is no hotkey for AutoTDP at the moment, but I can add it. I'm just not sure why is it needed :)

P.S. Overlay can be already mapped to internal XBox controller via Controller settings. It just binds button to emit AMD's native Ctrl+Shift+O

indiesaudi commented 2 days ago

Well I got something working that I can show you. The only thing left that I cannot seem to find, even in the input dispatcher if there is any key combination to switch controller mode. Is there one?

seerge commented 2 days ago

@indiesaudi it is there, Ctrl + Alt + Shift + F4 or you can bind any button to this toggle under Controller. Default binding is M + Right Stick Click

seerge commented 1 day ago

@indiesaudi it's Ctrl+Shift+O, and AMD own shortcut (you can check for others under Adrenaline app)

indiesaudi commented 1 day ago

sent you an invite to this repo https://github.com/indiesaudi/g-helper-GameBarWidget . Check it out. I am using permissions to inject input into the system, which is not safe, but we can later find ways to call g-helper directly somehow later if you think there is value in this.

indiesaudi commented 1 day ago

@indiesaudi it's Ctrl+Shift+O, and AMD own shortcut (you can check for others under Adrenaline app)

yeah I deleted my comment before you answered because I felt like an idiot