diff options
| author | xXJSONDeruloXx <danielhimebauch@gmail.com> | 2025-07-22 12:11:53 -0400 |
|---|---|---|
| committer | xXJSONDeruloXx <danielhimebauch@gmail.com> | 2025-07-22 12:11:53 -0400 |
| commit | f8139896f2077a95a78a54c818637f78dd102de8 (patch) | |
| tree | 1ae4b236c66e0160c363c5ab8e7bafb84fb1fdb1 /py_modules/lsfg_vk/config_schema.py | |
| parent | dfe4c033dd1922a63c8393ab467e9aa58fa757e4 (diff) | |
| download | decky-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.py | 54 |
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 }) |
