aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/src/protonlauncher.cpp13
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);