Remix.run Logo
alkonaut 14 hours ago

Why do these things not work properly when apps are flatpaks? e.g. if an app tries to query the environment and ask "what's the theme", how would it get a different answer when run from a flatpak?

thyristan 13 hours ago | parent | next [-]

Different answers for different problems, but basically two reasons.

First, library/software/data versions inside the flatpak can and will be different from the ones outside. So a flatpak might as "what is the current Qt5 theme", and get the answer "don't know about Qt5, but the Qt6 theme is cute-cats-qt6" which it cannot interpret. Things like themes might not even be available inside the flatpak, so even if the answer were parseable, cute-cats-qt6 might just not be available on the inside.

Second, flatpaks are sandboxed, so things will be filtered. This means that a query might not get through, an answer might not get through, both might be altered. Or maybe an answer might be useless because "you can get the theme at /usr/share/themes/cute-cats-qt6" points to a path that the flatpak is not allowed to access.

alkonaut 12 hours ago | parent [-]

Maybe a contrived example but shouldn't Qt6 be answering with a compatible answer if a Qt5 app asks it what the theme is? And shouldn't the app be asking what the "theme" is, rather than what the Qt5-theme is? It seems like a fundamental issue with compat between apps built for different versions of Qt more than a problem with flatpak?

And is the sandboxing perhaps going a step too far if apps can't access the things they need from the environment?

curt15 9 hours ago | parent [-]

If Linux libraries had that much respect for backward compatibility, there would never had been any demand for Flatpak. Flatpak (and snap) is merely a workaround for the lack of a common "Linux platform" with comprehensive, versioned APIs analogous to the Windows API or Android API. After all, Flatpak essentially provides a way to run a distribution (provided by Flatpak runtimes) inside the host distribution.

skydhash 8 hours ago | parent [-]

I think that was the role of the distro to integrate a common theme for the various versions of gtk and qt. Yes, it’s often duct taped. But apart from freedesktop, we don’t have an org dictating a common API for stuff like how a graphical app interacts with the DE.

afiori 11 hours ago | parent | prev [-]

I don't actually know but I guess the issue is that the theme/gui libraries are sandboxed too