theo is a command-line (CLI) client for vangogh that allows downloading, installing and running games from your local DRM-free collection. At the moment theo implements support for macOS and Linux, tested on Steam Deck.
To install theo you'll need Go installed on your machine. Please follow official instructions to do that.
When Go is properly installed, you can then run go install github.com/arelate/theo@latest
to install the latest available version of theo.
Alternatively theo can be compiled from source. For example to compile for Steam Deck (on another operating system):
GOOS=linux GOARCH=amd64 go build -o theo
Before using any of the commands below, theo needs to be set up to connect to vangogh:
theo set-vangogh-connection <protocol> <address> <port> <username> <password>
- you need to provide address (e.g. vangogh.example.com), username and password for users authorized to download from that vangogh instance. Other parameters are optional
theo test-vangogh-connection
- will perform a series of connectivity and authorization tests to validate your settings
This is only needed to be done once and theo will use those settings from that moment. If you ever need to reset this configuration, reset-vangogh-connection
can help with that.
Basic usage of theo comes down to the following commands:
theo install <gog-game-id>
- will install current OS version of a game
theo run <gog-game-id>
- will run installed version of a game
theo uninstall <gog-game-id> -force
- will uninstall a game
More helpful commands:
theo list-installed
- will print all currently installed games
theo reveal-installed <gog-game-id>
- will open the directory containing game installation
theo provides a set of commands to manage Windows versions on macOS, Linux using WINE:
theo wine-install <gog-game-id>
- will install Windows version of a game
theo wine-run <gog-game-id>
- will run installed version of a game
theo wine-uninstall <gog-game-id> -force
- will uninstall a game
On macOS this functionality requires a version of CrossOver purchased and licensed for the current user.
On Linux theo will use umu-launcher and GE-Proton. You don't need to do anything, theo will get the latest versions for you automatically as needed.
More helpful commands:
theo list-wine-installed
- will print all currently installed Windows versions
theo allows you to specify language version to use, when available on GOG and setup on vangogh:
theo install <gog-game-id> -lang-code ja
- will install Japanese version of a game (if it's available)
theo run <gog-game-id> -lang-code ja
- will run Japanese version of a game (if it's installed)
You need to specify language code for every command (e.g. run
, uninstall
, reveal-installed
). With this functionality you can have multiple version of the same game in different languages installed at the same time (applies to native and Windows versions).
theo helps you manage Windows versions installations and WINE options with environmental variables:
theo set-prefix-env <gog-game-id> -env VAR1=VAL1 VAR2=VAL2
- will set VAR1 and VAR2 environmental variables for this game installation and those values (VAL1 and VAL2) will be used for any commands under those installations (e.g. wine-run
)
More helpful commands:
theo default-prefix-env <gog-game-id>
- will reset all environment variables to default values for the current operating system
theo delete-prefix-env <gog-game-id>
- will completely removed all environment variables (even default ones) for this game installation
theo list-prefix-env
- will print all environment variables for every game installed with theo
NOTE: Default environment variables set for each operating systems are listed here: cli/default_prefix_env.go
theo will automatically add Steam shortcuts (when Steam installation is detected) and will include artwork provided by vangogh. Steam shortcuts are added during install
and removed during uninstall
.
While this functionality has been designed around Steam Deck, it works equally well for Steam Big Picture mode on a desktop operating system.
NOTE: Steam shortcuts are added for all users currently logged into Steam under current operating system user account.
Additionally you can use the following commands to manage Steam shortcuts:
theo add-steam-shortcut <gog-game-id>
- will add Steam shortcut for a game
theo remove-steam-shortcut <gog-game-id>
- will remove Steam shortcut for a game
theo list-steam-shortcuts
- will list all existing Steam shortcuts
theo provides mod-prefix-retina
command to set Retina mode. See more information here. To revert this change use the command with a revert
flag, e.g.:
theo mod-prefix-retina <gog-game-id> -revert
theo stores all state under the current user data directory:
- on Linux that is ~/.local/share/theo
- on macOS that is ~/Library/Application Support/theo
Theodorus van Gogh (1 May 1857 β 25 January 1891) was a Dutch art dealer and the younger brother of Vincent van Gogh. Known as Theo, his support of his older brother's artistic ambitions and well-being allowed Vincent to devote himself entirely to painting. As an art dealer, Theo van Gogh played a crucial role in introducing contemporary French art to the public.
Implementing (native installations) Windows support in the future should be relatively straightforward - a good starting point would be adding actual implementations for stub functions in cli/windows_support.go and then testing assumptions - e.g. data/user_dirs.go. At the moment this is not a priority, but might happen in the future.