From c02343e68874efd57c2e312cb6b7e4f02222e43a Mon Sep 17 00:00:00 2001 From: xXJSONDeruloXx Date: Tue, 22 Jul 2025 11:11:44 -0400 Subject: add workaround env vars, rm old tests --- src/config/configSchema.ts | 6 ++++-- src/config/generatedConfigSchema.ts | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) (limited to 'src/config') diff --git a/src/config/configSchema.ts b/src/config/configSchema.ts index 4ab0d25..979d3c9 100644 --- a/src/config/configSchema.ts +++ b/src/config/configSchema.ts @@ -52,7 +52,7 @@ export class ConfigurationManager { /** * Create args array from config object for lsfg API calls */ - static createArgsFromConfig(config: ConfigurationData): [string, number, number, boolean, boolean, string, number, boolean, boolean] { + static createArgsFromConfig(config: ConfigurationData): [string, number, number, boolean, boolean, string, number, boolean, boolean, boolean, boolean] { return [ config.dll, config.multiplier, @@ -62,7 +62,9 @@ export class ConfigurationManager { config.experimental_present_mode, config.dxvk_frame_rate, config.enable_wow64, - config.disable_steamdeck_mode + config.disable_steamdeck_mode, + config.mangohud_workaround, + config.disable_vkbasalt ]; } diff --git a/src/config/generatedConfigSchema.ts b/src/config/generatedConfigSchema.ts index 5f0e368..cb08252 100644 --- a/src/config/generatedConfigSchema.ts +++ b/src/config/generatedConfigSchema.ts @@ -71,6 +71,18 @@ export const CONFIG_SCHEMA: Record = { default: false, description: "disable Steam Deck mode (unlocks hidden settings in some games)" }, + mangohud_workaround: { + name: "mangohud_workaround", + fieldType: ConfigFieldType.BOOLEAN, + default: false, + description: "Enables a transparent mangohud overlay, sometimes fixes issues with 2X multiplier in game mode" + }, + disable_vkbasalt: { + name: "disable_vkbasalt", + fieldType: ConfigFieldType.BOOLEAN, + default: false, + description: "Disables vkBasalt layer which can conflict with LSFG (Reshade, some Decky plugins)" + }, }; // Type-safe configuration data structure @@ -84,6 +96,8 @@ export interface ConfigurationData { dxvk_frame_rate: number; enable_wow64: boolean; disable_steamdeck_mode: boolean; + mangohud_workaround: boolean; + disable_vkbasalt: boolean; } // Helper functions @@ -102,6 +116,8 @@ export function getDefaults(): ConfigurationData { dxvk_frame_rate: 0, enable_wow64: false, disable_steamdeck_mode: false, + mangohud_workaround: false, + disable_vkbasalt: false, }; } @@ -116,6 +132,8 @@ export function getFieldTypes(): Record { dxvk_frame_rate: ConfigFieldType.INTEGER, enable_wow64: ConfigFieldType.BOOLEAN, disable_steamdeck_mode: ConfigFieldType.BOOLEAN, + mangohud_workaround: ConfigFieldType.BOOLEAN, + disable_vkbasalt: ConfigFieldType.BOOLEAN, }; } -- cgit v1.2.3 From dfe4c033dd1922a63c8393ab467e9aa58fa757e4 Mon Sep 17 00:00:00 2001 From: xXJSONDeruloXx Date: Tue, 22 Jul 2025 11:41:49 -0400 Subject: refactor: update configuration handling to use object-based API --- src/config/configSchema.ts | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) (limited to 'src/config') diff --git a/src/config/configSchema.ts b/src/config/configSchema.ts index 979d3c9..fdf6212 100644 --- a/src/config/configSchema.ts +++ b/src/config/configSchema.ts @@ -8,6 +8,7 @@ import { callable } from "@decky/api"; import type { ConfigurationData } from './generatedConfigSchema'; import { getDefaults } from './generatedConfigSchema'; +import { updateLsfgConfig } from "../api/lsfgApi"; // Re-export all auto-generated configuration constants export { @@ -30,7 +31,6 @@ export class ConfigurationManager { // Callable methods for backend communication private getConfiguration = callable<[], { success: boolean; data?: ConfigurationData; error?: string }>("get_configuration"); - private setConfiguration = callable<[{ config_data: ConfigurationData }], { success: boolean; error?: string }>("set_configuration"); private resetConfiguration = callable<[], { success: boolean; data?: ConfigurationData; error?: string }>("reset_configuration"); private constructor() {} @@ -49,25 +49,6 @@ export class ConfigurationManager { return getDefaults(); } - /** - * Create args array from config object for lsfg API calls - */ - static createArgsFromConfig(config: ConfigurationData): [string, number, number, boolean, boolean, string, number, boolean, boolean, boolean, boolean] { - return [ - config.dll, - config.multiplier, - config.flow_scale, - config.performance_mode, - config.hdr_mode, - config.experimental_present_mode, - config.dxvk_frame_rate, - config.enable_wow64, - config.disable_steamdeck_mode, - config.mangohud_workaround, - config.disable_vkbasalt - ]; - } - /** * Load configuration from backend */ @@ -91,7 +72,7 @@ export class ConfigurationManager { */ async saveConfig(config: ConfigurationData): Promise { try { - const result = await this.setConfiguration({ config_data: config }); + const result = await updateLsfgConfig(config); if (result.success) { this._config = config; } else { -- cgit v1.2.3 From f8139896f2077a95a78a54c818637f78dd102de8 Mon Sep 17 00:00:00 2001 From: xXJSONDeruloXx Date: Tue, 22 Jul 2025 12:11:53 -0400 Subject: consolidate toml and script values --- src/config/generatedConfigSchema.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/config') diff --git a/src/config/generatedConfigSchema.ts b/src/config/generatedConfigSchema.ts index cb08252..b7487bd 100644 --- a/src/config/generatedConfigSchema.ts +++ b/src/config/generatedConfigSchema.ts @@ -83,6 +83,18 @@ export const CONFIG_SCHEMA: Record = { default: false, description: "Disables vkBasalt layer which can conflict with LSFG (Reshade, some Decky plugins)" }, + foobar_toggle: { + name: "foobar_toggle", + fieldType: ConfigFieldType.BOOLEAN, + default: false, + description: "Test script-only toggle that exports FOOBAR=1 (for testing purposes)" + }, + test_config_only: { + name: "test_config_only", + fieldType: ConfigFieldType.STRING, + default: "default_value", + description: "Test TOML-only configuration field (not in script)" + }, }; // Type-safe configuration data structure @@ -98,6 +110,8 @@ export interface ConfigurationData { disable_steamdeck_mode: boolean; mangohud_workaround: boolean; disable_vkbasalt: boolean; + foobar_toggle: boolean; + test_config_only: string; } // Helper functions @@ -118,6 +132,8 @@ export function getDefaults(): ConfigurationData { disable_steamdeck_mode: false, mangohud_workaround: false, disable_vkbasalt: false, + foobar_toggle: false, + test_config_only: "default_value", }; } @@ -134,6 +150,8 @@ export function getFieldTypes(): Record { disable_steamdeck_mode: ConfigFieldType.BOOLEAN, mangohud_workaround: ConfigFieldType.BOOLEAN, disable_vkbasalt: ConfigFieldType.BOOLEAN, + foobar_toggle: ConfigFieldType.BOOLEAN, + test_config_only: ConfigFieldType.STRING, }; } -- cgit v1.2.3 From df0635f1bba611b8b44975057acd579102d209dd Mon Sep 17 00:00:00 2001 From: xXJSONDeruloXx Date: Tue, 22 Jul 2025 13:06:46 -0400 Subject: further automate population of hardcoded fields --- src/config/generatedConfigSchema.ts | 18 ------------------ 1 file changed, 18 deletions(-) (limited to 'src/config') diff --git a/src/config/generatedConfigSchema.ts b/src/config/generatedConfigSchema.ts index b7487bd..cb08252 100644 --- a/src/config/generatedConfigSchema.ts +++ b/src/config/generatedConfigSchema.ts @@ -83,18 +83,6 @@ export const CONFIG_SCHEMA: Record = { default: false, description: "Disables vkBasalt layer which can conflict with LSFG (Reshade, some Decky plugins)" }, - foobar_toggle: { - name: "foobar_toggle", - fieldType: ConfigFieldType.BOOLEAN, - default: false, - description: "Test script-only toggle that exports FOOBAR=1 (for testing purposes)" - }, - test_config_only: { - name: "test_config_only", - fieldType: ConfigFieldType.STRING, - default: "default_value", - description: "Test TOML-only configuration field (not in script)" - }, }; // Type-safe configuration data structure @@ -110,8 +98,6 @@ export interface ConfigurationData { disable_steamdeck_mode: boolean; mangohud_workaround: boolean; disable_vkbasalt: boolean; - foobar_toggle: boolean; - test_config_only: string; } // Helper functions @@ -132,8 +118,6 @@ export function getDefaults(): ConfigurationData { disable_steamdeck_mode: false, mangohud_workaround: false, disable_vkbasalt: false, - foobar_toggle: false, - test_config_only: "default_value", }; } @@ -150,8 +134,6 @@ export function getFieldTypes(): Record { disable_steamdeck_mode: ConfigFieldType.BOOLEAN, mangohud_workaround: ConfigFieldType.BOOLEAN, disable_vkbasalt: ConfigFieldType.BOOLEAN, - foobar_toggle: ConfigFieldType.BOOLEAN, - test_config_only: ConfigFieldType.STRING, }; } -- cgit v1.2.3 From d063284dea10e82a23c2c332ecd4901d7254171b Mon Sep 17 00:00:00 2001 From: xXJSONDeruloXx Date: Tue, 22 Jul 2025 13:23:25 -0400 Subject: use generated kwargs and config in more hardcoded places --- src/config/configSchema.ts | 6 +++++- src/config/generatedConfigSchema.ts | 13 +++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) (limited to 'src/config') diff --git a/src/config/configSchema.ts b/src/config/configSchema.ts index fdf6212..9568fd8 100644 --- a/src/config/configSchema.ts +++ b/src/config/configSchema.ts @@ -18,7 +18,11 @@ export { ConfigurationData, getFieldNames, getDefaults, - getFieldTypes + getFieldTypes, + // Field name constants for type-safe access + DLL, MULTIPLIER, FLOW_SCALE, PERFORMANCE_MODE, HDR_MODE, + EXPERIMENTAL_PRESENT_MODE, DXVK_FRAME_RATE, ENABLE_WOW64, + DISABLE_STEAMDECK_MODE, MANGOHUD_WORKAROUND, DISABLE_VKBASALT } from './generatedConfigSchema'; /** diff --git a/src/config/generatedConfigSchema.ts b/src/config/generatedConfigSchema.ts index cb08252..4a301a1 100644 --- a/src/config/generatedConfigSchema.ts +++ b/src/config/generatedConfigSchema.ts @@ -7,6 +7,19 @@ export enum ConfigFieldType { STRING = "string" } +// Field name constants for type-safe access +export const DLL = "dll" as const; +export const MULTIPLIER = "multiplier" as const; +export const FLOW_SCALE = "flow_scale" as const; +export const PERFORMANCE_MODE = "performance_mode" as const; +export const HDR_MODE = "hdr_mode" as const; +export const EXPERIMENTAL_PRESENT_MODE = "experimental_present_mode" as const; +export const DXVK_FRAME_RATE = "dxvk_frame_rate" as const; +export const ENABLE_WOW64 = "enable_wow64" as const; +export const DISABLE_STEAMDECK_MODE = "disable_steamdeck_mode" as const; +export const MANGOHUD_WORKAROUND = "mangohud_workaround" as const; +export const DISABLE_VKBASALT = "disable_vkbasalt" as const; + // Configuration field definition export interface ConfigField { name: string; -- cgit v1.2.3