summaryrefslogtreecommitdiff
path: root/py_modules/lsfg_vk
diff options
context:
space:
mode:
authorJanleyx <242423638+Janleyx@users.noreply.github.com>2026-07-18 10:27:34 -0400
committerJanleyx <242423638+Janleyx@users.noreply.github.com>2026-07-18 10:27:34 -0400
commit84c79a3158d596af97dd89c1abffa2dad8ab899c (patch)
treedb05cfd460f64647466534e49075938b13b9f63a /py_modules/lsfg_vk
parentbbd959cee4d4b3ac784cc5543464775c10a0b981 (diff)
downloaddecky-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.py1
-rw-r--r--py_modules/lsfg_vk/installation.py4
-rw-r--r--py_modules/lsfg_vk/plugin.py8
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",