Repository navigation
Conversation
Steam on an external drive was reported as not found. The Status page now has a Choose button for Steam's location, and Repair Steam copies Valve's bundle onto that drive before swapping it in, since the swap cannot cross drives. Closes NotProtonNot#29
NSOpenPanel returns app bundles as directory URLs, so choosing /Applications/Steam.app saved it with a slash instead of clearing the setting, and Steam's stop patterns came out as Steam.app//.
LaganYT
marked this pull request as ready for review
October 8, 2026 03:21
Owner
|
Thank you, merged as #142 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #29. NotProton only looked for Steam at
/Applications/Steam.app, so anyone running Steam from an external drive got "Steam not found" and couldn't install.Summary
The Steam section gets a Location row with a Choose button, like the one CrossOver has. The chosen path is saved in user defaults, and everything that touches Steam already reads
SupportPaths.Steam.app, so it all follows.The refusal is there because switching would otherwise leave the old copy patched, and Repair Steam and Remove Everything would no longer see it.
Repair Steam needed one fix. It swaps in Valve's bundle from
~/Library/Caches, and that swap can't cross drives. When Steam is on another volume, it now copies the bundle next to Steam first.Evidence
Throwaway test (not committed, since it needs a second drive): put a fake Steam.app on an external SSD and a staged one in the temp dir, then call
SteamRepair.replace.Cross-device link(POSIX 18), Steam left unchangedswift testpasses, except for 5 tests that needmake app-payloadstaged locally and one locking test that times out under the parallel run but passes alone. Both fail the same way without this change.Live test with a clean Valve copy of Steam at
/Volumes/SSK-SSD/np-steam-test/Steam.appand the real/Applications/Steam.app(NotProton installed in it):/Applicationswas patched was refused with the Repair Steam hint./Applications, choosing the SSD copy worked. Install wroteDYLD_INSERT_LIBRARIES=/Volumes/SSK-SSD/np-steam-test/Steam.app/Contents/MacOS/notproton.dyliband the bundle still verified.lsofonsteam_osx), and Zuma Deluxe launched through it.MXGJJ98X76) on the SSD. No staging copy was left behind./Applications/Steam.appagain cleared the saved setting, and Install put everything back.The live test caught one bug, fixed in the second commit. The picker returns bundles with a trailing slash, so choosing
/Applications/Steam.appsaved/Applications/Steam.app/instead of clearing the setting.Merge Danger
Door: two-way
With the setting unset, behavior is the same as before. Reverting just stops reading the saved path.
Blast Radius: small
Only users who pick a custom location are affected. If their drive is unplugged, Steam shows as not found, and actions that lock Steam's folder fail with a "Could not lock" error until it's plugged back in.