import { PanelSectionRow, ToggleField, SliderField, DropdownItem, DialogButton, Focusable } from "@decky/ui"; import { ConfigurationData } from "../config/configSchema"; import { MULTIPLIER, FLOW_SCALE, PERFORMANCE_MODE, HDR_MODE, EXPERIMENTAL_PRESENT_MODE, DXVK_FRAME_RATE, DISABLE_STEAMDECK_MODE, MANGOHUD_WORKAROUND, DISABLE_VKBASALT } from "../config/generatedConfigSchema"; interface ConfigurationSectionProps { config: ConfigurationData; onConfigChange: (fieldName: keyof ConfigurationData, value: boolean | number | string) => Promise; } export function ConfigurationSection({ config, onConfigChange }: ConfigurationSectionProps) { return ( <>
LSFG Configuration
{/* FPS Multiplier */} onConfigChange(MULTIPLIER, Math.max(1, config.multiplier - 1))} disabled={config.multiplier <= 1} > −
{config.multiplier < 2 ? "OFF" : `${config.multiplier}X`}
onConfigChange(MULTIPLIER, Math.min(6, config.multiplier + 1))} disabled={config.multiplier >= 6} > +
onConfigChange(FLOW_SCALE, value)} /> onConfigChange(PERFORMANCE_MODE, value)} /> onConfigChange(HDR_MODE, value)} />
Experimental Features
onConfigChange(EXPERIMENTAL_PRESENT_MODE, value.data)} rgOptions={[ { data: "fifo", label: "FIFO (VSync) - Default" }, { data: "mailbox", label: "Mailbox" } ]} />
Environment Variables
Must be toggled before game start or restart game to take effect
0 ? ` (${config.dxvk_frame_rate} FPS)` : ' (Off)'}`} description="Base framerate cap for DirectX games, before frame multiplier" value={config.dxvk_frame_rate} min={0} max={60} step={1} onChange={(value) => onConfigChange(DXVK_FRAME_RATE, value)} /> onConfigChange('enable_wow64', value)} /> onConfigChange(DISABLE_STEAMDECK_MODE, value)} /> onConfigChange(MANGOHUD_WORKAROUND, value)} /> onConfigChange(DISABLE_VKBASALT, value)} /> ); }