ChimeraOS / chimera

A web interface for managing Steam remotely
MIT License
235 stars 27 forks source link

[Suggestion] Make steam-buddy manage Steam games #11

Open sharkwouter opened 4 years ago

sharkwouter commented 4 years ago

Introduction

Kind of obvious, you probably already came up with this idea. I was thinking steam-buddy could be used to install and uninstall steam games and restart steam to apply shortcuts. It could also show your library in a nice overview.

I've done a bit of research into what we'll need to be able to offer this.

Useful files

I've found that the following files contain information we'd need:

Missing pieces

The information found in these files is almost enough to show everything we need. The only things missing are names for games and thumbnails. Valve has an API which can gives a list of all application names, which can be found here. For the thumbnails we can probably use the thumbnails from Steam which are already being cached by steam-tweaks.

Controlling Steam

Now the final missing piece is how we could manage Steam. This can be done with by sending commands to steam from the command line as the user which is currently running steam. I found this out by looking at the steamkillall.sh script in SteamOS which makes Steam kill itself (and restart, because lightdm will restart it). We could use this as well:

#!/bin/sh

touch /tmp/hkkillfile
steam steam://hkkillall

Edit: Steam doesn't respond to this script anymore, so instead we now just use the pkill command to stop Steam.

Installing applicaitons can be done in a similar way by running steam steam://install/730 for CS:GO for instance. Uninstalling would be done with steam steam://uninstall/730. In steam big picture mode steam asks no questions when doing this, unlike in desktop mode. Applications can also be started with steam steam://run/730, but this might not be as useful. 730 can of course be replaced by any stream app id.

Closing comments

Sorry if this is a long post. We should probably discuss this before trying to implement it, but I wanted to make sure I had what I found written down somewhere we can use it.

alkazar commented 4 years ago

Yes, I was thinking about something like this as well. Thanks for doing the research.

I am not sure that showing the Steam games and installing them is all that useful. I can imagine being able to see download progress might be useful though.

I also recall the steam website and app being able to initiate a game install and monitor progress in the past, but last I looked I couldnt do this anymore.

sharkwouter commented 4 years ago

The page where you can install games is still available. Go to your profile and the to games. It does not allow you to install games with proton, though, and the API doesn't seem to be documented. We may be able to reverse engineer it, but we'd probably have to let users log in to the steam website then.

I think installing games could be useful if we implement authentication, some other security features and upnp. Then you can fully manage your GamerOS machine when you're not home through steam-buddy.

sharkwouter commented 4 years ago

There is some documentation for the other API here: https://partner.steamgames.com/doc/webapi_overview

sharkwouter commented 4 years ago

Stopping steam has been implemented. I've updated my post on how to do this, since the command which is found in the SteamOS script no longer works (not even on SteamOS).