summaryrefslogtreecommitdiff
path: root/src/services/configuration_service.py
diff options
context:
space:
mode:
authorxXJSONDeruloXx <danielhimebauch@gmail.com>2025-07-13 00:30:25 -0400
committerxXJSONDeruloXx <danielhimebauch@gmail.com>2025-07-13 00:30:25 -0400
commitee3e099b98c460c0fa6bc9e9d8109e519276c233 (patch)
treee81c7d25838a63bea5e91a1f87bec1a980bd8ec7 /src/services/configuration_service.py
parent77494457e2a4f5c80c3a2f7acb054b12d918d8ad (diff)
downloaddecky-lsfg-vk-ee3e099b98c460c0fa6bc9e9d8109e519276c233.tar.gz
decky-lsfg-vk-ee3e099b98c460c0fa6bc9e9d8109e519276c233.zip
fix py imports
Diffstat (limited to 'src/services/configuration_service.py')
-rw-r--r--src/services/configuration_service.py164
1 files changed, 0 insertions, 164 deletions
diff --git a/src/services/configuration_service.py b/src/services/configuration_service.py
deleted file mode 100644
index a4975c5..0000000
--- a/src/services/configuration_service.py
+++ /dev/null
@@ -1,164 +0,0 @@
-import os
-from typing import Dict, Any
-import decky
-
-
-class ConfigurationService:
- """Service for managing lsfg script configuration"""
-
- def __init__(self):
- self.user_home = os.path.expanduser("~")
- self.lsfg_script_path = os.path.join(self.user_home, "lsfg")
-
- async def get_config(self) -> Dict[str, Any]:
- """Read current lsfg script configuration"""
- try:
- if not os.path.exists(self.lsfg_script_path):
- return {
- "success": False,
- "error": "lsfg script not found"
- }
-
- with open(self.lsfg_script_path, 'r') as f:
- content = f.read()
-
- # Parse the script content to extract current values
- config = {
- "enable_lsfg": False,
- "multiplier": 2,
- "flow_scale": 1.0,
- "hdr": False,
- "perf_mode": False,
- "immediate_mode": False
- }
-
- lines = content.split('\n')
- for line in lines:
- line = line.strip()
-
- # Handle ENABLE_LSFG - check if it's commented out or not
- if line.startswith('export ENABLE_LSFG='):
- try:
- value = line.split('=')[1].strip()
- config["enable_lsfg"] = value == '1'
- except:
- pass
- elif line.startswith('# export ENABLE_LSFG='):
- config["enable_lsfg"] = False
-
- # Handle LSFG_MULTIPLIER
- elif line.startswith('export LSFG_MULTIPLIER='):
- try:
- value = line.split('=')[1].strip()
- config["multiplier"] = int(value)
- except:
- pass
-
- # Handle LSFG_FLOW_SCALE
- elif line.startswith('export LSFG_FLOW_SCALE='):
- try:
- value = line.split('=')[1].strip()
- config["flow_scale"] = float(value)
- except:
- pass
-
- # Handle LSFG_HDR - check if it's commented out or not
- elif line.startswith('export LSFG_HDR='):
- try:
- value = line.split('=')[1].strip()
- config["hdr"] = value == '1'
- except:
- pass
- elif line.startswith('# export LSFG_HDR='):
- config["hdr"] = False
-
- # Handle LSFG_PERF_MODE - check if it's commented out or not
- elif line.startswith('export LSFG_PERF_MODE='):
- try:
- value = line.split('=')[1].strip()
- config["perf_mode"] = value == '1'
- except:
- pass
- elif line.startswith('# export LSFG_PERF_MODE='):
- config["perf_mode"] = False
-
- # Handle MESA_VK_WSI_PRESENT_MODE - check if it's commented out or not
- elif line.startswith('export MESA_VK_WSI_PRESENT_MODE='):
- try:
- value = line.split('=')[1].strip()
- # Remove any comments after the value
- value = value.split('#')[0].strip()
- config["immediate_mode"] = value == 'immediate'
- except:
- pass
- elif line.startswith('# export MESA_VK_WSI_PRESENT_MODE='):
- config["immediate_mode"] = False
-
- decky.logger.info(f"Parsed lsfg config: {config}")
-
- return {
- "success": True,
- "config": config
- }
-
- except Exception as e:
- decky.logger.error(f"Error reading lsfg config: {str(e)}")
- return {
- "success": False,
- "error": str(e)
- }
-
- async def update_config(self, enable_lsfg: bool, multiplier: int, flow_scale: float,
- hdr: bool, perf_mode: bool, immediate_mode: bool) -> Dict[str, Any]:
- """Update lsfg script configuration"""
- try:
- # Create script content based on parameters
- script_content = "#!/bin/bash\n\n"
-
- if enable_lsfg:
- script_content += "export ENABLE_LSFG=1\n"
- else:
- script_content += "# export ENABLE_LSFG=1\n"
-
- script_content += f"export LSFG_MULTIPLIER={multiplier}\n"
- script_content += f"export LSFG_FLOW_SCALE={flow_scale}\n"
-
- if hdr:
- script_content += "export LSFG_HDR=1\n"
- else:
- script_content += "# export LSFG_HDR=1\n"
-
- if perf_mode:
- script_content += "export LSFG_PERF_MODE=1\n"
- else:
- script_content += "# export LSFG_PERF_MODE=1\n"
-
- if immediate_mode:
- script_content += "export MESA_VK_WSI_PRESENT_MODE=immediate # - disable vsync\n"
- else:
- script_content += "# export MESA_VK_WSI_PRESENT_MODE=immediate # - disable vsync\n"
-
- # Add the exec line to allow the script to execute passed commands
- script_content += "\n# Execute the passed command with the environment variables set\n"
- script_content += "exec \"$@\"\n"
-
- # Write the updated script
- with open(self.lsfg_script_path, 'w') as f:
- f.write(script_content)
-
- # Make sure it's executable
- os.chmod(self.lsfg_script_path, 0o755)
-
- decky.logger.info(f"Updated lsfg script configuration: enable={enable_lsfg}, multiplier={multiplier}, flow_scale={flow_scale}, hdr={hdr}, perf_mode={perf_mode}, immediate_mode={immediate_mode}")
-
- return {
- "success": True,
- "message": "lsfg configuration updated successfully"
- }
-
- except Exception as e:
- decky.logger.error(f"Error updating lsfg config: {str(e)}")
- return {
- "success": False,
- "error": str(e)
- }