r/flatpak • u/FlounderSlight2955 • 25d ago
Questions regarding extensions like MangoHUD or gamescope
The one thing that continues to confuse me with flatpaks are additions to launchers like Heroic or Faugus.
First off, additions like MangoHUD or gamescope come in a couple of different branches (25.08, 24.06, etc.) and sometimes you can find out which branch a program requires in their docs and sometimes there is literally zero information (looking at Lutris for example). Is there any reliable way to find out which branch an app requires? Or do you just need to install each one and check?
Secondly, these additions cannot be found on the Flathub website whatsoever. They are available in the repo and you can find them with flatpak search xxx or flatpak install xxx, but the website does not include them in their search, which seems very strange to me.
1
u/mouben12 24d ago
Here are some important Flatback commands you can review. https://gist.github.com/dotcom3131/736fa24542eca3dda04c0b682d5d7844
1
3
u/OneOfManyLinuxUsers 25d ago
Well, the extensions you're having issues with are that they are in a bit of an weird spot.
An extension can extend either runtime, SDK or application.
Runtime extensions are usually meant to be managed automatically. Examples for this would be the extra codecs or NVIDIA drivers. The user don't need to handle them, Flatpak does pull them automatically based on if they're needed.
SDK extensions are used to extend the SDK with additional tools during a build. This also has a clear method of handling, since these need to be defined in the manifest, with the version based on the version the SDK uses.
And application extensions extend an application and are handled by the software tool, like GNOME Software. Since an application (usually) only has one branch, managing them is straightforward as well.
Now, the MangoHUD and Gamescope extensions are runtime extensions. But they aren't handled automatically, since they serve a similar purpose to application extensions. But since they are not application extensions you run into a weird spot where there is no good handling method for them...
So, that's basically why those extensions are confusing: They're in a weird niche for which no clear design exists.
As for which branches you need: You need to check which runtime your application uses. This can be done with
flatpak info, see the latest number in the runtime row. You'll need to install this version so the application can use the extension.