diff options
| author | Kurt Himebauch <136133082+xXJSONDeruloXx@users.noreply.github.com> | 2025-09-23 17:18:11 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-23 17:18:11 -0400 |
| commit | 8da57c7827db2b1725b91afe2b5b15caf322579a (patch) | |
| tree | 85167b073713c0e384d9b40452c080a2e58a4abd | |
| parent | 7f5df2da22d0016b26d87a4adb89204660a47630 (diff) | |
| parent | 33729c51430689d2401694c75acc01ff2d32a8e3 (diff) | |
| download | Decky-Framegen-8da57c7827db2b1725b91afe2b5b15caf322579a.tar.gz Decky-Framegen-8da57c7827db2b1725b91afe2b5b15caf322579a.zip | |
Merge pull request #142 from MasterZK/mainv0.11.17
Added Lutris Steam shortcut support
| -rwxr-xr-x | defaults/assets/fgmod-uninstaller.sh | 35 | ||||
| -rwxr-xr-x | defaults/assets/fgmod.sh | 35 | ||||
| -rw-r--r-- | package.json | 2 |
3 files changed, 71 insertions, 1 deletions
diff --git a/defaults/assets/fgmod-uninstaller.sh b/defaults/assets/fgmod-uninstaller.sh index ba32d23..7590120 100755 --- a/defaults/assets/fgmod-uninstaller.sh +++ b/defaults/assets/fgmod-uninstaller.sh @@ -43,6 +43,41 @@ else done fi +for arg in "$@"; do + if [[ "$arg" == lutris:rungameid/* ]]; then + lutris_id="${arg#lutris:rungameid/}" + + # Get slug from Lutris JSON + slug=$(lutris --list-games --json 2>/dev/null | jq -r ".[] | select(.id == $lutris_id) | .slug") + + if [[ -z "$slug" || "$slug" == "null" ]]; then + echo "Could not find slug for Lutris ID $lutris_id" + break + fi + + # Find matching YAML file using slug + config_file=$(find ~/.config/lutris/games/ -iname "${slug}-*.yml" | head -1) + + if [[ -z "$config_file" ]]; then + echo "No config file found for slug '$slug'" + break + fi + + # Extract executable path from YAML + exe_path=$(grep -E '^\s*exe:' "$config_file" | sed 's/.*exe:[[:space:]]*//') + + if [[ -n "$exe_path" ]]; then + exe_folder_path=$(dirname "$exe_path") + echo "Resolved executable path: $exe_path" + echo "Executable folder: $exe_folder_path" + else + echo "Executable path not found in $config_file" + fi + + break + fi +done + # Fallback to STEAM_COMPAT_INSTALL_PATH when no path was found [[ -z "$exe_folder_path" && -n "$STEAM_COMPAT_INSTALL_PATH" ]] && exe_folder_path="$STEAM_COMPAT_INSTALL_PATH" diff --git a/defaults/assets/fgmod.sh b/defaults/assets/fgmod.sh index d0b2070..ef216cd 100755 --- a/defaults/assets/fgmod.sh +++ b/defaults/assets/fgmod.sh @@ -46,6 +46,41 @@ else done fi +for arg in "$@"; do + if [[ "$arg" == lutris:rungameid/* ]]; then + lutris_id="${arg#lutris:rungameid/}" + + # Get slug from Lutris JSON + slug=$(lutris --list-games --json 2>/dev/null | jq -r ".[] | select(.id == $lutris_id) | .slug") + + if [[ -z "$slug" || "$slug" == "null" ]]; then + echo "Could not find slug for Lutris ID $lutris_id" + break + fi + + # Find matching YAML file using slug + config_file=$(find ~/.config/lutris/games/ -iname "${slug}-*.yml" | head -1) + + if [[ -z "$config_file" ]]; then + echo "No config file found for slug '$slug'" + break + fi + + # Extract executable path from YAML + exe_path=$(grep -E '^\s*exe:' "$config_file" | sed 's/.*exe:[[:space:]]*//') + + if [[ -n "$exe_path" ]]; then + exe_folder_path=$(dirname "$exe_path") + echo "Resolved executable path: $exe_path" + echo "Executable folder: $exe_folder_path" + else + echo "Executable path not found in $config_file" + fi + + break + fi +done + [[ -z "$exe_folder_path" && -n "$STEAM_COMPAT_INSTALL_PATH" ]] && exe_folder_path="$STEAM_COMPAT_INSTALL_PATH" if [[ -d "$exe_folder_path/Engine" ]]; then diff --git a/package.json b/package.json index 7449239..a9e492d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "decky-framegen", - "version": "0.11.16", + "version": "0.11.17", "description": "This plugin installs and manages OptiScaler, a tool that enhances upscaling and enables frame generation in a range of DirectX 12 games.", "type": "module", "scripts": { |
