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

[Request]: Enhance the control over Steam Proton prefixes through Bottles (Launch Arguments) #3512

Open
ikcikoR opened this issue Oct 1, 2024 · 1 comment

Comments

@ikcikoR
Copy link
Contributor

ikcikoR commented Oct 1, 2024

Tell us the problem or your need

Currently, a LOT of Bottles settings for Steam Proton prefixes have no effect, because they're commands ran ahead of the game executable or env variables set ahead of time (not sure about the specifics in Bottles' case but I run a lot of games through Steam only with stuff like MANGOHUD=1 gamemoderun %command% and so on)

Describe the solution you'd like

Potential solution - Create an extra button next to "Launch with Steam" button inside of the Steam Proton bottle:

  • The button would generate a string of text that the user could paste into the Launch Options text field in the Properties menu of the game in question.
    • Depending on how Bottles launches non-Steam games, there is potential to hook the pre-existing functionality for setting env vars and launch arguments based on individual bottle's settings. Bottles might "dry run" a non-existent shortcut within the given Steam Proton prefix and then convert it into a launch argument compatible with Properties menu in Steam, like the above mentioned MANGOHUD=1 gamemoderun %command% for enabling Feral GameMode and MangoHud for the given program.
    • After the launch arguments string is generated, Bottles can:
      • Display a read-only text field with that launch arguments string so that the user could copy it.
      • Automatically copy it into the clipboard on top of that and/or have a "Copy to Clipboard" button next to the text field aor make the text field itself select and/or copy the entire launch arguments string when clicked for convenience.
      • Display another button which would be a shortcut to the Steam's Properties menu for the given game, this can be done using the Steam browser protocol (for example steam://gameproperties/440 opens the Properties menu for Team Fortress 2, I believe Bottles already extracts the Steam ID of the game in question, so this should be trivial to implement). Very conveniently, the Properties menu has the Launch Arguments text field instantly visible in the 1st tab.

Other solutions?

On top of that, there could be a prompt for the user hooked to closing/saving Bottle settings for Steam Proton bottles, asking them to replace the Launch Arguments for the given game with the up-to-date ones.

Additional context and references

god the ADHD meds are kicking in hard

Edit: This might be handy, tho I'm assuming you guys already know about those things:
https://developer.valvesoftware.com/wiki/Steam_browser_protocol
https://developer.valvesoftware.com/wiki/Command_line_options#Steam

@ikcikoR
Copy link
Contributor Author

ikcikoR commented Oct 1, 2024

As @ jntesteves told me in the discord, there is also an option of just atomatically editing the launch arguments for a game because steam stores them in some script in plain text and Bottles could most likely just write into that, tho that creates a potential problem if the user created custom launch arguments in the past that they don't want overwritten, so I guess a confirmation prompt is still a good idea, or figuring out a way to automatically handle potential preexisting launch args

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant