flatpaks for default applications

Message
Author
User avatar
siamhie
Global Moderator
Posts: 3570
Joined: Fri Aug 20, 2021 5:45 pm

Re: flatpaks for default applications

#11 Post by siamhie »

seasoned_geek wrote: Fri Aug 01, 2025 4:41 am
siamhie wrote: Thu Jul 31, 2025 10:52 pm
seasoned_geek wrote: Thu Jul 31, 2025 5:40 pm Suggestion for MXLinux: Since you support flatpaks with gui tools, why not support them in Default Applications. They should just appear in the list like the native apps and all the magic "just happens" like it does for the native apps.
Flatpaks are applications that are sandboxed from the system. You can simply create shortcuts to your flatpak application.

Code: Select all

flatpak run [OPTION...] REF [ARG...]
https://docs.flatpak.org/en/latest/flat ... latpak-run
Thank you for your reply, that, however, is not the question.

I wasn't responding to your question. I was responding to your suggestion (that I clearly quoted).
This is my Fluxbox . There are many others like it, but this one is mine. My Fluxbox is my best friend. It is my life.
I must master it as I must master my life. Without me, my Fluxbox is useless. Without my Fluxbox, I am useless.

User avatar
oops
Posts: 1997
Joined: Tue Apr 10, 2018 5:07 pm

Re: flatpaks for default applications

#12 Post by oops »

Stevo wrote: Thu Jul 31, 2025 8:01 pm They are magically bloated in size compared to natively built applications, though.
Yes, and in this case, I personally prefer the .appimage concept for some few appli. only.
Pour les nouveaux utilisateurs: Alt+F1 pour le manuel, ou FAQS, MX MANUEL, et Conseils MX Conseils Debian - Info. système “quick-system-info-mx” (QSI) ... Ici: System: MX-19-23_x64 & antiX23_x32 runit

User avatar
Eadwine Rose
Administrator
Posts: 15011
Joined: Wed Jul 12, 2006 2:10 am

Re: flatpaks for default applications

#13 Post by Eadwine Rose »

I would love a gander at your QSI.
MX-23.6_x64 July 31 2023 * 6.1.0-37amd64 ext4 Xfce 4.20.0 * 8-core AMD Ryzen 7 2700
Asus TUF B450-Plus Gaming UEFI * Asus GTX 1050 Ti Nvidia 535.247.01 * 2x16Gb DDR4 2666 Kingston HyperX Predator
Samsung 870EVO * Samsung S24D330 & P2250 * HP Envy 5030

User avatar
b3ta
Posts: 83
Joined: Mon Aug 20, 2018 4:34 am

Re: flatpaks for default applications

#14 Post by b3ta »

Mail client

Which application gets called to deal with MIME links and how to configure that depends on which Desktop Environment you're using.

I use Xfce and after calling up its menu I typed "def" before it came up with "Default Applications". Choosing that I clicked on the drop-down populated by "Mozilla Thunderbird" and chose "Other", allowing me choose another program. Once chosen, I could add parameters. Which they are depend on both Xfce and what the program expects. Reading "man thunderbird" brought up its "-compose" option, which can be used. You'd need to read around a bit to see what Xfce can supply and look for examples of how other apps are called. https://docs.xfce.org/ is a good place to start.

I also expect a bit of a dance to deal with spaces in the subject line. It could be anything from quoting to URL encoding.

HTH

Flatpaks

I only use them when the fact that I'm running an old release gets in the way of what I need to work. A perfect example is Deskflow, which they've built against Trixie. Using it makes my life much easier, not to mention less painful, so I use its Flatpak and take the bloat.

seasoned_geek
Posts: 23
Joined: Wed Jul 30, 2025 11:53 am

Re: flatpaks for default applications

#15 Post by seasoned_geek »

Stevo wrote: Thu Jul 31, 2025 8:01 pm They are magically bloated in size compared to natively built applications, though.
Being a very old geek who started out on Commodore Super PET then moved to PDP-11/70 running RSTS/E . . . having written some geek books that won an award or two, please allow me to ramble a bit. You can get more background reading this book, and this enjoyable post quoting one of the founders of Agile.

DOS won

Flatpaks and AppImages are the Linux world's way of admitting DOS won without actually saying it. We face this a lot in the embedded systems world. I would even go so far as to throw Docker and the other "container" systems into the admission category as well.

The rest of this post will be a barefoot-in-the-snow-uphill-both-ways defense of the above so feel free to zone out.

