Closed KeyboardDanni closed 6 years ago
Good idea. I don't know how to tie it to the existing interface. Do you have any ideas? It will probably require some sort of popup with filters and a tab in settings dialog to manage tags.
GOG library tags can be imported, their API sends them with owned games list. Steam tags should be possible to import too.
@cosmicchipsocket what do you think about something like this?
I also need some icon for filters popup. Some sort of tag icon may be appropriate, but what if this popup will later have other filters?
From a glance I have a hard time figuring out how the pop-up works. Is Include/Exclude a mode switch, or a tab view? If it's a whitelist/blacklist switch, I'd have a hard time picturing a use case for it. And I haven't seen a dual-column selector like that in a UI in a while. Why not a simple checklist?
Either that, or have collapsible headers line the "Installed"/"Not installed" headers that are already in the list view, but add a clickable -/+ icon to the side. Headers would need to be introduced to the icons view for this to work.
This layout was the first thing that I've thought of, but I agree that it may not be a good solution. Probably checklist will be better.
Do you suggest Steam-like headers for tags. I don't really like this solution, because expected behaviour in this case is to list game in each tag it has, and it may become too much.
Example: I have used Depressurizer to import Steam tags as library categories. I have many categories. This is a VR section with just 11 games and it's already a mess if games have multiple tags.
@neuromancer, @MessedUpHare, do you have any ideas or suggestions?
I think you can add IGDB support and extract keywords from there as well.
If there's automatic tagging, I'd prefer that it be optional, and placed separately in the list from user-made categories.
Maybe have a settings dialog for managing the categories, where you can rename/delete user categories, and choose between providers for automatic ones?
What do you think about this?
The first two tags (favorites and hidden) are builtin non-removable tags. The rest of them are imported from GOG. They are created by user but GOG can probably have some predefined ones.
Also it's probably the right place to add some additional filters like platforms (should be visible if non-native games are enabled).
Do you think tags search is needed here? Or sorting builtin > user-created > imported
will be enough?
Tags are working now (no user-created tags yet).
GOG tags will be imported. Games can be marked as favorite or hidden with right click in both grid and list views.
I'm afraid that last revision is broken for me. It does not load any game, I believe is related with #48, but it does not seem to be fixed changing some options (and unfortunately, I won't be able to submit a proper issue report in two weeks).
@neuromancer I'm still not sure what's the problem as it fixed itself on my laptop. Have you waited long enough to get all your games cached in db?
GOG categories are working, but the icon of that menu is missing:
(I'm using 53e10bbc7f869151cc9ff0fd08d44338774ad80d )
@cosmicchipsocket check with the latest commit in dev branch. Do you have any ideas or suggestions?
Went ahead and installed the latest dev build. It looks pretty good so far, although I'd expect custom tags to have their own headers (similar to Favorites), though simply hiding the categories I don't want is good enough for now.
I'm not sure why I can select GOG tags for games on Steam. There's also the issue of every game being listed as "Run with compatibility layer" but that's an unrelated issue.
Bug report: Making a new tag named "Complete" and then hiding it will instead hide the "Not installed" category.
Went ahead and installed the latest dev build.
Right now master
branch is more recent than dev
(but most of the difference are fixes for AppImage and building on 16.04).
There's also the issue of every game being listed as "Run with compatibility layer" but that's an unrelated issue.
Yes, I know about that bug.
I'd expect custom tags to have their own headers
What header should be displayed if game has multiple tags?
I'm not sure why I can select GOG tags for games on Steam.
I'm not sure why it should be limited. GOG tags are the same as any other tags, all the difference is that GOG tags are auto-imported from GOG and have GOG icon.
Bug report: Making a new tag named "Complete" and then hiding it will instead hide the "Not installed" category.
I see that, not sure yet why that happens. It doesn't hide all of the not installed games, but some of them.
There's now quite complicated logic in filtering, there's a very high chance it won't handle some cases correctly.
One possible way to fix this is to refactor filtering to use only tags and implement all of the current conditions (except search) as builtin tags (like favorites and hidden currently are).
@cosmicchipsocket
Bug report: Making a new tag named "Complete" and then hiding it will instead hide the "Not installed" category.
Should be fixed in dev
branch (0.11.2-1-dev). It actually worked correctly, but broke after adding "Installed" tag (#69). Now it should work properly with "Not installed" tag added.
I'm not sure why it should be limited. GOG tags are the same as any other tags, all the difference is that GOG tags are auto-imported from GOG and have GOG icon.
Because the GOG icon on them implies that they are synchronized with GOG and it'd be hard to conceptualize GOG knowing how to apply a tag to a Steam game.
(At the very least I'd like to be able to disable the GOG tags)
@cosmicchipsocket imported tags can be disabled since cb4c384.
Are there any plans to support importing Steam's categories as tags? I have a major amount of categories set up, too, and I'd like to have them totally synced between GameHub and Steam. Doing that manually would be too ridiculous.
@tkashkin You mentioned importing Steam's categories in with Depressurizer earlier? How exactly did you do that? I'm only just now hearing about Depressurizer, and it seems to be Windows-only. I'm on Linux. I do have a Windows VM, but if I used it, is there actually a way through Depressurizer to, I guess, export Steam's categories as a format that's easy to plug into GameHub's config files, and then copy those config files into Linux? I mean, that's way too roundabout to be a permanent workaround. However, I wouldn't mind doing it this first time until more of a sync situation can be implemented.
@Jimi-James
Are there any plans to support importing Steam's categories as tags?
No plans right now, but it should be doable. I'll need to research how does Steam store user-added categories.
You mentioned importing Steam's categories in with Depressurizer earlier?
I have mentioned it only as an example of what a mess it would be if there was a list header for each tag and game had multiple tags.
@tkashkin
No plans right now, but it should be doable. I'll need to research how does Steam store user-added categories.
Oh, I'm pretty sure that's in <steam>/userdata/<UID>/7/remote/sharedconfig.vdf
. Actually, I just checked my sharedconfig.vdf and, yeah, all my custom categories organized by app ID, and I think also all my custom shortcuts and their categories, were in that file. Ooh, importing custom shortcuts would be cool, too, though probably much more complicated.
I have mentioned it only as an example of what a mess it would be if there was a list header for each tag and game had multiple tags.
Oh, wait, I just realized you actually imported Steam community tags. As in not user categories. OK, yeah, I see, that wasn't what I was hoping at all. Oh well.
After all the bugfixing we just did elsewhere, GameHub is almost flawless for my setup! All that's left to do now is get my Steam categories and non-Steam game shortcuts in a sync setup with GameHub.
Which I've figured out the best way to accomplish is on my own, in a launcher-agnostic way (I've lived through Ice and Steam-ROM-Maneger each working and then stopping working forever, forgetting their settings now and then along the way, and I'm sick of that). It looks like I'll be able to build a launcher-agnostic syncing setup using only Bash scripts that I'll figure out how to plug into GameHub's config files, the steam://rungameid/
command (because it actually supports non-Steam shortcuts if you can get their appIDs), and a way to parse Steam's infamous shortcuts.vdf
(to get not only those appIDs, but also the shortcuts' categories). The non-non-Steam games already have their category info stored in a much more parseable--that is, actual plain text--file (despite its being the same file extension), sharedconfig.vdf
.
Turns out there's not only a Python library for that (https://pypi.org/project/vdf/), but also a complete project someone else has already "finished" (it's a bit out-of-date now: https://github.com/CorporalQuesadilla/Steam-Shortcut-Manager), who I'm now talking to over reddit. When I have more time later, I'll probably help with that, and either way, once it's all back in working order, I can put what I figure out about GameHub integration into its wiki, and then post back here with that whole setup!
@Jimi-James GameHub can already read, change and save shortcuts.vdf
. It supports adding games to Steam as non-Steam games. https://github.com/tkashkin/GameHub/issues/149#issuecomment-445139556
Now it adds games to shortcuts.vdf
with one tag ("GameHub").
It should be possible to extend it to allow two-way sync.
Oh! I... OK, I just failed to find that setting myself. I guess I didn't realize it was already there because I didn't try adding a shortcut through GameHub yet (as I had actually just finished dramatically reorganizing my Steam library immediately before finding GameHub)? And because the two-way sync hasn't been implemented yet? So when that happens, everything will just show up in here? To be honest, I'd rather wait for two-way sync to be implemented, and then when I have time and if it hasn't happened yet, try helping with a pull request, than set up the same custom shortcuts and categories all over again in a new program.
Does the current implementation already use, or have an option to use, steam://rungameid/
to run those custom shortcuts through Steam, so that you can get an in-game status, the overlay, and controller configs and such?
Does the current implementation already use, or have an option to use, steam://rungameid/ to run those custom shortcuts through Steam, so that you can get an in-game status, the overlay, and controller configs and such?
No, it does not. This is an interesting idea, but I'm not sure yet how to implement it.
Current supported scenario is a bit different:
Alright, that's what I figured, as it doesn't seem to work with native games yet. If I try to make just a shortcut to a binary on my system, I get a shortcut that doesn't actually do anything. It lists itself as Not installed, and trying to install it does nothing. Clicking Add to steam does nothing. On top of that, it won't even remember the binary that it's set to use.
@Jimi-James that's weird. It works fine for me:
Added shortcut:
|- [3]
|- StartDir: .
|- LaunchOptions: --run user:b5eccde58b6cca7892b38a4c0a7a7ec5
|- OpenVR: 0
|- AllowOverlay: 1
|- AllowDesktopConfig: 1
|- [tags]
|- 0: GameHub
|- exe: com.github.tkashkin.gamehub
|- LastPlayTime: 1
|- AppName: QZDoom
|- IsHidden: 0
|- ShortcutPath: /usr/share/applications/com.github.tkashkin.gamehub.desktop
Run GameHub from terminal with at least --debug
argument and try to do that again.
The plot thickened--I took a while to notice (I've been in a busy spell), but Steam actually did get my Test shortcut added to it. Several times--once for each time I pressed the button, only to be confused by the lack of any feedback. So, the only thing that's actually not working there is I can't set a binary or a starting path--both always become blank again as soon as I close and reopen that shortcut's config window. Weirdly, a binary (Target) and starting path do end up being set in the corresponding Steam shortcut, but they're not exactly what I had in mind:
When I'm less busy again (probably later this week), I'll try all this again from scratch with the --debug
option.
EDIT: Looking back at your last comment, I'm just now realizing that what I'm seeing in that screenshot might have been intended. I can see that the shortcut you've added--and, with the proper launch option, also those Test shortcuts I added--are actually meant to launch a game from Steam to GameHub. I didn't realize that was the only Steam shortcut functionality GameHub had so far. What I'm actually looking for is the opposite: a shortcut in GameHub, that uses steam://rungameid/<appid>
to run a corresponding shortcut or even a normal Steam game, through Steam.
In other words, basically exactly the same thing as each game launcher that is automatically added into GameHub when it is synced with Steam for each Steam game, but with 2 differences:
-The shortcut in question was added into GameHub manually by the user and may have custom settings, like launch options and such.
-The shortcut allows the user to specify the exact <appid>
that is passed into steam://rungameid/
--the exact command that, I've just now been reminded, you mentioned is already used by GameHub to run Steam games: https://github.com/tkashkin/GameHub/issues/101#issuecomment-477806556
The user could specify the appID of a normal Steam game, or they could scour the <steam>/userdata
files (probably shortcuts.vdf
) for the appid of a custom non-Steam game shortcut, and put that one in.
If/when GameHub gains 2-way Steam category/shortcut syncing functionality, that feature could be combined with this feature, for one or both of two more differences between the GameHub's own default Steam launchers and these custom shortcuts:
-The user can choose a non-Steam shortcut, from a menu that lists all non-Steam shortcuts, as the <appid>
that is run by that shortcut that they are adding to GameHub.
-GameHub automatically populates its Steam list (or maybe a separate list next to the Steam list in those game provider buttons at the top that include GOG and Humble) with all of your non-Steam shortcuts, already set up to run through Steam by steam://rungameid/<appid>
.
It would be nice to be able to create categories and use them to organize your games. There are several use cases for this:
Being able to show/hide these categories would also help cut down on clutter, and you should be able to add a game to multiple categories (as if they were tags).
The native Steam client has this functionality, and I think it's worth having here too.