summaryrefslogtreecommitdiff
path: root/py_modules/lsfg_vk/configuration.py
diff options
context:
space:
mode:
authorJanleyx <242423638+Janleyx@users.noreply.github.com>2026-07-20 17:35:23 -0400
committerJanleyx <242423638+Janleyx@users.noreply.github.com>2026-07-20 17:35:23 -0400
commit1260aa400e6d19e8d1cbc3d887c8ddcff3058be9 (patch)
treeee392423063c12f150ef4e2a496c7900a48bfcc2 /py_modules/lsfg_vk/configuration.py
parentff3213291a56ea8de73335adcceed3962a40114d (diff)
downloaddecky-lsfg-vk-1260aa400e6d19e8d1cbc3d887c8ddcff3058be9.tar.gz
decky-lsfg-vk-1260aa400e6d19e8d1cbc3d887c8ddcff3058be9.zip
wrap Armada launch inside lsfg script
Diffstat (limited to 'py_modules/lsfg_vk/configuration.py')
-rw-r--r--py_modules/lsfg_vk/configuration.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/py_modules/lsfg_vk/configuration.py b/py_modules/lsfg_vk/configuration.py
index e479f43..f7a171a 100644
--- a/py_modules/lsfg_vk/configuration.py
+++ b/py_modules/lsfg_vk/configuration.py
@@ -8,6 +8,7 @@ from typing import Dict, Any
from .base_service import BaseService
from .config_schema import ConfigurationManager, CONFIG_SCHEMA, ProfileData, DEFAULT_PROFILE_NAME
from .config_schema_generated import ConfigurationData, get_script_generation_logic
+from .constants import ARMADA_DEVICE_ENV, ARMADA_GAME_LAUNCH
from .types import ConfigurationResponse, ProfilesResponse, ProfileResponse
@@ -123,10 +124,8 @@ class ConfigurationService(BaseService):
generate_script_lines = get_script_generation_logic()
lines.extend(generate_script_lines(config))
- lines.extend([
- "export LSFG_PROCESS=decky-lsfg-vk",
- 'exec "$@"'
- ])
+ lines.append("export LSFG_PROCESS=decky-lsfg-vk")
+ lines.extend(self._generate_game_launch_lines())
return "\n".join(lines) + "\n"
@@ -154,12 +153,22 @@ class ConfigurationService(BaseService):
generate_script_lines = get_script_generation_logic()
lines.extend(generate_script_lines(merged_config))
- lines.extend([
- f"export LSFG_PROCESS={current_profile}",
- 'exec "$@"'
- ])
+ lines.append(f"export LSFG_PROCESS={current_profile}")
+ lines.extend(self._generate_game_launch_lines())
return "\n".join(lines) + "\n"
+
+ @staticmethod
+ def _generate_game_launch_lines() -> list[str]:
+ """Generate a portable exec block with Armada's host wrapper."""
+ device_env = ARMADA_DEVICE_ENV.as_posix()
+ game_launch = ARMADA_GAME_LAUNCH.as_posix()
+ return [
+ f'if [ -f "{device_env}" ] && [ -x "{game_launch}" ]; then',
+ f' exec "{game_launch}" "$@"',
+ "fi",
+ 'exec "$@"',
+ ]
def _get_profile_data(self) -> ProfileData:
"""Get current profile data from config file"""