diff options
| author | Janleyx <242423638+Janleyx@users.noreply.github.com> | 2026-07-18 10:27:34 -0400 |
|---|---|---|
| committer | Janleyx <242423638+Janleyx@users.noreply.github.com> | 2026-07-18 10:27:34 -0400 |
| commit | 84c79a3158d596af97dd89c1abffa2dad8ab899c (patch) | |
| tree | db05cfd460f64647466534e49075938b13b9f63a /py_modules/lsfg_vk | |
| parent | bbd959cee4d4b3ac784cc5543464775c10a0b981 (diff) | |
| download | decky-lsfg-vk-84c79a3158d596af97dd89c1abffa2dad8ab899c.tar.gz decky-lsfg-vk-84c79a3158d596af97dd89c1abffa2dad8ab899c.zip | |
gate launch wrapper on Armada host
Diffstat (limited to 'py_modules/lsfg_vk')
| -rw-r--r-- | py_modules/lsfg_vk/constants.py | 1 | ||||
| -rw-r--r-- | py_modules/lsfg_vk/installation.py | 4 | ||||
| -rw-r--r-- | py_modules/lsfg_vk/plugin.py | 8 |
3 files changed, 7 insertions, 6 deletions
diff --git a/py_modules/lsfg_vk/constants.py b/py_modules/lsfg_vk/constants.py index a2140b3..023894f 100644 --- a/py_modules/lsfg_vk/constants.py +++ b/py_modules/lsfg_vk/constants.py @@ -25,6 +25,7 @@ JSON_EXT = ".json" BIN_DIR = "bin" +ARMADA_DEVICE_ENV = Path("/usr/libexec/armada/device-env") ARMADA_GAME_LAUNCH = Path("/usr/libexec/armada/armada-game-launch") STEAM_COMMON_PATH = Path("steamapps/common/Lossless Scaling") diff --git a/py_modules/lsfg_vk/installation.py b/py_modules/lsfg_vk/installation.py index 29259f7..49ed711 100644 --- a/py_modules/lsfg_vk/installation.py +++ b/py_modules/lsfg_vk/installation.py @@ -15,7 +15,7 @@ from typing import Dict, Any from .base_service import BaseService from .constants import ( LIB_FILENAME, JSON_FILENAME, ZIP_FILENAME, BIN_DIR, - SO_EXT, JSON_EXT, ARM_LIB_FILENAME + SO_EXT, JSON_EXT, ARM_LIB_FILENAME, ARMADA_DEVICE_ENV ) from .config_schema import ConfigurationManager from .types import InstallationResponse, UninstallationResponse, InstallationCheckResponse @@ -84,7 +84,7 @@ class InstallationService(BaseService): # Decky runs through FEX on Armada, so Python reports x86_64 even # though the host is AArch64. Armada exposes this native helper only # on its ARM image, including inside Decky's FEX rootfs. - if Path('/usr/libexec/armada/device-env').is_file(): + if ARMADA_DEVICE_ENV.is_file(): self.log.info("Detected native AArch64 Armada host through device-env") return True diff --git a/py_modules/lsfg_vk/plugin.py b/py_modules/lsfg_vk/plugin.py index dee2650..74c1677 100644 --- a/py_modules/lsfg_vk/plugin.py +++ b/py_modules/lsfg_vk/plugin.py @@ -18,7 +18,7 @@ from .dll_detection import DllDetectionService from .configuration import ConfigurationService from .config_schema import ConfigurationManager from .flatpak_service import FlatpakService -from .constants import ARMADA_GAME_LAUNCH +from .constants import ARMADA_DEVICE_ENV, ARMADA_GAME_LAUNCH class Plugin: @@ -256,9 +256,9 @@ class Plugin: Returns: Dict containing the launch option string and instructions """ - # Armada-specific: other distributions do not ship this wrapper and - # continue through the unchanged generic launch option below. - if ARMADA_GAME_LAUNCH.is_file(): + # Decky runs through FEX on Armada, so the guest OS identity is not a + # reliable host check. Require both Armada's native marker and wrapper. + if ARMADA_DEVICE_ENV.is_file() and ARMADA_GAME_LAUNCH.is_file(): return { "launch_option": f"~/lsfg {ARMADA_GAME_LAUNCH} %command%", "instructions": "Use this combined command in Steam Properties, preserving Armada's game-launch wrapper", |
