@Natanox
>Without GTK4 and Qt6 barely anything even runs, lol.
There is very few qt6-only software and i even did not see gtk4.
I not even using gtk3, because it looks ugly and usually there are gtk2 or qt5 alternatives.
I will swicth to qt6 when renderdoc will support it. Almost all software i using support both qt5 and qt6 and i see no reason to keep both toolkits installed
It is powerful Gentoo system with TDE, which runs heavy games (including VR), and of course, it can run gtk4/flatpak if i enable it. But i do not want. I want exclusive control my system and not let some binary distro (including flatpak/snap) maintainers to control it and tell me what technologies to use
>There are also multiple ways to ship portable apps, the best known of them would be AppImage. That one simply isn’t recommendable due to a lack of maintenance and security issues (they simply don’t fix the libfuse2 issue).
AppImage does not help with portability, this is just bundle. And very bad designed bundle. For example, it may use some static lightweight fuse implementation, not depending on libfuse.
You do not need bundle to make app compatible, you need to build it (including all dependencies) with compatible glibc version.
For wayland it’s very difficult because usual waylan app depends on heavy non-portable toolkits and GL drivers and you need make it not conflict with system GL. It is quite possible when both toolkit and GL driver depends on some expat/llvm/etc…
So really to do that, you toolkit need able to draw with opengl and have software fallback (because drawing 2d with llvmpipe is nonsense)
I may suggest SDL2+imgui and now using it in my apps, but this is very limited solution, really and it cannot draw effectively in software too (because ImGui decided to only use blended triangles to draw). Some drawing protocol in wayland may solve this, but it is unlikely to happen because wayland is protocol for compositing, not drawing and refers to using graphics API (where is hardware accelerated 2d drawing API???) to draw. So i even cannot show simple messagebox without headache! Imagine Windows without GDI and user32? Wayland is alike.
X11 really old and we need better solution, but wayland is not better solution. Wayland is already more complex than X11 for application developers. Maybe it’s better for some toolkit developers, but only because toolkit developers are compositor developers. If you need better solution, look at windows GDI, android hwcomposer/surfaceflinger, haiku, etc… Only advantages we got from wayland are fractional scaling and faster (in comparsion with x11/glamor) compositing. But even legacy x11/(exa/sna) works faster, it’s just glamor is very slow.
For sound, pipewire really looked good, until pipewire-media-session was deprecated. Now it requires wireplumper monster, and recent xdg-desktop-portal versions depend on it.
Why wireplumper is bad? Because last time i installed it it was just crashing somewhere in libcamera after daemonize and i spend 5 hours to debug it. Yes, no sound because of some camera (which i did not even have)
Now i using jack2 in my system and it works, allowing me to route audio as i want. Maybe it will be seamlessly replaced by PW later… But not now. I think, media session for TDE may be implemented in aRtsd, so it will be useful again. For apps, generic sound API is still libasound, because asound architecture allows to integrate audioservers seamlessly. For pulseaudio-only apps, we have apulse wrapper.
>Like it or not, Flatpak and Snap already are the standard
Any shit may be named a standard (like Google’s WebComponents, which is just internal chrome feature was forced to web standard). Long time ago there was ActiveX standard, flash was “standard” too. But this does not mean it’s OK to support it. Yes, flatpak is not proprietary, but it’s purely commercial and possibly forced by corps. It’s designed to make it impossible to work without corps. Maybe this is another EEE?
Anyway, i still may unpack ostree images, install dependencies and run flatpak app if very needed.
But i really do not want this to be standard, because it’s really workaround, not well designed standard.
It will break anyway if i using some rare gl/vulkan implementation (like amdgpu-pro with specific version) and it is not present in flatpak. And one of my previous PCs only worked with such driver, mesa drivers caused crash every 15-20 minutes. In comparsion with flatpak, Valve’s pressure-vessel supports it (because it always using system driver).
Also, Android linker has namespaces, which allows to split system private/vendror and user libraries to prevent symbol conflicts. This would much better solve things, flatpak trying to solve. I do not know, can glibc’s dlmopen do same thing, but android library namespaces doing it automaticly
@Natanox
>Without GTK4 and Qt6 barely anything even runs, lol.
There is very few qt6-only software and i even did not see gtk4.
I not even using gtk3, because it looks ugly and usually there are gtk2 or qt5 alternatives.
I will swicth to qt6 when renderdoc will support it. Almost all software i using support both qt5 and qt6 and i see no reason to keep both toolkits installed
It is powerful Gentoo system with TDE, which runs heavy games (including VR), and of course, it can run gtk4/flatpak if i enable it. But i do not want. I want exclusive control my system and not let some binary distro (including flatpak/snap) maintainers to control it and tell me what technologies to use
>There are also multiple ways to ship portable apps, the best known of them would be AppImage. That one simply isn’t recommendable due to a lack of maintenance and security issues (they simply don’t fix the libfuse2 issue).
AppImage does not help with portability, this is just bundle. And very bad designed bundle. For example, it may use some static lightweight fuse implementation, not depending on libfuse.
You do not need bundle to make app compatible, you need to build it (including all dependencies) with compatible glibc version.
For wayland it’s very difficult because usual waylan app depends on heavy non-portable toolkits and GL drivers and you need make it not conflict with system GL. It is quite possible when both toolkit and GL driver depends on some expat/llvm/etc…
So really to do that, you toolkit need able to draw with opengl and have software fallback (because drawing 2d with llvmpipe is nonsense)
I may suggest SDL2+imgui and now using it in my apps, but this is very limited solution, really and it cannot draw effectively in software too (because ImGui decided to only use blended triangles to draw). Some drawing protocol in wayland may solve this, but it is unlikely to happen because wayland is protocol for compositing, not drawing and refers to using graphics API (where is hardware accelerated 2d drawing API???) to draw. So i even cannot show simple messagebox without headache! Imagine Windows without GDI and user32? Wayland is alike.
X11 really old and we need better solution, but wayland is not better solution. Wayland is already more complex than X11 for application developers. Maybe it’s better for some toolkit developers, but only because toolkit developers are compositor developers. If you need better solution, look at windows GDI, android hwcomposer/surfaceflinger, haiku, etc… Only advantages we got from wayland are fractional scaling and faster (in comparsion with x11/glamor) compositing. But even legacy x11/(exa/sna) works faster, it’s just glamor is very slow.
For sound, pipewire really looked good, until pipewire-media-session was deprecated. Now it requires wireplumper monster, and recent xdg-desktop-portal versions depend on it.
Why wireplumper is bad? Because last time i installed it it was just crashing somewhere in libcamera after daemonize and i spend 5 hours to debug it. Yes, no sound because of some camera (which i did not even have)
Now i using jack2 in my system and it works, allowing me to route audio as i want. Maybe it will be seamlessly replaced by PW later… But not now. I think, media session for TDE may be implemented in aRtsd, so it will be useful again. For apps, generic sound API is still libasound, because asound architecture allows to integrate audioservers seamlessly. For pulseaudio-only apps, we have apulse wrapper.
>Like it or not, Flatpak and Snap already are the standard
Any shit may be named a standard (like Google’s WebComponents, which is just internal chrome feature was forced to web standard). Long time ago there was ActiveX standard, flash was “standard” too. But this does not mean it’s OK to support it. Yes, flatpak is not proprietary, but it’s purely commercial and possibly forced by corps. It’s designed to make it impossible to work without corps. Maybe this is another EEE?
Anyway, i still may unpack ostree images, install dependencies and run flatpak app if very needed.
But i really do not want this to be standard, because it’s really workaround, not well designed standard.
It will break anyway if i using some rare gl/vulkan implementation (like amdgpu-pro with specific version) and it is not present in flatpak. And one of my previous PCs only worked with such driver, mesa drivers caused crash every 15-20 minutes. In comparsion with flatpak, Valve’s pressure-vessel supports it (because it always using system driver).
Also, Android linker has namespaces, which allows to split system private/vendror and user libraries to prevent symbol conflicts. This would much better solve things, flatpak trying to solve. I do not know, can glibc’s dlmopen do same thing, but android library namespaces doing it automaticly