mirror of
https://github.com/PancakeTAS/lsfg-vk.git
synced 2025-12-03 14:42:17 +00:00
67 lines
3.6 KiB
Bash
Executable file
67 lines
3.6 KiB
Bash
Executable file
#!/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"
|
|
# overrides for AUR/CachyOS packages
|
|
if pacman -Qi lsfg-vk 2>/dev/null 1>&2; then
|
|
flatpak override \
|
|
--user \
|
|
--filesystem="/usr/lib/liblsfg-vk.so:ro" \
|
|
--filesystem="/etc/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json:ro" \
|
|
--filesystem="xdg-config/lsfg-vk:ro" \
|
|
--filesystem="$DLL_ABSOLUTE_PATH:ro" \
|
|
"$flat"
|
|
# overrides for install script
|
|
elif [ -f "$HOME/.local/lib/liblsfg-vk.so" ] && [ -f "$HOME/.local/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json" ]; then
|
|
flatpak override \
|
|
--user \
|
|
--filesystem="$HOME/.local/lib/liblsfg-vk.so:ro" \
|
|
--filesystem="xdg-data/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json:ro" \
|
|
--filesystem="xdg-config/lsfg-vk:ro" \
|
|
--filesystem="$DLL_ABSOLUTE_PATH:ro" \
|
|
"$flat"
|
|
fi
|
|
# set up directories for symlinks
|
|
mkdir -p "$APP_DIR/lib"
|
|
mkdir -p "$APP_DIR/config/vulkan/implicit_layer.d/"
|
|
mkdir -p "$APP_DIR/.config/lsfg-vk/"
|
|
# symlinks for AUR/CachyOS packages
|
|
if pacman -Qi lsfg-vk 2>/dev/null 1>&2; then
|
|
ln -sf "/usr/lib/liblsfg-vk.so" "$APP_DIR/lib/liblsfg-vk.so"
|
|
ln -sf "/etc/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json" "$APP_DIR/config/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json"
|
|
ln -sf "$HOME/.config/lsfg-vk/conf.toml" "$APP_DIR/.config/lsfg-vk/conf.toml"
|
|
# symlinks for installation script -- elif so it only creates the symlinks if files exist at the expected locations
|
|
elif [ -f "$HOME/.local/lib/liblsfg-vk.so" ] && [ -f "$HOME/.local/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json" ]; then
|
|
ln -sf "$HOME/.local/lib/liblsfg-vk.so" "$APP_DIR/lib/liblsfg-vk.so"
|
|
ln -sf "$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 -sf "$HOME/.config/lsfg-vk/conf.toml" "$APP_DIR/.config/lsfg-vk/conf.toml"
|
|
fi
|
|
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
|