From 3857b69b704a744049d03abf6b2e5b392fdcae5b Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Wed, 13 May 2026 18:28:00 +0900 Subject: [PATCH] fix: interpolate client args --- dzgui/api/steam.py | 8 +++++--- dzgui/managers/connection.py | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/dzgui/api/steam.py b/dzgui/api/steam.py index ae4b1e2..5b33775 100644 --- a/dzgui/api/steam.py +++ b/dzgui/api/steam.py @@ -8,6 +8,7 @@ from pathlib import Path from dzgui.const.constants import APP_NAME from dzgui.const.endpoints import STEAM_PUBLISHED_FILES +from dzgui.util.bash import concat_bash_args logger = logging.getLogger(APP_NAME) @@ -89,10 +90,11 @@ def get_remote_signatures(mods: list[str]) -> list[tuple[str, str, int, int]]: # TODO: set config to name=user, use official server and no mods, # ensure that formatted string is identical to fixture with same hash -def connect(addr: str, appid: int, name: str, mods: list[str]) -> int: +def connect(client: str, addr: str, appid: int, name: str, mods: list[str]) -> int: concat = concat_mods(mods) + client_args = concat_bash_args(client) + # TODO: test flatpak arg expansion params = [ - "steam", "-applaunch", str(appid), f"-connect={addr}", @@ -102,7 +104,7 @@ def connect(addr: str, appid: int, name: str, mods: list[str]) -> int: f"-name={name}", f"-mod={concat}", ] - proc = subprocess.run([*params]) + proc = subprocess.run([*client_args, *params]) return proc.returncode diff --git a/dzgui/managers/connection.py b/dzgui/managers/connection.py index c40a663..bbfc3cf 100644 --- a/dzgui/managers/connection.py +++ b/dzgui/managers/connection.py @@ -246,7 +246,8 @@ class ConnectionManager: def _connect_steam(self) -> None: addr = f"{self.record.ip}:{self.record.gameport}" playername = self.controller.query_config(Preferences.NAME) - rc = connect(addr, self.appid, playername, self.remote_mod_ids) + client = self.controller.query_config(Preferences.CLIENT) + rc = connect(client, addr, self.appid, playername, self.remote_mod_ids) if rc != 0: # TODO: log/pop the error func = StoredFunc(self.controller.update_status)