-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Automatically detect (some) non-steam games #33
Comments
I should add that both Lutris and Bottles are among the easiest and, I think, most popular methods of installing non-steam games---which is to say, I don't think this is particularly niche, and a lot of users might benefit from this feature. That being said, I don't know how easy or hard it would be to implement, I just know it to be possible. The other major installer/manager people use is heroic launcher. I have not used it, so this may be incorrect, but it looks like even though it does not provide a CLI like the above programs, it saves information about games in |
Thank you for your submission, First off I want to check which version of MicroSDeck you are using? In particular if you have the old version from the production store or are using the latest from testing / preview. It is possible to add any game from the Steam library to an SD card via the Edit MicroSD Card menu. This means no matter which manager you use, as long as the game is playable directly from steam (and not through the manager itself) it should all work the same. Now if you are asking to be able to add games which do not exist within steam to the MicroSD card then I must ask why? At that point there is no game which can display which card it is on. The only way to view which card the game is on would be to flip through every single card and check the list of games for the existence of this one game. The way that the database is set up is to use the steam I recommend just adding all the games to steam as shortcuts (most if not all launchers support this. And there are third party tools to create the shortcuts if the launcher doesn't) and adding them to MicroSDeck that way. |
Thank you for the prompt reply! Sorry if my original issue description was not clear; I am aware that non-steam games can be manually added to microSDeck, I was outlining some steps as to how microSDeck might find and manage them automatically, just as it currently does with Steam games. With Steam games, microSDeck does all the work of figuring out what games are installed on each SD card. There's no need to manually manage them. To clarify further, I am talking about non-steam games, in the steam library, and therefore with an assigned appid. The "detection" would simply be a mechanism that enables microSDeck to figure out where a non-steam game is installed, so that it would not be necessary for the user to manually tell microSDeck. This might end up being a lot of effort, and possibly enough code to be out of scope for this project. However, it might also be reasonably easy, and I think it certainly would be a nice feature: some (a lot?) of users, myself included, mostly only add non-steam games from these launchers, so this feature would mean there is no need to manually manage games anymore... Manual management is great and I am grateful it exists, but it's a little annoying, and the sort of thing I consistently forget to do! |
Ohhh, I see what you are talking about. This is absolutely something I would consider. I think the biggest challenge to solve here is linking the output of those commands you provided with the games as they appear in Steam. Other than that I don't see any reason why this feature shouldn't exist. Can you quickly confirm for me that running those commands will result in no output if no micosd card is inserted and some output if it is. Or does it always report the games it knows about and MicroSDeck would need to check if the file path exists? Since I already have a lot of pressure to get MicroSDeck to 1.0 This will have to take a bit of a back seat. But I am on board with this functionality being added. |
Both lutris and bottles always reports the games, so the command output is the same no matter if the microsd is inserted or not.
I have a possible flow for that, but figuring out a better/more elegant way might be challenging. Here's one approach:
I am not very familiar with steam API/how to obtain the above information, and I haven't yet looked at microSDeck's code, so the viability of the above might vary. I might try to implement a proof of concept, but I'm not sure if I can submit a full pull request for this... |
After looking through MicroSDeck's code, I see that non-steam games are detected client-side in the UI, i.e. read from steam's own This complicates the above process a bit; however, non-steam games might also be obtained by the backend, by reading This option is likely easier than the client-side sending all the found appids to the server for processing... |
I didn't end up finishing my response yesterday since I fell asleep. But your suggestions are all spot on. Yeah I was going to point out that its the fronted which adds the non steam games. I didn't even know about |
Thank you for making this amazing plugin!
While automatically detecting all non-steam games is obviously impossible, it should be possible to detect games added by certain managers such as lutris or bottles.
Bottles provides a CLI that can be used to extract paths of executables:
Then steam games added via bottles (something that bottles itself does automagically) have target
xdg-open
and launch options e.g.bottles:run/'games'/'minit'
Lutris is even easier:
The above information (both for lutris and bottles) doesn't conclusively identify which SD card a game is installed on, but MicroSDeck could in theory check for the existence of these files when run with a SD card inserted and do the rest.
The text was updated successfully, but these errors were encountered: