DavidoTek / ProtonUp-Qt

Install and manage GE-Proton, Luxtorpeda & more for Steam and Wine-GE & more for Lutris with this graphical user interface.
https://davidotek.github.io/protonup-qt
GNU General Public License v3.0
1.16k stars 39 forks source link

Button to set Luxtorpeda on all supported games #342

Open pilot51 opened 6 months ago

pilot51 commented 6 months ago

Is your feature request related to a problem? Please describe.

Currently, to set Luxtorpeda on all of my games that it supports, I need to go through the supported games list, find which ones I own, and manually set the compatibility tool on each one. With hundreds if not thousands of games, this can be quite time consuming.

This is made worse by the fact that, as I recently found out, Steam sometimes forgets that you had Luxtorpeda set on games. Likely because I updated it, though I could swear it was preserved through previous updates. Nevertheless, when it happens, it's an inconvenience I would rather not have to deal with.

Describe the solution you'd like

A button in ProtonUp-Qt that applies Luxtorpeda to all games that it supports.

The button could be in either or both of two locations:

If there are supported games that have a native Linux version published on Steam in the main/public branch or currently selected beta branch, an option to exclude those would be nice, but it probably isn't worth the effort.

The list of supported games is available as JSON. Each item in the games array has an app_id (string).

Describe alternatives you've considered

Someone in the SteamDB Discord pointed me to Steam Web Integration, a browser plugin that shows if you own a game mentioned on a page. It saves a lot of time by eliminating the need to search your library for games you don't own, but there's still a lot of room for improvement, which is why I'm here.

d10sfan commented 6 months ago

If you're looking for all of the supported games by luxtorpeda, https://github.com/luxtorpeda-dev/packages/blob/master/metadata/packagessniper_v2.json has all of the data you should need. It's also hosted at https://luxtorpeda-dev.github.io/packagessniper_v2.json, which may be easier to download as JSON.

This has any array of games where each has an app id, so that could be used to determine if a game is supported by luxtorpeda

d10sfan commented 6 months ago

Also I think another approach could be to have next to the list of installed games a icon that this is a luxtorpeda supported game and have some bulk select to allow for setting those to luxtorpeda, in case setting all that's supported could be too disruptive

pilot51 commented 6 months ago

Thanks, that file is perfect! I don't know how I missed it, I thought I looked there. I'll update the OP.

I agree with the other approach. I might suggest replacing the 'Deck compatibility' and 'Anticheat' columns with a 'Support' or 'Compatibility' column that is just icons. Mouse over each icon for a tooltip that provides more information. Maybe clicking the Luxtorpeda icon could open the supported games page. I would expect 4-6 icons for Deck compatibility alone, so a legend would be kind of important. Each icon could be an option in a list filter or bulk select.

DavidoTek commented 6 months ago

Thanks for the suggestion. That's an interesting feature and might be worth adding.

The button could be in either or both of two locations:

  • In the 'About compatibility tool' dialog
  • In the Game List

I think adding it to the "About compatibility tool" (ctinfo) dialog makes sense, as we already have the "Batch update" feature for GE-Proton there.

Adding it to the game list would also be an option. I feel like always displaying compatibility tools specific actions in the game lists makes the UI confusing though. What we could do instead is to check if one (or multiple) games with the same compatibility tool category are selected and then show a tool specific action button ("Batch update", "Enable Luxtorpeda", ...), though this also may not be best thing UX wise.

Also I think another approach could be to have next to the list of installed games a icon that this is a luxtorpeda supported game and have some bulk select to allow for setting those to luxtorpeda, in case setting all that's supported could be too disruptive

Adding an indicator (e.g., icon) to the game list for games that support Luxtorpeda should be viable. I wonder where's the best place for it. Maybe adding some sort of icon/emoji with tooltip to the game name column when Luxtorpeda is installed?

The "bulk select" feature would go along with adding an "Enable Luxtorpeda" button to the game list. Maybe the best way to realize this is to make "Luxtorpeda" a searchable term in the game list's search box? Otherwise, if we add the button to the "About compatibility tool" dialog, we would need to implement some other dialog for selecting the tools. We should keep Steam Deck usability in mind though.

If you're looking for all of the supported games by luxtorpeda, [...] has all of the data you should need. This has any array of games where each has an app id, so that could be used to determine if a game is supported by luxtorpeda

That's useful and will make implementing that way more simple.

If there are supported games that have a native Linux version published on Steam in the main/public branch or currently selected beta branch, an option to exclude those would be nice, but it probably isn't worth the effort.

We can keep that in mind. Should be possible to check whether the installed version is native or running using Proton.

Someone in the SteamDB Discord pointed me to Steam Web Integration

Also interesting, I wasn't aware of this one