From 00b5476aaff8bd877682708f7d287b310cfc1294 Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Wed, 21 Oct 2026 14:51:56 +0900 Subject: [PATCH] change: treat steam clients as separate processes --- dzgui/const/constants.py | 3 ++- dzgui/init/proc.py | 21 +++++++++------------ 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/dzgui/const/constants.py b/dzgui/const/constants.py index ce90d9c..686dece 100644 --- a/dzgui/const/constants.py +++ b/dzgui/const/constants.py @@ -84,7 +84,8 @@ HERO_PATH = "data/images/_hero.png" CSS_PATH = "data/app.css" VDF_PATH = "steamapps/libraryfolders.vdf" DEFAULT_STEAM_PATH = ".local/share/Steam" -FLATPAK_STEAM_PATH = ".var/app/com.valvesoftware.Steam/data/Steam" +FLATPAK_ROOT_PATH = ".var/app/com.valvesoftware.Steam" +FLATPAK_STEAM_PATH = FLATPAK_ROOT_PATH + "/data/Steam" UBUNTU_STEAM_PATH = ".steam/steam" DEBIAN_STEAM_PATH = ".steam/debian-installation" diff --git a/dzgui/init/proc.py b/dzgui/init/proc.py index 49ae327..2ad459e 100644 --- a/dzgui/init/proc.py +++ b/dzgui/init/proc.py @@ -10,6 +10,7 @@ from dzgui.const.constants import ( FLATPAK_CMD, FLATPAK_RUN_CMD, FLATPAK_SANDBOX, + FLATPAK_ROOT_PATH, FLATPAK_STEAM_PATH, ) @@ -17,15 +18,10 @@ logger = logging.getLogger(APP_NAME) def is_steam_running(cmd: str) -> bool: - is_flatpak_running = is_flatpak_steam_running() if cmd in (FLATPAK_RUN_CMD, FLATPAK_SANDBOX): - return is_flatpak_running + return is_flatpak_steam_running() elif cmd == STEAM_CMD: - if is_flatpak_running: - return False - if has_cmd(STEAM_CMD) is False: - return False - return is_running(STEAM_CMD) + return is_native_steam_running() else: raise TypeError("Not a valid Steam client selection") @@ -42,11 +38,12 @@ def is_flatpak_steam_running() -> bool: return False -def is_running(proc: str) -> bool: - for process in psutil.process_iter(["pid", "name"]): - if process.info["name"] == proc: - return True - return False +def is_native_steam_running() -> bool: + if has_cmd(STEAM_CMD) is False: + return False + procs = [p.cmdline() for p in psutil.process_iter(["pid", "name"]) if STEAM_CMD in p.info["name"]] + steam_procs = [p for p in procs if not any(FLATPAK_ROOT_PATH in sub for sub in p)] + return bool(steam_procs) def has_cmd(cmd: str) -> bool: