Linux on an old Convertible, and why Flatpaks are madness. Some real-world experience here

Warning: Long story. I can’t do short, apparently. Real-world experience here, also some thoughts and recommendations.

(If I was on YouTube, I’d now say “but first, let’s hear a message from our sponsor”. After that, I’d say “I have some real valuable recommendations for you at the end of the video, so be sure to watch until the end!”. How fortunate there’s no “algorithm” here, but just the friendly EOS community! Did I mention “Give a like and subscribe”? Man, how I despise these calls-to-action for dummies!)


So I got this ca. 2017/2018 convertible for cheap, and trying to get it into my Linux ecosystem. It has a 64 GB built-in eMMC storage, 4 GB RAM, and an Intel X5-Z8350 Atom CPU (4 x 1.44 GHz).

Rather under-powered, CPU-wise, but USB 3 and an okay 1080p display and a usable keyboard. Runs on battery for 6–8 hours, nice.

So I tried both a plain vanilla EOS/KDE and a Linux Mint 22.1 install:

  • EOS/KDE
    • Expected this to at least run, maybe even “usable” (trying KDE Plasma, since it got so much better, and is said to be rather lightweight now, as opposed to older versions). [Read: I wanted to play with new KDE Plasma.]
    • Experience was rather sluggish, almost constantly maxing out the 4 CPU cores (load average 2.5–4), using 2.5–3 GB RAM.
    • Firefox was hell, with just one open tab, eating almost all RAM, load average between 6 and 8 (!).
  • LinuxMint 22.1/Cinnamon
    • Excellent hardware detection (even the fingerprint reader was installed, screen rotation without issues, etc.). (Expected, Canonical are good at that.)
    • In spite of having much more software preinstalled, it runs faster and smoother than EOS/KDE. Almost usable, albeit sometimes still slow.
    • Used less than half the CPU EOS/KDE used, load averages 0.6–1.5, even while typing this on Firefox.
    • Used less than half the RAM EOS/KDE used (now while writing here it’s at 2.5 GB, without Firefox ~850 MB).
    • Firefox and YouTube still sucks, it’s slow and sometimes audio craps out, sounding a permanent “beep” until I reload the video (same as on EOS).

Conclusions:

  • KDE Plasma isn’t that lightweight, and too much for this hardware.
  • I might give EOS/Cinnamon a try, still. And be it just to test Plasma vs Cinnamon, on EOS.
  • Or I might not, because compiling stuff from the AUR takes ages on this CPU…
  • Firefox, over the years, becomes more and more an over-featured beast, and a resource hog. (I also notice this on my desktops.)
  • Linux Mint is still a super-polished, nicely working out-of-the-box OS “to get things done”, ideal for no-hassle office work and total newbies. (I knew that, most of my other machines running Mint.)
  • There might be a Linux OS that is a bit “snappier” (which?), but maybe EOS or Mint with the Cinnamon DE could be just enough. (Not sure yet. Pro: Same system I already use, no re-learning; Con: Slightly too sluggish.)
  • Either Pipewire or this audio hardware (an Intel Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series Imaging Unit, using the intel_atomisp2_pm driver) seem to have a problem when under heavy load. Or at least when using YouTube.

Flatpaks really, really suck.

This machine has 64 GB internal storage, not expandable. After partitioning and formatting, 22 GB are now used by Mint and the swapfile, leaving 33 GB free. So not much space for apps and data, really.

Considering this should mainly be an “on-the-road typewriter and media player”, I thought I’d also install the Jellyfin Media Player, to be able to access my media library at home. Mint doesn’t have that in the repos, so they offer a Flatpak instead. I hate Snap, and don’t have much love for Flatpak, because you constantly get multi-hundred-megabytes updates for org.this.and.that, and after updating, it will often just want to update the same stuff again. Four times in a row, I once had. Oh well, let’s see:

WHUT??! 4.1 whopping Gigabytes for a simple media player? On a machine that only has 33 GB free and not yet one of my usual apps installed?

I actually tried, to be sure. It installed 5 or 6 extra Flatpaks, dependencies apparently, and really ate up 4.1 GB plus the data storage these required. Had to check how to get rid of all that again.

Seeing the .deb on the Jellyfin GitHub has only 465 KB (!), I decided to install that instead:

It also installs lots of deps, of course, but totalled in ~8.6 MB!

Summary: Flatpak 4.1 GB, Debian package: 8.6 MB.

Now you know the rest of the story… And that’s why Flatpak sucks. Big time.

Side note: When testing with a high-bitrate movie, the Flatpak version constantly showed transcoding artefacts in the upper region. The .deb package was a lot smoother, and showed no artefacts at all.

Now just imagine a “normal Joe” wants to install some apps, doesn’t care about their packaging formats, and happily goes installing from the “Software Center”. This app, that app, another app… Desaster pre-programmed.

My recommendation:

  • Avoid Snap like the devil. Never ever use it.
  • Avoid Flatpak if anyhow possible. (Could’ve been called Fatpak as well.)
  • Always prefer a distro’s native packages.
  • Next best: Original package by the app author, in your package format.
  • Next best: AppImage.

(Can’t resist: “If you liked this (non-)video, tell your friends about it and urge them to do something. Ideally, at least have them read and follow the recommendation. See you next time!”)


We’re in the Pub, right? Let’s have a beer! :clinking_beer_mugs:
First round on me because you read all this.

2 Likes

You are correct, I avoid flatpak like the plague due to its incessant upgrades.

Flatpak has to download a lot of libraries, but these are shared. That means the overhead per application becomes smaller the more applications are installed.

You don’t count everything else in the Debian installation towards the 8 MB either.

Flatpak is fine for what it does and how it is supposed to do it.

1 Like

Yeah. Support developer laziness. As in “I don’t care if it runs on anything else. I tried Linux x.y.z, on that it works. So I throw a whole Linux in, who cares. Too big? Well, go buy newer machines.”

And sadly, it again makes us all aware that we have not enough good maintainers. And possibly automated building chains.

I have run KDE on similar hardware to that. You need to disable the compositor. The animations and transparencies are too GPU heavy and kill the CPU.

1 Like

Hi Matthias, thanks for sharing your experience with us. Could you please comment how the three systems EOS/KDE, (EOS/cinnamon), LM22/cinnamon support your “convertible” laptop: auto-screen rotation, auto -disable/enable keyboard/touchpad (you briefly mentioned auto-screen rotation for LM/cinnamon)?

You are aware of the “repo” chaotic-aur where the pre-compiled aur packages are available?

There is the arch-based distribution Mabox available for low RAM PCs. It uses openbox as windows manager and is really lightweight. Mabox is one of the few distribution with nicely maintained Openbox. I have a Samsung Laptop 3GB RAM shared video and it starts with 460MB and it runs well even with librewolf a couple tabs open,

That’s a good idea for yet another try, thanks. I somehow would like to have EOS on this one :wink:

Didn’t test too much, basically just plain vanilla installs, to do a quick compare and decide which OS of my two favourites I should use to make it a “working gadget” (mainly for writing and consuming some media). Especially for EOS, I should probably have invested more time and installed appropriate stuff…

So as far as I got until now:

  • Auto screen rotation

    • EOS: Didn’t work by itself, and found no switch to enable/disable it in settings. Probably I just (as usual) forgot to install iio-sensor-proxy.
    • Mint: Worked OOTB (out of the box). (Unlike my Lenovo D330-10IGM)
  • Auto disable touchpad while typing

    • EOS: Didn’t try, tbh. I very seldom need that function, but I assume Plasma has that setting.
    • Mint: Tried briefly, because it was in settings. Worked, but I switched it offf again.
  • Auto disable keyboard when fully opened (tablet mode, keys on the underside)

    • A major drawback with this 360° convertible. You can’t detach the display like on the Lenovo D330-10IGM, the hinges are fixed. So you end up with the keyboard open on the backside of the supposed-to-be “tablet”.
    • The pre-installed Windows 11 had some driver built-in that switches the keyboard off when fully turned around (except the fingerprint reader, which is within the touchpad area).
    • Couldn’t make this work with either EOS or Mint, so I have to be careful to handle it at the edges only. Not a good thing.
  • Fingerprint reader (top left of touchpad area)

    • EOS: Didn’t yet try much except Fingerprint GUI, which didn’t work. (Hint to myself: fprint is easier to use than you think.)
    • Mint: Installer detected hardware and installed appropriate drivers (fprint). Only had to allow in pam-auth-update, and it worked in login screen, UI, and even in terminal for sudo. My fingers and this sensor don’t harmonize too well (many misdetections in spite of lots of training and using several fingers), so I disabled it again.
  • Disadvantages of this hardware

    • glare screen (I prefer matte), although quite bright for limited outdoor use
    • enabled keyboard on backside when flapping around 360°
    • Atom X5-Z8350 @ 4 x 1.44 GHz save battery, but real slow
    • battery lasts for 6–8 hours, but a full charge takes 3½–4½ hours
    • rather well-done keyboard, + and # are real small (see image). I still prefer this, since almost all other keys are full size.

HTH

1 Like

I did that right from the start, maybe 2 or 3 years ago I accidentally installed a flatpak or appimage for the first time, forgot which one it was. It was on manjaro, I think it was one of the few times I used pamac’s gui to find and install a package for me.

And the app didn’t een work :laughing: as I wondered why it wasn’t working I realized that it was because I didn’t install it right, so I uninstalled it and replaced it with a properly packaged version.

Distro native packages just make more sense. I didn’t spend years learning how all that stuff works just to start using flatpaks, at all just seems so suboptimal somehow by comparison. I feel like appimage, flatpak and snap are all failed attempts at creating a cross-distro package format that can run on any distro. They sorta work but I feel like they’re all missing the point somehow.

They are at absolute besst an ok alternative to AUR for distros that aren’t arch based.

that’s what you have packages that end in -bin for. They are precompiled, and usually there is such an option for most software that is on aur.

Clearlinux, cachyos or maybe debian testing. https://www.phoronix.com/review/framework-13-amd-linux-2025/9

Clearlinux being fastest has been common knowledge fro a while now but it’s a bit overspecialized for many users (including myself). My next install will be cachy but i’m still on eos for now (it ain’t broken so no sense fixing it, i’m buying a new pc soon tho)

You might want to try disabling suspend, or maybe try some of the tricks in there: https://forum.manjaro.org/t/howto-troubleshoot-crackling-in-pipewire/82442

Also if you want something truly lightweight here’s the furthest extreme:

I remember I discovered about flatpak when I started my Mint/Linux journey.
Ever since then never bothered to check Flatpak packing system, security enhancements or related stuff.

Do checkout PodMan + Distrobox then try any distribution you like. Most likely Arch/AUR because it has largest number of packages. Nix has more but don’t use it as it’ll take more disk space.

You can export apps from Distrobox and use similar to native system app.
Docs: https://distrobox.it/#distrobox
Arch wiki: https://wiki.archlinux.org/title/Distrobox

Unofficial 3rd-party GUI if you need: https://github.com/Dvlv/BoxBuddyRS | https://github.com/ranfdev/DistroShelf

For checking which package versions are available on which distributions search on https://repology.org/projects/

flatpaks have a place. However, a machine with only a small MMC isn’t that place.

It isn’t a matter of inefficient packaging or lazy developers, it just a different approach that has different tradeoffs.

6 Likes

Very nicely said. I agree.

Seemingly a known problem with Intel Atom/Celeron/Pentium. Fixed it by adding

options snd_sof sof_debug=1

to /etc/modprobe.d/alsa-base.conf. You could also use a kernel parameter but I didn’t want to.

Thanks for the comprehensive information
Tablet mode /auto disable keyboard and touchpad are essential to use a convertible laptop.
On one machine I installed Gnome that allowed me to manually enable/disable keyboard and touchpad (via gnome extensions). Unfortunately only possible in X11 mode (because there is no simple command in wayland for that…).

I fully agree with you @Moonbase59
I don’t like these new formats!
But I may use AppImage only to test an app, just if curious about it then delete it or install if I am really interested in it and need it.

Interesting idea, hmm… On Wayland, so many things are (currently) missing we learned to love in the golden X11 days. I still try to stick with X11, if possible.

Maybe I could trigger some gsetting with a little something I can touch on the lower panel… :thinking:

flatpaks also include the libraries. That is the core feature of flatpaks: they are independent of the libraries you have installed on the PC. For that reason it is well known that they are bigger than natively install apps.

For the jellyfinmediaplayer binary from the debian package you can read the library dependecies with ldd. It shows 240(!) libraries. They all need to be included in the flatpak.

