Skip to content
/ theo Public

πŸ§”πŸ»β€β™‚οΈ macOS, Linux (Steam Deck) client for vangogh

License

Notifications You must be signed in to change notification settings

arelate/theo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

theo

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.

Installing theo

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

Configure theo to connect to vangogh

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.

Installing native versions with theo

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

Installing Windows versions on macOS, Linux with theo

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

Advanced usage scenarios

Using specific language version

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).

Environment variables for Windows version

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

Steam shortcuts

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

Retina mode for Windows installations on macOS

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

Where is theo data stored?

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

Why is it called 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.

Windows client?

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.

About

πŸ§”πŸ»β€β™‚οΈ macOS, Linux (Steam Deck) client for vangogh

Resources

License

Stars

Watchers

Forks

Packages

No packages published