From e79c539a9dd398007eb2265c54c37388cf6c90d1 Mon Sep 17 00:00:00 2001 From: Victor Date: Sun, 20 Jul 2025 01:21:20 -0300 Subject: [PATCH] add flatpak enabler script and default config file --- conf.toml | 33 +++++++++++++++++++++++++++++++++ flatpak-enabler.sh | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 conf.toml create mode 100644 flatpak-enabler.sh diff --git a/conf.toml b/conf.toml new file mode 100644 index 0000000..a30b6db --- /dev/null +++ b/conf.toml @@ -0,0 +1,33 @@ +version = 1 +[global] +# override the location of Lossless Scaling +# dll = "/games/Lossless Scaling" + +# [[game]] # example entry +# exe = "Game.exe" +# env = "SteamDeck=0" +# +# multiplier = 3 +# flow_scale = 0.7 +# performance_mode = true +# hdr_mode = false +# +# experimental_present_mode = fifo +# experimental_fps_limit = 48 + +[[game]] # default vkcube entry +exe = "vkcube" + +multiplier = 4 +performance_mode = true + +[[game]] # default benchmark entry +exe = "benchmark" + +multiplier = 4 +performance_mode = false + +[[game]] # override Genshin Impact +exe = "Genshin" + +multiplier = 3 diff --git a/flatpak-enabler.sh b/flatpak-enabler.sh new file mode 100644 index 0000000..19633db --- /dev/null +++ b/flatpak-enabler.sh @@ -0,0 +1,46 @@ +#!/bin/bash +# set up function +flatpak_enabler () { + + # initialize variables with locations + DLL_FIND=$(find $HOME -name Lossless.dll | head -n 1) + DLL_ABSOLUTE_PATH=$(dirname "$(realpath "$DLL_FIND")") + ESCAPED_DLL_PATH=$(printf '%s\n' "$DLL_ABSOLUTE_PATH" | sed 's/[&/\]/\\&/g') + CONF_LOC="${HOME}/.config/lsfg-vk/conf.toml" + # check if config exists, and if not, gets a model file + if [ ! -f "$CONF_LOC" ]; then + # make sure target dir exists + mkdir -p ${HOME}/.config/lsfg-vk/ + wget https://raw.githubusercontent.com/PancakeTAS/lsfg-vk/refs/heads/develop/conf.toml + mv conf.toml ${HOME}/.config/lsfg-vk/ + fi + # register dll location in config file + sed -i -E "s|^# dll = \".*\"|dll = \"$ESCAPED_DLL_PATH\"|" ${HOME}/.config/lsfg-vk/conf.toml + # apply flatpak overrides -- Lutris has permission for /home, so won't need any, but still needs the symlinks + _flatpaks=(com.heroicgameslauncher.hgl com.valvesoftware.Steam net.lutris.Lutris) + for flat in "${_flatpaks[@]}"; do + if flatpak list | grep -q "$flat"; then + APP_DIR="$HOME/.var/app/$flat" + flatpak override \ + --user \ + --filesystem="$HOME/.local" \ + --filesystem="$HOME/.config/lsfg-vk" \ + --filesystem="$DLL_ABSOLUTE_PATH" \ + "$flat" + # set up symlinks for lsfg-vk files + mkdir -p "$APP_DIR/lib" + mkdir -p "$APP_DIR/config/vulkan/implicit_layer.d/" + mkdir -p "$APP_DIR/.config/lsfg-vk/" + ln -s "$HOME/.local/lib/liblsfg-vk.so" "$APP_DIR/lib/liblsfg-vk.so" + ln -s "$HOME/.local/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json" "$APP_DIR/config/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json" + ln -s "$HOME/.config/lsfg-vk/conf.toml" "$APP_DIR/.config/lsfg-vk/conf.toml" + echo "Usage enabled successfully for $flat." + fi + done + +} + +# run function only if flatpak is present +if command -v flatpak &> /dev/null; then + flatpak_enabler +fi