summaryrefslogtreecommitdiff
path: root/py_modules/lsfg_vk/config_schema.py
diff options
context:
space:
mode:
authorxXJSONDeruloXx <danielhimebauch@gmail.com>2025-07-22 12:11:53 -0400
committerxXJSONDeruloXx <danielhimebauch@gmail.com>2025-07-22 12:11:53 -0400
commitf8139896f2077a95a78a54c818637f78dd102de8 (patch)
tree1ae4b236c66e0160c363c5ab8e7bafb84fb1fdb1 /py_modules/lsfg_vk/config_schema.py
parentdfe4c033dd1922a63c8393ab467e9aa58fa757e4 (diff)
downloaddecky-lsfg-vk-f8139896f2077a95a78a54c818637f78dd102de8.tar.gz
decky-lsfg-vk-f8139896f2077a95a78a54c818637f78dd102de8.zip
consolidate toml and script values
Diffstat (limited to 'py_modules/lsfg_vk/config_schema.py')
-rw-r--r--py_modules/lsfg_vk/config_schema.py54
1 files changed, 18 insertions, 36 deletions
diff --git a/py_modules/lsfg_vk/config_schema.py b/py_modules/lsfg_vk/config_schema.py
index 6a68db1..eac5a91 100644
--- a/py_modules/lsfg_vk/config_schema.py
+++ b/py_modules/lsfg_vk/config_schema.py
@@ -52,42 +52,16 @@ CONFIG_SCHEMA["dll"] = ConfigField(
description="specify where Lossless.dll is stored"
)
-# Fields that should ONLY be in the lsfg script, not in TOML config
+# Get script-only fields dynamically from shared config
SCRIPT_ONLY_FIELDS = {
- "dxvk_frame_rate": ConfigField(
- name="dxvk_frame_rate",
- field_type=ConfigFieldType.INTEGER,
- default=0,
- description="base framerate cap for DirectX games, before frame multiplier (0 = disabled, requires game re-launch)"
- ),
-
- "enable_wow64": ConfigField(
- name="enable_wow64",
- field_type=ConfigFieldType.BOOLEAN,
- default=False,
- description="enable PROTON_USE_WOW64=1 for 32-bit games (use with ProtonGE to fix crashing)"
- ),
-
- "disable_steamdeck_mode": ConfigField(
- name="disable_steamdeck_mode",
- field_type=ConfigFieldType.BOOLEAN,
- default=False,
- description="disable Steam Deck mode (unlocks hidden settings in some games)"
- ),
-
- "mangohud_workaround": ConfigField(
- name="mangohud_workaround",
- field_type=ConfigFieldType.BOOLEAN,
- default=False,
- description="Enables a transparent mangohud overlay, sometimes fixes issues with 2X multiplier in game mode"
- ),
-
- "disable_vkbasalt": ConfigField(
- name="disable_vkbasalt",
- field_type=ConfigFieldType.BOOLEAN,
- default=False,
- description="Disables vkBasalt layer which can conflict with LSFG (Reshade, some Decky plugins)"
+ field_name: ConfigField(
+ name=field_def["name"],
+ field_type=ConfigFieldType(field_def["fieldType"]),
+ default=field_def["default"],
+ description=field_def["description"]
)
+ for field_name, field_def in CONFIG_SCHEMA_DEF.items()
+ if field_def.get("location") == "script"
}
# Complete configuration schema (TOML + script-only fields)
@@ -107,6 +81,8 @@ class ConfigurationData(TypedDict):
disable_steamdeck_mode: bool
mangohud_workaround: bool
disable_vkbasalt: bool
+ foobar_toggle: bool
+ test_config_only: str
class ConfigurationManager:
@@ -355,6 +331,8 @@ class ConfigurationManager:
script_values["mangohud_workaround"] = value == "1"
elif key == "DISABLE_VKBASALT":
script_values["disable_vkbasalt"] = value == "1"
+ elif key == "FOOBAR":
+ script_values["foobar_toggle"] = value == "1"
except (ValueError, KeyError, IndexError) as e:
# If parsing fails, log the error and return empty dict (will use defaults)
@@ -390,7 +368,9 @@ class ConfigurationManager:
enable_wow64: bool = False,
disable_steamdeck_mode: bool = False,
mangohud_workaround: bool = False,
- disable_vkbasalt: bool = False) -> ConfigurationData:
+ disable_vkbasalt: bool = False,
+ foobar_toggle: bool = False,
+ test_config_only: str = "default_value") -> ConfigurationData:
"""Create configuration from individual arguments"""
return cast(ConfigurationData, {
"dll": dll,
@@ -403,5 +383,7 @@ class ConfigurationManager:
"enable_wow64": enable_wow64,
"disable_steamdeck_mode": disable_steamdeck_mode,
"mangohud_workaround": mangohud_workaround,
- "disable_vkbasalt": disable_vkbasalt
+ "disable_vkbasalt": disable_vkbasalt,
+ "foobar_toggle": foobar_toggle,
+ "test_config_only": test_config_only
})