mirror of
https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck.git
synced 2025-01-10 00:49:21 +01:00
53a6eee93b
~fixed prefix folders to be matched correctly with the steam shortcut as a workaround, ive created symlinks in the compatdata folder so you can still read the folders straight up ~this fix enables ProtonTricks to used ~rearranged windows code to display the websites entry to happen after the launchers selection, if no launchers are selected you still get prompted in case you want urls ~CAPITALIZED "Separate APP IDS" so you can easily see it now, this check mark separates the prefixes since the beginning and with the new fix, they will be symlinked now so they can be easily read
3377 lines
127 KiB
Bash
3377 lines
127 KiB
Bash
#!/bin/bash
|
|
|
|
# Create a log file in the same directory as the desktop file/.sh file
|
|
exec >> $HOME/Downloads/NonSteamLaunchers-install.log 2>&1
|
|
|
|
chmod +x "$0"
|
|
|
|
set -x
|
|
|
|
version=v2.98
|
|
|
|
check_for_updates() {
|
|
# Set the URL to the GitHub API for the repository
|
|
local api_url="https://api.github.com/repos/moraroy/NonSteamLaunchers-On-Steam-Deck/releases/latest"
|
|
|
|
# Get the latest release tag from the GitHub API
|
|
local latest_version=$(curl -s "$api_url" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
|
|
|
# Compare the version number in the script against the latest release tag
|
|
if [ "$version" != "$latest_version" ]; then
|
|
# Display a Zenity window to notify the user that a new version is available
|
|
zenity --info --text="A new version is available: $latest_version\nPlease download it from GitHub." --width=200 --height=100
|
|
else
|
|
echo "You are already running the latest version: $version"
|
|
fi
|
|
}
|
|
|
|
# Get the command line arguments
|
|
args=("$@")
|
|
|
|
# Check if any command line arguments were provided
|
|
if [ ${#args[@]} -eq 0 ]; then
|
|
# No command line arguments were provided, so check for updates and display the zenity window if necessary
|
|
check_for_updates
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Check if the NonSteamLaunchersInstallation subfolder exists in the Downloads folder
|
|
if [ -d "$HOME/Downloads/NonSteamLaunchersInstallation" ]; then
|
|
# Delete the NonSteamLaunchersInstallation subfolder
|
|
rm -rf "$HOME/Downloads/NonSteamLaunchersInstallation"
|
|
echo "Deleted NonSteamLaunchersInstallation subfolder"
|
|
else
|
|
echo "NonSteamLaunchersInstallation subfolder does not exist"
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#Game Launchers
|
|
|
|
# Set the paths to the launcher executables
|
|
epic_games_launcher_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/Epic Games/Launcher/Portal/Binaries/Win32/EpicGamesLauncher.exe"
|
|
epic_games_launcher_path2="$HOME/.local/share/Steam/steamapps/compatdata/EpicGamesLauncher/pfx/drive_c/Program Files (x86)/Epic Games/Launcher/Portal/Binaries/Win32/EpicGamesLauncher.exe"
|
|
gog_galaxy_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/GOG Galaxy/GalaxyClient.exe"
|
|
gog_galaxy_path2="$HOME/.local/share/Steam/steamapps/compatdata/GogGalaxyLauncher/pfx/drive_c/Program Files (x86)/GOG Galaxy/GalaxyClient.exe"
|
|
origin_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/Origin/Origin.exe"
|
|
origin_path2="$HOME/.local/share/Steam/steamapps/compatdata/OriginLauncher/pfx/drive_c/Program Files (x86)/Origin/Origin.exe"
|
|
uplay_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/Ubisoft/Ubisoft Game Launcher/upc.exe"
|
|
uplay_path2="$HOME/.local/share/Steam/steamapps/compatdata/UplayLauncher/pfx/drive_c/Program Files (x86)/Ubisoft/Ubisoft Game Launcher/upc.exe"
|
|
battlenet_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe"
|
|
battlenet_path2="$HOME/.local/share/Steam/steamapps/compatdata/Battle.netLauncher/pfx/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe"
|
|
eaapp_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files/Electronic Arts/EA Desktop/EA Desktop/EADesktop.exe"
|
|
eaapp_path2="$HOME/.local/share/Steam/steamapps/compatdata/TheEAappLauncher/pfx/drive_c/Program Files/Electronic Arts/EA Desktop/EA Desktop/EADesktop.exe"
|
|
amazongames_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/users/steamuser/AppData/Local/Amazon Games/App/Amazon Games.exe"
|
|
amazongames_path2="$HOME/.local/share/Steam/steamapps/compatdata/AmazonGamesLauncher/pfx/drive_c/users/steamuser/AppData/Local/Amazon Games/App/Amazon Games.exe"
|
|
itchio_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/users/steamuser/AppData/Local/itch/app-25.6.2/itch.exe"
|
|
itchio_path2="$HOME/.local/share/Steam/steamapps/compatdata/itchioLauncher/pfx/drive_c/users/steamuser/AppData/Local/itch/app-25.6.2/itch.exe"
|
|
legacygames_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files/Legacy Games/Legacy Games Launcher/Legacy Games Launcher.exe"
|
|
legacygames_path2="$HOME/.local/share/Steam/steamapps/compatdata/LegacyGamesLauncher/pfx/drive_c/Program Files/Legacy Games/Legacy Games Launcher/Legacy Games Launcher.exe"
|
|
humblegames_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files/Humble App/Humble App.exe"
|
|
humblegames_path2="$HOME/.local/share/Steam/steamapps/compatdata/HumbleGamesLauncher/pfx/drive_c/Program Files/Humble App/Humble App.exe"
|
|
indiegala_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files/IGClient/IGClient.exe"
|
|
indiegala_path2="$HOME/.local/share/Steam/steamapps/compatdata/IndieGalaLauncher/pfx/drive_c/Program Files/IGClient/IGClient.exe"
|
|
rockstar_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files/Rockstar Games/Launcher/Launcher.exe"
|
|
rockstar_path2="$HOME/.local/share/Steam/steamapps/compatdata/RockstarGamesLauncher/pfx/drive_c/Program Files/Rockstar Games/Launcher/Launcher.exe"
|
|
glyph_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/Glyph/GlyphClient.exe"
|
|
glyph_path2="$HOME/.local/share/Steam/steamapps/compatdata/GlyphLauncher/pfx/drive_c/Program Files (x86)/Glyph/GlyphClient.exe"
|
|
minecraft_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/Minecraft Launcher/MinecraftLauncher.exe"
|
|
minecraft_path2="$HOME/.local/share/Steam/steamapps/compatdata/MinecraftLauncher/pfx/drive_c/Program Files (x86)/Minecraft Launcher/MinecraftLauncher.exe"
|
|
psplus_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/PlayStationPlus/pspluslauncher.exe"
|
|
psplus_path2="$HOME/.local/share/Steam/steamapps/compatdata/PlaystationPlusLauncher/pfx/drive_c/Program Files (x86)/PlayStationPlus/pspluslauncher.exe"
|
|
dmm_path1="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files/DMMGamePlayer/DMMGamePlayer.exe"
|
|
dmm_path2="$HOME/.local/share/Steam/steamapps/compatdata/DMMGameLauncher/pfx/drive_c/Program Files/DMMGamePlayer/DMMGamePlayer.exe"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#Chrome File Path
|
|
#chrome_installpath="/app/bin/chrome"
|
|
chrome_path="/usr/bin/flatpak"
|
|
chrome_startdir="\"/usr/bin\""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function CheckInstallations {
|
|
# Check if Epic Games Launcher is installed
|
|
if [[ -f "$epic_games_launcher_path1" ]]; then
|
|
# Epic Games Launcher is installed in path 1
|
|
epic_games_value="FALSE"
|
|
epic_games_text="Epic Games ===> $epic_games_launcher_path1"
|
|
elif [[ -f "$epic_games_launcher_path2" ]]; then
|
|
# Epic Games Launcher is installed in path 2
|
|
epic_games_value="FALSE"
|
|
epic_games_text="Epic Games ===> $epic_games_launcher_path2"
|
|
else
|
|
# Epic Games Launcher is not installed
|
|
epic_games_value="FALSE"
|
|
epic_games_text="Epic Games"
|
|
fi
|
|
|
|
# Check if GOG Galaxy is installed
|
|
if [[ -f "$gog_galaxy_path1" ]]; then
|
|
# GOG Galaxy is installed in path 1
|
|
gog_galaxy_value="FALSE"
|
|
gog_galaxy_text="GOG Galaxy ===> $gog_galaxy_path1"
|
|
elif [[ -f "$gog_galaxy_path2" ]]; then
|
|
# GOG Galaxy is installed in path 2
|
|
gog_galaxy_value="FALSE"
|
|
gog_galaxy_text="GOG Galaxy ===> $gog_galaxy_path2"
|
|
else
|
|
# GOG Galaxy is not installed
|
|
gog_galaxy_value="FALSE"
|
|
gog_galaxy_text="GOG Galaxy"
|
|
fi
|
|
|
|
# Check if Origin is installed
|
|
if [[ -f "$origin_path1" ]]; then
|
|
# Origin is installed in path 1
|
|
origin_value="FALSE"
|
|
origin_text="Origin ===> $origin_path1"
|
|
elif [[ -f "$origin_path2" ]]; then
|
|
# Origin is installed in path 2
|
|
origin_value="FALSE"
|
|
origin_text="Origin ===> $origin_path2"
|
|
else
|
|
# Origin is not installed
|
|
origin_value="FALSE"
|
|
origin_text="Origin - Broken, Use at own risk"
|
|
fi
|
|
|
|
# Check if Uplay is installed
|
|
if [[ -f "$uplay_path1" ]]; then
|
|
# Uplay is installed in path 1
|
|
uplay_value="FALSE"
|
|
uplay_text="Uplay ===> $uplay_path1"
|
|
elif [[ -f "$uplay_path2" ]]; then
|
|
# Uplay is installed in path 2
|
|
uplay_value="FALSE"
|
|
uplay_text="Uplay ===> $uplay_path2"
|
|
else
|
|
# Uplay is not installed
|
|
uplay_value="FALSE"
|
|
uplay_text="Uplay"
|
|
fi
|
|
|
|
# Check if Battle.net is installed
|
|
if [[ -f "$battlenet_path1" ]]; then
|
|
# Battle.net is installed in path 1
|
|
battlenet_value="FALSE"
|
|
battlenet_text="Battle.net ===> $battlenet_path1"
|
|
elif [[ -f "$battlenet_path2" ]]; then
|
|
# Battle.net is installed in path 2
|
|
battlenet_value="FALSE"
|
|
battlenet_text="Battle.net ===> $battlenet_path2"
|
|
else
|
|
# Battle.net is not installed
|
|
battlenet_value="FALSE"
|
|
battlenet_text="Battle.net"
|
|
fi
|
|
|
|
# Check if EA App is installed
|
|
if [[ -f "$eaapp_path1" ]]; then
|
|
# EA App is installed in path 1
|
|
eaapp_value="FALSE"
|
|
eaapp_text="EA App ===> $eaapp_path1"
|
|
elif [[ -f "$eaapp_path2" ]]; then
|
|
# EA App is installed in path 2
|
|
eaapp_value="FALSE"
|
|
eaapp_text="EA App ===> $eaapp_path2"
|
|
else
|
|
# EA App is not installed
|
|
eaapp_value="FALSE"
|
|
eaapp_text="EA App"
|
|
fi
|
|
|
|
# Check if Amazon Games is installed
|
|
if [[ -f "$amazongames_path1" ]]; then
|
|
# Amazon Games is installed in path 1
|
|
amazongames_value="FALSE"
|
|
amazongames_text="Amazon Games ===> $amazongames_path1"
|
|
elif [[ -f "$amazongames_path2" ]]; then
|
|
# Amazon Games is installed in path 2
|
|
amazongames_value="FALSE"
|
|
amazongames_text="Amazon Games ===> $amazongames_path2"
|
|
else
|
|
# Amazon Games is not installed
|
|
amazongames_value="FALSE"
|
|
amazongames_text="Amazon Games"
|
|
fi
|
|
|
|
# Check if itch.io is installed
|
|
if [[ -f "$itchio_path1" ]]; then
|
|
# itch.io is installed in path 1
|
|
itchio_value="FALSE"
|
|
itchio_text="itch.io ===> $itchio_path1"
|
|
elif [[ -f "$itchio_path2" ]]; then
|
|
# itch.io is installed in path 2
|
|
itchio_value="FALSE"
|
|
itchio_text="itch.io ===> $itchio_path2"
|
|
else
|
|
# itch.io is not installed
|
|
itchio_value="FALSE"
|
|
itchio_text="itch.io"
|
|
fi
|
|
|
|
# Check if Legacy Games Launcher is installed
|
|
if [[ -f "$legacygames_path1" ]]; then
|
|
# Legacy Games is installed in path 1
|
|
legacygames_value="FALSE"
|
|
legacygames_text="Legacy Games ===> $legacygames_path1"
|
|
elif [[ -f "$legacygames_path2" ]]; then
|
|
# Legacy Games is installed in path 2
|
|
legacygames_value="FALSE"
|
|
legacygames_text="Legacy Games ===> $legacygames_path2"
|
|
else
|
|
# Legacy Games is not installed
|
|
legacygames_value="FALSE"
|
|
legacygames_text="Legacy Games - Broken, Use at own risk"
|
|
fi
|
|
|
|
# Check if Humble Games Launcher is installed
|
|
if [[ -f "$humblegames_path1" ]]; then
|
|
# Humble Games is installed in path 1 on local drive
|
|
humblegames_value="FALSE"
|
|
humblegames_text="Humble Games Collection ===> $humblegames_path1"
|
|
elif [[ -f "$humblegames_path2" ]]; then
|
|
# Humble Games is installed in path 2 on local drive
|
|
humblegames_value="FALSE"
|
|
humblegames_text="Humble Games Collection ===> $humblegames_path2"
|
|
else
|
|
# Humble Games is not installed
|
|
humblegames_value="FALSE"
|
|
humblegames_text="Humble Games Collection - Use Desktop Mode to sign in, then launch Game Mode"
|
|
fi
|
|
|
|
# Check if indiegala is installed
|
|
if [[ -f "$indiegala_path1" ]]; then
|
|
# indiegala is installed in path 1 on local drive
|
|
indiegala_value="FALSE"
|
|
indiegala_text="IndieGala ===> $indiegala_path1"
|
|
elif [[ -f "$indiegala_path2" ]]; then
|
|
# indiegala is installed in path 2 on local drive
|
|
indiegala_value="FALSE"
|
|
indiegala_text="IndieGala ===> $indiegala_path2"
|
|
else
|
|
# indiegala is not installed
|
|
indiegala_value="FALSE"
|
|
indiegala_text="IndieGala"
|
|
fi
|
|
|
|
# Check if Rockstar is installed
|
|
if [[ -f "$rockstar_path1" ]]; then
|
|
# Rockstar is installed in path 1 on local drive
|
|
rockstar_value="FALSE"
|
|
rockstar_text="Rockstar Games Launcher ===> $rockstar_path1"
|
|
elif [[ -f "$rockstar_path2" ]]; then
|
|
# Rockstar is installed in path 2 on local drive
|
|
rockstar_value="FALSE"
|
|
rockstar_text="Rockstar Games Launcher ===> $rockstar_path2"
|
|
else
|
|
# Rockstar is not installed
|
|
rockstar_value="FALSE"
|
|
rockstar_text="Rockstar Games Launcher"
|
|
fi
|
|
|
|
# Check if Glyph is installed
|
|
if [[ -f "$glyph_path1" ]]; then
|
|
# Glyph is installed in path 1 on local drive
|
|
glyph_value="FALSE"
|
|
glyph_text="Glyph Launcher ===> $glyph_path1"
|
|
elif [[ -f "$glyph_path2" ]]; then
|
|
# Glyph is installed in path 2 on local drive
|
|
glyph_value="FALSE"
|
|
glyph_text="Glyph Launcher ===> $glyph_path2"
|
|
else
|
|
# Glyph is not installed
|
|
glyph_value="FALSE"
|
|
glyph_text="Glyph Launcher"
|
|
fi
|
|
|
|
# Check if Minecraft is installed
|
|
if [[ -f "$minecraft_path1" ]]; then
|
|
# Minecraft is installed in path 1 on local drive
|
|
minecraft_value="FALSE"
|
|
minecraft_text="Minecraft ===> $minecraft_path1"
|
|
elif [[ -f "$minecraft_path2" ]]; then
|
|
# Minecraft is installed in path 2 on local drive
|
|
minecraft_value="FALSE"
|
|
minecraft_text="Minecraft ===> $minecraft_path2"
|
|
else
|
|
# Minecraft is not installed
|
|
minecraft_value="FALSE"
|
|
minecraft_text="Minecraft - Close black screen to continue installation"
|
|
fi
|
|
|
|
# Check if PlaystationPlus is installed
|
|
if [[ -f "$psplus_path1" ]]; then
|
|
# PlaystationPlus is installed in path 1 on local drive
|
|
psplus_value="FALSE"
|
|
psplus_text="Playstation Plus ===> $psplus_path1"
|
|
elif [[ -f "$psplus_path2" ]]; then
|
|
# PlaystationPlus is installed in path 2 on local drive
|
|
psplus_value="FALSE"
|
|
psplus_text="Playstation Plus ===> $psplus_path2"
|
|
else
|
|
# PlaystationPlus is not installed
|
|
psplus_value="FALSE"
|
|
psplus_text="Playstation Plus"
|
|
fi
|
|
|
|
# Check if DMM Player is installed
|
|
if [[ -f "$dmm_path1" ]]; then
|
|
# DMM Player is installed in path 1 on local drive
|
|
dmm_value="FALSE"
|
|
dmm_text="DMM Games ===> $dmm_path1"
|
|
elif [[ -f "$dmm_path2" ]]; then
|
|
# DMM Player is installed in path 2 on local drive
|
|
dmm_value="FALSE"
|
|
dmm_text="DMM Games ===> $dmm_path2"
|
|
else
|
|
# DMM Player is not installed
|
|
dmm_value="FALSE"
|
|
dmm_text="DMM Games"
|
|
fi }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function CheckInstallationDirectory {
|
|
# Check if NonSteamLaunchers is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers" ]]; then
|
|
# NonSteamLaunchers is installed
|
|
nonsteamlauncher_move_value="TRUE"
|
|
else
|
|
# NonSteamLaunchers is not installed
|
|
nonsteamlauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if EpicGamesLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/EpicGamesLauncher" ]]; then
|
|
# EpicGamesLauncher is installed
|
|
epicgameslauncher_move_value="TRUE"
|
|
else
|
|
# EpicGamesLauncher is not installed
|
|
epicgameslauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if GogGalaxyLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/GogGalaxyLauncher" ]]; then
|
|
# GogGalaxyLauncher is installed
|
|
goggalaxylauncher_move_value="TRUE"
|
|
else
|
|
# GogGalaxyLauncher is not installed
|
|
goggalaxylauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if OriginLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/OriginLauncher" ]]; then
|
|
# OriginLauncher is installed
|
|
originlauncher_move_value="TRUE"
|
|
else
|
|
# OriginLauncher is not installed
|
|
originlauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if UplayLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/UplayLauncher" ]]; then
|
|
# UplayLauncher is installed
|
|
uplaylauncher_move_value="TRUE"
|
|
else
|
|
# UplayLauncher is not installed
|
|
uplaylauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if Battle.netLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/Battle.netLauncher" ]]; then
|
|
# Battle.netLauncher is installed
|
|
battlenetlauncher_move_value="TRUE"
|
|
else
|
|
# Battle.netLauncher is not installed
|
|
battlenetlauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if TheEAappLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/TheEAappLauncher" ]]; then
|
|
# TheEAappLauncher is installed
|
|
eaapplauncher_move_value="TRUE"
|
|
else
|
|
# TheEAappLauncher is not installed
|
|
eaapplauncher_move_value="FALSE"
|
|
fi
|
|
|
|
|
|
# Check if AmazonGamesLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/AmazonGamesLauncher" ]]; then
|
|
# AmazonGamesLauncher is installed
|
|
amazongameslauncher_move_value="TRUE"
|
|
else
|
|
# AmazonGamesLauncher is not installed
|
|
amazongameslauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if itchioLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/itchioLauncher" ]]; then
|
|
# itchioLauncher is installed
|
|
itchiolauncher_move_value="TRUE"
|
|
else
|
|
# itchioLauncher is not installed
|
|
itchiolauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if LegacyGamesLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/LegacyGamesLauncher" ]]; then
|
|
# LegacyGamesLauncher is installed
|
|
legacygameslauncher_move_value="TRUE"
|
|
else
|
|
# LegacyGamesLauncher is not installed
|
|
legacygameslauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if HumbleGamesLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/HumbleGamesLauncher" ]]; then
|
|
# HumbleGamesLauncher is installed
|
|
humblegameslauncher_move_value="TRUE"
|
|
else
|
|
# HumbleGamesLauncher is not installed
|
|
humblegameslauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if indiegala is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/IndieGalaLauncher" ]]; then
|
|
# indiegalaLauncher is installed
|
|
indiegalalauncher_move_value="TRUE"
|
|
else
|
|
# indiegalaLauncher is not installed
|
|
indiegalalauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if rockstar is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/RockstarGamesLauncher" ]]; then
|
|
# rockstar games launcher is installed
|
|
rockstargameslauncher_move_value="TRUE"
|
|
else
|
|
# rockstar games launcher is not installed
|
|
rockstargameslauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if Glyph is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/GlyphLauncher" ]]; then
|
|
# Glyph is installed
|
|
glyphlauncher_move_value="TRUE"
|
|
else
|
|
# Glyph is not installed
|
|
glyphlauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if Minecraft is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/MinecraftLauncher" ]]; then
|
|
# Minecraft is installed
|
|
minecraftlauncher_move_value="TRUE"
|
|
else
|
|
# Minecraft is not installed
|
|
minecraftlauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if PlaystationPlus is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/PlaystationPlusLauncher" ]]; then
|
|
# PlaystationPlus is installed
|
|
pspluslauncher_move_value="TRUE"
|
|
else
|
|
# PlaystationPlus is not installed
|
|
pspluslauncher_move_value="FALSE"
|
|
fi
|
|
|
|
# Check if DMM Player is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/DMMGameLauncher" ]]; then
|
|
# DMM Player is installed
|
|
dmmlauncher_move_value="TRUE"
|
|
else
|
|
# DMM Player is not installed
|
|
dmmlauncher_move_value="FALSE"
|
|
fi }
|
|
|
|
|
|
|
|
# Check which app IDs are installed
|
|
CheckInstallations
|
|
CheckInstallationDirectory
|
|
|
|
|
|
# Get the command line arguments
|
|
args=("$@")
|
|
|
|
# Initialize an array to store the custom websites
|
|
custom_websites=()
|
|
|
|
# Check if any command line arguments were provided
|
|
if [ ${#args[@]} -eq 0 ]; then
|
|
# No command line arguments were provided, so display the main zenity window
|
|
selected_launchers=$(zenity --list --text="Which launchers do you want to download and install?" --checklist --column="$version" --column="Default = one App ID Installation, One Prefix, NonSteamLaunchers" FALSE "SEPARATE APP IDS - CHECK THIS TO SEPARATE YOUR PREFIX'S" $epic_games_value "$epic_games_text" $gog_galaxy_value "$gog_galaxy_text" $uplay_value "$uplay_text" $origin_value "$origin_text" $battlenet_value "$battlenet_text" $amazongames_value "$amazongames_text" $eaapp_value "$eaapp_text" $legacygames_value "$legacygames_text" $itchio_value "$itchio_text" $humblegames_value "$humblegames_text" $indiegala_value "$indiegala_text" $rockstar_value "$rockstar_text" $glyph_value "$glyph_text" $minecraft_value "$minecraft_text" $psplus_value "$psplus_text" $dmm_value "$dmm_text" FALSE "Xbox Game Pass" FALSE "GeForce Now" FALSE "Amazon Luna" FALSE "Netflix" FALSE "Hulu" FALSE "Disney+" FALSE "Amazon Prime Video" FALSE "Youtube" --width=535 --height=740 --extra-button="Uninstall" --extra-button="Find Games" --extra-button="Start Fresh" --extra-button="Move to SD Card")
|
|
|
|
# Check if the user clicked the 'Cancel' button or selected one of the extra buttons
|
|
if [ $? -eq 1 ] || [[ $selected_launchers == "Start Fresh" ]] || [[ $selected_launchers == "Move to SD Card" ]] || [[ $selected_launchers == "Uninstall" ]] || [[ $selected_launchers == "Find Games" ]]; then
|
|
# The user clicked the 'Cancel' button or selected one of the extra buttons, so skip prompting for custom websites
|
|
custom_websites=()
|
|
else
|
|
# The user did not click the 'Cancel' button or select one of the extra buttons, so prompt for custom websites
|
|
custom_websites_str=$(zenity --entry --title="Shortcut Creator" --text="Enter custom websites that you want shortcuts for, separated by commas. Leave blank and press ok if you dont want any. E.g. myspace.com, limewire.com, my.screenname.aol.com")
|
|
|
|
# Check if the user clicked the 'Cancel' button
|
|
if [ $? -eq 1 ]; then
|
|
# The user clicked the 'Cancel' button, so exit the script
|
|
echo "The cancel button was clicked"
|
|
exit 1
|
|
fi
|
|
|
|
# Split the custom_websites_str variable into an array using ',' as the delimiter
|
|
IFS=',' read -ra custom_websites <<< "$custom_websites_str"
|
|
|
|
fi
|
|
else
|
|
# Command line arguments were provided, so set the value of the options variable using the command line arguments
|
|
selected_launchers="${args[0]}"
|
|
custom_websites+=("${args[@]:1}")
|
|
fi
|
|
|
|
# Print the selected launchers and custom websites
|
|
echo "Selected launchers: $selected_launchers"
|
|
echo "Custom websites: ${custom_websites[@]}"
|
|
|
|
# Set the value of the options variable
|
|
options="$selected_launchers"
|
|
|
|
# Check if the cancel button was clicked
|
|
if [ $? -eq 1 ] && [[ $options != "Start Fresh" ]] && [[ $options != "Move to SD Card" ]] && [[ $options != "Uninstall" ]] && [[ $options != "Find Games" ]]; then
|
|
# The cancel button was clicked
|
|
echo "The cancel button was clicked"
|
|
exit 1
|
|
fi
|
|
|
|
# Check if no options were selected and no custom website was provided
|
|
if [ -z "$options" ] && [ -z "$custom_websites" ]; then
|
|
# No options were selected and no custom website was provided
|
|
zenity --error --text="No options were selected and no custom website was provided. The script will now exit." --width=200 --height=150
|
|
exit 1
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# Check if the user selected to use separate app IDs
|
|
if [[ $options == *"SEPARATE APP IDS - CHECK THIS TO SEPARATE YOUR PREFIX'S"* ]]; then
|
|
# User selected to use separate app IDs
|
|
use_separate_appids=true
|
|
else
|
|
# User did not select to use separate app IDs
|
|
use_separate_appids=false
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Check if the user selected both Origin and EA App
|
|
if [[ $options == *"Origin"* ]] && [[ $options == *"EA App"* ]] && [ "$use_separate_appids" = false ]; then
|
|
# User selected both Origin and EA App without selecting separate app IDs
|
|
zenity --error --text="You cannot select both Origin and EA App at the same time unless you select separate app IDs." --width=200 --height=150
|
|
exit 1
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Check if Origin is already installed
|
|
if [[ -f "$origin_path1" ]] || [[ -f "$origin_path2" ]]; then
|
|
# Origin is installed
|
|
if [[ $options == *"EA App"* ]] && [ "$use_separate_appids" = false ]; then
|
|
# User selected EA App without selecting separate app IDs
|
|
zenity --error --text="You cannot install EA App because Origin is already installed. Please select separate app IDs if you want to install both." --width=200 --height=150
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Check if EA App is already installed
|
|
if [[ -f "$eaapp_path1" ]] || [[ -f "$eaapp_path2" ]]; then
|
|
# EA App is installed
|
|
if [[ $options == *"Origin"* ]] && [ "$use_separate_appids" = false ]; then
|
|
# User selected Origin without selecting separate app IDs
|
|
zenity --error --text="You cannot install Origin because EA App is already installed. Please select separate app IDs if you want to install both." --width=200 --height=150
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Check if the Start Fresh button was clicked
|
|
if [[ $options == "Start Fresh" ]]; then
|
|
# The Start Fresh button was clicked
|
|
if zenity --question --text="aaahhh it always feels good to start fresh :) but...This will delete the App ID folders you installed inside the steamapps/compatdata/ directory. This means anything youve installed (launchers or games) WITHIN THIS SCRIPT will be deleted if you have them there. Everything will be wiped. Are you sure?" --width=300 --height=260; then
|
|
# The user clicked the "Yes" button
|
|
# Define the path to the compatdata directory
|
|
compatdata_dir="$HOME/.local/share/Steam/steamapps/compatdata"
|
|
|
|
# Define an array of original folder names
|
|
folder_names=("EpicGamesLauncher" "GogGalaxyLauncher" "UplayLauncher" "OriginLauncher" "Battle.netLauncher" "TheEAappLauncher" "AmazonGamesLauncher" "itchioLauncher" "LegacyGamesLauncher" "HumbleGamesLauncher" "IndieGalaLauncher" "RockstarGamesLauncher" "GlyphLauncher" "MinecraftLauncher" "PlaystationPlusLauncher" "DMMGameLauncher")
|
|
|
|
# Iterate over each folder name in the folder_names array
|
|
for folder in "${folder_names[@]}"; do
|
|
# Check if the folder exists
|
|
if [ -e "$compatdata_dir/$folder" ]; then
|
|
# Check if the folder is a symbolic link
|
|
if [ -L "$compatdata_dir/$folder" ]; then
|
|
# Get the path of the target of the symbolic link
|
|
target_path=$(readlink -f "$compatdata_dir/$folder")
|
|
|
|
# Delete the target of the symbolic link
|
|
rm -rf "$target_path"
|
|
|
|
# Delete the symbolic link
|
|
unlink "$compatdata_dir/$folder"
|
|
else
|
|
# Delete the folder
|
|
rm -rf "$compatdata_dir/$folder"
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# Check if the NonSteamLaunchers folder exists
|
|
if [ -e "$compatdata_dir/NonSteamLaunchers" ]; then
|
|
# Check if the NonSteamLaunchers folder is a symbolic link
|
|
if [ -L "$compatdata_dir/NonSteamLaunchers" ]; then
|
|
# Get the path of the target of the symbolic link
|
|
target_path=$(readlink -f "$compatdata_dir/NonSteamLaunchers")
|
|
|
|
# Delete the target of the symbolic link
|
|
rm -rf "$target_path"
|
|
|
|
# Delete the symbolic link
|
|
unlink "$compatdata_dir/NonSteamLaunchers"
|
|
else
|
|
# Delete the NonSteamLaunchers folder
|
|
rm -rf "$compatdata_dir/NonSteamLaunchers"
|
|
fi
|
|
fi
|
|
|
|
rm -rf "/run/media/mmcblk0p1/NonSteamLaunchers/"
|
|
rm -rf "/run/media/mmcblk0p1/EpicGamesLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/GogGalaxyLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/OriginLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/UplayLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/Battle.netLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/TheEAappLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/AmazonGamesLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/LegacyGamesLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/itchioLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/HumbleGamesLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/IndieGalaLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/RockstarGamesLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/GlyphLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/MinecraftLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/PlaystationPlusLauncher/"
|
|
rm -rf "/run/media/mmcblk0p1/DMMGameLauncher/"
|
|
rm -rf ~/Downloads/NonSteamLaunchersInstallation
|
|
|
|
# Exit the script with exit code 0 to indicate success
|
|
exit 0
|
|
else
|
|
# The user clicked the "No" button, so exit with exit code 0 to indicate success.
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
|
|
if [[ $options == "Uninstall" ]]; then
|
|
# Check if the cancel button was clicked
|
|
# The OK button was not clicked
|
|
# Define the launcher options
|
|
options=$(zenity --list --checklist \
|
|
--title="Uninstall Launchers" \
|
|
--text="Select the launchers you want to Uninstall..." \
|
|
--column="Select" --column="This will delete the launcher and all of its games and files." \
|
|
--width=508 --height=507 \
|
|
FALSE "Epic Games" \
|
|
FALSE "Gog Galaxy" \
|
|
FALSE "Uplay" \
|
|
FALSE "Origin" \
|
|
FALSE "Battle.net" \
|
|
FALSE "EA App" \
|
|
FALSE "Amazon Games" \
|
|
FALSE "Legacy Games" \
|
|
FALSE "itch.io" \
|
|
FALSE "Humble Bundle" \
|
|
FALSE "IndieGala" \
|
|
FALSE "Rockstar Games Launcher" \
|
|
FALSE "Glyph Launcher" \
|
|
FALSE "Minecraft"\
|
|
FALSE "Playstation Plus"\
|
|
FALSE "DMM Games")
|
|
|
|
|
|
if [[ $options != "" ]]; then
|
|
# The Uninstall button was clicked
|
|
# Add code here to handle the uninstallation of the selected launcher(s)
|
|
if [[ $options == *"Epic Games"* ]]; then
|
|
# User selected to uninstall Epic Games Launcher
|
|
# Check if Epic Games Launcher was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$epic_games_launcher_path1" ]]; then
|
|
# Epic Games Launcher was installed using the NonSteamLaunchers prefix
|
|
# Add code here to run the Epic Games Launcher uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/Epic Games"
|
|
elif [[ -f "$epic_games_launcher_path2" ]]; then
|
|
# Epic Games Launcher was installed using a separate app ID
|
|
# Add code here to delete the EpicGamesLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/EpicGamesLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"Gog Galaxy"* ]]; then
|
|
# User selected to uninstall GOG Galaxy
|
|
# Check if GOG Galaxy was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$gog_galaxy_path1" ]]; then
|
|
# GOG Galaxy was installed using the NonSteamLaunchers prefix
|
|
# Add code here to run the GOG Galaxy uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/GOG Galaxy"
|
|
elif [[ -f "$gog_galaxy_path2" ]]; then
|
|
# GOG Galaxy was installed using a separate app ID
|
|
# Add code here to delete the GogGalaxyLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/GogGalaxyLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"Uplay"* ]]; then
|
|
# User selected to uninstall Uplay
|
|
# Check if Uplay was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$uplay_path1" ]]; then
|
|
# Uplay was installed using the NonSteamLaunchers prefix
|
|
# Add code here to run the Uplay uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/Ubisoft"
|
|
elif [[ -f "$uplay_path2" ]]; then
|
|
# Uplay was installed using a separate app ID
|
|
# Add code here to delete the UplayLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/UplayLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"Origin"* ]]; then
|
|
# User selected to uninstall Origin
|
|
# Check if Origin was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$origin_path1" ]]; then
|
|
# Origin was installed using the NonSteamLaunchers prefix
|
|
# Add code here to run the Origin uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/Origin"
|
|
elif [[ -f "$origin_path2" ]]; then
|
|
# Origin was installed using a separate app ID
|
|
# Add code here to delete the OriginLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/OriginLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"Battle.net"* ]]; then
|
|
# User selected to uninstall Battle.net
|
|
# Check if Battle.net was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$battlenet_path1" ]]; then
|
|
# Battle.net was installed using the NonSteamLaunchers prefix
|
|
# Add code here to run the Battle.net uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/Battle.net"
|
|
elif [[ -f "$battlenet_path2" ]]; then
|
|
# Battle.net was installed using a separate app ID
|
|
# Add code here to delete the Battle.netLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/Battle.netLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"EA App"* ]]; then
|
|
# User selected to uninstall EA App
|
|
# Check if EA App was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$eaapp_path1" ]]; then
|
|
# EA App was installed using the NonSteamLaunchers prefix
|
|
# Add code here to run the EA App uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files/Electronic Arts"
|
|
elif [[ -f "$eaapp_path2" ]]; then
|
|
# EA App was installed using a separate app ID
|
|
# Add code here to delete the EALauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/TheEAappLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"Amazon Games"* ]]; then
|
|
# User selected to uninstall Amazon Games
|
|
# Check if Amazon Games was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$amazongames_path1" ]]; then
|
|
# Amazon Games was installed using the NonSteamLaunchers prefix
|
|
# Add code here to run the Amazon Games uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/users/steamuser/AppData/Local/Amazon Games"
|
|
elif [[ -f "$amazongames_path2" ]]; then
|
|
# Amazon Games was installed using a separate app ID
|
|
# Add code here to delete the AmazonGamesLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/AmazonGamesLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"Legacy Games"* ]]; then
|
|
# User selected to uninstall Legacy Games
|
|
# Check if Legacy Games was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$legacygames_path1" ]]; then
|
|
# Legacy Games was installed using the NonSteamLaunchers prefix
|
|
# Add code here to run the Legacy Games uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files/Legacy Games"
|
|
elif [[ -f "$legacygames_path2" ]]; then
|
|
# Legacy Games was installed using a separate app ID
|
|
# Add code here to delete the LegacyGamesLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/LegacyGamesLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"itch.io"* ]]; then
|
|
# User selected to uninstall Itch.io
|
|
# Check if Itch.io was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$itchio_path1" ]]; then
|
|
# Itch.io was installed using the NonSteamLaunchers prefix
|
|
# Add code here to run the Itch.io uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/users/steamuser/AppData/Local/itch"
|
|
elif [[ -f "$itchio_path2" ]]; then
|
|
# Itch.io was installed using a separate app ID
|
|
# Add code here to delete the Itch.ioLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/itchioLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"Humble Bundle"* ]]; then
|
|
# User selected to uninstall Humble Bundle
|
|
# Check if Humble Bundle was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$humblegames_path1" ]]; then
|
|
# Humble Bundle was installed using the NonSteamLaunchers prefix
|
|
# Add code here to run the Humble Bundle uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files/Humble App"
|
|
elif [[ -f "$humblegames_path2" ]]; then
|
|
# Humble Bundle was installed using a separate app ID
|
|
# Add code here to delete the HumbleBundleLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/HumbleGamesLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"IndieGala"* ]]; then
|
|
# User selected to uninstall IndieGala
|
|
# Check if IndieGala was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$indiegala_path1" ]]; then
|
|
# IndieGala was installed using the NonSteamLaunchers prefix
|
|
# Add code here to run the IndieGala uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files/IGClient"
|
|
elif [[ -f "$indiegala_path2" ]]; then
|
|
# IndieGala was installed using a separate app ID
|
|
# Add code here to delete the IndieGalaLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/IndieGalaLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"Rockstar Games Launcher"* ]]; then
|
|
# User selected to uninstall Rockstar Games
|
|
# Check if Rockstar Games was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$rockstar_path1" ]]; then
|
|
# Rockstar Games was installed using the NonSteamLaunchers prefix
|
|
# Add code here to run the Rockstar Games uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files/Rockstar Games"
|
|
elif [[ -f "$rockstar_path2" ]]; then
|
|
# Rockstar Games was installed using a separate app ID
|
|
# Add code here to delete the RockstarGamesLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/RockstarGamesLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"Glyph Launcher"* ]]; then
|
|
# User selected to uninstall Glyph
|
|
# Check if Glyph was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$glyph_path1" ]]; then
|
|
# Glyph was installed using NonSteamLaunchers prefix
|
|
# Add code here to run the Glyph uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/Glyph"
|
|
elif [[ -f "$glyph_path2" ]]; then
|
|
# Glyph was installed using a separate app ID
|
|
# Add code here to delete the GlyphLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/GlyphLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"Minecraft"* ]]; then
|
|
# User selected to uninstall Minecraft
|
|
# Check if Minecraft was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$minecraft_path1" ]]; then
|
|
# Minecraft was installed using NonSteamLaunchers prefix
|
|
# Add code here to run the Minecraft uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/Minecraft Launcher"
|
|
elif [[ -f "$minecraft_path2" ]]; then
|
|
# Minecraft was installed using a separate app ID
|
|
# Add code here to delete the MinecraftLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/MinecraftLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"Playstation Plus"* ]]; then
|
|
# User selected to uninstall Playstation
|
|
# Check if Playstation was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$psplus_path1" ]]; then
|
|
# Playstation was installed using NonSteamLaunchers prefix
|
|
# Add code here to run the Playstation uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/PlayStationPlus"
|
|
elif [[ -f "$psplus_path2" ]]; then
|
|
# Playstation was installed using a separate app ID
|
|
# Add code here to delete the PlaystationPlusLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/PlaystationPlusLauncher"
|
|
fi
|
|
fi
|
|
|
|
if [[ $options == *"DMM Games"* ]]; then
|
|
# User selected to uninstall DMMGameLauncher
|
|
# Check if DMMGameLauncher was installed using the NonSteamLaunchers prefix
|
|
if [[ -f "$dmm_path1" ]]; then
|
|
# DMMGameLauncher was installed using NonSteamLaunchers prefix
|
|
# Add code here to run the DMMGameLauncher uninstaller
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files (x86)/DMMGamePlayer"
|
|
elif [[ -f "$dmm_path2" ]]; then
|
|
# DMMGameLauncher was installed using a separate app ID
|
|
# Add code here to delete the DMMGameLauncher app ID folder
|
|
rm -rf "$HOME/.local/share/Steam/steamapps/compatdata/DMMGameLauncher"
|
|
fi
|
|
fi
|
|
# Display a message to the user indicating that the operation was successful
|
|
zenity --info --text="The selected launchers have now been deleted." --width=200 --height=150
|
|
exit
|
|
|
|
fi
|
|
exit
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [[ $options == "Move to SD Card" ]]; then
|
|
# The Move to SD Card button was clicked
|
|
# Check which app IDs are installed
|
|
|
|
# Add similar checks for other app IDs here
|
|
CheckInstallationDirectory
|
|
|
|
|
|
move_options=$(zenity --list --text="Which app IDs do you want to move to the SD card?" --checklist --column="Select" --column="App ID" $nonsteamlauncher_move_value "NonSteamLaunchers" $epicgameslauncher_move_value "EpicGamesLauncher" $goggalaxylauncher_move_value "GogGalaxyLauncher" $originlauncher_move_value "OriginLauncher" $uplaylauncher_move_value "UplayLauncher" $battlenetlauncher_move_value "Battle.netLauncher" $eaapplauncher_move_value "TheEAappLauncher" $amazongameslauncher_move_value "AmazonGamesLauncher" $itchiolauncher_move_value "itchioLauncher" $legacygameslauncher_move_value "LegacyGamesLauncher" $humblegameslauncher_move_value "HumbleGamesLauncher" $indiegalalauncher_move_value "IndieGalaLauncher" $rockstargameslauncher_move_value "RockstarGamesLauncher" $glyphlauncher_move_value "GlyphLauncher" $minecraftlauncher_move_value "MinecraftLauncher" $dmmlauncher_move_value "DMMGameLauncher" --width=335 --height=524)
|
|
|
|
# Check if the cancel button was clicked
|
|
if [ $? -eq 0 ]; then
|
|
# The OK button was clicked
|
|
# Display a message to the user indicating that the operation was successful
|
|
zenity --info --text="The selected directories have been moved to the SD card and symbolic links have been created." --width=200 --height=150
|
|
fi
|
|
|
|
# Set the path to the new directory on the SD card
|
|
new_dir="/run/media/mmcblk0p1"
|
|
|
|
|
|
# Check if NonSteamLaunchers is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers" ]]; then
|
|
# NonSteamLaunchers is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers"
|
|
else
|
|
# NonSteamLaunchers is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move NonSteamLaunchers
|
|
if [[ $move_options == *"NonSteamLaunchers"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the NonSteamLaunchers directory to the SD card
|
|
mv "$original_dir" "$new_dir/NonSteamLaunchers"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/NonSteamLaunchers" "$original_dir"
|
|
fi
|
|
|
|
# Check if EpicGamesLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/EpicGamesLauncher" ]]; then
|
|
# EpicGamesLauncher is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/EpicGamesLauncher"
|
|
else
|
|
# EpicGamesLauncher is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move EpicGamesLauncher
|
|
if [[ $move_options == *"EpicGamesLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the EpicGamesLauncher directory to the SD card
|
|
mv "$original_dir" "$new_dir/EpicGamesLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/EpicGamesLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if GogGalaxyLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/GogGalaxyLauncher" ]]; then
|
|
# GogGalaxyLauncher is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/GogGalaxyLauncher"
|
|
else
|
|
# GogGalaxyLauncher is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move GogGalaxyLauncher
|
|
if [[ $move_options == *"GogGalaxyLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the GogGalaxyLauncher directory to the SD card
|
|
mv "$original_dir" "$new_dir/GogGalaxyLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/GogGalaxyLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if OriginLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/OriginLauncher" ]]; then
|
|
# OriginLauncher is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/OriginLauncher"
|
|
else
|
|
# OriginLauncher is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move OriginLauncher
|
|
if [[ $move_options == *"OriginLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the OriginLauncher directory to the SD card
|
|
mv "$original_dir" "$new_dir/OriginLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/OriginLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if UplayLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/UplayLauncher" ]]; then
|
|
# UplayLauncher is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/UplayLauncher"
|
|
else
|
|
# UplayLauncher is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move UplayLauncher
|
|
if [[ $move_options == *"UplayLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the UplayLauncher directory to the SD card
|
|
mv "$original_dir" "$new_dir/UplayLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/UplayLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if Battle.netLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/Battle.netLauncher" ]]; then
|
|
# Battle.netLauncher is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/Battle.netLauncher"
|
|
else
|
|
# Battle.netLauncher is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move Battle.netLauncher
|
|
if [[ $move_options == *"Battle.netLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the Battle.netLauncher directory to the SD card
|
|
mv "$original_dir" "$new_dir/Battle.netLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/Battle.netLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if TheEAappLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/TheEAappLauncher" ]]; then
|
|
# TheEAappLauncher is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/TheEAappLauncher"
|
|
else
|
|
# TheEAappLauncher is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move TheEAappLauncher
|
|
if [[ $move_options == *"TheEAappLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the TheEAappLauncher directory to the SD card
|
|
mv "$original_dir" "$new_dir/TheEAappLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/TheEAappLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if AmazonGamesLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/AmazonGamesLauncher" ]]; then
|
|
# AmazonGamesLauncher is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/AmazonGamesLauncher"
|
|
else
|
|
# AmazonGamesLauncher is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move AmazonGamesLauncher
|
|
if [[ $move_options == *"AmazonGamesLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the AmazonGamesLauncher directory to the SD card
|
|
mv "$original_dir" "$new_dir/AmazonGamesLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/AmazonGamesLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if itchioLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/itchioLauncher" ]]; then
|
|
# itchioLauncher is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/itchioLauncher"
|
|
else
|
|
# itchioLauncher is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move itchioLauncher
|
|
if [[ $move_options == *"itchioLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the itchioLauncher directory to the SD card
|
|
mv "$original_dir" "$new_dir/itchioLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/itchioLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if LegacyGamesLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/LegacyGamesLauncher" ]]; then
|
|
# LegacyGamesLauncher is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/LegacyGamesLauncher"
|
|
else
|
|
# LegacyGamesLauncher is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move LegacyGamesLauncher
|
|
if [[ $move_options == *"LegacyGamesLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the LegacyGamesLauncher directory to the SD card
|
|
mv "$original_dir" "$new_dir/LegacyGamesLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/LegacyGamesLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if HumbleGamesLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/HumbleGamesLauncher" ]]; then
|
|
# HumbleGamesLauncher is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/HumbleGamesLauncher"
|
|
else
|
|
# HumbleGamesLauncher is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move HumbleGamesLauncher
|
|
if [[ $move_options == *"HumbleGamesLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the HumbleGamesLauncher directory to the SD card
|
|
mv "$original_dir" "$new_dir/HumbleGamesLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/HumbleGamesLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if IndieGalaLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/IndieGalaLauncher" ]]; then
|
|
# IndieGalaLauncher is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/IndieGalaLauncher"
|
|
else
|
|
# Indie Gala Launcher is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move IndieGalaLauncher
|
|
if [[ $move_options == *"IndieGalaLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the Indie GalaLauncher directory to the SD card
|
|
mv "$original_dir" "$new_dir/IndieGalaLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/IndieGalaLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if RockstarGamesLauncher is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/RockstarGamesLauncher" ]]; then
|
|
# RockstarGamesLauncher is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/RockstarGamesLauncher"
|
|
else
|
|
# Rockstar Games Launcher is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move RockstarGamesLauncher
|
|
if [[ $move_options == *"RockstarGamesLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the Rockstar Games Launcher directory to the SD card
|
|
mv "$original_dir" "$new_dir/RockstarGamesLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/RockstarGamesLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if Glyph is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/GlyphLauncher" ]]; then
|
|
# Glyph is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/GlyphLauncher"
|
|
else
|
|
# Glyph is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move Glyph
|
|
if [[ $move_options == *"GlyphLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the Glyph directory to the SD card
|
|
mv "$original_dir" "$new_dir/GlyphLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/GlyphLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if Minecraft is installed
|
|
if [[ -d "$HOME/.local/share/Steam/steamapps/compatdata/MinecraftLauncher" ]]; then
|
|
# Minecraft is installed
|
|
original_dir="$HOME/.local/share/Steam/steamapps/compatdata/MinecraftLauncher"
|
|
else
|
|
# Minecraft is not installed
|
|
original_dir=""
|
|
fi
|
|
|
|
# Check if the user selected to move Minecraft
|
|
if [[ $move_options == *"MinecraftLauncher"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the Glyph directory to the SD card
|
|
mv "$original_dir" "$new_dir/MinecraftLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/MinecraftLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if the user selected to move Playstation
|
|
if [[ $move_options == *"Playstation Plus"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the Playstation directory to the SD card
|
|
mv "$original_dir" "$new_dir/PlaystationPlusLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/PlaystationPlusLauncher" "$original_dir"
|
|
fi
|
|
|
|
# Check if the user selected to move DMM Games
|
|
if [[ $move_options == *"DMM Games"* ]] && [[ -n $original_dir ]]; then
|
|
# Move the DMM Games directory to the SD card
|
|
mv "$original_dir" "$new_dir/DMMGameLauncher"
|
|
|
|
# Create a symbolic link to the new directory
|
|
ln -s "$new_dir/DMMGameLauncher" "$original_dir"
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Exit the script
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Check if the user clicked the "Find Games" button
|
|
if [[ $options == "Find Games" ]]; then
|
|
# The Find Games button was clicked
|
|
# Check if the NonSteamLaunchersInstallation directory exists
|
|
if [[ ! -d "$HOME/Downloads/NonSteamLaunchersInstallation" ]]; then
|
|
# The directory does not exist, so create it
|
|
mkdir -p "$HOME/Downloads/NonSteamLaunchersInstallation"
|
|
fi
|
|
|
|
# Download the latest BoilR from GitHub (Linux version)
|
|
cd "$HOME/Downloads/NonSteamLaunchersInstallation"
|
|
wget https://github.com/PhilipK/BoilR/releases/download/v.1.9.1/linux_BoilR
|
|
|
|
# Add execute permissions to the linux_BoilR file
|
|
chmod +x linux_BoilR
|
|
|
|
# Run BoilR from the current directory
|
|
./linux_BoilR
|
|
|
|
# Exit the script
|
|
exit
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(
|
|
|
|
|
|
|
|
echo "0"
|
|
echo "# Detecting, Updating and Installing GE-Proton"
|
|
|
|
# check to make sure compatabilitytools.d exists and makes it if it doesnt
|
|
if [ ! -d "$HOME/.steam/root/compatibilitytools.d" ]; then
|
|
mkdir -p "$HOME/.steam/root/compatibilitytools.d"
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Create NonSteamLaunchersInstallation subfolder in Downloads folder
|
|
mkdir -p ~/Downloads/NonSteamLaunchersInstallation
|
|
|
|
# Set the path to the Proton directory
|
|
proton_dir=$(find ~/.steam/root/compatibilitytools.d -maxdepth 1 -type d -name "GE-Proton*" | sort -V | tail -n1)
|
|
|
|
# Set the URLs to download GE-Proton from
|
|
ge_proton_url1=https://github.com/GloriousEggroll/proton-ge-custom/releases/latest/download/GE-Proton.tar.gz
|
|
ge_proton_url2=https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton8-9/GE-Proton8-9.tar.gz
|
|
|
|
|
|
|
|
|
|
|
|
# Check if GE-Proton is installed
|
|
if [ -z "$proton_dir" ]; then
|
|
# Download GE-Proton using the first URL
|
|
echo "Downloading GE-Proton using the first URL"
|
|
wget $ge_proton_url1 -O ~/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz
|
|
|
|
# Check if the download succeeded
|
|
if [ $? -ne 0 ]; then
|
|
# Download GE-Proton using the second URL
|
|
echo "Downloading GE-Proton using the second URL"
|
|
wget $ge_proton_url2 -O ~/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz
|
|
fi
|
|
|
|
# Check if either download succeeded
|
|
if [ $? -eq 0 ]; then
|
|
# Install GE-Proton
|
|
echo "Installing GE-Proton"
|
|
tar -xvf ~/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz -C ~/.steam/root/compatibilitytools.d/
|
|
proton_dir=$(find ~/.steam/root/compatibilitytools.d -maxdepth 1 -type d -name "GE-Proton*" | sort -V | tail -n1)
|
|
else
|
|
# Handle download failure
|
|
echo "Failed to download GE-Proton"
|
|
fi
|
|
else
|
|
|
|
# Check if installed version is the latest version
|
|
installed_version=$(basename $proton_dir | sed 's/GE-Proton-//')
|
|
latest_version=$(curl -s https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest | grep tag_name | cut -d '"' -f 4)
|
|
if [ "$installed_version" != "$latest_version" ]; then
|
|
# Download GE-Proton using the first URL
|
|
echo "Downloading GE-Proton using the first URL"
|
|
wget $ge_proton_url1 -O ~/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz
|
|
|
|
# Check if the download succeeded
|
|
if [ $? -ne 0 ]; then
|
|
# Download GE-Proton using the second URL
|
|
echo "Downloading GE-Proton using the second URL"
|
|
wget $ge_proton_url2 -O ~/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz
|
|
fi
|
|
|
|
# Check if either download succeeded
|
|
if [ $? -eq 0 ]; then
|
|
# Install GE-Proton
|
|
echo "Installing GE-Proton"
|
|
tar -xvf ~/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz -C ~/.steam/root/compatibilitytools.d/
|
|
proton_dir=$(find ~/.steam/root/compatibilitytools.d -maxdepth 1 -type d -name "GE-Proton*" | sort -V | tail -n1)
|
|
else
|
|
# Handle download failure
|
|
echo "Failed to download GE-Proton"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "10"
|
|
echo "# Setting files in their place"
|
|
|
|
|
|
|
|
# Set the appid for the non-Steam game
|
|
appid=NonSteamLaunchers
|
|
|
|
# Set the URL to download the MSI file from
|
|
msi_url=https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/installer/download/EpicGamesLauncherInstaller.msi
|
|
|
|
# Set the path to save the MSI file to
|
|
msi_file=~/Downloads/NonSteamLaunchersInstallation/EpicGamesLauncherInstaller.msi
|
|
|
|
# Set the URL to download the second file from
|
|
exe_url=https://webinstallers.gog-statics.com/download/GOG_Galaxy_2.0.exe
|
|
|
|
# Set the path to save the second file to
|
|
exe_file=~/Downloads/NonSteamLaunchersInstallation/GOG_Galaxy_2.0.exe
|
|
|
|
# Set the URL to download the third file from
|
|
ubi_url=https://ubi.li/4vxt9
|
|
|
|
# Set the path to save the third file to
|
|
ubi_file=~/Downloads/NonSteamLaunchersInstallation/UplayInstaller.exe
|
|
|
|
# Set the URL to download the fourth file from
|
|
origin_url=https://eaassets-a.akamaihd.net/Origin-Client-Download/origin/live/OriginThinSetup.exe
|
|
|
|
# Set the path to save the fourth file to
|
|
origin_file=~/Downloads/NonSteamLaunchersInstallation/OriginThinSetup.exe
|
|
|
|
# Set the URL to download the fifth file from
|
|
battle_url="https://www.battle.net/download/getInstallerForGame?os=win&gameProgram=BATTLENET_APP&version=Live"
|
|
|
|
# Set the path to save the fifth file to
|
|
battle_file=~/Downloads/NonSteamLaunchersInstallation/Battle.net-Setup.exe
|
|
|
|
# Set the URL to download the sixth file from
|
|
amazon_url=https://download.amazongames.com/AmazonGamesSetup.exe
|
|
|
|
# Set the path to save the sixth file to
|
|
amazon_file=~/Downloads/NonSteamLaunchersInstallation/AmazonGamesSetup.exe
|
|
|
|
# Set the URL to download the seventh file from
|
|
eaapp_url=https://origin-a.akamaihd.net/EA-Desktop-Client-Download/installer-releases/EAappInstaller.exe
|
|
|
|
# Set the path to save the seventh file to
|
|
eaapp_file=~/Downloads/NonSteamLaunchersInstallation/EAappInstaller.exe
|
|
|
|
# Set the URL to download the eighth file from
|
|
itchio_url=https://itch.io/app/download?platform=windows
|
|
|
|
# Set the path to save the eighth file to
|
|
itchio_file=~/Downloads/NonSteamLaunchersInstallation/itch-setup.exe
|
|
|
|
# Set the URL to download the ninth file from
|
|
legacygames_url=https://cdn.legacygames.com/LegacyGamesLauncher/legacy-games-launcher-setup-1.10.0-x64-full.exe
|
|
|
|
# Set the path to save the ninth file to
|
|
legacygames_file=~/Downloads/NonSteamLaunchersInstallation/legacy-games-launcher-setup-1.10.0-x64-full.exe
|
|
|
|
# Set the URL to download the tenth file from
|
|
humblegames_url=https://www.humblebundle.com/app/download
|
|
|
|
# Set the path to save the tenth file to
|
|
humblegames_file=~/Downloads/NonSteamLaunchersInstallation/Humble-App-Setup-1.1.8+411.exe
|
|
|
|
# Set the URL to download the eleventh file from
|
|
indiegala_url=https://content.indiegalacdn.com/common/IGClientSetup.exe
|
|
|
|
# Set the path to save the eleventh file to
|
|
indiegala_file=~/Downloads/NonSteamLaunchersInstallation/IGClientSetup.exe
|
|
|
|
# Set the URL to download the twelfth file from
|
|
rockstar_url=https://gamedownloads.rockstargames.com/public/installer/Rockstar-Games-Launcher.exe
|
|
|
|
# Set the path to save the twelfth file to
|
|
rockstar_file=~/Downloads/NonSteamLaunchersInstallation/Rockstar-Games-Launcher.exe
|
|
|
|
# Set the URL to download the Glyph Launcher file from
|
|
glyph_url=https://glyph.dyn.triongames.com/glyph/live/GlyphInstall.exe
|
|
|
|
# Set the path to save the Glyph Launcher to
|
|
glyph_file=~/Downloads/NonSteamLaunchersInstallation/GlyphInstall.exe
|
|
|
|
# Set the URL to download the Minecraft Launcher file from
|
|
minecraft_url=https://aka.ms/minecraftClientWindows
|
|
|
|
# Set the path to save the Minecraft Launcher to
|
|
minecraft_file=~/Downloads/NonSteamLaunchersInstallation/MinecraftInstaller.msi
|
|
|
|
# Set the URL to download the Playstation Launcher file from
|
|
psplus_url=https://download-psplus.playstation.com/downloads/psplus/pc/latest
|
|
|
|
# Set the path to save the Playstation Launcher to
|
|
psplus_file=~/Downloads/NonSteamLaunchersInstallation/PlayStationPlus-12.2.0.exe
|
|
|
|
# Set the URL to download the Playstation Launcher file from
|
|
dmm_url=https://apidgp-gameplayer.games.dmm.com/archive/latest?app=dgp5win
|
|
|
|
# Set the path to save the Playstation Launcher to
|
|
dmm_file=~/Downloads/NonSteamLaunchersInstallation/DMMGamePlayer-Setup-5.2.16.exe
|
|
|
|
|
|
|
|
echo "20"
|
|
echo "# Creating files & folders"
|
|
|
|
|
|
# Check if the user selected any launchers
|
|
if [ -n "$options" ]; then
|
|
# User selected at least one launcher
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist and if the user selected to use a single app ID folder
|
|
if [ "$use_separate_appids" = false ] && [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_RUNTIME environment variable
|
|
export STEAM_RUNTIME="$HOME/.steam/root/ubuntu12_32/steam-runtime/run.sh"
|
|
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for the first file
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wait
|
|
echo "30"
|
|
echo "# Downloading & Installing Epic Games...please wait..."
|
|
|
|
# Check if the user selected Epic Games Launcher
|
|
if [[ $options == *"Epic Games"* ]]; then
|
|
# User selected Epic Games Launcher
|
|
echo "User selected Epic Games"
|
|
|
|
|
|
# Set the appid for the Epic Games Launcher
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=EpicGamesLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Epic Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
|
|
# Download MSI file
|
|
if [ ! -f "$msi_file" ]; then
|
|
echo "Downloading MSI file"
|
|
wget $msi_url -O $msi_file
|
|
fi
|
|
|
|
# Run the MSI file using Proton with the /passive option
|
|
echo "Running MSI file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run MsiExec.exe /i "$msi_file" /qn
|
|
|
|
fi
|
|
|
|
|
|
# Wait for the MSI file to finish running
|
|
wait
|
|
echo "40"
|
|
echo "# Downloading & Installing Gog Galaxy...please wait..."
|
|
|
|
|
|
# Check if the user selected GOG Galaxy
|
|
if [[ $options == *"GOG Galaxy"* ]]; then
|
|
# User selected GOG Galaxy
|
|
echo "User selected GOG Galaxy"
|
|
|
|
|
|
# Set the appid for the Gog Galaxy 2.0
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=GogGalaxyLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Epic Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
# Download EXE file
|
|
if [ ! -f "$exe_file" ]; then
|
|
echo "Downloading EXE file"
|
|
wget $exe_url -O $exe_file
|
|
fi
|
|
|
|
# Run the EXE file using Proton without the /passive option
|
|
echo "Running EXE file using Proton without the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$exe_file" &
|
|
|
|
echo "45"
|
|
echo "# Downloading & Installing Gog Galaxy...Please wait..."
|
|
|
|
# Cancel & Exit the GOG Galaxy Setup Wizard
|
|
while true; do
|
|
if pgrep -f "GalaxySetup.tmp" > /dev/null; then
|
|
pkill -f "GalaxySetup.tmp"
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
# Navigate to %LocalAppData%\Temp
|
|
cd "$HOME/.local/share/Steam/steamapps/compatdata/$appid/pfx/drive_c/users/steamuser/Temp"
|
|
|
|
# Find the GalaxyInstaller_XXXXX folder and copy it to C:\Downloads
|
|
galaxy_installer_folder=$(find . -maxdepth 1 -type d -name "GalaxyInstaller_*" | head -n1)
|
|
cp -r "$galaxy_installer_folder" ~/Downloads/NonSteamLaunchersInstallation/
|
|
|
|
# Navigate to the C:\Downloads\GalaxyInstaller_XXXXX folder
|
|
cd ~/Downloads/NonSteamLaunchersInstallation/"$(basename $galaxy_installer_folder)"
|
|
|
|
# Run GalaxySetup.exe with the /VERYSILENT and /NORESTART options
|
|
echo "Running GalaxySetup.exe with the /VERYSILENT and /NORESTART options"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run GalaxySetup.exe /VERYSILENT /NORESTART
|
|
|
|
# Wait for the EXE file to finish running
|
|
wait
|
|
|
|
else
|
|
# Gog Galaxy Launcher is already installed
|
|
echo "Gog Galaxy Launcher is already installed"
|
|
|
|
fi
|
|
|
|
|
|
|
|
wait
|
|
echo "50"
|
|
echo "# Downloading & Installing Uplay ...please wait..."
|
|
|
|
|
|
# Check if user selected Uplay
|
|
if [[ $options == *"Uplay"* ]]; then
|
|
# User selected Uplay
|
|
echo "User selected Uplay"
|
|
|
|
|
|
|
|
|
|
# Set the appid for the Ubisoft Launcher
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=UplayLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Epic Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
|
|
# Download UBI file
|
|
if [ ! -f "$ubi_file" ]; then
|
|
echo "Downloading UBI file"
|
|
wget $ubi_url -O $ubi_file
|
|
fi
|
|
|
|
# Run the UBI file using Proton with the /passive option
|
|
echo "Running UBI file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$ubi_file" /S
|
|
fi
|
|
|
|
# Wait for the UBI file to finish running
|
|
wait
|
|
echo "60"
|
|
echo "# Downloading & Installing Origin...please wait..."
|
|
|
|
|
|
|
|
# Check if user selected Origin
|
|
if [[ $options == *"Origin"* ]]; then
|
|
# User selected Origin
|
|
echo "User selected Origin"
|
|
|
|
|
|
# Set the appid for the Origin Launcher
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=OriginLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Epic Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
|
|
# Download ORIGIN file
|
|
if [ ! -f "$origin_file" ]; then
|
|
echo "Downloading ORIGIN file"
|
|
wget $origin_url -O $origin_file
|
|
fi
|
|
|
|
# Run the ORIGIN file using Proton with the /passive option
|
|
echo "Running ORIGIN file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$origin_file" /SILENT
|
|
|
|
# Edit local.xml
|
|
sed -i 's|</Settings>| <Setting value="true" key="MigrationDisabled" type="1"/>\n <Setting key="UpdateURL" value="" type="10"/>\n <Setting key="AutoPatchGlobal" value="false" type="1"/>\n <Setting key="AutoUpdate" value="false" type="1"/>\n</Settings>|' "$HOME/.local/share/Steam/steamapps/compatdata/$appid/pfx/drive_c/ProgramData/Origin/local.xml"
|
|
|
|
# Terminate any processes with the name Origin.exe
|
|
pkill Origin.exe
|
|
|
|
# Download version.dll file
|
|
if [ ! -f "~/Downloads/NonSteamLaunchersInstallation/version.dll" ]; then
|
|
echo "Downloading version.dll file"
|
|
wget https://github.com/p0358/Fuck_off_EA_App/releases/download/v2/version.dll -O ~/Downloads/NonSteamLaunchersInstallation/version.dll
|
|
fi
|
|
|
|
# Move version.dll file to desired location
|
|
echo "Moving version.dll file to desired location"
|
|
mv ~/Downloads/NonSteamLaunchersInstallation/version.dll "$HOME/.local/share/Steam/steamapps/compatdata/$appid/pfx/drive_c/Program Files (x86)/Origin/"
|
|
|
|
|
|
# Wait for the ORIGIN file to finish running
|
|
wait
|
|
|
|
fi
|
|
|
|
wait
|
|
echo "70"
|
|
echo "# Downloading & Installing Battle.net...please wait..."
|
|
|
|
# Check if user selected Battle.net
|
|
if [[ $options == *"Battle.net"* ]]; then
|
|
# User selected Battle.net
|
|
echo "User selected Battle.net"
|
|
|
|
|
|
|
|
# Set the appid for the Battlenet Launcher
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=Battle.netLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Epic Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
|
|
# Download BATTLE file
|
|
if [ ! -f "$battle_file" ]; then
|
|
echo "Downloading BATTLE file"
|
|
wget $battle_url -O $battle_file
|
|
fi
|
|
|
|
# Run the BATTLE file using Proton with the /passive option
|
|
echo "Running BATTLE file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$battle_file" Battle.net-Setup.exe --lang=enUS --installpath="C:\Program Files (x86)\Battle.net"
|
|
|
|
fi
|
|
|
|
wait
|
|
|
|
echo "80"
|
|
echo "# Downloading & Installing Amazon Games...please wait..."
|
|
|
|
# Check if user selected Amazon Games
|
|
if [[ $options == *"Amazon Games"* ]]; then
|
|
# User selected Amazon Games
|
|
echo "User selected Amazon Games"
|
|
|
|
|
|
|
|
|
|
# Set the appid for the Amazon Games Launcher
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=AmazonGamesLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Amazon Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
|
|
# Download Amazon file
|
|
if [ ! -f "$amazon_file" ]; then
|
|
echo "Downloading Amazon file"
|
|
wget $amazon_url -O $amazon_file
|
|
fi
|
|
|
|
|
|
# Run the Amazon file using Proton with the /passive option
|
|
echo "Running Amazon file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$amazon_file" &
|
|
|
|
|
|
while true; do
|
|
if pgrep -f "Amazon Games.exe" > /dev/null; then
|
|
pkill -f "Amazon Games.exe"
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
# Wait for the Amazon file to finish running
|
|
wait
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
wait
|
|
|
|
echo "88"
|
|
echo "# Downloading & Installing EA App...please wait..."
|
|
|
|
# Check if user selected EA App
|
|
if [[ $options == *"EA App"* ]]; then
|
|
# User selected EA App
|
|
echo "User selected EA App"
|
|
|
|
|
|
|
|
# Set the appid for the EA App Launcher
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=TheEAappLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Epic Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
|
|
# Download EA App file
|
|
if [ ! -f "$eaapp_file" ]; then
|
|
echo "Downloading EA App file"
|
|
wget $eaapp_url -O $eaapp_file
|
|
fi
|
|
|
|
|
|
# Run the EA App file using Proton with the /passive option
|
|
echo "Running EA App file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$eaapp_file" /quiet
|
|
|
|
counter=0
|
|
while true; do
|
|
if pgrep -f "EABackgroundService.exe" > /dev/null; then
|
|
pkill -f "EABackgroundService.exe"
|
|
break
|
|
fi
|
|
sleep 1
|
|
counter=$((counter + 1))
|
|
if [ $counter -ge 10 ]; then
|
|
break
|
|
fi
|
|
done
|
|
|
|
# Wait for the EA App file to finish running
|
|
wait
|
|
fi
|
|
|
|
wait
|
|
echo "89"
|
|
echo "# Downloading & Installing itch.io...please wait..."
|
|
|
|
# Check if the user selected itchio Launcher
|
|
if [[ $options == *"itch.io"* ]]; then
|
|
# User selected itchio Launcher
|
|
echo "User selected itch.io"
|
|
|
|
|
|
|
|
# Set the appid for the itchio Launcher
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=itchioLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Epic Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
|
|
# Download itchio file
|
|
if [ ! -f "$itchio_file" ]; then
|
|
echo "Downloading itchio file"
|
|
wget $itchio_url -O $itchio_file
|
|
fi
|
|
|
|
# Run the itchio file using Proton with the /passive option
|
|
echo "Running itchio file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$itchio_file"
|
|
fi
|
|
|
|
wait
|
|
echo "90"
|
|
echo "# Downloading & Installing Legacy Games...please wait..."
|
|
|
|
# Check if user selected Legacy Games
|
|
if [[ $options == *"Legacy Games"* ]]; then
|
|
# User selected Legacy Games
|
|
echo "User selected Legacy Games"
|
|
|
|
|
|
# Set the appid for the Legacy Games Launcher
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=LegacyGamesLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Legacy Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
|
|
# Download Legacy file
|
|
if [ ! -f "$legacygames_file" ]; then
|
|
echo "Downloading Legacy file"
|
|
wget $legacygames_url -O $legacygames_file
|
|
fi
|
|
|
|
# Run the Legacy file using Proton with the /passive option
|
|
echo "Running Legacy file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$legacygames_file" /S
|
|
fi
|
|
# Wait for the Legacy file to finish running
|
|
wait
|
|
|
|
|
|
echo "91"
|
|
echo "# Downloading & Installing Humble Games Collection...please wait..."
|
|
|
|
# Check if the user selected Humble Games Launcher
|
|
if [[ $options == *"Humble Games Collection"* ]]; then
|
|
# User selected Humble Games Launcher
|
|
echo "User selected Humble Games Collection"
|
|
|
|
if [[ ! -f "$HOME/.local/share/applications/Humble-scheme-handler.desktop" ]]; then
|
|
wget https://raw.githubusercontent.com/moraroy/NonSteamLaunchers-On-Steam-Deck/main/humble-app/Humble-scheme-handler.desktop -O /tmp/Humble-scheme-handler.desktop
|
|
sed -i "s/APPID/$appid/" /tmp/Humble-scheme-handler.desktop
|
|
desktop-file-install --rebuild-mime-info-cache --dir=$HOME/.local/share/applications /tmp/Humble-scheme-handler.desktop
|
|
rm -rf /tmp/Humble-scheme-handler.desktop
|
|
fi
|
|
|
|
if [[ ! -f "$HOME/.local/share/Steam/steamapps/compatdata/$appid/pfx/handle-humble-scheme" ]]; then
|
|
wget https://raw.githubusercontent.com/moraroy/NonSteamLaunchers-On-Steam-Deck/main/humble-app/handle-humble-scheme -O "$HOME/.local/share/Steam/steamapps/compatdata/$appid/pfx/handle-humble-scheme"
|
|
sed -i "s/APPID/$appid/" "$HOME/.local/share/Steam/steamapps/compatdata/$appid/pfx/handle-humble-scheme"
|
|
chmod +x "$HOME/.local/share/Steam/steamapps/compatdata/$appid/pfx/handle-humble-scheme"
|
|
fi
|
|
|
|
if [[ ! -f "$HOME/.local/share/Steam/steamapps/compatdata/$appid/pfx/start-humble.cmd" ]]; then
|
|
wget https://raw.githubusercontent.com/moraroy/NonSteamLaunchers-On-Steam-Deck/main/humble-app/start-humble.cmd -O "$HOME/.local/share/Steam/steamapps/compatdata/$appid/pfx/start-humble.cmd"
|
|
fi
|
|
|
|
|
|
# Set the appid for the Humble Games Launcher
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=HumbleGamesLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Humble Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
|
|
# Download exe file
|
|
if [ ! -f "$humblegames_file" ]; then
|
|
echo "Downloading MSI file"
|
|
wget $humblegames_url -O $humblegames_file
|
|
fi
|
|
|
|
# Run the exe file using Proton with the /passive option
|
|
echo "Running Exe file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$humblegames_file" /S /D="C:\Program Files\Humble App"
|
|
|
|
fi
|
|
|
|
|
|
wait
|
|
echo "92"
|
|
echo "# Downloading & Installing Indie Gala...please wait..."
|
|
|
|
# Check if user selected indiegala
|
|
if [[ $options == *"IndieGala"* ]]; then
|
|
# User selected indiegala
|
|
echo "User selected IndieGala"
|
|
|
|
|
|
# Set the appid for the indiegala Launcher
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=IndieGalaLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Legacy Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
|
|
# Download indiegala file
|
|
if [ ! -f "$indiegala_file" ]; then
|
|
echo "Downloading indiegala file"
|
|
wget $indiegala_url -O $indiegala_file
|
|
fi
|
|
|
|
# Run the indiegala file using Proton with the /passive option
|
|
echo "Running IndieGala file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$indiegala_file" /S
|
|
fi
|
|
# Wait for the Indie file to finish running
|
|
wait
|
|
|
|
|
|
echo "93"
|
|
echo "# Downloading & Installing Rockstar Games Launcher...please wait..."
|
|
|
|
# Check if user selected rockstar games launcher
|
|
if [[ $options == *"Rockstar Games Launcher"* ]]; then
|
|
# User selected rockstar games
|
|
echo "User selected Rockstar Games Launcher"
|
|
|
|
# Set the appid for the indiegala Launcher
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=RockstarGamesLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Legacy Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
# Download rockstar games file
|
|
if [ ! -f "$rockstar_file" ]; then
|
|
echo "Downloading rockstar file"
|
|
wget $rockstar_url -O $rockstar_file
|
|
fi
|
|
|
|
# Run the rockstar file using Proton with the /passive option
|
|
echo "Running Rockstar Games Launcher file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$rockstar_file"
|
|
|
|
fi
|
|
# Wait for the rockstar file to finish running
|
|
wait
|
|
|
|
|
|
echo "94"
|
|
echo "# Downloading & Installing Glyph Launcher...please wait..."
|
|
|
|
# Check if user selected Glyph
|
|
if [[ $options == *"Glyph Launcher"* ]]; then
|
|
# User selected Glyph
|
|
echo "User selected Glyph Launcher"
|
|
|
|
# Set the appid for Glyph
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=GlyphLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Legacy Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
# Download Glyph file
|
|
if [ ! -f "$glyph_file" ]; then
|
|
echo "Downloading Glyph file"
|
|
wget $glyph_url -O $glyph_file
|
|
fi
|
|
|
|
# Run the Glyph file using Proton with the /passive option
|
|
echo "Running Glyph Launcher file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$glyph_file"
|
|
|
|
fi
|
|
# Wait for the Glyph file to finish running
|
|
wait
|
|
|
|
|
|
|
|
|
|
echo "95"
|
|
echo "# Downloading & Installing Minecraft Launcher...please wait..."
|
|
|
|
# Check if user selected Minecraft
|
|
if [[ $options == *"Minecraft"* ]]; then
|
|
# User selected Minecraft
|
|
echo "User selected Minecraft"
|
|
|
|
# Set the appid for Miencraft
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=MinecraftLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
# Set MinecraftLauncher.exe Variable
|
|
minecraftinstall_path="$HOME/.local/share/Steam/steamapps/compatdata/$appid/pfx/drive_c/Program Files (x86)/Minecraft Launcher/MinecraftLauncher.exe"
|
|
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Legacy Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
# Download Minecraft file
|
|
if [ ! -f "$minecraft_file" ]; then
|
|
echo "Downloading Minecraft file"
|
|
wget $minecraft_url -O $minecraft_file
|
|
fi
|
|
|
|
# Run the Minecraft file using Proton with the /passive option
|
|
echo "Running Minecraft Launcher file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run MsiExec.exe /i "$minecraft_file" /q
|
|
|
|
if [ -f "$minecraftinstall_path" ]; then
|
|
# Run MinecraftLauncher.exe for the first time
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$minecraftinstall_path"
|
|
else
|
|
echo "Could not find MinecraftLauncher.exe at $minecraftinstall_path"
|
|
fi
|
|
|
|
echo "Minecraft is already installed at $minecraftinstall_path"
|
|
|
|
fi
|
|
|
|
# Wait for the Minecraft file to finish running
|
|
wait
|
|
|
|
|
|
echo "96"
|
|
echo "# Downloading & Installing Playstation Plus...please wait..."
|
|
|
|
# Check if the user selected Playstation Launcher
|
|
if [[ $options == *"Playstation Plus"* ]]; then
|
|
# User selected PlayStation Plus Launcher
|
|
echo "User selected PlayStation Plus"
|
|
|
|
|
|
# Set the appid for the PlayStation Plus Launcher
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=PlaystationPlusLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Epic Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
|
|
# Download MSI file
|
|
if [ ! -f "$psplus_file" ]; then
|
|
echo "Downloading MSI file"
|
|
wget $psplus_url -O $psplus_file
|
|
fi
|
|
|
|
# Run the Playstation file using Proton with the /passive option
|
|
echo "Running Playstation file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$psplus_file" /q
|
|
|
|
fi
|
|
|
|
wait
|
|
|
|
|
|
|
|
|
|
|
|
echo "97"
|
|
echo "# Downloading & Installing DMM Games...please wait..."
|
|
|
|
# Check if the user selected DMM Games Launcher
|
|
if [[ $options == *"DMM Games"* ]]; then
|
|
# User selected DMM Games Launcher
|
|
echo "User selected DMM Games"
|
|
|
|
|
|
# Set the appid for the DMM Games Launcher
|
|
if [ "$use_separate_appids" = true ]; then
|
|
appid=DMMGameLauncher
|
|
else
|
|
appid=NonSteamLaunchers
|
|
fi
|
|
|
|
|
|
# Create app id folder in compatdata folder if it doesn't exist
|
|
if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then
|
|
mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid"
|
|
fi
|
|
|
|
# Change working directory to Proton's
|
|
cd $proton_dir
|
|
|
|
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
|
|
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam"
|
|
|
|
# Set the STEAM_COMPAT_DATA_PATH environment variable for Epic Games Launcher
|
|
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid
|
|
|
|
|
|
# Download DMM file
|
|
if [ ! -f "$dmm_file" ]; then
|
|
echo "Downloading DMM file"
|
|
wget $dmm_url -O $dmm_file
|
|
fi
|
|
|
|
# Run the DMM file using Proton with the /passive option
|
|
echo "Running DMM file using Proton with the /passive option"
|
|
"$STEAM_RUNTIME" "$proton_dir/proton" run "$dmm_file" /q
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo "99"
|
|
echo "# Checking if Chrome is installed...please wait..."
|
|
|
|
# Check if user selected any of the options
|
|
if [[ $options == *"Netflix"* ]] || [[ $options == *"Xbox Game Pass"* ]] || [[ $options == *"Geforce Now"* ]] || [[ $options == *"Amazon Luna"* ]] || [[ $options == *"Hulu"* ]] || [[ $options == *"Disney+"* ]] || [[ $options == *"Amazon Prime Video"* ]] || [[ $options == *"Youtube"* ]]; then
|
|
# User selected one of the options
|
|
echo "User selected one of the options"
|
|
|
|
# Check if Google Chrome is already installed
|
|
if command -v google-chrome &> /dev/null; then
|
|
echo "Google Chrome is already installed"
|
|
flatpak --user override --filesystem=/run/udev:ro com.google.Chrome
|
|
else
|
|
# Install the Flatpak runtime
|
|
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
|
|
|
# Install Google Chrome
|
|
flatpak install flathub com.google.Chrome
|
|
|
|
# Run the flatpak --user override command
|
|
flatpak --user override --filesystem=/run/udev:ro com.google.Chrome
|
|
fi
|
|
fi
|
|
|
|
#wait for Google Chrome to finish
|
|
wait
|
|
|
|
|
|
|
|
|
|
|
|
# Delete NonSteamLaunchersInstallation subfolder in Downloads folder
|
|
rm -rf ~/Downloads/NonSteamLaunchersInstallation
|
|
|
|
|
|
|
|
|
|
echo "100"
|
|
echo "# Installation Complete - Steam will now restart. Your launchers will be in your library!...Food for thought...do Jedis use Force Compatability?"
|
|
) |
|
|
zenity --progress \
|
|
--title="Update Status" \
|
|
--text="Starting update...please wait..." --width=450 --height=350\
|
|
--percentage=0 --auto-close
|
|
|
|
wait
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#Checking Files For Shortcuts and Setting Directories For Shortcuts
|
|
if [[ -f "$epic_games_launcher_path1" ]]; then
|
|
# Epic Games Launcher is installed at path 1
|
|
epicshortcutdirectory="\"$epic_games_launcher_path1\""
|
|
epiclaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
epicstartingdir="\"$(dirname "$epic_games_launcher_path1")\""
|
|
elif [[ -f "$epic_games_launcher_path2" ]]; then
|
|
# Epic Games Launcher is installed at path 2
|
|
epicshortcutdirectory="\"$epic_games_launcher_path2\""
|
|
epiclaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/EpicGamesLauncher/\" %command%"
|
|
epicstartingdir="\"$(dirname "$epic_games_launcher_path2")\""
|
|
fi
|
|
if [[ -f "$gog_galaxy_path1" ]]; then
|
|
# Gog Galaxy Launcher is installed at path 1
|
|
gogshortcutdirectory="\"$gog_galaxy_path1\""
|
|
goglaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
gogstartingdir="\"$(dirname "$gog_galaxy_path1")\""
|
|
elif [[ -f "$gog_galaxy_path2" ]]; then
|
|
# Gog Galaxy Launcher is installed at path 2
|
|
gogshortcutdirectory="\"$gog_galaxy_path2\""
|
|
goglaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/GogGalaxyLauncher/\" %command%"
|
|
gogstartingdir="\"$(dirname "$gog_galaxy_path2")\""
|
|
fi
|
|
if [[ -f "$origin_path1" ]]; then
|
|
# Origin Launcher is installed at path 1
|
|
originshortcutdirectory="\"$origin_path1\""
|
|
originlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
originstartingdir="\"$(dirname "$origin_path1")\""
|
|
elif [[ -f "$origin_path2" ]]; then
|
|
# Origin Launcher is installed at path 2
|
|
originshortcutdirectory="\"$origin_path2\""
|
|
originlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/OriginLauncher/\" %command%"
|
|
originstartingdir="\"$(dirname "$origin_path2")\""
|
|
fi
|
|
if [[ -f "$uplay_path1" ]]; then
|
|
# Uplay Launcher is installed at path 1
|
|
uplayshortcutdirectory="\"$uplay_path1\""
|
|
uplaylaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
uplaystartingdir="\"$(dirname "$uplay_path1")\""
|
|
elif [[ -f "$uplay_path2" ]]; then
|
|
# Uplay Launcher is installed at path 2
|
|
uplayshortcutdirectory="\"$uplay_path2\""
|
|
uplaylaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/UplayLauncher/\" %command%"
|
|
uplaystartingdir="\"$(dirname "$uplay_path2")\""
|
|
fi
|
|
if [[ -f "$battlenet_path1" ]]; then
|
|
# Battlenet Launcher is installed at path 1
|
|
battlenetshortcutdirectory="\"$battlenet_path1\""
|
|
battlenetlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
battlenetstartingdir="\"$(dirname "$battlenet_path1")\""
|
|
elif [[ -f "$battlenet_path2" ]]; then
|
|
# Battlenet Launcher is installed at path 2
|
|
battlenetshortcutdirectory="\"$battlenet_path2\""
|
|
battlenetlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/Battle.netLauncher/\" %command%"
|
|
battlenetstartingdir="\"$(dirname "$battlenet_path2")\""
|
|
fi
|
|
if [[ -f "$eaapp_path1" ]]; then
|
|
# EA App Launcher is installed at path 1
|
|
eaappshortcutdirectory="\"$eaapp_path1\""
|
|
eaapplaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
eaappstartingdir="\"$(dirname "$eaapp_path1")\""
|
|
elif [[ -f "$eaapp_path2" ]]; then
|
|
# EA App Launcher is installed at path 2
|
|
eaappshortcutdirectory="\"$eaapp_path2\""
|
|
eaapplaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/TheEAappLauncher/\" %command%"
|
|
eaappstartingdir="\"$(dirname "$eaapp_path2")\""
|
|
fi
|
|
if [[ -f "$amazongames_path1" ]]; then
|
|
# Amazon Games Launcher is installed at path 1
|
|
amazonshortcutdirectory="\"$amazongames_path1\""
|
|
amazonlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
amazonstartingdir="\"$(dirname "$amazongames_path1")\""
|
|
elif [[ -f "$amazongames_path2" ]]; then
|
|
# Amazon Games Launcher is installed at path 2
|
|
amazonshortcutdirectory="\"$amazongames_path2\""
|
|
amazonlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/AmazonGamesLauncher/\" %command%"
|
|
amazonstartingdir="\"$(dirname "$amazongames_path2")\""
|
|
fi
|
|
if [[ -f "$itchio_path1" ]]; then
|
|
# itchio Launcher is installed at path 1
|
|
itchioshortcutdirectory="\"$itchio_path1\""
|
|
itchiolaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
itchiostartingdir="\"$(dirname "$itchio_path1")\""
|
|
elif [[ -f "$itchio_path2" ]]; then
|
|
# itchio Launcher is installed at path 2
|
|
itchioshortcutdirectory="\"$itchio_path2\""
|
|
itchiolaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/itchioLauncher/\" %command%"
|
|
itchiostartingdir="\"$(dirname "$itchio_path2")\""
|
|
fi
|
|
if [[ -f "$legacygames_path1" ]]; then
|
|
# Legacy Games Launcher is installed at path 1
|
|
legacyshortcutdirectory="\"$legacygames_path1\""
|
|
legacylaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
legacystartingdir="\"$(dirname "$legacygames_path1")\""
|
|
elif [[ -f "$legacygames_path2" ]]; then
|
|
# Legacy Games Launcher is installed at path 2
|
|
legacyshortcutdirectory="\"$legacygames_path2\""
|
|
legacylaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/LegacyGamesLauncher/\" %command%"
|
|
legacystartingdir="\"$(dirname "$legacygames_path2")\""
|
|
fi
|
|
if [[ -f "$humblegames_path1" ]]; then
|
|
# Humble Games Launcher is installed at path 1
|
|
humbleshortcutdirectory="\"$humblegames_path1\""
|
|
humblelaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
humblestartingdir="\"$(dirname "$humblegames_path1")\""
|
|
elif [[ -f "$humblegames_path2" ]]; then
|
|
# Humble Games Launcher is installed at path 2
|
|
humbleshortcutdirectory="\"$humblegames_path2\""
|
|
humblelaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/HumbleGamesLauncher/\" %command%"
|
|
humblestartingdir="\"$(dirname "$humblegames_path2")\""
|
|
fi
|
|
if [[ -f "$indiegala_path1" ]]; then
|
|
# indiegala Launcher is installed at path 1
|
|
indieshortcutdirectory="\"$indiegala_path1\""
|
|
indielaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
indiestartingdir="\"$(dirname "$indiegala_path1")\""
|
|
elif [[ -f "$indiegala_path2" ]]; then
|
|
# indiegala Launcher is installed at path 2
|
|
indieshortcutdirectory="\"$indiegala_path2\""
|
|
indielaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/IndieGalaLauncher/\" %command%"
|
|
indiestartingdir="\"$(dirname "$indiegala_path2")\""
|
|
fi
|
|
if [[ -f "$rockstar_path1" ]]; then
|
|
# rockstar Launcher is installed at path 1
|
|
rockstarshortcutdirectory="\"$rockstar_path1\""
|
|
rockstarlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
rockstarstartingdir="\"$(dirname "$rockstar_path1")\""
|
|
elif [[ -f "$rockstar_path2" ]]; then
|
|
# rockstar Launcher is installed at path 2
|
|
rockstarshortcutdirectory="\"$rockstar_path2\""
|
|
rockstarlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/RockstarGamesLauncher/\" %command%"
|
|
rockstarstartingdir="\"$(dirname "$rockstar_path2")\""
|
|
fi
|
|
if [[ -f "$glyph_path1" ]]; then
|
|
# Glyph is installed at path 1
|
|
glyphshortcutdirectory="\"$glyph_path1\""
|
|
glyphlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
glyphstartingdir="\"$(dirname "$glyph_path1")\""
|
|
elif [[ -f "$glyph_path2" ]]; then
|
|
# Glyph is installed at path 2
|
|
glyphshortcutdirectory="\"$glyph_path2\""
|
|
glyphlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/GlyphLauncher/\" %command%"
|
|
glyphstartingdir="\"$(dirname "$glyph_path2")\""
|
|
fi
|
|
if [[ -f "$minecraft_path1" ]]; then
|
|
# Minecraft is installed at path 1
|
|
minecraftshortcutdirectory="\"$minecraft_path1\""
|
|
minecraftlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
minecraftstartingdir="\"$(dirname "$minecraft_path1")\""
|
|
elif [[ -f "$minecraft_path2" ]]; then
|
|
# Minecraft is installed at path 2
|
|
minecraftshortcutdirectory="\"$minecraft_path2\""
|
|
minecraftlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/MinecraftLauncher/\" %command%"
|
|
minecraftstartingdir="\"$(dirname "$minecraft_path1")\""
|
|
fi
|
|
if [[ -f "$psplus_path1" ]]; then
|
|
# Playstation is installed at path 1
|
|
psplusshortcutdirectory="\"$psplus_path1\""
|
|
pspluslaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
psplusstartingdir="\"$(dirname "$psplus_path1")\""
|
|
elif [[ -f "$psplus_path2" ]]; then
|
|
# Playstation is installed at path 2
|
|
psplusshortcutdirectory="\"$psplus_path2\""
|
|
pspluslaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/PlaystationPlusLauncher/\" %command%"
|
|
psplusstartingdir="\"$(dirname "$psplus_path2")\""
|
|
fi
|
|
if [[ -f "$dmm_path1" ]]; then
|
|
# DMM Games is installed at path 1
|
|
dmmshortcutdirectory="\"$dmm_path1\""
|
|
dmmlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
|
|
dmmstartingdir="\"$(dirname "$dmm_path1")\""
|
|
elif [[ -f "$dmm_path2" ]]; then
|
|
# DMM Player is installed at path 2
|
|
dmmshortcutdirectory="\"$dmm_path2\""
|
|
dmmlaunchoptions="STEAM_COMPAT_DATA_PATH=\"$HOME/.local/share/Steam/steamapps/compatdata/DMMGameLauncher/\" %command%"
|
|
dmmstartingdir="\"$(dirname "$dmm_path2")\""
|
|
fi
|
|
|
|
|
|
|
|
# Set Chrome options based on user's selection
|
|
|
|
if [[ $options == *"Xbox Game Pass"* ]]; then
|
|
# User selected Xbox Game Pass
|
|
chromedirectory="\"$chrome_path\""
|
|
xboxchromelaunchoptions="run --branch=stable --arch=x86_64 --command=/app/bin/chrome --file-forwarding com.google.Chrome @@u @@ --window-size=1280,800 --force-device-scale-factor=1.00 --device-scale-factor=1.00 --kiosk https://www.xbox.com/play --chrome-kiosk-type=fullscreen --no-first-run --enable-features=OverlayScrollbar"
|
|
fi
|
|
|
|
if [[ $options == *"Netflix"* ]]; then
|
|
# User selected Netflix
|
|
chromedirectory="\"$chrome_path\""
|
|
netlfixchromelaunchoptions="run --branch=stable --arch=x86_64 --command=/app/bin/chrome --file-forwarding com.google.Chrome @@u @@ --window-size=1280,800 --force-device-scale-factor=1.00 --device-scale-factor=1.00 --kiosk https://www.netflix.com --chrome-kiosk-type=fullscreen --no-first-run --enable-features=OverlayScrollbar"
|
|
fi
|
|
|
|
if [[ $options == *"GeForce Now"* ]]; then
|
|
# User selected GeForce Now
|
|
chromedirectory="\"$chrome_path\""
|
|
geforcechromelaunchoptions="run --branch=stable --arch=x86_64 --command=/app/bin/chrome --file-forwarding com.google.Chrome @@u @@ --window-size=1280,800 --force-device-scale-factor=1.00 --device-scale-factor=1.00 --kiosk https://play.geforcenow.com --chrome-kiosk-type=fullscreen --no-first-run --enable-features=OverlayScrollbar"
|
|
fi
|
|
|
|
if [[ $options == *"Hulu"* ]]; then
|
|
# User selected Hulu
|
|
chromedirectory="\"$chrome_path\""
|
|
huluchromelaunchoptions="run --branch=stable --arch=x86_64 --command=/app/bin/chrome --file-forwarding com.google.Chrome @@u @@ --window-size=1280,800 --force-device-scale-factor=1.00 --device-scale-factor=1.00 --kiosk https://www.hulu.com/welcome --chrome-kiosk-type=fullscreen --no-first-run --enable-features=OverlayScrollbar"
|
|
fi
|
|
|
|
if [[ $options == *"Disney+"* ]]; then
|
|
# User selected Disney+
|
|
chromedirectory="\"$chrome_path\""
|
|
disneychromelaunchoptions="run --branch=stable --arch=x86_64 --command=/app/bin/chrome --file-forwarding com.google.Chrome @@u @@ --window-size=1280,800 --force-device-scale-factor=1.00 --device-scale-factor=1.00 --kiosk https://www.disneyplus.com --chrome-kiosk-type=fullscreen --no-first-run --enable-features=OverlayScrollbar"
|
|
fi
|
|
|
|
if [[ $options == *"Amazon Prime Video"* ]]; then
|
|
# User selected Amazon Prime Video
|
|
chromedirectory="\"$chrome_path\""
|
|
amazonchromelaunchoptions="run --branch=stable --arch=x86_64 --command=/app/bin/chrome --file-forwarding com.google.Chrome @@u @@ --window-size=1280,800 --force-device-scale-factor=1.00 --device-scale-factor=1.00 --kiosk https://www.amazon.com/primevideo --chrome-kiosk-type=fullscreen --no-first-run --enable-features=OverlayScrollbar"
|
|
fi
|
|
|
|
if [[ $options == *"Youtube"* ]]; then
|
|
# User selected Youtube
|
|
chromedirectory="\"$chrome_path\""
|
|
youtubechromelaunchoptions="run --branch=stable --arch=x86_64 --command=/app/bin/chrome --file-forwarding com.google.Chrome @@u @@ --window-size=1280,800 --force-device-scale-factor=1.00 --device-scale-factor=1.00 --kiosk https://www.youtube.com --chrome-kiosk-type=fullscreen --no-first-run --enable-features=OverlayScrollbar"
|
|
fi
|
|
|
|
if [[ $options == *"Amazon Luna"* ]]; then
|
|
# User selected Amazon Luna
|
|
chromedirectory="\"$chrome_path\""
|
|
lunachromelaunchoptions="run --branch=stable --arch=x86_64 --command=/app/bin/chrome --file-forwarding com.google.Chrome @@u @@ --window-size=1280,800 --force-device-scale-factor=1.00 --device-scale-factor=1.00 --kiosk https://luna.amazon.com/ --chrome-kiosk-type=fullscreen --no-first-run --enable-features=OverlayScrollbar"
|
|
fi
|
|
|
|
# Check if any custom websites were provided
|
|
if [ ${#custom_websites[@]} -gt 0 ]; then
|
|
# User entered one or more custom websites
|
|
# Set the chromedirectory variable
|
|
chromedirectory="\"$chrome_path\""
|
|
|
|
# Convert the custom_websites array to a string
|
|
custom_websites_str=$(IFS=", "; echo "${custom_websites[*]}")
|
|
|
|
# Iterate over each custom website
|
|
for custom_website in "${custom_websites[@]}"; do
|
|
# Remove any leading or trailing spaces from the custom website URL
|
|
custom_website="$(echo -e "${custom_website}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
|
|
|
|
# Remove the 'http://' or 'https://' prefix and the 'www.' prefix, if present
|
|
clean_website="${custom_website#http://}"
|
|
clean_website="${clean_website#https://}"
|
|
clean_website="${clean_website#www.}"
|
|
|
|
# Extract the name of the website by removing everything after the first '/'
|
|
website_name="${clean_website%%/*}"
|
|
|
|
# Remove the top-level domain (e.g. '.com') from the website name
|
|
website_name="${website_name%.*}"
|
|
|
|
# Capitalize the first letter of the website name
|
|
website_name="$(tr '[:lower:]' '[:upper:]' <<< "${website_name:0:1}")${website_name:1}"
|
|
|
|
# Set the chromelaunchoptions variable for this website
|
|
chromelaunchoptions="run --branch=stable --arch=x86_64 --command=/app/bin/chrome --file-forwarding com.google.Chrome @@u @@ --window-size=1280,800 --force-device-scale-factor=1.00 --device-scale-factor=1.00 --kiosk https://$clean_website/ --chrome-kiosk-type=fullscreen --no-first-run --enable-features=OverlayScrollbar"
|
|
done
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Set the download directory
|
|
download_dir=~/Downloads/NonSteamLaunchersInstallation
|
|
|
|
# Create the download directory if it doesn't exist
|
|
mkdir -p "$download_dir"
|
|
|
|
# Get the version of Python being used
|
|
python_version=$(python -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
|
|
|
|
# Create a directory for the vdf module
|
|
mkdir -p "$download_dir/lib/python$python_version/site-packages/vdf"
|
|
|
|
# Download the vdf module from the GitHub repository
|
|
download_url="https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck/raw/main/Modules/vdf/__init__.py"
|
|
wget -P "$download_dir/lib/python$python_version/site-packages/vdf" "$download_url"
|
|
|
|
# Set the PYTHONPATH environment variable
|
|
export PYTHONPATH="$download_dir/lib/python$python_version/site-packages/:$PYTHONPATH"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Set the default Steam directory
|
|
steam_dir="$HOME/.local/share/Steam"
|
|
|
|
# Check if the config.vdf file exists
|
|
if [[ -f "$steam_dir/config/config.vdf" ]]; then
|
|
# Get the steamid of the currently logged in user
|
|
steamid=$(grep -oP 'SteamID"\s+"\K[0-9]+' "$steam_dir/config/config.vdf" | head -n 1)
|
|
|
|
# Print out the value of steamid for debugging purposes
|
|
echo "steamid: $steamid"
|
|
|
|
# Convert steamid to steamid3
|
|
steamid3=$((steamid - 76561197960265728))
|
|
|
|
# Initialize the userdata_folder variable
|
|
userdata_folder=""
|
|
|
|
# Initialize the most_recent variable
|
|
most_recent=0
|
|
|
|
# Loop through all the userdata folders
|
|
for USERDATA_FOLDER in ~/.steam/root/userdata/*
|
|
do
|
|
# Check if the current userdata folder is not the "0" or "anonymous" folder
|
|
if [[ "$USERDATA_FOLDER" != *"/0" ]] && [[ "$USERDATA_FOLDER" != *"/anonymous" ]]
|
|
then
|
|
# Get the access time of the current userdata folder
|
|
access_time=$(stat -c %X "$USERDATA_FOLDER")
|
|
|
|
# Extract steamid3 from userdata folder name
|
|
userdata_steamid3=$(basename "$USERDATA_FOLDER")
|
|
|
|
# Check if userdata_steamid3 matches steamid3 and if access time is more recent than most recent access time
|
|
if [[ $userdata_steamid3 -eq $steamid3 ]] && [[ $access_time -gt $most_recent ]]
|
|
then
|
|
# The access time of current userdata folder is more recent and steamid3 matches
|
|
# Set userdata_folder variable
|
|
userdata_folder="$USERDATA_FOLDER"
|
|
|
|
# Update most_recent variable
|
|
most_recent=$access_time
|
|
fi
|
|
fi
|
|
done
|
|
|
|
else
|
|
echo "Could not find config.vdf file"
|
|
fi
|
|
|
|
# Check if userdata folder was found
|
|
if [[ -n "$userdata_folder" ]]; then
|
|
# Userdata folder was found
|
|
echo "Current user's userdata folder found at: $userdata_folder"
|
|
|
|
# Find shortcuts.vdf file for current user
|
|
shortcuts_vdf_path=$(find "$userdata_folder" -type f -name shortcuts.vdf)
|
|
|
|
# Check if shortcuts_vdf_path is not empty
|
|
if [[ -n "$shortcuts_vdf_path" ]]; then
|
|
# Create backup of shortcuts.vdf file
|
|
cp "$shortcuts_vdf_path" "$shortcuts_vdf_path.bak"
|
|
else
|
|
# Find config directory for current user
|
|
config_dir=$(find "$userdata_folder" -type d -name config)
|
|
|
|
# Check if config_dir is not empty
|
|
if [[ -n "$config_dir" ]]; then
|
|
# Create new shortcuts.vdf file at expected location for current user
|
|
touch "$config_dir/shortcuts.vdf"
|
|
shortcuts_vdf_path="$config_dir/shortcuts.vdf"
|
|
else
|
|
# Create new config directory and new shortcuts.vdf file at expected location for current user
|
|
mkdir "$userdata_folder/config/"
|
|
touch "$userdata_folder/config/shortcuts.vdf"
|
|
config_dir="$userdata_folder/config/"
|
|
shortcuts_vdf_path="$config_dir/shortcuts.vdf"
|
|
fi
|
|
fi
|
|
|
|
else
|
|
# Userdata folder was not found
|
|
echo "Current user's userdata folder not found"
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Detach script from Steam process
|
|
nohup sh -c 'sleep 10; /usr/bin/steam' &
|
|
|
|
# Close all instances of Steam
|
|
killall steam
|
|
|
|
|
|
# Wait for the steam process to exit
|
|
while pgrep steam > /dev/null; do sleep 1; done
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#Pre check for updating the config file
|
|
|
|
# Set the default Steam directory
|
|
steam_dir="$HOME/.steam/root"
|
|
|
|
# Set the path to the config.vdf file
|
|
config_vdf_path="$steam_dir/config/config.vdf"
|
|
|
|
# Check if the config.vdf file exists
|
|
if [ -f "$config_vdf_path" ]; then
|
|
# Create a backup of the config.vdf file
|
|
backup_path="$steam_dir/config/config.vdf.bak"
|
|
cp "$config_vdf_path" "$backup_path"
|
|
|
|
# Set the name of the compatibility tool to use
|
|
compat_tool_name="GE-Proton8-9"
|
|
else
|
|
echo "Could not find config.vdf file"
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Set the path to the configset_controller_neptune.vdf file
|
|
controller_config_path="$HOME/.local/share/Steam/steamapps/common/Steam Controller Configs/$steamid3/config/configset_controller_neptune.vdf"
|
|
|
|
# Check if the configset_controller_neptune.vdf file exists
|
|
if [[ -f "$controller_config_path" ]]; then
|
|
# Create a backup copy of the configset_controller_neptune.vdf file
|
|
cp "$controller_config_path" "$controller_config_path.bak"
|
|
else
|
|
echo "Could not find $controller_config_path"
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Run the Python script to create a new entry for a Steam shortcut
|
|
python3 -c "
|
|
import sys
|
|
import os
|
|
import subprocess
|
|
sys.path.insert(0, os.path.expanduser('$HOME/Downloads/NonSteamLaunchersInstallation/lib/python$python_version/site-packages'))
|
|
print(sys.path) # Add this line to print the value of sys.path
|
|
import vdf # Updated import
|
|
import binascii
|
|
import re
|
|
|
|
|
|
# Print the path to the file where the vdf module was loaded from
|
|
print(vdf.__file__)
|
|
|
|
|
|
|
|
# Load the shortcuts.vdf file
|
|
with open('$shortcuts_vdf_path', 'rb') as f:
|
|
shortcuts = vdf.binary_load(f)
|
|
|
|
# Check if the 'shortcuts' key exists in the dictionary
|
|
if 'shortcuts' not in shortcuts:
|
|
# Create an empty 'shortcuts' entry
|
|
shortcuts['shortcuts'] = {}
|
|
|
|
# Check the format of the 'shortcuts' entry
|
|
if isinstance(shortcuts['shortcuts'], dict):
|
|
# The 'shortcuts' entry is a dictionary
|
|
for key, value in shortcuts['shortcuts'].items():
|
|
# Check the type of the value
|
|
if not isinstance(value, (str, int, dict)):
|
|
pass
|
|
|
|
|
|
# Define the path of the Launchers
|
|
epicshortcutdirectory = '$epicshortcutdirectory'
|
|
gogshortcutdirectory = '$gogshortcutdirectory'
|
|
originshortcutdirectory = '$originshortcutdirectory'
|
|
uplayshortcutdirectory = '$uplayshortcutdirectory'
|
|
battlenetshortcutdirectory = '$battlenetshortcutdirectory'
|
|
eaappshortcutdirectory = '$eaappshortcutdirectory'
|
|
amazonshortcutdirectory = '$amazonshortcutdirectory'
|
|
itchioshortcutdirectory = '$itchioshortcutdirectory'
|
|
legacyshortcutdirectory = '$legacyshortcutdirectory'
|
|
humbleshortcutdirectory = '$humbleshortcutdirectory'
|
|
indieshortcutdirectory = '$indieshortcutdirectory'
|
|
rockstarshortcutdirectory = '$rockstarshortcutdirectory'
|
|
glyphshortcutdirectory = '$glyphshortcutdirectory'
|
|
minecraftshortcutdirectory = '$minecraftshortcutdirectory'
|
|
psplusshortcutdirectory = '$psplusshortcutdirectory'
|
|
dmmshortcutdirectory = '$dmmshortcutdirectory'
|
|
#Streaming
|
|
chromedirectory = '$chromedirectory'
|
|
websites_str = '$custom_websites_str'
|
|
custom_websites = websites_str.split(', ')
|
|
|
|
|
|
app_ids = []
|
|
|
|
|
|
def get_steam_shortcut_id(exe, appname):
|
|
unique_id = ''.join([exe, appname])
|
|
id_int = binascii.crc32(str.encode(unique_id)) | 0x80000000
|
|
return id_int
|
|
|
|
|
|
|
|
app_id_to_name = {}
|
|
|
|
def create_new_entry(shortcutdirectory, appname, launchoptions, startingdir):
|
|
if shortcutdirectory != '' and launchoptions != '':
|
|
exe = f'"{shortcutdirectory}"'
|
|
if shortcutdirectory != chromedirectory:
|
|
appid = get_steam_shortcut_id(exe, appname)
|
|
app_ids.append(appid)
|
|
app_id_to_name[appid] = appname
|
|
else:
|
|
appid = None
|
|
|
|
# Create a new entry for the Steam shortcut
|
|
new_entry = {
|
|
'appid': f'{str(appid)}' if appid is not None else '',
|
|
'appname': appname,
|
|
'exe': shortcutdirectory,
|
|
'StartDir': startingdir,
|
|
'icon': '',
|
|
'ShortcutPath': '',
|
|
'LaunchOptions': launchoptions,
|
|
'IsHidden': 0,
|
|
'AllowDesktopConfig': 1,
|
|
'AllowOverlay': 1,
|
|
'OpenVR': 0,
|
|
'Devkit': 0,
|
|
'DevkitGameID': '',
|
|
'LastPlayTime': 0,
|
|
'tags': {
|
|
'0': 'favorite'
|
|
}
|
|
}
|
|
|
|
# Add the new entry to the shortcuts dictionary
|
|
entry_exists = False
|
|
if type(shortcuts['shortcuts']) == list:
|
|
for entry in shortcuts['shortcuts']:
|
|
entry.setdefault('appname', '')
|
|
entry.setdefault('exe', '')
|
|
if entry['appname'] == new_entry['appname'] and entry['exe'] == new_entry['exe']:
|
|
entry_exists = True
|
|
break
|
|
if not entry_exists:
|
|
shortcuts['shortcuts'].append(new_entry)
|
|
elif type(shortcuts['shortcuts']) == dict:
|
|
for key in shortcuts['shortcuts'].keys():
|
|
shortcuts['shortcuts'][key].setdefault('appname', '')
|
|
shortcuts['shortcuts'][key].setdefault('exe', '')
|
|
if shortcuts['shortcuts'][key]['appname'] == new_entry['appname'] and shortcuts['shortcuts'][key]['exe'] == new_entry['exe']:
|
|
entry_exists = True
|
|
break
|
|
if not entry_exists:
|
|
# Check if the shortcuts['shortcuts'] dictionary is empty
|
|
if not shortcuts['shortcuts']:
|
|
max_key = -1
|
|
else:
|
|
# Find the highest key value
|
|
max_key = max(int(key) for key in shortcuts['shortcuts'].keys())
|
|
# Add the new entry with a key value one higher than the current maximum
|
|
shortcuts['shortcuts'][str(max_key + 1)] = new_entry
|
|
|
|
create_new_entry('$epicshortcutdirectory', 'Epic Games', '$epiclaunchoptions', '$epicstartingdir')
|
|
create_new_entry('$gogshortcutdirectory', 'Gog Galaxy', '$goglaunchoptions', '$gogstartingdir')
|
|
create_new_entry('$uplayshortcutdirectory', 'Ubisoft Connect', '$uplaylaunchoptions', '$uplaystartingdir')
|
|
create_new_entry('$originshortcutdirectory', 'Origin', '$originlaunchoptions', '$originstartingdir')
|
|
create_new_entry('$battlenetshortcutdirectory', 'Battle.net', '$battlenetlaunchoptions', '$battlenetstartingdir')
|
|
create_new_entry('$eaappshortcutdirectory', 'EA App', '$eaapplaunchoptions', '$eaappstartingdir')
|
|
create_new_entry('$amazonshortcutdirectory', 'Amazon Games', '$amazonlaunchoptions', '$amazonstartingdir')
|
|
create_new_entry('$itchioshortcutdirectory', 'itch.io', '$itchiolaunchoptions', '$itchiostartingdir')
|
|
create_new_entry('$legacyshortcutdirectory', 'Legacy Games', '$legacylaunchoptions', '$legacystartingdir')
|
|
create_new_entry('$humbleshortcutdirectory', 'Humble Bundle', '$humblelaunchoptions', '$humblestartingdir')
|
|
create_new_entry('$indieshortcutdirectory', 'IndieGala Client', '$indielaunchoptions', '$indiestartingdir')
|
|
create_new_entry('$rockstarshortcutdirectory', 'Rockstar Games Launcher', '$rockstarlaunchoptions', '$rockstarstartingdir')
|
|
create_new_entry('$glyphshortcutdirectory', 'Glyph', '$glyphlaunchoptions', '$glyphstartingdir')
|
|
create_new_entry('$minecraftshortcutdirectory', 'Minecraft: Java Edition', '$minecraftlaunchoptions', '$minecraftstartingdir')
|
|
create_new_entry('$psplusshortcutdirectory', 'Playstation Plus', '$pspluslaunchoptions', '$psplusstartingdir')
|
|
create_new_entry('$dmmshortcutdirectory', 'DMM Games', '$dmmlaunchoptions', '$dmmstartingdir')
|
|
create_new_entry('$chromedirectory', 'Xbox Games Pass', '$xboxchromelaunchoptions', '$chrome_startdir')
|
|
create_new_entry('$chromedirectory', 'GeForce Now', '$geforcechromelaunchoptions', '$chrome_startdir')
|
|
create_new_entry('$chromedirectory', 'Netflix', '$netlfixchromelaunchoptions', '$chrome_startdir')
|
|
create_new_entry('$chromedirectory', 'Hulu', '$huluchromelaunchoptions', '$chrome_startdir')
|
|
create_new_entry('$chromedirectory', 'Disney+', '$disneychromelaunchoptions', '$chrome_startdir')
|
|
create_new_entry('$chromedirectory', 'Amazon Prime Video', '$amazonchromelaunchoptions', '$chrome_startdir')
|
|
create_new_entry('$chromedirectory', 'Youtube', '$youtubechromelaunchoptions', '$chrome_startdir')
|
|
create_new_entry('$chromedirectory', 'Amazon Luna', '$lunachromelaunchoptions', '$chrome_startdir')
|
|
|
|
# Iterate over each custom website
|
|
for custom_website in custom_websites:
|
|
# Check if the custom website is not an empty string
|
|
if custom_website:
|
|
# Remove any leading or trailing spaces from the custom website URL
|
|
custom_website = custom_website.strip()
|
|
|
|
# Remove the 'http://' or 'https://' prefix and the 'www.' prefix, if present
|
|
clean_website = custom_website.replace('http://', '').replace('https://', '').replace('www.', '')
|
|
|
|
# Define a regular expression pattern to extract the game name from the URL
|
|
pattern = r'/games/([\w-]+)'
|
|
|
|
# Use the regular expression to search for the game name in the custom website URL
|
|
match = re.search(pattern, custom_website)
|
|
|
|
# Check if a match was found
|
|
if match:
|
|
# Extract the game name from the match object
|
|
game_name = match.group(1)
|
|
|
|
# Replace hyphens with spaces
|
|
game_name = game_name.replace('-', ' ')
|
|
|
|
# Capitalize the first letter of each word in the game name
|
|
game_name = game_name.title()
|
|
else:
|
|
# Use the entire URL as the entry name
|
|
game_name = clean_website
|
|
|
|
# Define the launch options for this website
|
|
chromelaunch_options = f'run --branch=stable --arch=x86_64 --command=/app/bin/chrome --file-forwarding com.google.Chrome @@u @@ --window-size=1280,800 --force-device-scale-factor=1.00 --device-scale-factor=1.00 --kiosk https://{clean_website}/ --chrome-kiosk-type=fullscreen --no-first-run --enable-features=OverlayScrollbar'
|
|
|
|
# Call the create_new_entry function for this website
|
|
create_new_entry('$chromedirectory', game_name, chromelaunch_options, '$chrome_startdir')
|
|
|
|
|
|
|
|
print(f'app_id_to_name: {app_id_to_name}')
|
|
|
|
# Save the updated shortcuts dictionary to the shortcuts.vdf file
|
|
with open('$shortcuts_vdf_path', 'wb') as f:
|
|
vdf.binary_dump(shortcuts, f)
|
|
|
|
|
|
|
|
|
|
|
|
# Writes to the config.vdf File
|
|
|
|
|
|
excluded_appids = []
|
|
|
|
|
|
# Update the config.vdf file
|
|
with open('$config_vdf_path', 'r') as f:
|
|
config = vdf.load(f)
|
|
|
|
# Check if the CompatToolMapping key exists
|
|
if 'CompatToolMapping' not in config['InstallConfigStore']['Software']['Valve']['Steam']:
|
|
# Create the CompatToolMapping key and set its value to an empty dictionary
|
|
config['InstallConfigStore']['Software']['Valve']['Steam']['CompatToolMapping'] = {}
|
|
|
|
for app_id in app_ids:
|
|
# Check if the app_id is in the list of excluded appids
|
|
if app_id not in excluded_appids:
|
|
# Update the CompatToolMapping for this app_id
|
|
if str(app_id) in config['InstallConfigStore']['Software']['Valve']['Steam']['CompatToolMapping']:
|
|
config['InstallConfigStore']['Software']['Valve']['Steam']['CompatToolMapping'][str(app_id)]['name'] = '$compat_tool_name'
|
|
config['InstallConfigStore']['Software']['Valve']['Steam']['CompatToolMapping'][str(app_id)]['config'] = ''
|
|
config['InstallConfigStore']['Software']['Valve']['Steam']['CompatToolMapping'][str(app_id)]['priority'] = '250'
|
|
else:
|
|
config['InstallConfigStore']['Software']['Valve']['Steam']['CompatToolMapping'][str(app_id)] = {'name': '$compat_tool_name', 'config': '', 'priority': '250'}
|
|
|
|
# Save the updated config dictionary to the config.vdf file
|
|
with open('$config_vdf_path', 'w') as f:
|
|
vdf.dump(config, f)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Load the configset_controller_neptune.vdf file
|
|
with open('$controller_config_path', 'r') as f:
|
|
config = vdf.load(f)
|
|
|
|
# Add new entries for the games
|
|
for app_id in app_ids:
|
|
config['controller_config'][str(app_id)] = {
|
|
'workshop': 'workshop_id'
|
|
}
|
|
|
|
# Add new entries for the installed launchers and games
|
|
config['controller_config']['epic games'] = {
|
|
'workshop': '2800178806'
|
|
}
|
|
config['controller_config']['gog galaxy'] = {
|
|
'workshop': '2877189386'
|
|
}
|
|
config['controller_config']['ubisoft connect'] = {
|
|
'workshop': '2804140248'
|
|
}
|
|
config['controller_config']['amazon games'] = {
|
|
'workshop': '2871935783'
|
|
}
|
|
config['controller_config']['battlenet'] = {
|
|
'workshop': '2887894308'
|
|
}
|
|
config['controller_config']['Origin'] = {
|
|
'workshop': '2856043168'
|
|
}
|
|
config['controller_config']['rockstar games launcher'] = {
|
|
'workshop': '1892570391'
|
|
}
|
|
config['controller_config']['indiegala'] = {
|
|
'template': 'controller_neptune_webbrowser.vdf'
|
|
}
|
|
config['controller_config']['legacy games'] = {
|
|
'template': 'controller_neptune_webbrowser.vdf'
|
|
}
|
|
config['controller_config']['ea app'] = {
|
|
'workshop': '2899822740'
|
|
}
|
|
config['controller_config']['itchio'] = {
|
|
'workshop': '2845891813'
|
|
}
|
|
config['controller_config']['humble games collection'] = {
|
|
'workshop': '2883791560'
|
|
}
|
|
config['controller_config']['minecraft java edition'] = {
|
|
'workshop': '2980553929'
|
|
}
|
|
config['controller_config']['playstation plus'] = {
|
|
'workshop': 'controller_neptune_webbrowser.vdf'
|
|
}
|
|
config['controller_config']['glyph'] = {
|
|
'template': 'controller_neptune_webbrowser.vdf'
|
|
}
|
|
config['controller_config']['dmm games'] = {
|
|
'template': 'controller_neptune_webbrowser.vdf'
|
|
}
|
|
config['controller_config']['amazon prime video'] = {
|
|
'workshop': '2970669392'
|
|
}
|
|
config['controller_config']['hulu'] = {
|
|
'workshop': '2970669392'
|
|
}
|
|
config['controller_config']['netflix'] = {
|
|
'workshop': '2970669392'
|
|
}
|
|
config['controller_config']['disney+'] = {
|
|
'workshop': '2970669392'
|
|
}
|
|
config['controller_config']['youtube'] = {
|
|
'workshop': '2970669392'
|
|
}
|
|
config['controller_config']['geforce now'] = {
|
|
'template': 'controller_neptune_gamepad+mouse.vdf'
|
|
}
|
|
config['controller_config']['amazon luna'] = {
|
|
'template': 'controller_neptune_gamepad+mouse.vdf'
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Define the path to the compatdata directory
|
|
compatdata_dir = '$HOME/.local/share/Steam/steamapps/compatdata'
|
|
|
|
# Define a dictionary of original folder names
|
|
folder_names = {
|
|
'Epic Games': 'EpicGamesLauncher',
|
|
'Gog Galaxy': 'GogGalaxyLauncher',
|
|
'Ubisoft Connect': 'UplayLauncher',
|
|
'Origin': 'OriginLauncher',
|
|
'Battle.net': 'Battle.netLauncher',
|
|
'EA App': 'TheEAappLauncher',
|
|
'Amazon Games': 'AmazonGamesLauncher',
|
|
'itch.io': 'itchioLauncher',
|
|
'Legacy Games': 'LegacyGamesLauncher',
|
|
'Humble Bundle': 'HumbleGamesLauncher',
|
|
'IndieGala Client': 'IndieGalaLauncher',
|
|
'Rockstar Games Launcher': 'RockstarGamesLauncher',
|
|
'Minecraft: Java Edition': 'MinecraftLauncher',
|
|
'Playstation Plus': 'PlaystationPlusLauncher',
|
|
'DMM Games': 'DMMGameLauncher',
|
|
}
|
|
|
|
# Iterate over each launcher in the folder_names dictionary
|
|
for launcher_name, folder in folder_names.items():
|
|
# Check if the folder exists
|
|
if os.path.exists(os.path.join(compatdata_dir, folder)):
|
|
# Get the app ID for this launcher from the app_id_to_name dictionary
|
|
appid = next(key for key, value in app_id_to_name.items() if value == launcher_name)
|
|
|
|
# Define the current path of the folder
|
|
current_path = os.path.join(compatdata_dir, folder)
|
|
|
|
# Define the new path of the folder
|
|
new_path = os.path.join(compatdata_dir, str(appid))
|
|
|
|
# Rename the folder
|
|
os.rename(current_path, new_path)
|
|
|
|
# Define the path of the symbolic link
|
|
symlink_path = os.path.join(compatdata_dir, folder)
|
|
|
|
# Create a symbolic link to the renamed folder
|
|
os.symlink(new_path, symlink_path)
|
|
|
|
# Check if the NonSteamLaunchers folder exists
|
|
if os.path.exists(os.path.join(compatdata_dir, 'NonSteamLaunchers')):
|
|
# Get the first app ID from the app_ids list
|
|
first_app_id = app_ids[0]
|
|
|
|
# Define the current path of the NonSteamLaunchers folder
|
|
current_path = os.path.join(compatdata_dir, 'NonSteamLaunchers')
|
|
|
|
# Define the new path of the NonSteamLaunchers folder
|
|
new_path = os.path.join(compatdata_dir, str(first_app_id))
|
|
|
|
# Rename the NonSteamLaunchers folder
|
|
os.rename(current_path, new_path)
|
|
|
|
# Define the path of the symbolic link
|
|
symlink_path = os.path.join(compatdata_dir, 'NonSteamLaunchers')
|
|
|
|
# Create a symbolic link to the renamed NonSteamLaunchers folder
|
|
os.symlink(new_path, symlink_path)
|
|
|
|
|
|
|
|
|
|
# Save the updated config dictionary to the configset_controller_neptune.vdf file
|
|
with open('$controller_config_path', 'w') as f:
|
|
vdf.dump(config, f)"
|
|
|
|
|
|
|
|
|
|
|
|
# Delete NonSteamLaunchersInstallation subfolder in Downloads folder
|
|
rm -rf ~/Downloads/NonSteamLaunchersInstallation
|
|
|