kra-mo / cartridges Goto Github PK
View Code? Open in Web Editor NEWA GTK4 + Libadwaita game launcher
License: GNU General Public License v3.0
A GTK4 + Libadwaita game launcher
License: GNU General Public License v3.0
Is your feature request related to a problem? Please describe.
If a PNG or WEBP doesn't end in .gif then it won't be animated. On steamgriddb animated artworks are usually distributed as a PNG or WEBP, so support for these formats would be preferable.
Describe the solution you'd like
Allow PNG and WEBP to be animated without renaming to .gif
As this is a game launcher, I believe the number of actions to launch a game should be minimal :). So I propose to just start the game if the image is clicked, and show the overview / extra info from an entry in the menu or a right click.
Describe the bug
Basically, if you have a game in your bottles library that has a name with spaces, it won't launch.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The game should launch without error
System (please complete the following information):
Additional context
I looked for what could cause the error in your code, and I think I found it :
cartridges/src/utils/bottles_parser.py
Line 115 in f321b54
On the images you can see when I add ""
around the game name, it launches.
Possible Solution
Change the following line of code :
cartridges/src/utils/bottles_parser.py
Line 115 in f321b54
""
around the game's name.It would be nice to have a search provider for installed games. This would make it possible to launch games from the activities overview and eliminate the need to make desktop files if unwanted.
https://developer.gnome.org/documentation/tutorials/search-provider.html
Is your feature request related to a problem? Please describe.
On Windows, the user would be able to launch games after.
Describe the solution you'd like
Cartridges could show as a widget on Game Bar.
Describe alternatives you've considered
This is purely quality of life and doesn't solve any problems anyone may have.
Additional context
An example of another launcher on Windows which does this is One Game Launcher.
Implementing this may be complex/not feasible with the way it's currently made.
It would be awesome to have the search operate as soon as you start typing.
Since all the keyboard shortcuts are bound to atleast two keys, there would be no chance to accidentally do something to your collection.
So it would be nice if i could simply open your app, start typing "league" and get my game for example.
Describe the bug
I am unable to launch any games from the supported platforms
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The game should launch
System (please complete the following information):
Is your feature request related to a problem? Please describe.
I dont like Heroic because it looks ugly
one thing tho is ledendary doesnt have a mimetype like heroic and steam so you would have to call /bin/legendary
instead of xdg-open, and it doesnt actually save the images to disk so the save_cover function on save_cover.py wouldnt work but i think you can create a gdkpixbuf from just a url too
Describe the bug
EGS/GOG games installed with the Heroic games launcher (flatpak v2.7.0) are not being located. This seems to be related to this commit which changed the location of the library files from {heroic_dir}/lib-cache/library.json
to {heroic_dir}/store_cache/legendary_library.json
and {heroic_dir}/gog_store/installed.json
to {heroic_dir}/store_cache/gog_library.json
.
Fix
By simply changing
elif (heroic_dir / "lib-cache" / "library.json").exists():
data = (heroic_dir / "lib-cache" / "library.json").read_text("utf-8")
to
elif (heroic_dir / "store_cache" / "legendary_library.json").exists():
data = (heroic_dir / "store_cache" / "legendary_library.json").read_text("utf-8")
fixes this issue for EGS on version 2.7.0.
System
This would be great, thanks! :)
It would be great if the library can be navigated with a controller. Currently, it doesn't react to controller input.
Describe the bug
The application icon in the XFCE panel is not displayed
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The application icon should appear
System (please complete the following information):
Additional context
This problem was also observed on other distributions with xfce
Is your feature request related to a problem? Please describe.
Cartridges as it works today looks really good! The info screen that pops up when you click on a game also looks great! And I don't want to take anything away from that, or impose too much. I just want to let you know that from where I stand, except for looking good, the info screen does not add any value, and Cartridges would be better without it.
Here's my arguments:
Describe the solution you'd like
The solution to all of this, IMHO, is to just remove the info screen completely, and have the launch action be to click on the cover art. I think that's more intuitive, more accessible, and better looking. The menu (Edit, Hide, …) could still be accessible either trough a right click or trough the kebab menu showing up on mouseover in the corner where it shows today, but without sliding out the name of the game.
Describe alternatives you've considered
The less disruptive solution would be to keep the info screen but have it available like this: On mouseover on any game cover art blur the cover art slightly and on top of the blur show two big "buttons" (for example white circles with an icon inside): One with a play icon for launching the game and one with an information icon for showing the info screen. With this solution the menu button could possibly also be shown on top of the blur, like for example a meatballs menu in the bottom right corner.
Additional context
Thank you for your great work! I only share my opinion because I like your work! :)
Is your feature request related to a problem? Please describe.
When opening a Heroic game, the Heroic launcher will open with a blank screen, and it stays open even when I close the game.
Describe the solution you'd like
When I open a Heroic game, only the game opens, and when I close it, the Heroic Launcher close itself too.
Describe alternatives you've considered
Adding a game to Steam library from the Heroic Launcher creates a .desktop file that I can rewrite outside Steam like that
flatpak run com.heroicgameslauncher.hgl --no-gui --no-sandbox "heroic://launch/sideload/ID-OF-THE-GAME"
The game will open, but Heroic launcher will not have any GUI, and when I close the game the launcher shuts down too.
Additional context
I wasn't able to recreate the command with xdg-open with the same parameters , but I'm a noob so maybe there is a way to do that.
Is your feature request related to a problem? Please describe.
No, not at all its just a request, or more likely a question
Describe the solution you'd like
i want to play my ryujinx games directly trough here whitouth going in the app to open the game gile
Additional context
probably this could be applied to other emulators as well, but i leave this to you if there's a way to make this happen, btw this app is so cool, i never though having my games spread out of all my pc and having them on 1 app to instantly launch them makes the experience more comfortable, keep going with this proyect!
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.
Describe the bug
When you set a game's cover art it looks normal until relaunching. After relaunching the cover art becomes a much lower resolution.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Stay the same resolution.
Screenshots
System (please complete the following information):
Note that images may look the same depending on if your browser smooths them, but on Cartridges it is very obvious.
Describe the bug
Hi. Thanks for a great tool! Unfortunately importing doesn't work too well for me. I have 252 games in my Steam library, but Cartridges only imports 7.
Of the 7 imported, only one of them is installed.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
All installed Steam games should be installed. Or maybe all?
System (please complete the following information):
Additional context
My Steam install is trough Flatpak. Running Nobara Linux latest version.
Describe the bug
My animated covers appear to have a very degraded colorspace, thus rendering them very ugly. On steamgriddb those animations look perfectly fine though.
To Reproduce
Steps to reproduce the behavior:
Screenshots
System (please complete the following information):
Installed via AUR (non-git version)
Additional context
I tried different GTK4 themes and the default one aswell.
Is your feature request related to a problem? Please describe.
Downloading on Windows has to manually be done, and incurs warnings as the executable has no publisher and the file isn't commonly downloaded.
Describe the solution you'd like
It would be amazing if the Windows version was distributed via the Microsoft Store. In addition to existing Flatpak distribution, this would make Cartridges easy to download on any platform. It'd provide the benefit of easier download and auto updates.
Describe alternatives you've considered
N/A
Additional context
An individual developer license is $19, so I completely understand this may not be an option.
Is your feature request related to a problem? Please describe.
When implementing sources that don't expose custom URL schemes (e.g. bottles:...
) it is difficult to both
citra-qt
vs flatpak run org.citra-emu.Citra
)I fear that the solution will be a big spaghetti plate.
In the same function, there will be schema population, config parsing, game parsing and game building.
Describe the solution you'd like
A more robust system of sources from which to import, using inheritance.
In that case, defining a base generic source would be the "hard" work, and to add variants (native, flatpak, snap, in-steam...) there would only be a few lines to change, e.g. for the config location and game building.
My proposal is to extend the importers in this structure:
importers
citra
citra_importer.py # Generic base citra importer
native_citra_importer.py # Specific variant with overrides
flatpak_citra_importer.py # Another one
steam
...
In this way, the core logic for each importer is in the base class and any change in behaviour is specified in the derived classes.
Describe alternatives you've considered
Additional context
This comes from the development of Gali that has a robust source system, made to be highly extendable.
Since I wrote that code, I'm surely biaised. However, I don't think this concern is invalid, and ultimately making Cartridges more robust and hackable is what we should tend to.
This is a major change, but actually not much needs to be done since all of the code is already there in Gali, the only thing to do is to adapt the source backend to generate games in the Cartridge format.
I'm willing to contribute this code if the proposed solution is accepted.
Duplicating code in two FOSS projects is counter-productive, I want Cartridges to be better than Gali!
Describe the bug
The scrolled window for adding a new game does not span the whole height of the window itself. This is probably more visible because of a longer string in my language.
To Reproduce
Expected behavior
The whole window being used for scrolling instead of a fixed portion of the upper half.
Screenshots
System:
Games like Battle for Wesnoth and Unciv might be installed through flatpak or the package manager without using a game client.
It would be nice if cartridges imported those games automatically. Adding them manually works fine but it is still a chore.
I've put all the command line executables for all my emulator games. However, the pcsx2 games won't launch, even though the exact command I copy from the on I've put in the Cartridges library runs if I run it from the terminal.
Describe the bug
Game chokes and crashes on loading my games.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
System (please complete the following information):
Additional context
Add any other context about the problem here.
Right now if, for example, I delete a game from Steam, it will remain on Cartridges library even if I click "Import".
It will be nice that if I click "import" it also delete the missing links/games, and it would be even better if it do this automatically at every startup/every day.
Is your feature request related to a problem? Please describe.
Currently, whatever UI settings you have in steam to launch in Big Picture or desktop mode will affect how Cartridges launches. This is mostly fine, but it would be nice if we could override this so that games can be launched using the desktop mode for instance, which will not have all the popups and extra loading times. Also, when the game is closed, it will leave Steam open. If Big Picture is enabled, it will return to the Big Picture launcher. The expected behavior is to have Steam either close or be minimized to the tray.
Describe the solution you'd like
A toggle in preferences to override the Steam launcher between Big Picture and Desktop. Also, an option to minimize/close Steam when the game is done.
Describe alternatives you've considered
Just the launcher override would be enough. I usually want Steam to open in Big Picture mode for my controllers. However, if cartridges can open it in desktop mode, this will make the experience feel more seemless as it will have no launchers popping up before and after my game is ran.
Additional context
I imagine this can be done either by passing through some flags to the Steam app, or by patching the config before launching Steam.
Is your feature request related to a problem? Please describe.
No but some automatically selected images are not exactly represents the game.
Describe the solution you'd like
Cover image selection could be added instead of automatically selecting first image from SteamGridDB.
Is your feature request related to a problem? Please describe.
I have a ton of games in my library that I don't have installed. For my Steam games that's not such a big problem, as long as I use the Steam client, because when I go to my library there I'm reminded of them. But for Itch, or for Steam if I'm to start exclusively use Cartridges, or for other systems you might support in the future, this means I'm not reminded and I forget that I have them.
Describe the solution you'd like
I'd love to see Cartridges use the libadwaita system for tabs in the headerbar to have a second tab with a list of games in my library that are not installed yet, and having the option to start the installation process directly from Cartridges.
Describe alternatives you've considered
Alternatively it doesn't have to be a tab like this, but hidden/out of the way in some other way. It could also be an option to turn this on and off, but I know more options can give more problems.
Thanks for implementing support for Itch, btw! :)
Is your feature request related to a problem? Please describe.
No issue has been opened on this previously.
Describe the solution you'd like
If a user wishes to add the same game (or associated program) multiple times, they have to create new entries and label them accordingly. It would be useful to associate multiple executables to a single game in Cartridges and the user can choose which one to launch. (Maybe take the user to the 'game screen' like when you click on a cover and show the executable list.) To be user friendly, it'd probably need the option to label executables.
Describe alternatives you've considered
As said above, duplicate entries for the same game, but labeled to distinguish.
Additional context
As an example, if I want to add Duke Nukem 3D, its source ports, plus a DOSBox one, and the various Steam releases, that'd be like seven different entries for one game.
Now, that we have support for multiple sources, I would suggest adding Amazon Games (as Lutris isn't available on Windows). Unlike, Heroic for Epic; Lutris isn't a full replacement for Amazon Games.
Describe the bug
The main window is not fully adaptable for mobile phones. It doesnt shrink enough and a part stays out of the display.
To Reproduce
Steps to reproduce the behavior:
Open app
Expected behavior
The app to be adaptable
System (please complete the following information):
Additional context
None
It would be nice if the app counted/imported play time, because having to look around 30,000 launchers to see your playtime is a pain.
Count the playtime, and make it visible under the game details page.
don't do this?
I found some other people complaining about this same issue arround the web, one such place was in the comments section of this article: https://www.gamingonlinux.com/2023/05/cartridges-is-another-linux-game-launcher-and-its-super-clean/comment_id=243178
I think that Cartridges is one of the best looking game launcher on Linux. However, I see some room for improvement and I would like to suggest some minor changes to make it look even more modern. I added a nice translucent backdrop and moved the titles of the games as an overlay over the image.
details_window.blp is missing in the POTFILES. I will send a patch in a few minutes.
Add support for launching games using controller or joystick if connected
Is your feature request related to a problem? Please describe.
Cartridges, at the moment, does not have a button to refetch or reset the game's thumbnail to its original state, that is, the one that it is added when a game is imported using the Import shortcut (CTRL
+ I
). This may be an annoyance considering that games may update their thumbnails frequently (e.g. Fall Guys)
Describe the solution you'd like
The solution would be to add a button next to the remove and edit buttons on the Edit Game Details menu that would refetch the thumbnail
Is your feature request related to a problem? Please describe.
It's just something that will make me uninstall q4wine just to use this newer application.
Describe the solution you'd like
q4wine is quite old and this is a new app, so it would be cool if I could just import stuff from q4wine, the ability to extract icons from .exe would be quite nice too.
The "overview" overlay for each game currently only shows "Added" and "Last Played" as extra info, the rest is just the same info / actions that are already available from the library view.
I suggest to either redesign how this behaves (I would also not use a fullscreen overlay for this as it can be quite jarring on larger windows) or simply remove it.
Thank you for your work on the app btw!
Describe the bug
When the library is resized horizontally, the left margin changes in a way that makes the covers jump around
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The left margin changes linearly or not at all
System:
Additional context
Changing lines 270 and 333 to halign: start;
fixes the problem, but it might not be the most elegant way.
Describe the bug
Running version 1.2.2 on Windows 11 and after importing games from Steam, none of the cover images are displaying.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Cover Art to be displayed.
Screenshots
System (please complete the following information):
Edition Windows 11 Pro
Version 22H2
Installed on 3/14/2023
OS build 22621.1413
Experience Windows Feature Experience Pack 1000.22639.1000.0
Additional context
Add any other context about the problem here.
Describe the bug
If you game uses a darker cover art, then the background will have this weird artifact at the bottom of it.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Be consistent with the rest of the background.
Hi!
Gtk supports HiDPI scaling at integer scaling factors. However, for each game, the cover is saved at the LoDPI resolution (300x200). When scaling is enabled (e.g. in GNOME using display settings) the UI is cleanly rendered at double the size, but the cover images are blurry, as it is the low resolution image that is being upscaled.
A solution to this would be to save the images in the original resolution (what steam does) and apply scaling to a factor of 300 x 200 as needed when loading the covers. I implemented an initial version of this and it seems to work correctly.
The only downside is that a little more storage space is used (the original image files are stored in the data folder instead of the already scaled ones).
It is probably easier to just see it in code, I'll make a copy of the repo and show you my changes :).
Is your feature request related to a problem? Please describe.
I currently get a big list of games. Would be nice if I could curate a favorites list for quick access.
Describe the solution you'd like
Separate the games view using the GTK view switcher. Basically, have the main section labeled something like "all" or "home". Then, another view called "favorites." Then, the user can switch views to see all their games or only their favorites. This extra view should probably be hidden until the user defines a favorite.
Describe alternatives you've considered
A dropdown menu similar to a bookmark menu. Also, maybe instead of favorites, collections like in Steam, although I feel the simplicity of Favorites feature would be worth it.
Is your feature request related to a problem? Please describe.
No, just wondering if this is something that could potentially be looked at in the future.
Describe the solution you'd like
I would like Cartridges to track the time spent on a game. The total play time adds a lot to the UX. Maybe this could be achieved by monitoring how long a process was open for? I believe this is how Lutris does it.
Is your feature request related to a problem? Please describe.
I recently had to remove a few games in order to re-import them for their cover art to show up. Having to hit the small kebab menu and then click Remove for every one individually was a bit annoying.
Describe the solution you'd like
The option to set Cartridges to some sort of manage mode, where each game gets a check box and clicking anywhere on the game selects/deselects that checkbox, before you choose what to do with all selected games, would be very useful.
Gnome Photos has a mode like this. It is engaged by right clicking on any image. IMO that is not very intuitive, so I'd prefer it engaged trough an option in the menu instead, but just as an example of what I'm talking about.
Thanks again! :)
Is your feature request related to a problem? Please describe.
I have multiple Steam accounts in use, each belonging to a different Steam user. We all have different game saves and settings, so it would be nice to be able to launch our games in a specific profile. Currently, Cartridges does not work well as we need to select our user in Steam, then launch our games in Cartridges which is pointless.
Describe the solution you'd like
I'd like a simple profile picture in maybe the upper right corner. You should be able to click this to see a dropdown menu with all the other users, and then to select them. Then, Steam games should launch under the selected user.
Describe the bug
Importing games doesnt work. A popup appears saying that games are being imported. The progress bar doesnt move and it just hangs like that until killed (tried to keep it for 10 hours)
Expected behavior
To actually import games or give some form of info
System (please complete the following information):
Hey, seems like a very nice and simple app. I always thought Lutris would be a great application to finally end the tyranny of a thousand different game launchers...but heroic and bottles sometimes do the job better and suddenly i have three launchers again..
well your app does look very nice! However i have 21:9 monitor and the games aren't filling the whole screen when in fullscreen mode. Can this be added?
Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.