ldd jellyfinmediaplayer
# ldd jellyfinmediaplayer    
	linux-vdso.so.1 (0x00007cb5c6ff1000)
	libmpv.so.2 => /lib/libmpv.so.2 (0x00007cb5c6c00000)
	libQt5Xml.so.5 => /lib/libQt5Xml.so.5 (0x00007cb5c6bbe000)
	libQt5WebEngine.so.5 => /lib/libQt5WebEngine.so.5 (0x00007cb5c6b48000)
	libQt5Widgets.so.5 => /lib/libQt5Widgets.so.5 (0x00007cb5c6400000)
	libQt5X11Extras.so.5 => /lib/libQt5X11Extras.so.5 (0x00007cb5c6ee4000)
	libQt5DBus.so.5 => /lib/libQt5DBus.so.5 (0x00007cb5c6ac8000)
	libSDL2-2.0.so.0 => /lib/libSDL2-2.0.so.0 (0x00007cb5c639d000)
	libcec.so.6 => not found
	libX11.so.6 => /lib/libX11.so.6 (0x00007cb5c6222000)
	libXrandr.so.2 => /lib/libXrandr.so.2 (0x00007cb5c6ed5000)
	libQt5WebChannel.so.5 => /lib/libQt5WebChannel.so.5 (0x00007cb5c61fb000)
	libQt5Quick.so.5 => /lib/libQt5Quick.so.5 (0x00007cb5c5c00000)
	libQt5Qml.so.5 => /lib/libQt5Qml.so.5 (0x00007cb5c5800000)
	libQt5Network.so.5 => /lib/libQt5Network.so.5 (0x00007cb5c5692000)
	libQt5Gui.so.5 => /lib/libQt5Gui.so.5 (0x00007cb5c5000000)
	libQt5Core.so.5 => /lib/libQt5Core.so.5 (0x00007cb5c4a00000)
	libstdc++.so.6 => /lib/libstdc++.so.6 (0x00007cb5c4600000)
	libm.so.6 => /lib/libm.so.6 (0x00007cb5c4908000)
	libc.so.6 => /lib/libc.so.6 (0x00007cb5c4410000)
	/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007cb5c6ff3000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007cb5c61ce000)
	libass.so.9 => /usr/lib/libass.so.9 (0x00007cb5c618f000)
	libavcodec.so.61 => /usr/lib/libavcodec.so.61 (0x00007cb5c2e00000)
	libavfilter.so.10 => /usr/lib/libavfilter.so.10 (0x00007cb5c2800000)
	libavformat.so.61 => /usr/lib/libavformat.so.61 (0x00007cb5c2400000)
	libavutil.so.59 => /usr/lib/libavutil.so.59 (0x00007cb5c1200000)
	libplacebo.so.349 => /usr/lib/libplacebo.so.349 (0x00007cb5c26f1000)
	libswresample.so.5 => /usr/lib/libswresample.so.5 (0x00007cb5c6aa9000)
	libswscale.so.8 => /usr/lib/libswscale.so.8 (0x00007cb5c4f5d000)
	libcdio_paranoia.so.2 => /usr/lib/libcdio_paranoia.so.2 (0x00007cb5c6ec6000)
	libcdio_cdda.so.2 => /usr/lib/libcdio_cdda.so.2 (0x00007cb5c6eba000)
	libcdio.so.19 => /usr/lib/libcdio.so.19 (0x00007cb5c6166000)
	libdvdnav.so.4 => /usr/lib/libdvdnav.so.4 (0x00007cb5c614f000)
	/usr/lib/libmujs.so (0x00007cb5c48b1000)
	liblcms2.so.2 => /usr/lib/liblcms2.so.2 (0x00007cb5c43aa000)
	libarchive.so.13 => /usr/lib/libarchive.so.13 (0x00007cb5c2d2b000)
	libavdevice.so.61 => /usr/lib/libavdevice.so.61 (0x00007cb5c4381000)
	libbluray.so.2 => /usr/lib/libbluray.so.2 (0x00007cb5c4324000)
	libluajit-5.1.so.2 => /usr/lib/libluajit-5.1.so.2 (0x00007cb5c236e000)
	librubberband.so.3 => /usr/lib/librubberband.so.3 (0x00007cb5c1199000)
	libuchardet.so.0 => /usr/lib/libuchardet.so.0 (0x00007cb5c26c3000)
	libvapoursynth-script.so.0 => /usr/lib/libvapoursynth-script.so.0 (0x00007cb5c6aa2000)
	libzimg.so.2 => /usr/lib/libzimg.so.2 (0x00007cb5c10ca000)
	libz.so.1 => /usr/lib/libz.so.1 (0x00007cb5c2348000)
	libasound.so.2 => /usr/lib/libasound.so.2 (0x00007cb5c0fe2000)
	libjack.so.0 => /usr/lib/libjack.so.0 (0x00007cb5c0fa8000)
	libopenal.so.1 => /usr/lib/libopenal.so.1 (0x00007cb5c0c00000)
	libpipewire-0.3.so.0 => /usr/lib/libpipewire-0.3.so.0 (0x00007cb5c0eeb000)
	libpulse.so.0 => /usr/lib/libpulse.so.0 (0x00007cb5c0e9b000)
	libdrm.so.2 => /usr/lib/libdrm.so.2 (0x00007cb5c6136000)
	libdisplay-info.so.2 => /usr/lib/libdisplay-info.so.2 (0x00007cb5c0e65000)
	libgbm.so.1 => /usr/lib/libgbm.so.1 (0x00007cb5c5bfa000)
	libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0x00007cb5c0b62000)
	libsixel.so.1 => /usr/lib/libsixel.so.1 (0x00007cb5c0b16000)
	libwayland-client.so.0 => /usr/lib/libwayland-client.so.0 (0x00007cb5c4f4e000)
	libwayland-cursor.so.0 => /usr/lib/libwayland-cursor.so.0 (0x00007cb5c5bf0000)
	libxkbcommon.so.0 => /usr/lib/libxkbcommon.so.0 (0x00007cb5c0ac3000)
	libXss.so.1 => /usr/lib/libXss.so.1 (0x00007cb5c568d000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0x00007cb5c489c000)
	libXpresent.so.1 => /usr/lib/libXpresent.so.1 (0x00007cb5c4f49000)
	libXv.so.1 => /usr/lib/libXv.so.1 (0x00007cb5c4894000)
	libGL.so.1 => /usr/lib/libGL.so.1 (0x00007cb5c0a3d000)
	libEGL.so.1 => /usr/lib/libEGL.so.1 (0x00007cb5c4312000)
	libwayland-egl.so.1 => /usr/lib/libwayland-egl.so.1 (0x00007cb5c430d000)
	libvulkan.so.1 => /usr/lib/libvulkan.so.1 (0x00007cb5c09b1000)
	libva-drm.so.2 => /usr/lib/libva-drm.so.2 (0x00007cb5c4308000)
	libva.so.2 => /usr/lib/libva.so.2 (0x00007cb5c097b000)
	libva-wayland.so.2 => /usr/lib/libva-wayland.so.2 (0x00007cb5c2d24000)
	libva-x11.so.2 => /usr/lib/libva-x11.so.2 (0x00007cb5c2d1d000)
	libvdpau.so.1 => /usr/lib/libvdpau.so.1 (0x00007cb5c2d18000)
	libQt5WebEngineCore.so.5 => /usr/lib/libQt5WebEngineCore.so.5 (0x00007cb5b8a00000)
	libQt5QmlModels.so.5 => /usr/lib/libQt5QmlModels.so.5 (0x00007cb5c08fd000)
	libQt5Positioning.so.5 => /usr/lib/libQt5Positioning.so.5 (0x00007cb5c089b000)
	libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x00007cb5b89ad000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007cb5c0870000)
	libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007cb5c2d0c000)
	libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007cb5b895a000)
	libproxy.so.1 => /usr/lib/libproxy.so.1 (0x00007cb5c26be000)
	libssl.so.3 => /usr/lib/libssl.so.3 (0x00007cb5b8876000)
	libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x00007cb5b8200000)
	libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007cb5b883c000)
	libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007cb5b80d4000)
	libmd4c.so.0 => /usr/lib/libmd4c.so.0 (0x00007cb5c2332000)
	libsystemd.so.0 => /usr/lib/libsystemd.so.0 (0x00007cb5b7fb4000)
	libdouble-conversion.so.3 => /usr/lib/libdouble-conversion.so.3 (0x00007cb5b8825000)
	libicui18n.so.76 => /usr/lib/libicui18n.so.76 (0x00007cb5b7c00000)
	libicuuc.so.76 => /usr/lib/libicuuc.so.76 (0x00007cb5b7800000)
	libpcre2-16.so.0 => /usr/lib/libpcre2-16.so.0 (0x00007cb5b8788000)
	libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007cb5b7b1b000)
	libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007cb5b76a8000)
	libfribidi.so.0 => /usr/lib/libfribidi.so.0 (0x00007cb5b8768000)
	libunibreak.so.6 => /usr/lib/libunibreak.so.6 (0x00007cb5b7f92000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007cb5b7acb000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007cb5b75de000)
	libvpx.so.9 => /usr/lib/libvpx.so.9 (0x00007cb5b7200000)
	libwebpmux.so.3 => /usr/lib/libwebpmux.so.3 (0x00007cb5c0e59000)
	liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007cb5b7a97000)
	libdav1d.so.7 => /usr/lib/libdav1d.so.7 (0x00007cb5b701e000)
	libopencore-amrwb.so.0 => /usr/lib/libopencore-amrwb.so.0 (0x00007cb5b7a81000)
	librsvg-2.so.2 => /usr/lib/librsvg-2.so.2 (0x00007cb5b6a00000)
	libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007cb5b6ee1000)
	libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007cb5b7a22000)
	libsnappy.so.1 => /usr/lib/libsnappy.so.1 (0x00007cb5b7f83000)
	libaom.so.3 => /usr/lib/libaom.so.3 (0x00007cb5b6000000)
	libgsm.so.1 => /usr/lib/libgsm.so.1 (0x00007cb5b7a13000)
	libjxl.so.0.11 => /usr/lib/libjxl.so.0.11 (0x00007cb5b5c00000)
	libjxl_threads.so.0.11 => /usr/lib/libjxl_threads.so.0.11 (0x00007cb5b8762000)
	libmp3lame.so.0 => /usr/lib/libmp3lame.so.0 (0x00007cb5b7567000)
	libopencore-amrnb.so.0 => /usr/lib/libopencore-amrnb.so.0 (0x00007cb5b753d000)
	libopenjp2.so.7 => /usr/lib/libopenjp2.so.7 (0x00007cb5b698e000)
	libopus.so.0 => /usr/lib/libopus.so.0 (0x00007cb5b5600000)
	librav1e.so.0.7 => /usr/lib/librav1e.so.0.7 (0x00007cb5b5200000)
	libspeex.so.1 => /usr/lib/libspeex.so.1 (0x00007cb5b6ec5000)
	libSvtAv1Enc.so.3 => /usr/lib/libSvtAv1Enc.so.3 (0x00007cb5aca00000)
	libtheoraenc.so.2 => /usr/lib/libtheoraenc.so.2 (0x00007cb5b6e92000)
	libtheoradec.so.2 => /usr/lib/libtheoradec.so.2 (0x00007cb5b6976000)
	libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007cb5b6948000)
	libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00007cb5b68b0000)
	libwebp.so.7 => /usr/lib/libwebp.so.7 (0x00007cb5b683d000)
	libx264.so.164 => /usr/lib/libx264.so.164 (0x00007cb5ac600000)
	libx265.so.212 => /usr/lib/libx265.so.212 (0x00007cb5ab200000)
	libxvidcore.so.4 => /usr/lib/libxvidcore.so.4 (0x00007cb5b5ef3000)
	libvpl.so.2 => /usr/lib/libvpl.so.2 (0x00007cb5b5ba3000)
	libpostproc.so.58 => /usr/lib/libpostproc.so.58 (0x00007cb5b7528000)
	libbs2b.so.0 => /usr/lib/libbs2b.so.0 (0x00007cb5b7a0b000)
	libvmaf.so.3 => /usr/lib/libvmaf.so.3 (0x00007cb5b50fc000)
	libvidstab.so.1.2 => /usr/lib/libvidstab.so.1.2 (0x00007cb5b5ede000)
	libzmq.so.5 => /usr/lib/libzmq.so.5 (0x00007cb5ac91b000)
	libglslang.so.15 => /usr/lib/libglslang.so.15 (0x00007cb5aa600000)
	libOpenCL.so.1 => /usr/lib/libOpenCL.so.1 (0x00007cb5b5b6f000)
	libdvdread.so.8 => /usr/lib/libdvdread.so.8 (0x00007cb5b5b4e000)
	libxml2.so.16 => /usr/lib/libxml2.so.16 (0x00007cb5ab0c2000)
	libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007cb5b5ecb000)
	libmodplug.so.1 => /usr/lib/libmodplug.so.1 (0x00007cb5aa472000)
	libopenmpt.so.0 => /usr/lib/libopenmpt.so.0 (0x00007cb5aa27f000)
	libgmp.so.10 => /usr/lib/libgmp.so.10 (0x00007cb5b555a000)
	libgnutls.so.30 => /usr/lib/libgnutls.so.30 (0x00007cb5aa000000)
	libsrt.so.1.5 => /usr/lib/libsrt.so.1.5 (0x00007cb5ac523000)
	libssh.so.4 => /usr/lib/libssh.so.4 (0x00007cb5ab04b000)
	libunwind.so.8 => /usr/lib/libunwind.so.8 (0x00007cb5b5b34000)
	libshaderc_shared.so.1 => /usr/lib/libshaderc_shared.so.1 (0x00007cb5b553c000)
	libglslang-default-resource-limits.so.15 => /usr/lib/libglslang-default-resource-limits.so.15 (0x00007cb5b5b2a000)
	libdovi.so.3 => /usr/lib/libdovi.so.3 (0x00007cb5a9f77000)
	libsoxr.so.0 => /usr/lib/libsoxr.so.0 (0x00007cb5aa21e000)
	libacl.so.1 => /usr/lib/libacl.so.1 (0x00007cb5b7a02000)
	liblz4.so.1 => /usr/lib/liblz4.so.1 (0x00007cb5b50d7000)
	libraw1394.so.11 => /usr/lib/libraw1394.so.11 (0x00007cb5b552a000)
	libavc1394.so.0 => /usr/lib/libavc1394.so.0 (0x00007cb5b6e8b000)
	librom1394.so.0 => /usr/lib/librom1394.so.0 (0x00007cb5b5ec5000)
	libiec61883.so.0 => /usr/lib/libiec61883.so.0 (0x00007cb5b551c000)
	libxcb-shm.so.0 => /usr/lib/libxcb-shm.so.0 (0x00007cb5b5b25000)
	libxcb-shape.so.0 => /usr/lib/libxcb-shape.so.0 (0x00007cb5b50d1000)
	libxcb-xfixes.so.0 => /usr/lib/libxcb-xfixes.so.0 (0x00007cb5ac912000)
	libv4l2.so.0 => /usr/lib/libv4l2.so.0 (0x00007cb5ac903000)
	libfftw3.so.3 => /usr/lib/libfftw3.so.3 (0x00007cb5a9c00000)
	libsamplerate.so.0 => /usr/lib/libsamplerate.so.0 (0x00007cb5a9a92000)
	libpython3.13.so.1.0 => /usr/lib/libpython3.13.so.1.0 (0x00007cb5a9400000)
	libpulsecommon-17.0.so => /usr/lib/pulseaudio/libpulsecommon-17.0.so (0x00007cb5a9ef7000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007cb5ac8d9000)
	libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007cb5a99b8000)
	libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x00007cb5a9eb2000)
	libffi.so.8 => /usr/lib/libffi.so.8 (0x00007cb5ac8ce000)
	libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007cb5a9348000)
	libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007cb5a9e80000)
	libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007cb5ab043000)
	libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0x00007cb5ac8c9000)
	libxcb-dri3.so.0 => /usr/lib/libxcb-dri3.so.0 (0x00007cb5ac51c000)
	libsmime3.so => /usr/lib/libsmime3.so (0x00007cb5a9e54000)
	libnss3.so => /usr/lib/libnss3.so (0x00007cb5a9210000)
	libnssutil3.so => /usr/lib/libnssutil3.so (0x00007cb5a91e3000)
	libplds4.so => /usr/lib/libplds4.so (0x00007cb5ab03e000)
	libplc4.so => /usr/lib/libplc4.so (0x00007cb5ab037000)
	libnspr4.so => /usr/lib/libnspr4.so (0x00007cb5a91a4000)
	libevent-2.1.so.7 => /usr/lib/libevent-2.1.so.7 (0x00007cb5a9152000)
	libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007cb5aa20c000)
	libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x00007cb5aa207000)
	libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00007cb5a9e4f000)
	libXtst.so.6 => /usr/lib/libXtst.so.6 (0x00007cb5a9e47000)
	libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00007cb5a8f82000)
	libwebpdemux.so.2 => /usr/lib/libwebpdemux.so.2 (0x00007cb5a9e41000)
	libharfbuzz-subset.so.0 => /usr/lib/libharfbuzz-subset.so.0 (0x00007cb5a8e51000)
	libpci.so.3 => /usr/lib/libpci.so.3 (0x00007cb5a99a3000)
	libxslt.so.1 => /usr/lib/libxslt.so.1 (0x00007cb5a8e14000)
	libminizip.so.1 => /usr/lib/libminizip.so.1 (0x00007cb5a9e35000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x00007cb5a9e30000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007cb5a999b000)
	libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007cb5a8d4f000)
	libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007cb5a8d22000)
	libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007cb5a8d1c000)
	libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007cb5a8d0e000)
	libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x00007cb5a8d07000)
	libpxbackend-1.0.so => /usr/lib/libproxy/libpxbackend-1.0.so (0x00007cb5a8cf8000)
	libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007cb5a8cd6000)
	libcap.so.2 => /usr/lib/libcap.so.2 (0x00007cb5a8cca000)
	libicudata.so.76 => /usr/lib/libicudata.so.76 (0x00007cb5a6e00000)
	libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x00007cb5a6d54000)
	libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x00007cb5a8cbb000)
	libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x00007cb5a8cab000)
	libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x00007cb5a6ce9000)
	libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00007cb5a8c9c000)
	libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00007cb5a6c3b000)
	libjxl_cms.so.0.11 => /usr/lib/libjxl_cms.so.0.11 (0x00007cb5a8c65000)
	libhwy.so.1 => /usr/lib/libhwy.so.1 (0x00007cb5a6c2f000)
	libbrotlienc.so.1 => /usr/lib/libbrotlienc.so.1 (0x00007cb5a6b75000)
	libogg.so.0 => /usr/lib/libogg.so.0 (0x00007cb5a6b6b000)
	libsharpyuv.so.0 => /usr/lib/libsharpyuv.so.0 (0x00007cb5a6b62000)
	libmvec.so.1 => /usr/lib/libmvec.so.1 (0x00007cb5a6a69000)
	libgomp.so.1 => /usr/lib/libgomp.so.1 (0x00007cb5a6a15000)
	libsodium.so.26 => /usr/lib/libsodium.so.26 (0x00007cb5a69b4000)
	libpgm-5.3.so.0 => /usr/lib/libpgm-5.3.so.0 (0x00007cb5a696a000)
	libSPIRV-Tools-opt.so => /usr/lib/libSPIRV-Tools-opt.so (0x00007cb5a6600000)
	libSPIRV-Tools.so => /usr/lib/libSPIRV-Tools.so (0x00007cb5a644e000)
	libmpg123.so.0 => /usr/lib/libmpg123.so.0 (0x00007cb5a690e000)
	libvorbisfile.so.3 => /usr/lib/libvorbisfile.so.3 (0x00007cb5a6902000)
	libleancrypto.so.1 => /usr/lib/libleancrypto.so.1 (0x00007cb5a630b000)
	libp11-kit.so.0 => /usr/lib/libp11-kit.so.0 (0x00007cb5a61a8000)
	libidn2.so.0 => /usr/lib/libidn2.so.0 (0x00007cb5a68e0000)
	libunistring.so.5 => /usr/lib/libunistring.so.5 (0x00007cb5a5fc5000)
	libtasn1.so.6 => /usr/lib/libtasn1.so.6 (0x00007cb5a68ca000)
	libhogweed.so.6 => /usr/lib/libhogweed.so.6 (0x00007cb5a687e000)
	libnettle.so.8 => /usr/lib/libnettle.so.8 (0x00007cb5a5f6c000)
	libv4lconvert.so.0 => /usr/lib/libv4lconvert.so.0 (0x00007cb5a5ef3000)
	libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0x00007cb5a5e6d000)
	libasyncns.so.0 => /usr/lib/libasyncns.so.0 (0x00007cb5a6874000)
	libnghttp3.so.9 => /usr/lib/libnghttp3.so.9 (0x00007cb5a6850000)
	libnghttp2.so.14 => /usr/lib/libnghttp2.so.14 (0x00007cb5a5e45000)
	libssh2.so.1 => /usr/lib/libssh2.so.1 (0x00007cb5a5dfa000)
	libpsl.so.5 => /usr/lib/libpsl.so.5 (0x00007cb5a5de6000)
	libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007cb5a6847000)
	libtiff.so.6 => /usr/lib/libtiff.so.6 (0x00007cb5a5d59000)
	libmount.so.1 => /usr/lib/libmount.so.1 (0x00007cb5a5d03000)
	libudev.so.1 => /usr/lib/libudev.so.1 (0x00007cb5a5cbd000)
	libduktape.so.207 => /usr/lib/libduktape.so.207 (0x00007cb5a5c71000)
	libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x00007cb5a5c4e000)
	libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x00007cb5a5c31000)
	libthai.so.0 => /usr/lib/libthai.so.0 (0x00007cb5a5c26000)
	libFLAC.so.14 => /usr/lib/libFLAC.so.14 (0x00007cb5a5bdd000)
	libjbig.so.2.1 => /usr/lib/libjbig.so.2.1 (0x00007cb5a5bcf000)
	libblkid.so.1 => /usr/lib/libblkid.so.1 (0x00007cb5a5b95000)
	libdatrie.so.1 => /usr/lib/libdatrie.so.1 (0x00007cb5a5b8c000)