We will skip over the RL removable pack days and their whopping 1.2 MEG storage capacity and start our conversation with the RA60 and its just over 200 MB storage capacity where it could be formatted for either 16-bit or 18-bit words. The 11/70 could have around 2MB of physical RAM, but each running instance was limited to 64K-words. In that 64K-words your program, its data, and however much of the OS it needed had to exist. There were shared system libraries, but more importantly, installed images. Instead of each user running a copy of the default editor, there was one copy installed in RAM and each user had their own "data area" for lack of a better term that held what they were doing.

Both IBM and DEC standardized on 512 byte disk blocks. Later the PC world adopted the same. IBM, focusing on high volume, allocated storage in tracks and cylinders. They also called blocks "sectors."


Image

DEC and many other midrange companies developed the concept of "paged memory" for their virtual memory operating systems. A vestige of this exists in Linux and is called SWAP. Be it a swap file or partition it is for paging things in and out of memory to make things better.

Because we were trying to run north of 64 users with 2MB of RAM we had to have shared libraries and installed images. UNIX, and later, Linux, copied this. In Dennis's defense, he was creating the C programming language and UNIX on a PDP, so he had the same resource restrictions.

Stupid decisions gave us the IBM PC and its 640K initial memory limit. In the case of IBM, the sales team determined more memory than that would cost close to a million dollars and nobody could afford it so they had the engineers allocate the 384K region above 640K for add-in cards like video. In the case of DEC, engineers built a Micro-PDP that could be sold for the same $5K price tag and would run all/most of the existing PDP software. Sales did not want that cheap thing cutting into the market for the $250K priced mid-range units making up the bulk of their commissions . . . You've never heard of it because they didn't release it. In Ken Olson's defense, DEC got into PCs with the Rainbow at the tail end of the CP/M days. Took a beating there.

IBM also chose a processor which required SEGMENT:OFFSET addressing. Each segment was 64K bytes in size. DOS was originally limited to 10 working segments for everything. It could not swap. Hey, those 360K floppies were slow, noisy, grinding beasts anyway. The whopping 10MB full height hard drives weighing more than most bowling balls weren't quiet speed demons either. SEGMENT:OFFSET forced on the software development world the concept of memory models. The chart from there is okay, just doesn't tell the whole story. In fact, he has small and compact reversed.

Image

Compact - the .com extension - usually assembler language written and specially linked. Both executable and data had to fit in a single segment.
Small - one segment for each code and data
Medium - multiple code segments only one data segment
Large - multiples of each

Many a programmer got burned by OFFSET when trying to increment a pointer when the comparison only compared OFFSET because OFFSET went back to zero when you cross a segment boundary.

Anyway, DOS (Disk Operating System) didn't do much. Yes, we had external commands like EDLIN, FORMAT, PRINT, etc. but the OS didn't do much. It was COMMAND.COM and fit in 64K bytes. Once loaded it stayed there forever. Programs did most everything via INT 21h. We communicated directly with the BIOS of the machine. Very slow burnt EPROM (later flashable) code built into the motherboard.

Yes, this was a long journey, but you needed to walk it to appreciate the rest.

Many early computers were sold with a single floppy drive because computers were expensive. When you wanted to copy a file from one floppy to another DOS would read a chunk, tell you to swap floppies, write a chunk, tell you to swap floppies . . .

Because of poor decisions DOS executables had to have everything linked into them. In the Linux world we call it static linking. The upside was that most programs were immune to operating system changes. It wasn't until the era of DOS Extenders like HIGHMEM (sp?) and the rest that we had much interaction with the OS.

On the midrange and mainframe platforms, we had computer operators, data centers, and system managers. Any operating system changes were tested before they went into production. Despite all of our programs interacting with the OS, we were insulated from it.

Contrast that to what we have with Windows and Linux today.
  • Use of Agile instead of actual Software Engineering.
  • Automated test scripts that often test nothing.
  • Updates force fed to computers.
  • Users have a working system when they go to bed and find something busted the next day
Gotta love being old enough to remember when Ubuntu pushed out a networking "update" that was obviously never tested. It deleted support for Broadcomm (sp?) network chips that were in something like 70-90% of all laptops at the time. People with only one computer were left twisting in the breeze.

KDE is notorious for pushing updates out to whatever that central PIM database engine is that have incompatible changes to content which is inexplicably stored in .cache and they never clear .cache as part of the update. Whole systems hang, not just the email, contacts, etc.

Flatpak and AppImage are a desperate attempt to minimize the damage caused by OS updates that shouldn't have been.

Docker and other container systems minimize the damage but also exist to nurse along programming architectures that are as current as the floppy disks and single core computers they were created on.

In the days of DOS we had to roll our own for everything. Then GUI DOS (Windows) came out. Despite the fact AUTOEXEC.BAT had "win" at the end of it and when you exited Windows you were right back at the C:> prompt Microsoft called it an operating system.

With DOS we had interrupt driven programming.
About the time Windows came out we had a lot of TUI and graphical libraries that introduced event driven programming.
Modern user interfaces and many embedded systems are programmed in immediate mode.

Best example for interrupt driven is modem or serial communications. When the UART assembled an entire byte it fired a DOS interrupt (usually 3 or 4 if memory serves). Your program would have hooked the interrupt to an interrupt service routine that would immediately read the byte and put it somewhere. Everything was interrupts, even key presses on the keyboard and things sent to the display.


Even driven programming, no matter who created it, had a single main event loop. Basically everything would put messages on an event queue and the main event loop would process them as it got to them. The 80286 was a single core computer and not all that fast (by today's standards) so this bottleneck was viewed as a great programming paradigm. There were switch statements in the main event loop ( or one function it called) that were thousands of lines long. Eventually C++ helped hide a lot of that. Application frameworks like Qt and others added the concept of signals and slots. Oh, they still had a main event loop and many signals could be queued on it, but a signal could also direct execute a function in a different class that had been declared a slot.

Enter the world of multi-core computers.

This event loop really has to execute on one core. Most everything it executes also executes on that same core. Trouble is you have 1-N additional cores hurling things onto its event queue. Anyone who has ever been in a vehicle where the lanes neck down from 4 or more to 1 knows what happens here.

So, before I cure insomnia for anyone who got this far.

Too many programmers aren't formally trained which means they don't consider the big picture when developing software. Microsoft's bloatware is legendary and they tell you to throw hardware at it rather than them fixing their code. Tons of features/capabilities get added to a single executable with one massively overworked main event loop.

Add onto that decades of being told you had to use shared libraries, to the point, much of what you need to use cannot be statically linked. (Think Chrome and other Web browser libraries.) The shared libraries then kick the 3-legged stool out from under your application when an untested update gets forced out.

Speaking as one who has had to do packaging, the final humiliating kick to the crotch is the fact there are something like 20 different package managers. While .deb kind-of plays nice on distros claiming to be Debian based, .rpm created on Fedora or whatever will not be compatible with all RPM based distributions. There are some that have "improved" the RPM format. AUR is taking the approach of making everyone build everything from source, fine, but you still have to know the correct system install directories. This gets really kinky when you have systems with multi-arch support. There are no solid rules for placement of architecture/platform specific header, source, executable, and shared library files.

Flatpak and Appimage try to minimize the interaction with the actual host operating system.

Docker and the other container systems are an attempt to nurse along the main event loop while getting back to DOS. Docker doesn't do much for you as you build your own little world inside of the container. If you build in some form of cross container communications each container can theoretically run on their own core thus distributing load. As long as nobody updates the actual Docker software on the host you should be better insulated from host update catastrophes. Having said that, if insert-distro-here pushes out an untested network software update that drops support for your network chipset, you are hosed.


Short answer

Linux (all flavors) has now achieved parity with Windows - - - Just throw hardware at it

Both DOS and Linux used to run from a single floppy. Some distros still do, but do you still have a floppy drive? Full disclosure, I still have multiple LS-120 drives.

This rambling post should have cured everyone's insomnia!

User avatar
siamhie
Global Moderator
Posts: 3570
Joined: Fri Aug 20, 2021 5:45 pm

Re: flatpaks for default applications

#16 Post by siamhie »

seasoned_geek wrote: Fri Aug 01, 2025 7:31 am
This rambling post should have cured everyone's insomnia!
Post your QSI (Quick System Info) found in MX Tools.
Select "Copy for forum" and paste it as a new comment.
This is my Fluxbox . There are many others like it, but this one is mine. My Fluxbox is my best friend. It is my life.
I must master it as I must master my life. Without me, my Fluxbox is useless. Without my Fluxbox, I am useless.

seasoned_geek
Posts: 23
Joined: Wed Jul 30, 2025 11:53 am

Re: flatpaks for default applications

#17 Post by seasoned_geek »

Per your request

Code: Select all

System:
  Kernel: 6.1.0-37-amd64 [6.1.140-1] arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.1.0-37-amd64 root=UUID=<filter> ro quiet splash
  Desktop: Xfce v: 4.20.0 tk: Gtk v: 3.24.38 info: xfce4-panel wm: xfwm v: 4.20.0 vt: 7
    dm: LightDM v: 1.32.0 Distro: MX-23.6_x64 Libretto April 13  2025 base: Debian GNU/Linux 12
    (bookworm)
Machine:
  Type: Desktop System: HP product: HP Z2 SFF G4 Workstation v: SBKPF,DWKSBLF
    serial: <superuser required> Chassis: type: 3 serial: <superuser required>
  Mobo: HP model: 8456 v: KBC Version 07.D4.00 serial: <superuser required> UEFI: HP
    v: Q50 Ver. 01.08.11 date: 10/16/2024
CPU:
  Info: model: Intel Core i7-8700 bits: 64 type: MT MCP arch: Coffee Lake gen: core 8 level: v3
    note: check built: 2018 process: Intel 14nm family: 6 model-id: 0x9E (158) stepping: 0xA (10)
    microcode: 0xFA
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache: L1: 384 KiB
    desc: d-6x32 KiB; i-6x32 KiB L2: 1.5 MiB desc: 6x256 KiB L3: 12 MiB desc: 1x12 MiB
  Speed (MHz): avg: 833 high: 900 min/max: 800/4600 scaling: driver: intel_pstate
    governor: powersave cores: 1: 900 2: 800 3: 900 4: 800 5: 800 6: 800 7: 800 8: 800 9: 900 10: 900
    11: 800 12: 800 bogomips: 76799
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: gather_data_sampling mitigation: Microcode
  Type: indirect_target_selection status: Not affected
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed mitigation: IBRS
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: IBRS; IBPB: conditional; STIBP: conditional; RSB filling;
    PBRSB-eIBRS: Not affected; BHI: Not affected
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort mitigation: TSX disabled
Graphics:
  Device-1: NVIDIA GK107 [NVS 510] driver: nvidia v: 470.256.02 non-free: series: 470.xx+
    status: legacy-active (EOL~2023/24) arch: Kepler code: GKxxx process: TSMC 28nm built: 2012-18
    pcie: gen: 1 speed: 2.5 GT/s lanes: 16 link-max: gen: 2 speed: 5 GT/s bus-ID: 01:00.0
    chip-ID: 10de:0ffd class-ID: 0300
  Device-2: Logic3 / SpectraVideo plc G-720 Keyboard type: USB driver: hid-generic,usbhid
    bus-ID: 1-11.1.2:6 chip-ID: 1267:0103 class-ID: 0300
  Display: x11 server: X.Org v: 1.21.1.7 compositor: xfwm v: 4.20.0 driver: X: loaded: nvidia
    unloaded: fbdev,modesetting,nouveau,vesa alternate: nv gpu: nvidia display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 3840x1080 s-dpi: 96 s-size: 1017x286mm (40.04x11.26")
    s-diag: 1056mm (41.59")
  Monitor-1: DP-4 pos: primary,left res: 1920x1080 hz: 60 dpi: 93 size: 527x296mm (20.75x11.65")
    diag: 604mm (23.8") modes: N/A
  Monitor-2: DP-5 pos: right res: 1920x1080 hz: 60 dpi: 102 size: 476x268mm (18.74x10.55")
    diag: 546mm (21.51") modes: N/A
  API: OpenGL v: 4.6.0 NVIDIA 470.256.02 renderer: NVS 510/PCIe/SSE2 direct-render: Yes
Audio:
  Device-1: Intel Cannon Lake PCH cAVS vendor: Hewlett-Packard driver: snd_hda_intel v: kernel
    alternate: snd_soc_skl,snd_sof_pci_intel_cnl bus-ID: 00:1f.3 chip-ID: 8086:a348 class-ID: 0403
  Device-2: NVIDIA GK107 HDMI Audio driver: snd_hda_intel v: kernel pcie: gen: 2 speed: 5 GT/s
    lanes: 16 bus-ID: 01:00.1 chip-ID: 10de:0e1b class-ID: 0403
  API: ALSA v: k6.1.0-37-amd64 status: kernel-api tools: alsamixer,amixer
  Server-1: PipeWire v: 1.0.0 status: active with: 1: pipewire-pulse status: active
    2: wireplumber status: active 3: pipewire-alsa type: plugin 4: pw-jack type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel Ethernet I219-LM vendor: Hewlett-Packard driver: e1000e v: kernel port: N/A
    bus-ID: 00:1f.6 chip-ID: 8086:15bb class-ID: 0200
  IF: eth0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Drives:
  Local Storage: total: 7.28 TiB used: 35.84 GiB (0.5%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital model: WD BLACK SN770 1TB
    size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s lanes: 4 type: SSD
    serial: <filter> rev: 731030WD temp: 35.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Western Digital model: WD6003FZBX-00GXAB0 size: 5.46 TiB
    block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s type: HDD rpm: 7200 serial: <filter>
    rev: 1A01 scheme: GPT
  ID-3: /dev/sdb maj-min: 8:16 type: USB vendor: Western Digital model: WD10JMVW-11AJGS4
    size: 931.48 GiB block-size: physical: 512 B logical: 512 B type: HDD rpm: 5400 serial: <filter>
    rev: 1014 scheme: MBR
Partition:
  ID-1: / raw-size: 931.26 GiB size: 915.57 GiB (98.31%) used: 35.84 GiB (3.9%) fs: ext4
    dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 256 MiB size: 252 MiB (98.46%) used: 274 KiB (0.1%) fs: vfat
    dev: /dev/nvme0n1p1 maj-min: 259:1
Swap:
  Kernel: swappiness: 15 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: file size: 6 GiB used: 0 KiB (0.0%) priority: -2 file: /swap/swap
Sensors:
  System Temperatures: cpu: 39.0 C pch: 60.0 C mobo: N/A gpu: nvidia temp: 56 C
  Fan Speeds (RPM): N/A gpu: nvidia fan: 28%
Repos:
  Packages: 2363 pm: dpkg pkgs: 2346 libs: 1182 tools: apt,apt-get,aptitude,nala,synaptic pm: rpm
    pkgs: 0 pm: flatpak pkgs: 17
  No active apt repos in: /etc/apt/sources.list
  Active apt repos in: /etc/apt/sources.list.d/debian-stable-updates.list
    1: deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
  Active apt repos in: /etc/apt/sources.list.d/debian.list
    1: deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
    2: deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
  Active apt repos in: /etc/apt/sources.list.d/mx.list
    1: deb http://mirror.math.princeton.edu/pub/mxlinux/mx/repo/ bookworm main non-free
Info:
  Processes: 333 Uptime: 5h 58m wakeups: 1 Memory: 31.07 GiB used: 4.2 GiB (13.5%) Init: SysVinit
  v: 3.06 runlevel: 5 default: graphical tool: systemctl Compilers: gcc: 12.2.0 alt: 12
  Client: shell wrapper v: 5.2.15-release inxi: 3.3.26
Boot Mode: UEFI

User avatar
MikeR
Posts: 248
Joined: Sun Jun 25, 2023 6:42 am

Re: flatpaks for default applications

#18 Post by MikeR »

@seasoned_geek
Several nits:
First:
nobody actually uses Firefox
On behalf of all nobodies, as a generalization, all generalizations (including this one) are often both unbased and wrong.
Second: your latest post assumes the proportions of a polemic. Difficult to digest in it's entirety. Please do try to make your point more succinctly.
Last: I, personally, try to avoid flatpaks whenever a native application has been available. So far with no ill effects.

Thank you

P.S. I too come from a background of RSTS at DEC, recalled happily.
Image
Last edited by MikeR on Sat Aug 02, 2025 7:43 am, edited 1 time in total.
Old RSTS hack
Registered Linux user #542196

User avatar
Jerry3904
Administrator
Posts: 23369
Joined: Wed Jul 19, 2006 6:13 am

Re: flatpaks for default applications

#19 Post by Jerry3904 »

+1
Production: MX-23 Xfce, AMD FX-4130 Quad-Core, GeForce GT 630/PCIe/SSE2, 16 GB, SSD 120 GB, Data 1TB
Personal: Lenovo X1 Carbon with MX-23 Fluxbox
Other: Raspberry Pi 5 with MX-23 Xfce Raspberry Pi Respin

User avatar
Gabriel_M
Posts: 168
Joined: Tue Aug 13, 2019 7:21 pm

Re: flatpaks for default applications

#20 Post by Gabriel_M »

nobody actually uses Firefox
According to statistics, the market share of web browsers used by 2025 is:

Chrome 63.68%, Safari 22.07%, Edge 5.71%, Samsung Internet 3.36%, Firefox 2.1%, and Others 3.08%.

Source: https://www.similarweb.com/es/browsers/

Given these data, the free and open-source web browser par excellence, Firefox, is used by just over 179 million people.

I have been using it since its inception: https://ftp.mozilla.org/pub/firebird/releases/0.6.1/
Desktop Mobo: BIOSTAR model: B450MHP
CPU AMD Ryzen 3 3200G
RAM: 8 GiB 2667 MHz DDR4
Device-1: AMD Picasso/Raven 2
STORAGE:Gigabyte model: GP-GSTFS31480GNTD size: 447.13 GiB
DISTRO: MX-23.6_x64 Libretto XFCE 4.20

Post Reply

Return to “Software / Configuration”