Auto update Proton GE on Linux (Glorious Eggroll version with latest fixes for games)
EDIT: Based largely on work by laedit (Jérémie Bertrand) https://laedit.net/2024/08/04/installing-and-updating-ge-proton-automatically.html
/EDIT

Run this bash script to automatically download the latest version of Proton GE. May work on Steam Deck, probably needs adjustments to at least the guide below.

Restart Steam to have it update the list of Protons that are available (since this Proton is externally added by you).

Paste this code into a file like proton-ge-update.bash , save. Run from terminal
bash proton-ge-update.bash

or
give the file executable permission for your user
chmod u+x proton-ge-update.bash
and run from the terminal
./proton-ge-update.bash

NB! I have not tested this for the Steam flatpak version, should work but not sure. The date of this post is May 13 2025 , this script may stop working in the future and need updating.

#!/bin/bash # Update GE Proton set -euo pipefail currentUser=$(whoami) githubReleaseUrl="https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest" compatibilityToolsDir=compatibilitytools.d/ steamNativeDir=/home/$currentUser/.steam/root/ steamFlatpakDir=/home/$currentUser/.var/app/com.valvesoftware.Steam/data/Steam/ tmpDir=/tmp/proton-ge-custom if [ -d "$steamNativeDir" ]; then dir="$steamNativeDir$compatibilityToolsDir" elif [ -d "$steamFlatpakDir" ]; then dir="$steamFlatpakDir$compatibilityToolsDir" else echo "steam not installed or installation not supported" echo "folders searched:" echo "- $steamNativeDir$compatibilityToolsDir" echo "- $steamFlatpakDir$compatibilityToolsDir" exit 1 fi # make steam directory if it does not exist mkdir -p $dir latestRelease=$(curl -s $githubReleaseUrl) version=$(echo "$latestRelease" | grep tag_name | cut -d\" -f4) # check if version already installed if [ -d "$dir$version" ]; then echo "latest version $version already installed" exit 0 fi # make temp working directory mkdir $tmpDir cd $tmpDir echo "installing version $version" # download tarball curl -sLOJ "$(echo "$latestRelease" | grep browser_download_url | cut -d\" -f4 | grep .tar.gz)" # download checksum curl -sLOJ "$(echo "$latestRelease" | grep browser_download_url | cut -d\" -f4 | grep .sha512sum)" # check tarball with checksum sha512sum -c ./*.sha512sum # extract proton tarball to steam directory tar -xf GE-Proton*.tar.gz -C $dir # copy release notes echo -e "$(echo "$latestRelease" | grep body | cut -d\" -f4)" >> "$dir$version/release_note.txt" cd .. rm -r $tmpDir echo "version $version installed"
最后由 CohenTheBlue 编辑于; 5 月 13 日 上午 3:37
< >
正在显示第 1 - 2 条,共 2 条留言
Elzombi47 7 月 5 日 上午 9:07 
Thanks!!
I've made a slightly different script based on yours that saves it on GE-Proton folder instead of a folder that changes its name on every new version.
It reads the file "version" to see if the latest version is already installed.
#!/bin/bash # Update GE Proton set -euo pipefail currentUser=$(whoami) githubReleaseUrl="https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest" compatibilityToolsDir=compatibilitytools.d/ steamNativeDir=/home/$currentUser/.steam/root/ steamFlatpakDir=/home/$currentUser/.var/app/com.valvesoftware.Steam/data/Steam/ tmpDir=/tmp/proton-ge-custom if [ -d "$steamNativeDir" ]; then dir="$steamNativeDir$compatibilityToolsDir" elif [ -d "$steamFlatpakDir" ]; then dir="$steamFlatpakDir$compatibilityToolsDir" else echo "steam not installed or installation not supported" echo "folders searched:" echo "- $steamNativeDir$compatibilityToolsDir" echo "- $steamFlatpakDir$compatibilityToolsDir" exit 1 fi finalDir=$dir/GE-Proton # make steam directory if it does not exist mkdir -p $dir latestRelease=$(curl -s $githubReleaseUrl) version=$(echo "$latestRelease" | grep tag_name | cut -d\" -f4) # check if version already installed if [[ -d "$finalDir" && "$(cat $finalDir/version | awk '{print $2}')" == "$version" ]]; then echo "latest version $version already installed" exit 0 fi # make temp working directory mkdir $tmpDir cd $tmpDir echo "installing version $version" # download tarball curl -sLOJ "$(echo "$latestRelease" | grep browser_download_url | cut -d\" -f4 | grep .tar.gz)" # download checksum curl -sLOJ "$(echo "$latestRelease" | grep browser_download_url | cut -d\" -f4 | grep .sha512sum)" # check tarball with checksum sha512sum -c ./*.sha512sum # extract proton tarball to steam directory tar -xf GE-Proton*.tar.gz -C $dir # copy release notes echo -e "$(echo "$latestRelease" | grep body | cut -d\" -f4)" >> "$dir$version/release_note.txt" cd .. rm -r $tmpDir # move new version to GE-Proton folder rm -rf $finalDir mv $dir$version $finalDir echo "version $version installed"
< >
正在显示第 1 - 2 条,共 2 条留言
每页显示数: 1530 50