diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/src/protonlauncher.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/src/protonlauncher.cpp b/src/src/protonlauncher.cpp index 3c279fa..c6fc545 100644 --- a/src/src/protonlauncher.cpp +++ b/src/src/protonlauncher.cpp @@ -463,9 +463,9 @@ bool ProtonLauncher::launchWithProton(qint64& pid) const // Build: [wrappers] run_script [--filesystem=...] -- proton_script protonArgs QStringList slrArgs; - // Expose the game directory (and its FUSE-mounted Data/) to the - // pressure-vessel container. Without this, the container's mount - // namespace may not see FUSE mounts on the host. + // Expose host directories to the pressure-vessel container. + // Without --filesystem= flags, the container's mount namespace + // may not see FUSE mounts or system-installed Proton paths. if (!m_binary.isEmpty()) { const QString gameDir = QFileInfo(m_binary).absolutePath(); slrArgs << QStringLiteral("--filesystem=%1").arg(gameDir); @@ -473,6 +473,13 @@ bool ProtonLauncher::launchWithProton(qint64& pid) const if (!m_prefixPath.isEmpty()) { slrArgs << QStringLiteral("--filesystem=%1").arg(m_prefixPath); } + // Expose the Proton installation directory — needed for + // system-installed Protons (e.g. /usr/share/steam/compatibilitytools.d/) + // whose files may not be visible inside the container by default. + { + const QString protonDir = QFileInfo(protonScript).absolutePath(); + slrArgs << QStringLiteral("--filesystem=%1").arg(protonDir); + } slrArgs << "--" << protonScript << protonArgs; wrapProgram(m_wrapperCommands, runScript, slrArgs, program, arguments); |
