Skip to content

[Linux] Directory picker for manual game location does not work #20439

@caniko

Description

@caniko

Description

When manually setting a game directory on Linux via Games > Browse, selecting the correct directory results in "Game not found — This directory doesn't appear to contain the game." The game files are confirmed to exist at the expected relative paths.

Tested with both The Witcher 3 (requiredFiles: bin/x64/witcher3.exe) and Cyberpunk 2077 (requiredFiles: bin/x64/Cyberpunk2077.exe) — same result.

Steps to Reproduce

  1. Launch Vortex on Linux
  2. Go to Games, find a game (e.g. The Witcher 3 or Cyberpunk 2077)
  3. Click "Manually Set Game Folder"
  4. Navigate to the game's root directory (the one containing bin/x64/)
  5. Click "Open"
  6. Error: "Game not found — This directory doesn't appear to contain the game."

Environment

  • OS: NixOS (Linux 6.19, case-sensitive ext4 filesystem)
  • DE: COSMIC Desktop (Wayland)
  • Electron: 38.8.1
  • Vortex: 1.16.3 (also reproduced on 1.16.2)
  • Packaging: Native Nix derivation (see nixpkgs PR #491344)

Relevant Logs

Vortex Version 1.16.3
Parameters .../electron .../app.asar --game Cyberpunk 2077 Vortex Support
not validating vortex files ENOENT: no such file or directory, open '.../app.asar.unpacked/assets/md5sums.csv'
using /home/can/.config/Vortex as the storage directory
[common-interpreters] python not found not found: python
reloading game store games steam
done reading steam libraries
failed to query game location {"game":"untitledgoosegame","error":"Cannot read properties of undefined (reading 'findByAppId')"}
warning notification {"message":"Some of the installed extensions couldn't be loaded because they have missing or incompatible dependencies."}
[modtype-gedosato] failed to look for GeDoSaTo {"err":"f.RegGetValue is not a function"}
Game entry not found in specified store {"pattern":"...","storeId":"xbox","availableStores":"steam"}
Game entry not found in specified store {"pattern":"...","storeId":"gog","availableStores":"steam"}
Game entry not found in specified store {"pattern":"...","storeId":"epic","availableStores":"steam"}

Steam is detected as the only store, game extensions load, but manual directory selection fails.

Investigation

selectDir() in src/util/ExtensionManager.ts calls dialog.showOpenDialog with properties: ["openDirectory"]. The result goes to browseGameLocationfindGamePathverifyGamePath in src/extensions/gamemode_management/index.ts, which uses fsExtra.stat(path.join(gamePath, file)) to check required files.

Attempted workarounds (none worked):

  • --xdg-portal-required-version=999 (Electron flag to force native GTK dialogs)
  • GTK_USE_PORTAL=0 (env var to bypass XDG portals entirely)
  • Upgrading from v1.16.2 to v1.16.3

Possibly related:

  • Electron regression electron/electron#48356openDirectory opens file picker instead of directory picker on Linux with XDG portals (affects Electron 36.2+)
  • verifyGamePath uses case-sensitive fsExtra.stat() — any casing mismatch between the game extension's requiredFiles and the actual filesystem paths will fail silently on Linux
  • PR Add Linux Steam and Proton support #19381 added Linux Steam/Proton support with case-insensitive matching, but is on master only (not in v1.16.x release branch)

Expected Behavior

Selecting the game's root directory should successfully detect the game and allow managing mods.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions