summaryrefslogtreecommitdiff
path: root/py_modules/lsfg_vk
diff options
context:
space:
mode:
authorxXJSONDeruloXx <danielhimebauch@gmail.com>2026-09-07 16:02:26 -0400
committerxXJSONDeruloXx <danielhimebauch@gmail.com>2026-09-07 16:02:26 -0400
commit22db1125238e54b29538102727c36284e122e703 (patch)
tree9fb5f2bc5a00256dc811e4dbbd1e963c5492c48c /py_modules/lsfg_vk
parentf48ff4b541b1ef877905bda248459460a943dd6e (diff)
downloaddecky-lsfg-vk-22db1125238e54b29538102727c36284e122e703.tar.gz
decky-lsfg-vk-22db1125238e54b29538102727c36284e122e703.zip
feat: refine game discovery and profile UX
Diffstat (limited to 'py_modules/lsfg_vk')
-rw-r--r--py_modules/lsfg_vk/config_schema.py4
-rw-r--r--py_modules/lsfg_vk/steam_service.py26
2 files changed, 19 insertions, 11 deletions
diff --git a/py_modules/lsfg_vk/config_schema.py b/py_modules/lsfg_vk/config_schema.py
index 675ab61..ce109f3 100644
--- a/py_modules/lsfg_vk/config_schema.py
+++ b/py_modules/lsfg_vk/config_schema.py
@@ -20,7 +20,7 @@ PROFILE_DEFAULTS: Dict[str, Any] = {
"active_in": [],
"pacing_mode": "vsync",
"multiplier": 2,
- "flow_scale": 1.0,
+ "flow_scale": 0.8,
"performance_mode": False,
"override_present_mode": True,
"preserve_swapchain_image_count": False,
@@ -78,7 +78,7 @@ class ConfigurationManager:
if not path_value:
return ""
path = Path(path_value)
- if path.name.lower() in {"lossless.dll", "losslessscaling.dll"}:
+ if path.name.lower() in {"lossless.dll"}:
return str(path.with_name("lsfg-vk.dll"))
return path_value
diff --git a/py_modules/lsfg_vk/steam_service.py b/py_modules/lsfg_vk/steam_service.py
index 8c50cfd..f46a091 100644
--- a/py_modules/lsfg_vk/steam_service.py
+++ b/py_modules/lsfg_vk/steam_service.py
@@ -56,15 +56,18 @@ class SteamService(BaseService):
for candidate in self._steam_roots():
yield from self._unique_existing_root(candidate, seen)
- library_file = candidate / "steamapps/libraryfolders.vdf"
- try:
- content = library_file.read_text(encoding="utf-8")
- except OSError:
- continue
+ for library_file in (
+ candidate / "steamapps/libraryfolders.vdf",
+ candidate / "config/libraryfolders.vdf",
+ ):
+ try:
+ content = library_file.read_text(encoding="utf-8")
+ except OSError:
+ continue
- for raw_path in re.findall(r'(?m)^\s*"path"\s+"((?:\\.|[^"])*)"', content):
- path = raw_path.replace(r'\"', '"').replace(r'\\', '\\')
- yield from self._unique_existing_root(Path(path), seen)
+ for raw_path in re.findall(r'(?m)^\s*"path"\s+"((?:\\.|[^"])*)"', content):
+ path = raw_path.replace(r'\"', '"').replace(r'\\', '\\')
+ yield from self._unique_existing_root(Path(path), seen)
@staticmethod
def _read_shortcuts(data: bytes) -> Dict[str, object]:
@@ -88,6 +91,11 @@ class SteamService(BaseService):
raise ValueError("truncated binary VDF integer")
value = int.from_bytes(data[offset:offset + 4], "little", signed=True)
offset += 4
+ elif value_type == 7:
+ if offset + 8 > len(data):
+ raise ValueError("truncated binary VDF 64-bit integer")
+ value = int.from_bytes(data[offset:offset + 8], "little", signed=True)
+ offset += 8
else:
raise ValueError(f"unsupported binary VDF type {value_type}")
values[key] = value
@@ -254,7 +262,7 @@ class SteamService(BaseService):
elif fields["restart_required"]:
message = "lsfg-vk is selected; restart Steam to finish the branch switch"
else:
- message = "Lossless Scaling is not using the lsfg-vk Steam branch"
+ message = "Select lsfg-vk in Lossless Scaling's Steam Properties > Betas"
return self._success_response(dict, message, **fields)
except Exception as error:
return self._error_response(