ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.24k stars 175 forks source link

Turn on proton for all games and set individual game's run parameters via command-line only #6121

Open tatsujb opened 5 years ago

tatsujb commented 5 years ago

Feature Request

I'd like for it to be possible to streamline the installation of a game via command line / terminal.

right now this is almost possible using steam + steamcmd but the issue remains that you cannot set "proton for all games" to enabled via the command line.

also you cannot edit a game's individual environment commands. (or maybe you can if you know what file to edit but this is not documented.)

I confirm:

Description

#!/bin/bash
# launch steam in order to have the user set game launch options and enable steam play for
# all games
steam -login $steam_user_name $steam_password;
# once steam has exited the script may continue (we are assuming the end user correctly did
# his part)
# now we start steam cmd in order to download a game from command line
steamcmd +login $steam_user_name $steam_password +@sSteamCmdForcePlatformType windows +app_update 9420 validate +quit;
# this finishes on it's own then 
# we launch the game via steam to finalize installation. this too cannot be scripted. 
# it would be much more usefull if we could simply run steam check (this thing that
# installs final dependencies such as directX and .net) without having to start steam
# UI nor the game in question
steam -login '$steam_user_name' '$steam_password' -applaunch 9420 -shutdown -nofriendsui;
# it's also worth pointing out (although not the focus of this issue)
# that the "shutdown" and "nofriendsui" arguments are broken and do nothing as it stands.
# also if steam and steamCMD are being run for the first time on a PC, and username and
# password are passed as arguments, the PC they are run on will not be whitelisted by entering 
# in steam guard wheras, if you run steam from GUI first and type in steamguard code once,
# steamguard promt will not show again for either GUI or command line. as it should.
kisak-valve commented 5 years ago

Hello @tatsujb, this is a feature request for Steam rather than Proton, because it's Steam that handles downloading and managing content, so I've transferred this feature request to the steam-for-linux issue tracker.

tatsujb commented 5 years ago

I've got an example use-case : https://github.com/tatsujb/installFAFscript

my script allows an ubuntu user to enjoy FAF (the unofficial client) + supreme commander forged alliance.

the script unfortunately is not 100% automated, it still requires user input at certain moments, moments which I really feel could easily be fixed.

enabling steam play for all games.

is there is a non gui-way to do this? I would be most pleased to know.

tatsujb commented 5 years ago

@kisak-valve , hi, is there any pointers I can get on this? I'm sure that doing it is actually already possible but that I simply do not know where to look.

perhaps it's a dumb as altering a .config file or something of the nature?

tatsujb commented 5 years ago

I haven't found anything for enabling proton by command line but for setting launch options there may yet be a solution :

for the game's settings I found localconfig.vdf

under ~/.steam/steam/userdata/63405752/config but replacing an entry with something else especially while steam is open, leads to steam replacing it from memory upon close/restart/menu change.

for example I am changing under "Software" :

"9420"
                    {
                        "LastPlayed"        "1554153269"
                    }

into

"9420"
                    {
                        "LastPlayed"        "1554153269"
                        "ViewedLaunchEULA"      "1"
                        "ViewedSteamPlay"       "1"
                        "BadgeData"     "02000000080b"
                        "LaunchOptions"     "PROTON_NO_ESYNC=1  %command%"
                    }

the result is not applied if steam was running.

image

chyyran commented 2 years ago

+1 bumping this issue for a feature to set LaunchOptions programmatically, either via a steam:// URL, steamcmd or some API to manually refresh localconfig.vdf.

Current hack to kill steam, edit localconfig.vdf, and restart steam is pretty hacky.

maxpain commented 1 year ago

Any updates?