62

Hey everyone! I started working on this a month ago and then forgot about it after I finished v1.0. Today, I announce v2.0! This adds so many improvements and makes it so much more functional than before.

Ultimately, every time I updated Proton GE, I got more and more tired of having to keep going to github, downloading the latest archive, extracting it, restarting steam, and configuring it to use the new version. So I decided to automate it! You can now run this script, and it does everything for you, and so long as it's not the first time you've used it, you don't even have to restart steam!

Now, as I say in the README, the official GE-Proton repo gives an example of script that does something similar, but that example is intended as more of a one time thing, and I felt like I could make a more permanent script that also makes some functional improvements over their implementation.

I hope you all enjoy!

you are viewing a single comment's thread
view the rest of the comments
[-] thingsiplay@lemmy.ml 20 points 1 day ago* (last edited 1 day ago)

I also wrote my own Python based installer, updater, manager of Proton GE (but do not post it here, as this is about your project and not mine). Years back when I posted it, people pointed out such a cli tool already existed: protonup. And for those who want a GUI, protonup-qt exists too.

rm -r $tempdir

This is extremely dangerous command! If anything goes wrong for whatever reason and the variable $tempdir is empty at the time of this command, then it would delete everything. At the very least you should do a check if variable is not empty and resolves to an existing directory. Better yet, make it multiple steps:

  1. check if variable is not empty
  2. check if variable resolves to a directory
  3. cd into the directory and delete content by name instead a variable, like rm -r GE-Proton* and then cd .. back and delete empty directory with rmdir $tempdir

This is a more controlled way of deleting files. I admit that I am a bit paranoid with rm -r commands.

[-] who@feddit.org 12 points 1 day ago

This is extremely dangerous command! If anything goes wrong for whatever reason and the variable $tempdir is empty at the time of this command, then it would delete everything.

And this danger is not merely theoretical. Steam for Linux did it in 2015.

https://github.com/valvesoftware/steam-for-linux/issues/3671

[-] ccf@lemmy.world 4 points 1 day ago

It's not dangerous in this case, if $tmpdir was unset, all that would happen is rm -r $tempdir complaining about a missing operand. The only issue I can see this causing is that if mktemp -d fails rm would print an unhelpful error message. Using rm -rf instead would hide it, so could could checking the variable and conditionally running rm -r, as you suggested.

[-] thingsiplay@lemmy.ml 8 points 1 day ago

Scripts and programs are edited all the time, either by its original author or for modifications when downloaded. Maybe the original author forgot something when editing and suddenly its no longer safe. Or $tempdir isn't a unique name, meaning at different places (be it copy paste) could manipulate the global variable. Human errors happen all the time. Better do check in place, instead hoping that this stays safe. Alternatively create a tempdir with a fixed part in name, like "${tempdir}_protonge".

[-] 30p87@feddit.org 3 points 1 day ago

Also, use set -euo pipefail (look at man set) in every script that's more than four lines. It would instantly fail and exit upon finding an unbound variable.

this post was submitted on 30 May 2026
62 points (91.9% liked)

Linux Gaming

26017 readers
165 users here now

Discussions and news about gaming on the GNU/Linux family of operating systems (including the Steam Deck). Potentially a $HOME away from home for disgruntled /r/linux_gaming denizens of the redditarian demesne.

This page can be subscribed to via RSS.

Original /r/linux_gaming pengwing by uoou.

No memes/shitposts/low-effort posts, please.

Resources

Help:

Launchers/Game Library Managers:

General:

Discord:

IRC:

Matrix:

Telegram:

founded 3 years ago
MODERATORS