Open Guttles opened 1 year ago
We import Steam's own games, not external things added as "non-steam game" inside Steam.
How would this feature work? Does Steam run an external EXE file anywhere on disk using its own Proton as a wrapper?
Does it run native Linux games and apps too?
Is there any MIME protocol in Steam for running externally imported Steam games/apps?
What is the database that contains the list of external Steam games?
All of these issues will have to be researched. Help wanted with the research, since it's an unusual request and we're very busy with high priority features.
Steam can run an .exe with proton, and it is given its own prefix in the compatdata folder. Steam can also run native Linux games, as long as they have an executable or .desktop file to run.
Keep these things in mind too:
Windows games and apps can be installed via Bottles instead, and then imported via our Bottles support. It is definitely a better way to manage Non-Steam Windows software in general since Bottles makes it trivial to install and tweak Windows software.
Heroic Games Launcher also lets you sideload non-GOG/Epic games, and we already import those sideloaded games. This was possible because Heroic has full MIME launching support for sideloaded games, and a clean JSON library file that we could analyze.
For native Linux games, we will be supporting those via the future .desktop
file importing, which means they won't have to be added in Steam.
Steam can run an .exe with proton, and it is given its own prefix in the compatdata folder. Steam can also run native Linux games, as long as they have an executable or .desktop file to run.
Thanks for that information. If you can dig up which file Steam stores the non-steam library in, and also checking if there is any app identifier that makes those external games launchable OUTSIDE Steam (a way to tell Steam "run that external game"), we might be able to get somewhere with this. There is a risk that Steam lacks any way to launch those games from outside Steam.
You can try right clicking the Non-Steam Game in Steam's library, looking for a "create desktop shortcut/file" option (I think Steam has that option, at least for its own games, but I'm not at the computer), and then looking inside that desktop file to see how Steam launches the external app.
Okay, I will install Overwatch 2 with Bottles then, thanks! Sorry if I didn't do things right, I'm very new to using GitHub.
@Guttles No worries, you did nothing wrong. :)
And to summarize, you can install those sideloaded games in either Heroic Games Launcher or in Bottles (be sure to add them to Bottles "Library" tab to be able to import them to Cartridges).
The questions about supporting Steam's "non-steam games" remain: Can those games be launched outside Steam (try creating a desktop shortcut to them from inside Steam), and where is the data stored. If it turns out to be simple, we could add the feature.
If you open the .desktop file that Steam creates for the game in a text editor, you should find the command that launches the game. You can then add this command to the "Executable" field in Cartridges to launch it from there. It should look something like this steam steam://rungameid/728880
Hey, I've almost got this working. I'm using steam flatpak in ublue's Bluefin to run some heroic games because of steam input and I wanted to launch it through cartridges.
If you're not using flatpaks none of this is needed, of course, so skip for the problems :)
Here is what I did:
In $HOME/bin (or any dir in your $PATH) create a file called steam
#!/bin/bash
flatpak run com.valvesoftware.Steam "$@"
In Flatseal, give steam access to xdg-desktop:rw
under "Filesystem" > "Other files"
Also en Flatseal, give steam acces to Desktop
under "Persistent" > "Files"
Open steam and choose a game to create a desktop shortcut, it should now create a shortcut under the host Desktop folder, and it will launch because of the steam
shortcut created in step 1.
.desktop
files from the $HOME/Desktop
dir so I've moved them to $HOME/.local/share/applications
steam://rungameid/
so it'll never import itFor this to work we should have a way to differentiate between steam and non-steam desktop entries (the gameid pattern maybe), or Cartridges could check if the steam gameid is already imported, to not import it again.
I have Overwatch 2 in Steam as a non steam game, but it runs with proton and all. I would like to be able to launch it from cartridges as well, but I can't seem to do it.