exogui icon indicating copy to clipboard operation
exogui copied to clipboard

Fix macOS compatibility issues for ExoDOS launcher

Open eduo opened this issue 2 months ago • 5 comments

I believe this commit addresses several critical path resolution issues that prevented the ExoDOS launcher from working correctly on macOS:

  1. Fixed getMainFolderPath() to use userData directory on macOS app bundles instead of falling back to process.cwd() (src/main/Util.ts:42-48)

  2. Fixed 7zip binary path resolution to use app.getAppPath() instead of path.dirname(app.getPath("exe")) which points to the wrong location in macOS app bundles (src/renderer/util/SevenZip.ts:4-10)

  3. Fixed hardcoded Windows backslash path separators in VLC path construction to use cross-platform path.join() (src/back/index.ts:192)

  4. Fixed resource basePath to use app.getAppPath() for macOS app bundles instead of only handling APPIMAGE (src/main/Main.ts:200-202)

  • Main.ts: basePath now uses path.dirname() 4 times on exe path for macOS to get the parent directory of the .app bundle
  • SevenZip.ts: Updated to match the same pattern for consistency

On macOS, working files and resources should not live inside .app bundles. This commit updates the basePath calculation to point to the directory containing the .app bundle itself, not inside it.

Resources in macOS will now be expected as siblings to the .app bundle.

These changes ensure the app can properly access external files and resources on macOS while maintaining compatibility with Windows and Linux platforms.

These changes should be reviewed by at least another mac user. My eXoDOS installation is very much non-standard and there may be things missing. Since it modifies how the paths are handled to be platform-agnostic it may be important that it's tested in Windows and Linux

eduo avatar Nov 09 '25 22:11 eduo