CLI to download latest or manage your GE-Proton for Steam
- Author: Tuncay D.
- Source: Github
- Update Notes: CHANGES
- License: MIT License
Did you always wanted to install the newest GE-Proton from Glorious Eggroll, but constantly get confused how to download files with a graphical browser? And you don't like unpacking files manually? Well, today is your lucky day. This application can do all of this and less (wink wink to protonup). A commandline tool for automating the process to display description and list, check, download, install or remove GE-Proton packages, while staying in the terminal.
GE-Proton is an alternative to the Valve Proton in Steam. It gets faster updates and often has additional fixes.
demo.mp4
demo-fzf.mp4
- supports only GE-Proton from Glorious Eggroll
- install or uninstall a package version
- list local installations
- list available versions from online repository
- display summary description
- automatically verify downloads
- no external dependency on a Python library
- no graphical user interface
- Steam only
- Linux only
- ... and much less!
git clone https://github.com/thingsiplay/geprotondl
cd geprotondl
bash suggested_install.sh
geprotondl --help
# And if you have fzf installed, you can also try following command:
geprotondl-fzf
This program is written in Python 3.10. No other Python library is required. Only the standard command tar is needed, which is installed at default on all Linux distributions anyway. The Bash script geprotondl-fzf.sh is not part of the core application and requires fzf to build and show an interactive menu.
Download directly from Github repository with:
git clone https://github.com/thingsiplay/geprotondl
cd geprotondl
geprotondl.py is the main application. Just copy the script into a folder in
your system $PATH
and give it the executable bit. You can also rename the
file to remove the extension if you want. There is an optional installer
suggested_install.sh script for convenience. It searches for an usable
directory from $PATH
and copy, rename and set permission of all commands. You
can run the installer with arguments too, so it will only look for those
folders.
bash suggested_install.sh
or
bash suggested_install.sh "$HOME/my/bin" "$HOME/another/path"
Following commands are provided afterwards:
geprotondl
geprotondl-fzf
When you run the application for the first time, it will download a small database file from Github containing the links and other information for each GE-Proton release. This file expires after 1 hour and will be re-downloaded next time.
Use $ geprotondl --help
to list all options and their brief descriptions.
The folder where all versions are downloaded and installed into is searched
each time the program starts. It will lookup for your Steam installation and
use the subfolder "compatibilitytools.d", which is where Steam expects
alternative Proton versions. Or force the usage of a specific folder with
option -D DIR
or --dir DIR
.
There are 3 distinct main operational modes: install, remove and test
With the option -i
or --install
the newest version of GE-Proton will be
looked up and suggested for installation. Combine it with -l
or --list
to
choose a specific version from the online repository. A version can be chosen
by typing a number, which corresponds to a specific GE-Proton version in the
list.
geprotondl --install --list
With the option -r
or --remove
the oldest version of GE-Proton found on
your system is suggested for uninstall. Combine it with -l
or --list
to
choose a specific version from local installations. A version can be chosen by
typing a number, which corresponds to a specific GE-Proton version in the list.
geprotondl --remove --list
Use -t
or --test
to check if the newest version is installed on your
system. If it's not, then the tag name of it will be output.
geprotondl --test
This is also helpful to test by combining with -T NAME
or --tag NAME
with a
specific version. Option -b
or --brief
will change the output from full
tagname to short version number only. However combining with a listing such as
--list
or --releases
will always output the selected version.
To show a list without any user interaction for selection, use the listing
option without an operational mode. To get a list of all local installed
versions, use -l
or --list
.
geprotondl --list
And to get a list of all available versions ready for install from repository,
use -L
or --releases
.
geprotondl --releases
Another great option is -s
or --summary
to print description and meta
information about the selected GE-Proton version. Note, the program defaults to
the newest online available one, if nothing else is specified or selected.
geprotondl --summary
The summary can be combined with the other options to get information of
specific selected versions in example. And output can be customized to a degree
too; check out -b
or --brief
and -H
or --human
.
While these useful scripts are not part of the core application itself, they are still useful and created for your convenience.
Uses external application fzf
to build a menu with all available GE-Proton
versions. While browsing the list, the current highlighted entry will show
corresponding summary. The confirmed selection will be prompted for
installation, but if it's already installed, it will ask to remove. Only use
short options with single dash, such as -f
because long options are currently
not compatible. All options are forwarded to the main program geprotondl.py
as well.
These files are created by the script or optionally by the user. (Besides the downloaded and unpacked GE-Proton installations in the "compatibilitytools.d" folder.)
~/.cache/geprotondl/releases.json
: Main database to operate on. This file is downloaded from Github API on start of application and will expire after 1 hour. This is cached, so a re-download won't slow down with every usage of the program in short periods. Github has a limit how often the database can be accessed per hour. A re-download is required in order to detect any new available version of GE-Proton.
~/.cache/geprotondl/*.summary
: These are just text files and contain output of the--summary
option for each GE-Proton version. This helps with the performance when scrolling through the dynamically created menu, as the summary is loaded every time the current selection focus changes.
The program creates temporary folder to save downloads into. These are deleted
after the job is done. The exact folders are determined by Python and the
system. On my Archlinux based system they are found under /tmp
and consist of
random characters such as /tmp/tmpz4zmi290/
.