As I said, this is the core feature of flatpaks. This is not a surprise.

Why do you prefer AppImage over Flatpak? if size matters, flatpak is the better option because flatpak apps can share the same runtimes.

For example, if two flatpak apps XXX and YYY both have a dependency on Mesa 25.0.5, the Mesa runtime is only installed once in flatpak. This can give you a big size benefit compared to the Appimages of XXX and YYY because each Appimage contains everything.

Yeah, I know the technical side. And possibly even some (rare) use cases.

Pondering about this, I think I mainly criticize the waste of resources we nowadays tend to accept. Machines are getting larger and faster, so resources like memory, CPU load, disk space aren’t that scarce anymore. And with virtualization, containerizing and sandboxing it’s nowadays real easy to “just put it all in there”.

Being in IT for 45+ years now, I’ve seen high-performant, low-resource constantly evolving to large, resource-hungry, and hard to maintain. Kinda sloppiness, because it’s so easy and we can.

Where is the old *nix philosophy of

Do only one thing, and do it well, so it can be reused.

That’s what made UNIX and Linux (well, BSD, too) great.

Well, not trying to start a religious war here, just a small reminder of think before you do something maybe. (Remember the old IBM “THINK” sign we used to put on the wall? Still must have one somewhere in the cellar…)

“The trouble with every one of us is that we don’t think enough. We don’t get paid for working with our feet — we get paid for working with our heads.”
— Thomas J. Watson, while still at NCR

Everything can have its use cases. Fortunately, we have the choice. Choose well.

Talking about waste of resources why would you prefer appimage over flatpak?

flatpaks waste disc space on your machine, but they also save resources somewhere else. Think about the package build process. Each package build process for the various distros consumes energy and disc space on servers. On the other side a flatpak is only created once and can be used anywhere. I am just saying that because to me it is not 100 % clear if native packages or flatpaks waste the most resources on our planet.