2023-04-27 02:15:25 +02:00
#!/bin/bash
2023-05-03 06:59:16 +02:00
2023-05-03 00:51:09 +02:00
chmod +x " $0 "
2023-04-28 11:01:10 +02:00
2023-04-27 02:15:25 +02:00
set -x
2023-05-05 01:30:31 +02:00
2023-05-06 08:45:52 +02:00
version = v1.9
2023-05-05 01:30:31 +02:00
2023-05-03 06:53:41 +02:00
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
2023-05-06 00:24:07 +02:00
# 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
2023-05-03 06:53:41 +02:00
else
2023-05-07 00:02:36 +02:00
# Set the username, repository, branch, and path to file
local username = "moraroy"
local repository = "NonSteamLaunchers-On-Steam-Deck"
local branch = "main"
local path_to_file = "NonSteamLaunchers.sh"
2023-05-06 23:50:52 +02:00
2023-05-07 00:02:36 +02:00
# Construct the raw URL
local raw_url = " https://raw.githubusercontent.com/ $username / $repository / $branch / $path_to_file "
2023-05-06 23:50:52 +02:00
2023-05-07 00:02:36 +02:00
# Download the latest version of the file from GitHub
curl -s " $raw_url " -o /tmp/latest_script.sh
# Compare the latest version of the file against the local version
2023-05-06 23:50:52 +02:00
if ! cmp -s " $0 " /tmp/latest_script.sh; then
# Display a Zenity window to notify the user that a new version is available
zenity --info --text= "A new version is available\nPlease download it from GitHub." --width= 200 --height= 100
else
echo " You are already running the latest version: $version "
fi
2023-05-03 06:53:41 +02:00
fi
}
2023-05-05 01:30:31 +02:00
check_for_updates
2023-05-03 06:53:41 +02:00
2023-05-07 00:04:53 +02:00
test hi
2023-05-03 06:53:41 +02:00
2023-05-06 23:50:52 +02:00
2023-04-27 22:51:00 +02:00
2023-04-27 02:15:25 +02:00
2023-05-02 14:52:53 +02:00
# 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 "
2023-05-05 01:30:31 +02:00
eaapp_path1 = " $HOME /.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/pfx/drive_c/Program Files/Electronic Arts/EA Desktop/EA Desktop/EADesktop.exe "
2023-05-02 14:52:53 +02:00
eaapp_path2 = " $HOME /.local/share/Steam/steamapps/compatdata/TheEAappLauncher/pfx/drive_c/Program Files/Electronic Arts/EA Desktop/EA Desktop/EADesktop.exe "
2023-05-05 01:30:31 +02:00
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 "
2023-05-05 09:44:56 +02:00
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 "
2023-05-03 06:15:40 +02:00
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 "
2023-05-06 00:24:07 +02:00
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 "
2023-05-02 14:52:53 +02:00
2023-05-05 01:30:31 +02:00
2023-05-02 14:52:53 +02:00
# Check if Epic Games Launcher is installed
2023-05-05 13:42:34 +02:00
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
2023-05-02 14:52:53 +02:00
epic_games_value = "FALSE"
2023-05-05 13:42:34 +02:00
epic_games_text = " Epic Games ===> $epic_games_launcher_path2 "
2023-05-02 14:52:53 +02:00
else
# Epic Games Launcher is not installed
epic_games_value = "TRUE"
epic_games_text = "Epic Games"
fi
# Check if GOG Galaxy is installed
2023-05-05 13:42:34 +02:00
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
2023-05-02 14:52:53 +02:00
gog_galaxy_value = "FALSE"
2023-05-05 13:42:34 +02:00
gog_galaxy_text = " GOG Galaxy ===> $gog_galaxy_path2 "
2023-05-02 14:52:53 +02:00
else
# GOG Galaxy is not installed
gog_galaxy_value = "TRUE"
gog_galaxy_text = "GOG Galaxy"
fi
# Check if Origin is installed
2023-05-05 13:42:34 +02:00
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
2023-05-02 14:52:53 +02:00
origin_value = "FALSE"
2023-05-05 13:42:34 +02:00
origin_text = " Origin ===> $origin_path2 "
2023-05-02 14:52:53 +02:00
else
# Origin is not installed
origin_value = "TRUE"
origin_text = "Origin"
fi
# Check if Uplay is installed
2023-05-05 13:42:34 +02:00
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
2023-05-02 14:52:53 +02:00
uplay_value = "FALSE"
2023-05-05 13:42:34 +02:00
uplay_text = " Uplay ===> $uplay_path2 "
2023-05-02 14:52:53 +02:00
else
# Uplay is not installed
uplay_value = "TRUE"
uplay_text = "Uplay"
fi
# Check if Battle.net is installed
2023-05-05 13:42:34 +02:00
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
2023-05-02 14:52:53 +02:00
battlenet_value = "FALSE"
2023-05-05 13:42:34 +02:00
battlenet_text = " Battle.net ===> $battlenet_path2 "
2023-05-02 14:52:53 +02:00
else
# Battle.net is not installed
battlenet_value = "TRUE"
battlenet_text = "Battle.net"
fi
# Check if EA App is installed
2023-05-05 13:42:34 +02:00
if [ [ -f " $eaapp_path1 " ] ] ; then
# EA App is installed in path 1
2023-05-02 14:52:53 +02:00
eaapp_value = "FALSE"
2023-05-05 13:42:34 +02:00
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 "
2023-05-02 14:52:53 +02:00
else
2023-05-05 13:42:34 +02:00
# EA App is not installed
eaapp_value = "FALSE"
eaapp_text = "EA App"
2023-05-02 14:52:53 +02:00
fi
# Check if Amazon Games is installed
2023-05-05 13:42:34 +02:00
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
2023-05-02 14:52:53 +02:00
amazongames_value = "FALSE"
2023-05-05 13:42:34 +02:00
amazongames_text = " Amazon Games ===> $amazongames_path2 "
2023-05-02 14:52:53 +02:00
else
# Amazon Games is not installed
amazongames_value = "TRUE"
amazongames_text = "Amazon Games"
fi
# Check if itch.io is installed
2023-05-05 13:42:34 +02:00
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
2023-05-02 14:52:53 +02:00
itchio_value = "FALSE"
2023-05-05 13:42:34 +02:00
itchio_text = " itch.io ===> $itchio_path2 "
2023-05-02 14:52:53 +02:00
else
# itch.io is not installed
itchio_value = "TRUE"
itchio_text = "itch.io"
fi
2023-05-03 06:15:40 +02:00
# Check if Legacy Games Launcher is installed
2023-05-05 13:42:34 +02:00
if [ [ -f " $legacygames_path1 " ] ] ; then
# Legacy Games is installed in path 1
2023-05-03 06:15:40 +02:00
legacygames_value = "FALSE"
2023-05-05 13:42:34 +02:00
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 "
2023-05-03 06:15:40 +02:00
else
2023-05-05 13:42:34 +02:00
# Legacy Games is not installed
2023-05-03 06:15:40 +02:00
legacygames_value = "TRUE"
legacygames_text = "Legacy Games"
fi
2023-05-02 14:52:53 +02:00
2023-05-06 00:24:07 +02:00
# Check if Humble Games Launcher is installed
if [ [ -f " $humblegames_path1 " ] ] ; then
# Humble Games is installed in path 1
humblegames_value = "FALSE"
humblegames_text = " Humble Games Collection ===> $humblegames_path1 "
elif [ [ -f " $humblegames_path2 " ] ] ; then
# Humble Games is installed in path 2
humblegames_value = "FALSE"
humblegames_text = " Humble Games Collection ===> $humblegames_path2 "
else
# Humble Games is not installed
humblegames_value = "TRUE"
humblegames_text = "Humble Games Collection"
fi
2023-05-02 14:52:53 +02:00
2023-04-28 11:01:10 +02:00
2023-05-05 13:42:34 +02:00
2023-04-27 13:19:15 +02:00
# Display a list of options using zenity
2023-05-06 00:24:07 +02:00
options = $( zenity --list --text= "Which launchers do you want to download and install?" --checklist --column= " $version " --column= "Default = one App ID Installation" FALSE "Separate App IDs" $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 " --width= 425 --height= 427 --extra-button= "Start Fresh" )
2023-04-27 13:19:15 +02:00
2023-05-02 14:52:53 +02:00
# Check if the cancel button was clicked
2023-05-05 13:42:34 +02:00
if [ $? -eq 1 ] && [ [ $options != "Start Fresh" ] ] ; then
2023-05-02 14:52:53 +02:00
# The cancel button was clicked
echo "The cancel button was clicked"
2023-04-27 13:19:15 +02:00
exit 1
fi
2023-04-27 02:15:25 +02:00
2023-05-05 01:30:31 +02:00
# Check if no options were selected
if [ -z " $options " ] ; then
# No options were selected
zenity --error --text= "No options were selected. The script will now exit." --width= 200 --height= 150
exit 1
fi
2023-05-02 14:52:53 +02:00
2023-04-27 13:19:15 +02:00
# Check if the user selected to use separate app IDs
2023-05-02 14:52:53 +02:00
if [ [ $options = = *"Separate App IDs" * ] ] ; then
2023-04-27 13:19:15 +02:00
# 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
2023-04-27 02:15:25 +02:00
fi
2023-04-30 08:21:01 +02:00
2023-05-02 14:52:53 +02:00
# 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
2023-05-05 13:42:34 +02:00
# 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) WITH THIS SCRIPT ONLY will be deleted if you have them there. Are you sure?" --width= 300 --height= 250; then
# The user clicked the "Yes" button
# Add code here to delete the directories
rm -rf " $HOME /.local/share/Steam/steamapps/compatdata/NonSteamLaunchers "
rm -rf " $HOME /.local/share/Steam/steamapps/compatdata/EpicGamesLauncher "
rm -rf " $HOME /.local/share/Steam/steamapps/compatdata/GogGalaxyLauncher "
rm -rf " $HOME /.local/share/Steam/steamapps/compatdata/OriginLauncher "
rm -rf " $HOME /.local/share/Steam/steamapps/compatdata/UplayLauncher "
rm -rf " $HOME /.local/share/Steam/steamapps/compatdata/Battle.netLauncher "
rm -rf " $HOME /.local/share/Steam/steamapps/compatdata/TheEAappLauncher "
rm -rf " $HOME /.local/share/Steam/steamapps/compatdata/AmazonGamesLauncher "
rm -rf " $HOME /.local/share/Steam/steamapps/compatdata/LegacyGamesLauncher "
rm -rf " $HOME /.local/share/Steam/steamapps/compatdata/itchioLauncher "
2023-05-06 00:24:07 +02:00
rm -rf " $HOME /.local/share/Steam/steamapps/compatdata/HumbleGamesLauncher "
2023-05-05 13:42:34 +02:00
rm -rf ~/Downloads/NonSteamLaunchersInstallation
# Exit the script
exit 0
else
# The user clicked the "No" button
# Add code here to exit the script
exit 0
fi
fi
2023-05-02 14:52:53 +02:00
2023-04-27 22:51:00 +02:00
echo "0"
echo "# Detecting and Installing GE-Proton"
2023-04-27 13:19:15 +02:00
2023-04-30 08:21:01 +02:00
# 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
(
2023-04-27 13:19:15 +02:00
# Create NonSteamLaunchersInstallation subfolder in Downloads folder
mkdir -p ~/Downloads/NonSteamLaunchersInstallation
2023-04-27 02:15:25 +02:00
# 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
2023-05-06 05:25:05 +02:00
ge_proton_url2 = https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton8-2/GE-Proton8-2.tar.gz
2023-04-27 02:15:25 +02:00
2023-04-30 08:21:01 +02:00
2023-04-27 02:15:25 +02:00
# Check if GE-Proton is installed
if [ -z " $proton_dir " ] ; then
# Download GE-Proton using the first URL
2023-04-27 13:19:15 +02:00
echo "Downloading GE-Proton using the first URL"
wget $ge_proton_url1 -O ~/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz
2023-04-27 02:15:25 +02:00
# Check if the download succeeded
if [ $? -ne 0 ] ; then
# Download GE-Proton using the second URL
2023-04-27 13:19:15 +02:00
echo "Downloading GE-Proton using the second URL"
wget $ge_proton_url2 -O ~/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz
2023-04-27 02:15:25 +02:00
fi
# Check if either download succeeded
if [ $? -eq 0 ] ; then
# Install GE-Proton
2023-04-27 13:19:15 +02:00
echo "Installing GE-Proton"
tar -xvf ~/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz -C ~/.steam/root/compatibilitytools.d/
2023-04-27 02:15:25 +02:00
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
2023-04-27 22:51:00 +02:00
echo "Downloading GE-Proton using the first URL"
2023-04-27 13:19:15 +02:00
wget $ge_proton_url1 -O ~/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz
2023-04-27 02:15:25 +02:00
# Check if the download succeeded
if [ $? -ne 0 ] ; then
# Download GE-Proton using the second URL
2023-04-27 22:51:00 +02:00
echo "Downloading GE-Proton using the second URL"
2023-04-27 13:19:15 +02:00
wget $ge_proton_url2 -O ~/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz
2023-04-27 02:15:25 +02:00
fi
# Check if either download succeeded
if [ $? -eq 0 ] ; then
# Install GE-Proton
2023-04-27 22:51:00 +02:00
echo "Installing GE-Proton"
2023-04-27 13:19:15 +02:00
tar -xvf ~/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz -C ~/.steam/root/compatibilitytools.d/
2023-04-27 02:15:25 +02:00
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
2023-04-27 22:51:00 +02:00
echo "10"
echo "# Setting files in their place"
2023-04-27 02:15:25 +02:00
# 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
2023-04-27 13:19:15 +02:00
msi_file = ~/Downloads/NonSteamLaunchersInstallation/EpicGamesLauncherInstaller.msi
2023-04-27 02:15:25 +02:00
# 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
2023-04-27 13:19:15 +02:00
exe_file = ~/Downloads/NonSteamLaunchersInstallation/GOG_Galaxy_2.0.exe
2023-04-27 02:15:25 +02:00
# Set the URL to download the third file from
ubi_url = https://ubi.li/4vxt9
# Set the path to save the third file to
2023-04-27 13:19:15 +02:00
ubi_file = ~/Downloads/NonSteamLaunchersInstallation/UplayInstaller.exe
2023-04-27 02:15:25 +02:00
# Set the URL to download the fourth file from
origin_url = https://taskinoz.com/downloads/OriginSetup-10.5.119.52718.exe
# Set the path to save the fourth file to
2023-04-27 13:19:15 +02:00
origin_file = ~/Downloads/NonSteamLaunchersInstallation/OriginSetup-10.5.119.52718.exe
2023-04-27 02:15:25 +02:00
# Set the URL to download the fifth file from
battle_url = https://www.battle.net/download/getInstallerForGame?os= win
# Set the path to save the fifth file to
2023-04-27 13:19:15 +02:00
battle_file = ~/Downloads/NonSteamLaunchersInstallation/BattleNetInstaller.exe
2023-04-27 02:15:25 +02:00
2023-04-27 13:19:15 +02:00
# Set the URL to download the sixth file from
amazon_url = https://download.amazongames.com/AmazonGamesSetup.exe
2023-04-27 02:15:25 +02:00
2023-04-27 13:19:15 +02:00
# Set the path to save the sixth file to
amazon_file = ~/Downloads/NonSteamLaunchersInstallation/AmazonGamesSetup.exe
2023-04-27 02:15:25 +02:00
2023-04-27 13:19:15 +02:00
# 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
2023-04-27 02:15:25 +02:00
2023-04-28 11:01:10 +02:00
# 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
2023-05-03 06:15:40 +02:00
# 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
2023-04-28 11:01:10 +02:00
2023-05-03 06:15:40 +02:00
# Set the path to save the ninth file to
legacygames_file = ~/Downloads/NonSteamLaunchersInstallation/legacy-games-launcher-setup-1.10.0-x64-full.exe
2023-04-28 11:01:10 +02:00
2023-05-06 00:24:07 +02:00
# 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
2023-04-27 22:51:00 +02:00
echo "20"
echo "# Creating folders"
2023-04-28 02:14:36 +02:00
# 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
2023-04-27 02:15:25 +02:00
mkdir -p " $HOME /.local/share/Steam/steamapps/compatdata/ $appid "
fi
2023-04-28 02:14:36 +02:00
2023-04-27 02:15:25 +02:00
# Change working directory to Proton's
cd $proton_dir
2023-05-02 14:52:53 +02:00
# Set the STEAM_RUNTIME environment variable
export STEAM_RUNTIME = " $HOME /.steam/root/ubuntu12_32/steam-runtime/run.sh "
2023-04-27 02:15:25 +02:00
# 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
2023-04-27 13:19:15 +02:00
wait
2023-04-27 22:51:00 +02:00
echo "30"
echo "# Downloading/Installing Epic Games"
2023-04-27 13:19:15 +02:00
# Check if the user selected Epic Games Launcher
2023-05-02 14:52:53 +02:00
if [ [ $options = = *"Epic Games" * ] ] ; then
2023-04-27 13:19:15 +02:00
# User selected Epic Games Launcher
2023-05-02 14:52:53 +02:00
echo "User selected Epic Games"
2023-04-27 13:19:15 +02:00
2023-05-05 01:30:31 +02:00
if [ [ ! -f " $epic_games_launcher_path1 " ] ] && [ [ ! -f " $epic_games_launcher_path2 " ] ] ; then
# Epic Games Launcher is not installed
# Set the appid for the Epic Games Launcher
if [ " $use_separate_appids " = true ] ; then
2023-04-27 13:19:15 +02:00
appid = EpicGamesLauncher
2023-05-05 01:30:31 +02:00
else
2023-04-27 13:19:15 +02:00
appid = NonSteamLaunchers
2023-05-05 01:30:31 +02:00
fi
2023-04-27 13:19:15 +02:00
2023-05-05 01:30:31 +02:00
# 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
2023-04-27 13:19:15 +02:00
2023-05-05 01:30:31 +02:00
# Change working directory to Proton's
cd $proton_dir
2023-04-27 13:19:15 +02:00
2023-05-05 01:30:31 +02:00
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
export STEAM_COMPAT_CLIENT_INSTALL_PATH = "~/.local/share/Steam"
2023-04-27 13:19:15 +02:00
2023-05-05 01:30:31 +02:00
# 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
2023-04-27 13:19:15 +02:00
2023-05-05 01:30:31 +02:00
fi
2023-04-27 13:19:15 +02:00
fi
2023-04-27 02:15:25 +02:00
2023-05-05 01:30:31 +02:00
2023-04-27 13:19:15 +02:00
# Wait for the MSI file to finish running
2023-04-27 02:15:25 +02:00
wait
2023-04-27 22:51:00 +02:00
echo "40"
echo "# Downloading/Installing Gog Galaxy"
2023-04-27 02:15:25 +02:00
2023-04-27 13:19:15 +02:00
# Check if the user selected GOG Galaxy
if [ [ $options = = *"GOG Galaxy" * ] ] ; then
# User selected GOG Galaxy
echo "User selected GOG Galaxy"
2023-05-05 01:30:31 +02:00
# Check if Gog Galaxy Launcher is already installed
if [ [ ! -f " $gog_galaxy_path1 " ] ] || [ [ ! -f " $gog_galaxy_path2 " ] ] ; then
2023-05-06 08:45:52 +02:00
# Gog Galaxy Launcher is not installed
2023-05-05 01:30:31 +02:00
2023-05-06 08:45:52 +02:00
# Set the appid for the Gog Galaxy 2.0
if [ " $use_separate_appids " = true ] ; then
appid = GogGalaxyLauncher
else
appid = NonSteamLaunchers
fi
2023-05-05 01:30:31 +02:00
2023-05-06 08:45:52 +02:00
# 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
2023-05-05 01:30:31 +02:00
2023-05-06 08:45:52 +02:00
# Change working directory to Proton's
cd $proton_dir
2023-04-27 13:19:15 +02:00
2023-05-06 08:45:52 +02:00
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
export STEAM_COMPAT_CLIENT_INSTALL_PATH = "~/.local/share/Steam"
2023-04-27 13:19:15 +02:00
2023-05-06 08:45:52 +02:00
# Set the STEAM_COMPAT_DATA_PATH environment variable for Epic Games Launcher
export STEAM_COMPAT_DATA_PATH = ~/.local/share/Steam/steamapps/compatdata/$appid
2023-04-27 13:19:15 +02:00
2023-05-06 08:45:52 +02:00
# Download EXE file
if [ ! -f " $exe_file " ] ; then
echo "Downloading EXE file"
wget $exe_url -O $exe_file
fi
2023-04-27 13:19:15 +02:00
2023-05-06 08:45:52 +02:00
# 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 " &
else
# Gog Galaxy Launcher is already installed
echo "Gog Galaxy Launcher is already installed"
2023-04-27 13:19:15 +02:00
fi
2023-04-27 22:51:00 +02:00
echo "45"
echo "# Downloading/Installing Gog Galaxy"
2023-04-28 05:34:49 +02:00
2023-05-02 14:52:53 +02:00
# Cancel & Exit the GOG Galaxy Setup Wizard
while true; do
if pgrep -f "GalaxySetup.tmp" > /dev/null; then
pkill -f "GalaxySetup.tmp"
2023-04-28 05:34:49 +02:00
break
fi
2023-05-02 14:52:53 +02:00
sleep 1
2023-04-28 05:34:49 +02:00
done
2023-04-27 13:19:15 +02:00
2023-04-28 05:34:49 +02:00
2023-04-27 13:19:15 +02:00
# Navigate to %LocalAppData%\Temp
2023-04-30 14:53:54 +02:00
cd " $HOME /.local/share/Steam/steamapps/compatdata/ $appid /pfx/drive_c/users/steamuser/Temp "
2023-04-27 13:19:15 +02:00
# 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/
2023-05-02 14:52:53 +02:00
2023-04-27 13:19:15 +02:00
# 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"
2023-05-02 14:52:53 +02:00
" $STEAM_RUNTIME " " $proton_dir /proton " run GalaxySetup.exe /VERYSILENT /NORESTART
2023-04-27 13:19:15 +02:00
# Wait for the EXE file to finish running
wait
2023-04-28 05:34:49 +02:00
2023-05-06 08:45:52 +02:00
fi
2023-04-28 05:34:49 +02:00
2023-04-27 13:19:15 +02:00
wait
2023-04-27 22:51:00 +02:00
echo "50"
echo "# Downloading/Installing Uplay"
2023-04-27 13:19:15 +02:00
# Check if user selected Uplay
if [ [ $options = = *"Uplay" * ] ] ; then
# User selected Uplay
echo "User selected Uplay"
2023-05-05 01:30:31 +02:00
# Check if Uplay Launcher is installed
if [ [ ! -f " $uplay_path1 " ] ] || [ [ ! -f " $uplay_path2 " ] ] ; then
2023-05-03 06:15:40 +02:00
# Set the appid for the Ubisoft Launcher
2023-04-27 13:19:15 +02:00
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
2023-05-05 01:30:31 +02:00
fi # Run the UBI file using Proton with the /passive option
2023-04-27 13:19:15 +02:00
echo "Running UBI file using Proton with the /passive option"
2023-05-02 14:52:53 +02:00
" $STEAM_RUNTIME " " $proton_dir /proton " run " $ubi_file " /S
2023-04-27 13:19:15 +02:00
fi
2023-04-27 02:15:25 +02:00
2023-04-27 13:19:15 +02:00
# Wait for the UBI file to finish running
2023-04-27 02:15:25 +02:00
wait
2023-04-27 22:51:00 +02:00
echo "60"
echo "# Downloading/Installing Origin"
2023-04-27 02:15:25 +02:00
2023-04-27 13:19:15 +02:00
# Check if user selected Origin
if [ [ $options = = *"Origin" * ] ] ; then
# User selected Origin
echo "User selected Origin"
2023-05-05 01:30:31 +02:00
# Check if Origin Launcher is installed
if [ [ ! -f " $origin_path1 " ] ] || [ [ ! -f " $origin_path2 " ] ] ; then
2023-05-02 14:52:53 +02:00
# Set the appid for the Origin Launcher
2023-04-27 13:19:15 +02:00
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"
2023-05-02 14:52:53 +02:00
" $STEAM_RUNTIME " " $proton_dir /proton " run " $origin_file " /SILENT
2023-04-27 13:19:15 +02:00
# 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
# Wait for the ORIGIN file to finish running
wait
2023-05-05 01:30:31 +02:00
fi
2023-04-27 13:19:15 +02:00
fi
wait
2023-04-27 22:51:00 +02:00
echo "70"
echo "# Downloading/Installing Battle.net"
2023-04-27 13:19:15 +02:00
# Check if user selected Battle.net
if [ [ $options = = *"Battle.net" * ] ] ; then
# User selected Battle.net
echo "User selected Battle.net"
2023-05-05 01:30:31 +02:00
# Check if Battlenet Launcher is installed
if [ [ ! -f " $battlenet_path1 " ] ] || [ [ ! -f " $battlenet_path2 " ] ] ; then
# Set the appid for the Battlenet Launcher
2023-04-27 13:19:15 +02:00
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
2023-04-27 02:15:25 +02:00
2023-04-27 13:19:15 +02:00
# 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"
2023-05-02 14:52:53 +02:00
" $STEAM_RUNTIME " " $proton_dir /proton " run " $battle_file " Battle.net-Setup.exe --lang= enUS --installpath= "C:\Program Files (x86)\Battle.net" &
2023-04-30 14:53:54 +02:00
2023-05-02 14:52:53 +02:00
while true; do
if pgrep -f "Battle.net.exe" > /dev/null; then
pkill -f "Battle.net.exe"
break
2023-04-30 14:53:54 +02:00
fi
2023-05-02 14:52:53 +02:00
sleep 1
2023-04-30 14:53:54 +02:00
done
2023-05-05 01:30:31 +02:00
fi
2023-04-27 13:19:15 +02:00
fi
2023-04-27 02:15:25 +02:00
2023-05-02 14:52:53 +02:00
2023-04-27 02:15:25 +02:00
wait
2023-04-27 22:51:00 +02:00
echo "80"
echo "# Downloading/Installing Amazon Games"
2023-04-27 13:19:15 +02:00
# Check if user selected Amazon Games
if [ [ $options = = *"Amazon Games" * ] ] ; then
# User selected Amazon Games
echo "User selected Amazon Games"
2023-04-27 02:15:25 +02:00
2023-05-05 01:30:31 +02:00
# Check if Amazon Games Launcher is installed
if [ [ ! -f " $amazongames_path1 " ] ] || [ [ ! -f " $amazongames_path2 " ] ] ; then
2023-04-28 11:01:10 +02:00
# Set the appid for the Amazon Games Launcher
2023-04-27 13:19:15 +02:00
if [ " $use_separate_appids " = true ] ; then
appid = AmazonGamesLauncher
else
appid = NonSteamLaunchers
fi
2023-04-27 02:15:25 +02:00
2023-04-27 13:19:15 +02:00
# 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
2023-04-27 02:15:25 +02:00
2023-04-27 13:19:15 +02:00
# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable
export STEAM_COMPAT_CLIENT_INSTALL_PATH = "~/.local/share/Steam"
2023-04-27 02:15:25 +02:00
2023-05-02 14:52:53 +02:00
# Set the STEAM_COMPAT_DATA_PATH environment variable for Amazon Games Launcher
2023-04-27 13:19:15 +02:00
export STEAM_COMPAT_DATA_PATH = ~/.local/share/Steam/steamapps/compatdata/$appid
2023-04-27 02:15:25 +02:00
2023-04-27 13:19:15 +02:00
# Download Amazon file
if [ ! -f " $amazon_file " ] ; then
echo "Downloading Amazon file"
wget $amazon_url -O $amazon_file
fi
2023-04-28 02:14:36 +02:00
2023-04-27 13:19:15 +02:00
# Run the Amazon file using Proton with the /passive option
echo "Running Amazon file using Proton with the /passive option"
2023-05-02 14:52:53 +02:00
" $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
2023-05-05 01:30:31 +02:00
fi
2023-04-27 13:19:15 +02:00
# Wait for the Amazon file to finish running
wait
fi
2023-04-27 02:15:25 +02:00
2023-05-02 14:52:53 +02:00
2023-04-27 02:15:25 +02:00
wait
2023-04-27 22:51:00 +02:00
echo "90"
echo "# Downloading/Installing EA App"
2023-04-27 13:19:15 +02:00
# Check if user selected EA App
if [ [ $options = = *"EA App" * ] ] ; then
# User selected EA App
echo "User selected EA App"
2023-04-27 02:15:25 +02:00
2023-05-05 01:30:31 +02:00
# Check if The EA App Launcher is installed
if [ [ ! -f " $eaapp_path1 " ] ] || [ [ ! -f " $eaapp_path2 " ] ] ; then
2023-04-28 02:14:36 +02:00
# Set the appid for the EA App Launcher
2023-04-27 13:19:15 +02:00
if [ " $use_separate_appids " = true ] ; then
2023-04-28 11:01:10 +02:00
appid = TheEAappLauncher
2023-04-27 13:19:15 +02:00
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
2023-04-28 02:14:36 +02:00
2023-04-27 13:19:15 +02:00
# Run the EA App file using Proton with the /passive option
echo "Running EA App file using Proton with the /passive option"
2023-05-02 14:52:53 +02:00
" $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
2023-04-27 13:19:15 +02:00
# Wait for the EA App file to finish running
wait
2023-05-05 01:30:31 +02:00
fi
2023-04-27 13:19:15 +02:00
fi
wait
2023-04-28 11:01:10 +02:00
echo "95"
echo "# Downloading/Installing itch.io"
# Check if the user selected itchio Launcher
if [ [ $options = = *"itch.io" * ] ] ; then
# User selected itchio Launcher
echo "User selected itch.io"
2023-05-05 01:30:31 +02:00
# Check if itchio Launcher is installed
if [ [ ! -f " $itchio_path1 " ] ] || [ [ ! -f " $itchio_path2 " ] ] ; then
2023-04-28 11:01:10 +02:00
# 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
2023-05-05 01:30:31 +02:00
2023-04-28 11:01:10 +02:00
# Download itchio file
if [ ! -f " $itchio_file " ] ; then
echo "Downloading itchio file"
wget $itchio_url -O $itchio_file
fi
2023-05-05 13:42:34 +02:00
# 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 "
2023-05-05 01:30:31 +02:00
fi
2023-04-28 11:01:10 +02:00
fi
wait
2023-05-03 06:15:40 +02:00
echo "98"
echo "# Downloading/Installing Legacy Games"
# Check if user selected Legacy Games
if [ [ $options = = *"Legacy Games" * ] ] ; then
# User selected Legacy Games
echo "User selected Legacy Games"
2023-05-05 01:30:31 +02:00
if [ [ ! -f " $legacygames_path1 " ] ] && [ [ ! -f " $legacygames_path2 " ] ] ; then
# Legacy Games Launcher is not installed
2023-05-03 06:15:40 +02:00
# 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
2023-05-05 22:31:27 +02:00
# 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
2023-05-03 06:15:40 +02:00
fi
# Wait for the Legacy file to finish running
wait
2023-05-06 00:24:07 +02:00
echo "99"
echo "# Downloading/Installing Humble Games Collection"
# 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 " $humblegames_path1 " ] ] && [ [ ! -f " $humblegames_path2 " ] ] ; then
# Humble Games Launcher is not installed
# 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
fi
2023-05-03 06:15:40 +02:00
2023-04-28 11:01:10 +02:00
2023-04-27 13:19:15 +02:00
# Delete NonSteamLaunchersInstallation subfolder in Downloads folder
rm -rf ~/Downloads/NonSteamLaunchersInstallation
2023-04-27 02:15:25 +02:00
2023-04-27 22:51:00 +02:00
echo "100"
2023-05-05 01:30:31 +02:00
echo "# Installation Complete - Steam will now restart. Your launchers will be in your library."
2023-04-27 22:51:00 +02:00
) |
zenity --progress \
--title= "Update Status" \
2023-04-28 05:34:49 +02:00
--text= "Starting update..." --width= 450 --height= 350\
2023-04-27 22:51:00 +02:00
--percentage= 0
if [ " $? " = -1 ] ; then
zenity --error \
--text= "Update canceled."
fi
2023-04-27 02:15:25 +02:00
2023-05-05 01:30:31 +02:00
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/deck/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
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/deck/.local/share/Steam/steamapps/compatdata/EpicGamesLauncher/\" %command%"
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/deck/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
elif [ [ -f " $epic_games_launcher_path2 " ] ] ; then
# Gog Galaxy Launcher is installed at path 2
gogshortcutdirectory = " \" $gog_galaxy_path2 \" "
2023-05-06 00:24:07 +02:00
goglaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/GogGalaxyLauncher/\" %command%"
2023-05-05 01:30:31 +02:00
fi
if [ [ -f " $origin_path1 " ] ] ; then
# Origin Launcher is installed at path 1
originshortcutdirectory = " \" $origin_path1 \" "
originlaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
elif [ [ -f " $origin_path2 " ] ] ; then
# Origin Launcher is installed at path 2
originshortcutdirectory = " \" $origin_path2 \" "
2023-05-06 00:24:07 +02:00
originlaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/OriginLauncher/\" %command%"
2023-05-05 01:30:31 +02:00
fi
if [ [ -f " $uplay_path1 " ] ] ; then
# Uplay Launcher is installed at path 1
uplayshortcutdirectory = " \" $uplay_path1 \" "
uplaylaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
elif [ [ -f " $origin_path2 " ] ] ; then
# Uplay Launcher is installed at path 2
uplayshortcutdirectory = " \" $uplay_path2 \" "
2023-05-06 00:24:07 +02:00
uplaylaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/UplayLauncher/\" %command%"
2023-05-05 01:30:31 +02:00
fi
if [ [ -f " $battlenet_path1 " ] ] ; then
# Battlenet Launcher is installed at path 1
battlenetshortcutdirectory = " \" $battlenet_path1 \" "
battlenetlaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
elif [ [ -f " $battlenet_path2 " ] ] ; then
# Battlenet Launcher is installed at path 2
battlenetshortcutdirectory = " \" $battlenet_path2 \" "
2023-05-06 00:24:07 +02:00
battlenetlaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/Battle.netLauncher/\" %command%"
2023-05-05 01:30:31 +02:00
fi
if [ [ -f " $eaapp_path1 " ] ] ; then
# EA App Launcher is installed at path 1
eaappshortcutdirectory = " \" $eaapp_path1 \" "
eaapplaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
elif [ [ -f " $eaapp_path2 " ] ] ; then
# EA App Launcher is installed at path 2
eaappshortcutdirectory = " \" $eaapp_path2 \" "
2023-05-06 00:24:07 +02:00
eaapplaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/TheEAappLauncher/\" %command%"
2023-05-05 01:30:31 +02:00
fi
if [ [ -f " $amazongames_path1 " ] ] ; then
# Amazon Games Launcher is installed at path 1
amazonshortcutdirectory = " \" $amazongames_path1 \" "
amazonlaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
elif [ [ -f " $amazongames_path2 " ] ] ; then
# Amazon Games Launcher is installed at path 2
amazonshortcutdirectory = " \" $amazongames_path2 \" "
2023-05-06 00:24:07 +02:00
amazonlaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/AmazonGamesLauncher/\" %command%"
2023-05-05 01:30:31 +02:00
fi
if [ [ -f " $itchio_path1 " ] ] ; then
# itchio Launcher is installed at path 1
itchioshortcutdirectory = " \" $itchio_path1 \" "
itchiolaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
elif [ [ -f " $itchio_path2 " ] ] ; then
# itchio Launcher is installed at path 2
itchioshortcutdirectory = " \" $itchio_path2 \" "
2023-05-06 00:24:07 +02:00
itchiolaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/itchioLauncher/\" %command%"
2023-05-05 01:30:31 +02:00
fi
if [ [ -f " $legacygames_path1 " ] ] ; then
# Legacy Games Launcher is installed at path 1
legacyshortcutdirectory = " \" $legacygames_path1 \" "
legacylaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
elif [ [ -f " $legacygames_path2 " ] ] ; then
# Legacy Games Launcher is installed at path 2
legacyshortcutdirectory = " \" $legacygames_path2 \" "
2023-05-06 00:24:07 +02:00
legacylaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/LegacyGamesLauncher/\" %command%"
fi
if [ [ -f " $humblegames_path1 " ] ] ; then
# Humble Games Launcher is installed at path 1
humbleshortcutdirectory = " \" $humblegames_path1 \" "
humblelaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers/\" %command%"
elif [ [ -f " $humblegames_path2 " ] ] ; then
# Humble Games Launcher is installed at path 2
humbleshortcutdirectory = " \" $humblegames_path2 \" "
humblelaunchoptions = "STEAM_COMPAT_DATA_PATH=\"/home/deck/.local/share/Steam/steamapps/compatdata/HumbleGamesLauncher/\" %command%"
2023-05-05 01:30:31 +02:00
fi
2023-05-05 22:31:27 +02:00
#VDF Library
2023-05-05 01:30:31 +02:00
# Set the download directory
download_dir = ~/Downloads/NonSteamLaunchersInstallation
# Download the latest release of the vdf library from the Python Package Index
download_url = "https://files.pythonhosted.org/packages/44/7f/74192f47d67c8bf3c47bf0d8487b3457614c2c98d58b6617721d217f3f79/vdf-3.4.tar.gz"
wget -P " $download_dir " " $download_url "
# Extract the downloaded tar.gz file
tar -xvf " $download_dir " /vdf-*.tar.gz -C " $download_dir "
2023-05-05 22:31:27 +02:00
#Setup Tools
# Download the latest release of setuptools from the Python Package Index
download_url = "https://files.pythonhosted.org/packages/9b/be/13f54335c7dba713b0e97e11e7a41db3df4a85073d6c5a6e7f6468b22ee2/setuptools-60.2.0.tar.gz"
wget -P " $download_dir " " $download_url "
# Extract the downloaded tar.gz file
tar -xvf " $download_dir " /setuptools-*.tar.gz -C " $download_dir "
# Change to the extracted directory
cd " $download_dir " /setuptools-*/
# Install setuptools
python setup.py install --prefix= " $download_dir "
export PYTHONPATH = " /usr/lib/python3.10/site-packages: $PYTHONPATH "
2023-05-05 01:30:31 +02:00
# Change to the extracted directory
cd " $download_dir " /vdf-*/
2023-05-06 23:18:49 +02:00
# Set the PYTHONPATH environment variable
2023-05-05 01:30:31 +02:00
export PYTHONPATH = " $download_dir /lib/python3.10/site-packages: $PYTHONPATH "
# Install the vdf library
python setup.py install --prefix= ~/Downloads/NonSteamLaunchersInstallation
2023-05-06 04:23:49 +02:00
shortcuts_vdf_path = $( find ~/.steam/root/userdata -type d -regextype posix-extended -regex '.*/[0-9]{9}/config' -not -path "*/0/*" -not -path "*/anonymous/*" -exec find { } -name shortcuts.vdf \; )
2023-05-05 09:44:56 +02:00
2023-05-06 23:18:49 +02:00
# Check if shortcuts_vdf_path is not empty
if [ [ -n " $shortcuts_vdf_path " ] ] ; then
# Create a backup of the shortcuts.vdf file
cp " $shortcuts_vdf_path " " $shortcuts_vdf_path .bak "
else
echo "Error: shortcuts_vdf_path is empty"
fi
2023-05-05 09:44:56 +02:00
2023-05-05 01:30:31 +02:00
# Run the Python script to create a new entry for a Steam shortcut
python -c "
import vdf
import subprocess
import os
# Load the shortcuts.vdf file
with open( '$shortcuts_vdf_path' , 'rb' ) as f:
shortcuts = vdf.binary_load( f)
# Define the path of the Launchers
epicshortcutdirectory = '$epicshortcutdirectory'
gogshortcutdirectory = '$gogshortcutdirectory'
originshortcutdirectory = '$originshortcutdirectory'
uplayshortcutdirectory = '$uplayshortcutdirectory'
battlenetshortcutdirectory = '$battlenetshortcutdirectory'
eaappshortcutdirectory = '$eaappshortcutdirectory'
amazonshortcutdirectory = '$amazonshortcutdirectory'
itchioshortcutdirectory = '$itchioshortcutdirectory'
legacyshortcutdirectory = '$legacyshortcutdirectory'
2023-05-06 00:24:07 +02:00
humbleshortcutdirectory = '$humbleshortcutdirectory'
2023-05-05 01:30:31 +02:00
if epicshortcutdirectory != '' :
# Create a new entry for the Steam shortcut
new_entry = {
'appid' : '' ,
'AppName' : 'Epic Games' ,
'Exe' : '$epicshortcutdirectory' ,
'StartDir' : '$epicshortcutdirectory' ,
'icon' : '' ,
'ShortcutPath' : '' ,
'LaunchOptions' : '$epiclaunchoptions' ,
'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' ] :
2023-05-06 08:45:52 +02:00
entry.setdefault( 'AppName' , '' )
entry.setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
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( ) :
2023-05-06 08:45:52 +02:00
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'AppName' , '' )
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
if shortcuts[ 'shortcuts' ] [ key] [ 'AppName' ] = = new_entry[ 'AppName' ] and shortcuts[ 'shortcuts' ] [ key] [ 'Exe' ] = = new_entry[ 'Exe' ] :
entry_exists = True
break
if not entry_exists:
# 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
if gogshortcutdirectory != '' :
# Create a new entry for the Steam shortcut
new_entry = {
'appid' : '' ,
'AppName' : 'Gog Galaxy' ,
'Exe' : '$gogshortcutdirectory' ,
'StartDir' : '$gogshortcutdirectory' ,
'icon' : '' ,
'ShortcutPath' : '' ,
'LaunchOptions' : '$goglaunchoptions' ,
'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' ] :
2023-05-06 08:45:52 +02:00
entry.setdefault( 'AppName' , '' )
entry.setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
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( ) :
2023-05-06 08:45:52 +02:00
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'AppName' , '' )
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
if shortcuts[ 'shortcuts' ] [ key] [ 'AppName' ] = = new_entry[ 'AppName' ] and shortcuts[ 'shortcuts' ] [ key] [ 'Exe' ] = = new_entry[ 'Exe' ] :
entry_exists = True
break
if not entry_exists:
# 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
if uplayshortcutdirectory != '' :
# Create a new entry for the Steam shortcut
new_entry = {
'appid' : '' ,
'AppName' : 'Ubisoft Connect' ,
'Exe' : '$uplayshortcutdirectory' ,
'StartDir' : '$uplayshortcutdirectory' ,
'icon' : '' ,
'ShortcutPath' : '' ,
'LaunchOptions' : '$uplaylaunchoptions' ,
'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' ] :
2023-05-06 08:45:52 +02:00
entry.setdefault( 'AppName' , '' )
entry.setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
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( ) :
2023-05-06 08:45:52 +02:00
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'AppName' , '' )
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
if shortcuts[ 'shortcuts' ] [ key] [ 'AppName' ] = = new_entry[ 'AppName' ] and shortcuts[ 'shortcuts' ] [ key] [ 'Exe' ] = = new_entry[ 'Exe' ] :
entry_exists = True
break
if not entry_exists:
# 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
if originshortcutdirectory != '' :
# Create a new entry for the Steam shortcut
new_entry = {
'appid' : '' ,
'AppName' : 'Origin' ,
'Exe' : '$originshortcutdirectory' ,
'StartDir' : '$originshortcutdirectory' ,
'icon' : '' ,
'ShortcutPath' : '' ,
'LaunchOptions' : '$originlaunchoptions' ,
'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' ] :
2023-05-06 08:45:52 +02:00
entry.setdefault( 'AppName' , '' )
entry.setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
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( ) :
2023-05-06 08:45:52 +02:00
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'AppName' , '' )
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
if shortcuts[ 'shortcuts' ] [ key] [ 'AppName' ] = = new_entry[ 'AppName' ] and shortcuts[ 'shortcuts' ] [ key] [ 'Exe' ] = = new_entry[ 'Exe' ] :
entry_exists = True
break
if not entry_exists:
# 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
if battlenetshortcutdirectory != '' :
# Create a new entry for the Steam shortcut
new_entry = {
'appid' : '' ,
'AppName' : 'Battle.net' ,
'Exe' : '$battlenetshortcutdirectory' ,
'StartDir' : '$battlenetshortcutdirectory' ,
'icon' : '' ,
'ShortcutPath' : '' ,
'LaunchOptions' : '$battlenetlaunchoptions' ,
'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' ] :
2023-05-06 08:45:52 +02:00
entry.setdefault( 'AppName' , '' )
entry.setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
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( ) :
2023-05-06 08:45:52 +02:00
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'AppName' , '' )
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
if shortcuts[ 'shortcuts' ] [ key] [ 'AppName' ] = = new_entry[ 'AppName' ] and shortcuts[ 'shortcuts' ] [ key] [ 'Exe' ] = = new_entry[ 'Exe' ] :
entry_exists = True
break
if not entry_exists:
# 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
if eaappshortcutdirectory != '' :
# Create a new entry for the Steam shortcut
new_entry = {
'appid' : '' ,
'AppName' : 'The EA App' ,
'Exe' : '$eaappshortcutdirectory' ,
'StartDir' : '$eaappshortcutdirectory' ,
'icon' : '' ,
'ShortcutPath' : '' ,
'LaunchOptions' : '$eaapplaunchoptions' ,
'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' ] :
2023-05-06 08:45:52 +02:00
entry.setdefault( 'AppName' , '' )
entry.setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
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( ) :
2023-05-06 08:45:52 +02:00
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'AppName' , '' )
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
if shortcuts[ 'shortcuts' ] [ key] [ 'AppName' ] = = new_entry[ 'AppName' ] and shortcuts[ 'shortcuts' ] [ key] [ 'Exe' ] = = new_entry[ 'Exe' ] :
entry_exists = True
break
if not entry_exists:
# 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
if amazonshortcutdirectory != '' :
# Create a new entry for the Steam shortcut
new_entry = {
'appid' : '' ,
'AppName' : 'Amazon Games' ,
'Exe' : '$amazonshortcutdirectory' ,
'StartDir' : '$amazonshortcutdirectory' ,
'icon' : '' ,
'ShortcutPath' : '' ,
'LaunchOptions' : '$amazonlaunchoptions' ,
'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' ] :
2023-05-06 08:45:52 +02:00
entry.setdefault( 'AppName' , '' )
entry.setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
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( ) :
2023-05-06 08:45:52 +02:00
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'AppName' , '' )
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
if shortcuts[ 'shortcuts' ] [ key] [ 'AppName' ] = = new_entry[ 'AppName' ] and shortcuts[ 'shortcuts' ] [ key] [ 'Exe' ] = = new_entry[ 'Exe' ] :
entry_exists = True
break
if not entry_exists:
# 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
if itchioshortcutdirectory != '' :
# Create a new entry for the Steam shortcut
new_entry = {
'appid' : '' ,
2023-05-05 13:42:34 +02:00
'AppName' : 'itch.io' ,
2023-05-05 01:30:31 +02:00
'Exe' : '$itchioshortcutdirectory' ,
'StartDir' : '$itchioshortcutdirectory' ,
'icon' : '' ,
'ShortcutPath' : '' ,
'LaunchOptions' : '$itchiolaunchoptions' ,
'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' ] :
2023-05-06 08:45:52 +02:00
entry.setdefault( 'AppName' , '' )
entry.setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
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( ) :
2023-05-06 08:45:52 +02:00
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'AppName' , '' )
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
if shortcuts[ 'shortcuts' ] [ key] [ 'AppName' ] = = new_entry[ 'AppName' ] and shortcuts[ 'shortcuts' ] [ key] [ 'Exe' ] = = new_entry[ 'Exe' ] :
entry_exists = True
break
if not entry_exists:
# 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
if legacyshortcutdirectory != '' :
# Create a new entry for the Steam shortcut
new_entry = {
'appid' : '' ,
'AppName' : 'Legacy Games' ,
'Exe' : '$legacyshortcutdirectory' ,
'StartDir' : '$legacyshortcutdirectory' ,
'icon' : '' ,
'ShortcutPath' : '' ,
'LaunchOptions' : '$legacylaunchoptions' ,
'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' ] :
2023-05-06 08:45:52 +02:00
entry.setdefault( 'AppName' , '' )
entry.setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
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( ) :
2023-05-06 08:45:52 +02:00
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'AppName' , '' )
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'Exe' , '' )
2023-05-05 01:30:31 +02:00
if shortcuts[ 'shortcuts' ] [ key] [ 'AppName' ] = = new_entry[ 'AppName' ] and shortcuts[ 'shortcuts' ] [ key] [ 'Exe' ] = = new_entry[ 'Exe' ] :
entry_exists = True
break
if not entry_exists:
# 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
2023-05-06 00:24:07 +02:00
if humbleshortcutdirectory != '' :
# Create a new entry for the Steam shortcut
new_entry = {
'appid' : '' ,
'AppName' : 'Humble Games Collection' ,
'Exe' : '$humbleshortcutdirectory' ,
'StartDir' : '$humbleshortcutdirectory' ,
'icon' : '' ,
'ShortcutPath' : '' ,
'LaunchOptions' : '$humblelaunchoptions' ,
'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' ] :
2023-05-06 08:45:52 +02:00
entry.setdefault( 'AppName' , '' )
entry.setdefault( 'Exe' , '' )
2023-05-06 00:24:07 +02:00
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( ) :
2023-05-06 08:45:52 +02:00
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'AppName' , '' )
shortcuts[ 'shortcuts' ] [ key] .setdefault( 'Exe' , '' )
2023-05-06 00:24:07 +02:00
if shortcuts[ 'shortcuts' ] [ key] [ 'AppName' ] = = new_entry[ 'AppName' ] and shortcuts[ 'shortcuts' ] [ key] [ 'Exe' ] = = new_entry[ 'Exe' ] :
entry_exists = True
break
if not entry_exists:
# 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
2023-05-05 01:30:31 +02:00
# Save the updated shortcuts dictionary to the shortcuts.vdf file
with open( '$shortcuts_vdf_path' , 'wb' ) as f:
vdf.binary_dump( shortcuts, f) "
# Delete NonSteamLaunchersInstallation subfolder in Downloads folder
2023-05-06 04:29:54 +02:00
rm -rf ~/Downloads/NonSteamLaunchersInstallation
2023-05-05 06:26:39 +02:00
# Detach script from Steam process
2023-05-06 04:29:54 +02:00
nohup sh -c 'sleep 10; /usr/bin/steam' &
2023-05-05 06:26:39 +02:00
# Close all instances of Steam
2023-05-06 04:29:54 +02:00
killall steam
2023-05-05 06:26:39 +02:00