Skip to content

Conversation

flavioislima
Copy link
Member

@flavioislima flavioislima commented May 15, 2025

This adds a new setting on the General settings to download Proton directly to steam compatibilitytools.d directory on linux.

I thought on adding this setting to the wine manager screen but since we dont have settings implemented there it would be tricky.

Fixed some types as well.

AI Summary

This pull request introduces a new feature that allows users to download Proton-GE directly to the Steam compatibility tools directory on Linux systems, along with some related code improvements and adjustments. Below is a summary of the most important changes:

New Feature: Download Proton-GE to Steam Directory

  • Added a new setting downloadProtonToSteam in the global configuration, allowing users to specify whether Proton-GE should be downloaded directly to Steam's compatibility tools directory instead of the default Heroic path (src/backend/config.ts, src/common/types.ts). [1] [2]
  • Updated the getInstallDir function to check for this setting and use the Steam directory if the path exists. A fallback mechanism ensures compatibility if the directory is missing (src/backend/wine/manager/utils.ts).
  • Added a new frontend component DownloadProtonToSteam to the settings screen, enabling users to toggle this feature through the UI. This component includes a description and help icon for better usability (src/frontend/screens/Settings/components/DownloadProtonToSteam.tsx, src/frontend/screens/Settings/components/index.ts, src/frontend/screens/Settings/sections/GeneralSettings/index.tsx). [1] [2] [3] [4]

Localization Updates

  • Added new translation keys for the downloadProtonToSteam feature to provide localized text for the UI (public/locales/en/translation.json). [1] [2]

Code Improvements

  • Updated the installWineVersion function to use stricter return types by appending as const to string return values, improving type safety (src/backend/wine/manager/utils.ts). [1] [2] [3] [4]
  • Ensured proper asynchronous behavior in the removeWineVersion function by adding an explicit await statement (src/backend/wine/manager/utils.ts).

These changes collectively enhance the user experience by providing more flexibility for Linux users and improving code quality.


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 flavioislima requested review from a team, arielj, CommandMC, Nocccer and imLinguin and removed request for a team May 15, 2025 21:44
@flavioislima flavioislima added the pr:ready-for-review Feature-complete, ready for the grind! :P label May 15, 2025
@flavioislima flavioislima requested a review from CommandMC May 15, 2025 22:21
@flavioislima flavioislima merged commit 463e06c into main May 18, 2025
9 checks passed
@flavioislima flavioislima deleted the feat/proton_setting branch May 18, 2025 21:11
@Heroic-Games-Launcher Heroic-Games-Launcher locked and limited conversation to collaborators May 18, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
pr:ready-for-review Feature-complete, ready for the grind! :P
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants