From AlmaLinux KDE to Ubuntu MATE: the unlikely journey
This is going to look like a post using twisted logic to justify an illogical decision. But humans are not guided exclusively by what we love to call reason; they’re also creatures with a soul and feelings. Sometimes, they can become frustrated with something to the point where using an environment that doesn’t change all the time looks like a winner.
- The need to get rid of AlmaLinux KDE
- Mirror, mirror on the wall, who’s the fairest of them all?
- Kubuntu 24.04 LTS and 24.10
- A change in Ubuntu that affects Synaptic
- Theming the GTK apps under KDE5 for root
- Small changes in KDE6 that bothered me
- Some ratiocination—but not that much
- Ubuntu MATE: a second attempt
- Back to snaps: let’s kill them, or should we?
- Installing Firefox and Thunderbird as packages
- Why you need Ubuntu Pro in LTS
- A few Ubuntu MATE idiosyncrasies
- 10+1 customizations in Ubuntu MATE
- 10+1 ways of installing software in Ubuntu MATE
- Notes on upgrading
- Final notes
The need to get rid of AlmaLinux KDE
I switched to AlmaLinux with KDE in 2023. It wasn’t entirely smooth, because the antiquated, retarded kernel 5.14 didn’t support the Wi-Fi and the BT in my newer cheap laptop, so I had to use a kernel from ELRepo. After that custom build of AlmaLinux 9.3 (I wanted the Live ISO to be fully usable on all my computers), I did the same for 9.4, but this time the newer kernel could only be used on an installed system. The two available Live ISO building systems, both inherited from Fedora, are pathetic pieces of crap.
Absolutely nothing is perfect in Linux, so it’s just “the lesser evil” compared to Microsoft Windows, and the only other OS that has reasonable hardware and software support (FreeBSD has a long way to go). Notwithstanding my “epic disappointments” with Linux, there is no other way for now. But after having described in detail how I used my custom AlmaLinux build, including the complexity of getting the software I needed, I got tired of this shit.
It wasn’t about the bugs that came with the upgrade from 9.3 to 9.4, most of which are due to Red Hat’s (and EPEL’s) philosophy of abruptly switching the repos from 9.3 to 9.4, without supporting both branches not even for a split second. But I was hit by KDE’s ability to let you configure complex LC_*
values such as en_DE.UTF-8
, but then the same KDE can’t reset them all, and not even all of KDE’s own apps can’t deal with such values! Then, I was hit by a freeze, then by several kernel issues (with ELRepo’s kernels, but the regressions seem to have originated upstream).
Eventually, the CERT Forensics Tools repository ceased to exist! I really only needed it for the proper versions of unrar
and rar
, but this was the proverbial last drop. Or the final straw, if you prefer. It’s already a pain in the ass to figure out the extra repositories, and to still have to build some packages from source, now I can’t even have a STABLE situation? “Moving sands” and “enterprise-grade distro” are mutually incompatible!
It was time to move on.
Mirror, mirror on the wall, who’s the fairest of them all?
You won’t guess it. Or maybe you will, generically. What’s the mainstream distro (all flavors included) that gets the best software support (some proprietary software often offer packages for a few distros only, but if they do, this one is certainly supported), to the point that for some uneducated people, it’s synonymous with Linux?
Ubuntu. OK, Ubuntu, Kubuntu, Xubuntu, Lubuntu, Ubuntu MATE, Ubuntu Cinnamon, Ubuntu Budgie, Ubuntu Unity, Ubuntu Kylin, Ubuntu Studio, Edubuntu.
But there are a few things to discuss.
❶ First, there is this attitude saying, “only n00bs or stupid people use Ubuntu, because they believe this is everything Linux is about, and they’re unwilling to learn.” To which I could reply that in 2024 people surely shouldn’t care about the almost nonexistent Arch installer or about Gentoo Stage 1. And the true n00bs are those who install Linux Mint!
❷ Secondly, “but Ubuntu is so terribly buggy!” I beg to differ. I’ve been distro-hopping since 1995, and the reliability of the Linux distros, while being rather fluid, is not improving. Even considering my never-ending change of preference regarding distros, I can tell that I really loved all Ubuntu versions from 4.10 to 9.10! Or was it 7.10 that I still truly loved? Either way, in 2007 I got very pissed off, but it was only temporary. In 2009, I was building RPMs for RHEL5 clones. In 2011, I did the same for Mageia Cauldron. In both cases, small repos mostly for my own use, but public repos nonetheless. It’s only later that I took a pause from Linux (from the BSDs too!), with occasional returns, such as trying Manjaro in 2012. I don’t remember very well what followed, because I stopped blogging about it, and the previous versions of the blog are lost. The first documented return to Linux talks of Linux Mint 19.3 XFCE and other distros released between end-December 2019 and end-May 2020. But the buggiest distro wasn’t Ubuntu!
I stopped using Ubuntu after GNOME2 was discontinued and replaced with the shitty GNOME3. I was also extremely disappointed by KDE Plasma 4. Who the fuck needed those stupid plasmoids? To be able to use KDE5, I have to force myself to forget that plasmoids still exist! But I relied on XFCE for quite a long time; for better or for worse, it was just about the same, except for the painful porting to GTK3.
Ubuntu isn’t buggier than other distros; the Linux Desktop, as a whole, is. Let me explain this. Despite Mark Shuttleworth having spent dozens of millions of dollars between 2004 and 2011 on the ShipIt program that had shipped dozens of millions of CDs worldwide, no major Linux entity is currently targeting the desktop, and this is why there will never be a “year of Linux on the desktop”! They do what they do for profit. Therefore, most Linux instances are running not on desktops, but:
- on servers;
- in VMs;
- in containers;
- on network appliances;
- in automotive and other embedded systems;
- the kernel itself, in Android devices, including smart TVs.
Your PC or laptop is not a business target of those people. In my view, there are multiple reasons for that:
- The few remaining major PC manufacturers, HP, Dell, Acer, Asus, Lenovo, MSI, are blackmailed by Microsoft to include Windows, or at least to avoid supporting and offering alternate OSes.
- The said manufacturers are lazy and arrogant, and they usually don’t bother to create Linux drivers, and even less FreeBSD ones. The retarded European Commission did not create legislation to force those assholes to provide full support for at least two OSes.
- The retailers are 100% mentally handicapped. Even when Ubuntu Certified devices do exist, including Dell, HP, and Lenovo laptops, they either don’t carry them or, when they do, they don’t specifically mark them with the “Ubuntu Certified” logo! Most laptops that can be seen running Ubuntu in brick-and-mortar stores are not certified devices; someone just happened to install Ubuntu on them. Name me one single online store where you can filter the products based on them being certified for a Linux distro!
- Despite the fact that most people over 35 aren’t gamers, and they mostly use an office suite and a web browser, they cannot be persuaded to use Linux. Of course, using a certified device would help, but people just bought something running Windows, and they’re now captive customers.
- The poor quality of Nvidia’s drivers is a legitimate concern, but non-gamers should just opt for the standard Intel or AMD graphics that comes with the CPU.
- Even if playing games on Linux has become much easier in recent years, the gamers were slow to adopt the platform. Steam, Lutris, Proton, Heroic, then the Vulkan API, DXVK and VKD3D, all kinds of crap that I couldn’t care less about have been developed. Well, not all gamers have the will to deal with complex matters, so they just don’t. The retail is a gamers’ world!
- Finally, certified or not, those bloody manufacturers don’t specify the exact hardware chips used in their devices, and people can’t be sure that they’re supported by Linux (what kernel and in which distro?). Specifically, MSI doesn’t give a shit on Linux.
In brief, Microsoft wins because the manufacturers are corrupt, and the public is dumb. Canonical’s own efforts to offer HWE and OEM kernels don’t target PCs, but servers. With some Dell laptops, you might be lucky, though.
Those complaining that Ubuntu’s flavors are buggier than other distros have either used too few of those, or too little software. If you’re using a distro that only comes with a browser, LibreOffice, and a few accessories, you shouldn’t run into much trouble.
Once we set aside the occasional dependency breakage, the rare serious borking of an important package, and the misconfiguration of some app that doesn’t work well in a given distro (don’t use that distro, then!), the buggiest component of any Linux distro is the kernel!
When I mentioned that “return to Linux” post, it was already about a patch in the Linux kernel that broke the audio jack on my older laptop. I mentioned again the same issue back in July. Since 5.15, we now have a kernel that eats NTFS data (with an added example). I also ran a story on how two almost identical webcams weren’t supported by the kernel, and when, after too long a delay, one got support, the other one didn’t. That 6.1 kernel from ELRepo, built from upstream? It lost the ability to play audio on my newer laptop, then it automagically regained it! The regressions in the Linux kernel aren’t properly managed. Thorsten Leemhuis, who leads efforts to track and resolve Linux kernel regressions with the help of regzbot, expressed some doubts about whether it is worth going on during a presentation at the Linux Plumbers Conference 2024.
His page on Why your Linux kernel bug report might be fruitless includes the following statements among many, many others:
- Most developers do not care about bugs in longterm kernels (they only add new features and bugs);
- You reported a regression in a stable or longterm series without checking if mainline is affected as well (How the fuck are you supposed to use the ML kernel in your distro when you’re just a user?);
- You submitted the report to the wrong place (bugzilla.kernel.org can be one) (Isn’t it cute how not even the proper place to report a bug is clear?);
- You did not use a mainline kernel less than two weeks old (because “Some developers don’t even look into bug reports with stable kernels: they expect you to check the current mainline kernel, as the bug might be fixed there already.”);
- Regular developers are free to ignore stable and longterm kernels (because they only live in the “now” and “future”; who the fuck cares about a kernel that is 3 months old?);
- Reporting bugs to the stable team is often just a detour. That’s a tough one, because I found the explanation contradictory: “You do not want to report bugs to the stable team, unless it’s a regression within a stable or longterm series. And even then it might be in your interest to report the issue primarily to the regular developers.” But they just said that regular developers are free to ignore stable and longterm kernels!
That document is pure madness, but if you’re still using Linux, you should know this:
- The Linux kernel team: adds hardware support for a small part of the new devices on the market; adds features that nobody asked for; adds some features that some people asked for; fixes some bugs in the latest kernel (ML); adds tons of bugs and regressions in the process, especially as the kernel is practically undocumented and a huge mess.
- The kernel maintainers from Red Hat, Canonical and SUSE are the heroes that fix the bugs and regressions in the stable and longtime kernels used by their distros, occasionally backporting some bugfixes and hardware support to an older supported kernel.
So yeah, the distros from “the big three” have at least better kernels. Except that Red Hat and SUSE always lag behind. Canonical doesn’t normally fix the bugs that affect your laptop, but if you monitor their mailing lists, you’ll notice that there’s a lot of work in those OEM and HWE kernels! (That’s for LTS releases; normal releases get less care, but at least they have newer kernels and newer software.)
In an alternate universe in which Linus Torvalds didn’t start this crappy project called Linux that absorbed most open-source developers while being the buggiest OS kernel ever developed, they have a much better FreeBSD that supports all the hardware under their sun. Not on this planet populated by retards.
❸ The problem of the infamous snaps! If there is a problem with Ubuntu, its name is snaps!
Canonical did have some “not invented here” cases in which the proposed products failed. Upstart failed to gain momentum and was replaced by systemd
. Bazaar couldn’t compete with Git. Mir was abandoned, with all sheeple going for Wayland. Unity wasn’t necessarily worse than GNOME3, and yet Canonical abandoned it (the independently developed one is now called Unity7). Ubuntu Touch flopped because no major smartphone manufacturer cared to cooperate. (Don’t worry, Google’s Graveyard has 296 products and services, or maybe 289, depending on who’s counting them. Microsoft has 101, and I miss more of what Microsoft ditched than of what Google killed.)
But snaps vs. Flatpaks… that’s different. And it’s mostly ideological. Lionel Dricot aka Ploum says it’s a theological one. Whatever.
As one who encountered the “DLL problem” some 30 years ago, I complained about the stupid Linux architecture in which you can’t “just install a driver” (you need a new kernel) or “just upgrade an app” (you need to upgrade dependencies too, and also other apps that are built against those dependencies); then I noticed someone complaining about “global installation of libraries and system-wide dynamic linking” in Linux. Here’s Ploum description on Firefox as a snap in Ubuntu:
● Why not provide normal upgrades for Firefox?
You could imagine that only the Firefox package would be upgraded but, as every big piece of software, it depends on other software called “libraries”. A new Firefox frequently requires new libraries. But if you upgrade those libraries too, you break other pieces of your operating system which expect the old version of the library. In the end, the Debian model is something like “you upgrade everything or nothing”.
That’s not entirely true. Most Firefox updates could probably be built with ancient libraries. This would work most of the time. But it has to be tested because it may also fail. Testing takes time and work. There’s a common trope in current society, largely theorised by David Graeber, that the goal of administration is to put the workload on citizens instead of the system. That’s exactly what is happening. Mozilla and Canonical, companies behind Firefox and Ubuntu, have developed Snap as a solution to have less work to do on their side and put the weight on the end-user shoulder. Is it good or not? Well, it’s hard to say because both companies have a noble mission that nobody else is filling. But they have their dark aspects.
● So, what is the solution in the end?
To solve the problem of upgrading one software without touching the whole system, which plagues any modern operating system, the popular solution is to provide, for each software, all the libraries it needs in a container. That’s why it is usually slower: each software runs its mini-operating system. That takes disk space and memory but those are considered cheap those days. This is also considered as more “secure”. If an application runs in its own container, it cannot do anything bad to other applications.
● What are Snap and Flatpak?
Snap is the Ubuntu solution, Flatpak the Red Hat solution.
Nah. It’s only “the Debian model” if compared to “the Slackware model”; otherwise, any single Linux distro that uses packages with dependency checking uses this model!
I’m not an expert in either snaps or Flatpaks, but my understanding is that, simplified to the extreme, we have this situation:
- Snaps are better suited for non-GUI software, whereas Flatpaks are a smarter choice for GUI apps (think of them as of better integrated AppImages).
- For some reason, building Flatpaks is more painful for developers than building snaps.
- Users complain more about snaps, if not about their performance, then about
snapd
deciding to close Firefox to “refresh” it while you were using it. (This makes me question the overall adequacy of snaps: if they restart services on a running server becausesnapd
wants this… uh-oh.)
If Flatpak seems the more convenient fix, and it’s well-integrated in GNOME Software and in Discovery, it looks to me that it’s rather heavy. On AlmaLinux KDE, with a couple of Flatpaks installed, look at the common runtime components it used:
And when it wanted to update them, I noticed that the major components took more than 2 GB!
Note that there are 3 GNOME platforms installed (42, 45, 46), but only two needed to be updated; and two KDE platforms (6.6 and 6.7, I’m not sure what is versioned here), but only one required update. So let’s count a solid 3 GB for all of them.
Well, this is the future to you: an immutable distro, plus Flatpaks whose names are like Java or Android apps.
Ubuntu only forces snaps for Firefox and Thunderbird, except on Ubuntu MATE, where the theming comes as snaps, too. So you can generally remove the snap system entirely, despite it being small per se, or you can only make sure that Firefox and Thunderbird are installed from Mozilla’s PPA (read about how to do it at Ploum’s, or later in this post).
Kubuntu 24.04 LTS and 24.10
While exploring my ways out of AlmaLinux KDE, I had Kubuntu 24.04 LTS installed on a fast USB flash drive, and I was delighted with the results!
Being on an Intel CPU with Intel graphics, I didn’t encounter the famous black screen on boot issue triggered by a display manager race on all Ubuntu 24.04 flavors (but I noticed it reported on Kubuntu) and which can be solved by removing the "quiet splash"
boot options. Not being affected by it, I don’t know if it got fixed in 24.04.1, which is what people would install these days.
But I wanted to what to expect from the future. In Ubuntu, I could stay with a LTS release (24.04), or I could upgrade twice a year to the latest release. If I wanted to keep using KDE 5.27.11, the only way is to keep using 24.04. And Ubuntu LTS per se is supported for 5 years, but the desktops of its non-GNOME flavors are only supported for 3 years. (Ubuntu Pro subscribers get 10 years of support, with an optional extension to 12 years, but only for the GNOME desktop.)
Will I be happy with an LTS that will soon include obsolete software, with the only mitigating means being the few backports (or other PPAs), and possibly some Flatpaks? If so, fine, but if not, then I had to try Kubuntu 24.10 Beta!
The live session of Kubuntu 24.10 Beta was pretty well put together, meaning that it didn’t use the default floating panel! What I changed here is my typical must-haves: the Icons-and-Text instead of the Icons-only Task Manager (a stupid mimicking of Win10 and now Win11 copying macOS’s idiocy; I don’t understand how even intelligent people such as Dedoimedo put up with it), and the simpler Application Menz start menu:
The only real problem? I had no sound, despite firmware-sof-signed
being installed! However, there were 336 updates waiting to be installed, so what is an update fixes this bug? It’s still a Beta! So I decided to install it on my newer laptop.
I always keep my old /home
partition, which is on the second SSD, so my theme and other settings should be observed in a new installation. However, knowing that this is KDE 6.1.5, my KDE 5.27.11 couldn’t possibly have set the panel to non-floating, so it was floating! Easily fixed.
But the session defaulted to Wayland, even on Intel video! Not only this made all the text grotesquely huge (I could never undestood why text scaling in Wayland is different from X11), but I couldn’t even take a screenshot using Spectacle!
Wayland is worse than applying SELinux policies everywhere. It just sucks. Now, X11 observes my theme better, and it just works:
Basically, KDE6 is already usable in Kubuntu 24.10, even in this Beta stage, once you avoid Wayland!
Note however that not all K-apps have KDE6 (Qt6) editions. KFind is still at version 23.08.5. KRename, which is not officially part of KDE, is at version 5.0.2 since forever. The only annoyance I had so far is that KRename doesn’t integrate in Dolphin’s contextual menu! It most likely never will…
Also note that using 24.10 before it’s released means you won’t have any 3rd-party repo or PPA for it! For instance, FSearch doesn’t have builds for Oracular yet, but only for Noble and older releases. Even after the release of 24.10 Oracular Oriole, it will take some time for some people to start building for the new release. It might even happen that some commercial products only offer builds for LTS versions of Ubuntu! So nobody should upgrade to a new distro release until they make sure the 3rd-party software they need exists for that new release!
Oh, I forgot: Kubuntu 24.10 Beta didn’t add the “Power and Battery” applet (widget) to the panel, even on laptops. I had to add it manually.
A change in Ubuntu that affects Synaptic
I don’t know when this change happened, because I didn’t install any recent Ubuntu flavor older than 24.04, such as 19.10! I noticed this change while I was trying the daily builds of Kubuntu. Most people are confused about the daily ISO builds of Ubuntu, so let’s clarify it for Kubuntu (it’s the same for all flavors):
- https://cdimage.ubuntu.com/kubuntu/daily-live is the latest build that tracks the next release. When the current release is 24.04, this targets 24.10, and so on. Shortly after a version is released, this daily build is created to track the next version. It will use the repos named after the next version, even if for a while the packages might be identical between versions.
- https://cdimage.ubuntu.com/kubuntu/noble/daily-live/ is the latest updated build for the current release, whose name can be seen in the URL. Normally, it should be used instead of the released ISO to evaluate the state of a release prior to installing it. This is what I used instead of https://cdimage.ubuntu.com/kubuntu/releases/24.04/release/ and before 24.04.1 was issued (now 24.04 contains the files for 24.04.01), because it had newer packages. Now it’s already having newer packages than 24.04.1, but this would change for a short while when 24.04.2 is released, and so on.
- https://cdimage.ubuntu.com/kubuntu/releases/oracular/beta/ is the Beta of the next release, which is already older than https://cdimage.ubuntu.com/kubuntu/daily-live as I’m writing this. But it’s only older by about a week. In theory, a Beta is better tested than a daily build (which only has some automated checks), but it still got a bug that was fixed by updating the packages.
What I was testing some time ago was the daily updated 24.04, in which I noticed a change in how the repositories were stored upon installation. The change can currently be observed in both 24.04.1 and 24.10 Beta.
● In the live session, the repositories are stored “the classic way” in the /etc/apt/sources.list
file, which contains, depending on the version:
deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ oracular main restricted universe multiversedeb http://security.ubuntu.com/ubuntu/ oracular-security main restricted universe multiversedeb http://archive.ubuntu.com/ubuntu/ oracular-updates main restricted universe multiverse
● The installed system, however, will use “the new way” that doesn’t use the said file (whose original version is renamed with a ~
appended, so it won’t be used), but instead looks for files in the /etc/apt/sources.list.d/
(apparently, they took inspiration from Red Hat’s /etc/yum.repos.d/
). Ubuntu’s repos are in the file ubuntu.sources
, which is more verbose (again, possibly inspired by Red Hat). It’s explained in man sources.list
and it has the advantages that (also à la Red Hat!) each repo can be in a different file. Using a separate file for each PPA is actually a good idea. The strange thin is that was ubuntu.sources
generated by Calamares, which is used in Ubuntu only by Lubuntu and Kubuntu.
But Synaptic cannot read /etc/apt/sources.list.d/
:
To fix this, you can do the following:
sudo mv /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources~
sudo mv /etc/apt/sources.list~ /etc/apt/sources.list
Or just create a file /etc/apt/sources.list
with the “classic” contents, as shown above.
Now Synaptics is happy!
Synaptic can manage the packages even without this reversal of concept, but it can’t manage the individual repos under /etc/apt/sources.list.d/
.
IMPORTANT NOTE! This change affects the way you add the source repos! If you reverted to using /etc/apt/sources.list
, then you could add to that file an exact copy of the existing lines, but with deb-src
instead of deb
. If you decided to use the new style, edit /etc/apt/sources.list.d/ubuntu.sources
and replace the two occurrences of “Types: deb
” with “Types: deb deb-src
” (see this answer on Stack Exchange).
But you don’t need to manage the repos from within Synaptic! It’s much more practical to use software-properties-gtk
(Software & Updates), especially as it includes a tool to test and tell you which repo is the fastest for you:
Theming the GTK apps under KDE5 for root
There’s one aspect of KDE that got fixed in KDE6, and which is rather annoying in KDE5. Suppose you change the theme in KDE System Settings, which can also apply a theme to GTK apps. That would certainly work for the current user, but what about the GTK apps running as root via sudo
?
- In KDE6, the GTK apps launched with
sudo
would observe the theme set for the current user. This applies to GTK2 apps (Synaptic) and GTK3 apps (mousepad
,pluma
,gedit
); GTK4 apps (gnome-text-editor
) are designed to ignore the global theming because the app itself can toggle between light and dark modes independently of the global theme settings. (The window decorations are technically handled by the system, but because GTK4’s Client-Side Decorations apps are actually drawing their own decorations.) - In KDE5, the GTK apps launched with sudo would ignore the theme set for the current user and use the default global GTK theme. This has always been an annoyance to me.
This is more obvious when using a dark theme, but even customized light themes would make you notice the inconsistency. Launch Synaptic (which needs to be launched with root privileges) from KDE, and it won’t be themed, except for the window decorations:
What we wanted to see is this:
In the unthemed version, the text “No package is selected” can’t even be read!
To ensure that all GTK apps are inheriting the current user’s theming, the classical fix is this one:
sudo ln -s ~/.gtkrc-2.0 /root/.gtkrc-2.0
A strange thing in KDE5 is that it will generate corresponding theming files for GTK3 and GTK4. We can made symlinks to them for the root user (even if it’s disabled), like this:
sudo mkdir /root/.config/gtk-3.0
sudo ln -s ~/.config/gtk-3.0/gtk.css /root/.config/gtk-3.0/gtk.css
sudo ln -s ~/.config/gtk-3.0/colors.css /root/.config/gtk-3.0/colors.css
sudo ln -s ~/.config/gtk-3.0/settings.ini /root/.config/gtk-3.0/settings.ini
sudo ln -s ~/.config/gtk-3.0/window_decorations.css /root/.config/gtk-3.0/window_decorations.css
sudo mkdir /root/.config/gtk-4.0
sudo ln -s ~/.config/gtk-4.0/gtk.css /root/.config/gtk-4.0/gtk.css
sudo ln -s ~/.config/gtk-4.0/colors.css /root/.config/gtk-4.0/colors.css
sudo ln -s ~/.config/gtk-4.0/settings.ini /root/.config/gtk-4.0/settings.ini
sudo ln -s ~/.config/gtk-4.0/window_decorations.css /root/.config/gtk-4.0/window_decorations.css
There is a problem with these settings: this is not how GTK4 is supposed to be themed! So that part for GTK4 can simply be ignored as useless. But even the GTK3 settings generatd by KDE5 are less than ideal.
A detail about some GTK apps: in my post about running Qt apps under GTK-based distros, I noticed a strange CSS bug in GTK3 while testing Linux Lite: Any dark theme will break the background color for the line numbers gutter in GTK-based text editors: mousepad
and pluma
for sure! There is a simple CSS fix for GTK3, but it will set a fixed background color for the gutter.
I tested this bug in Kubuntu 24.04 (KDE5), Kubuntu 24.10 Beta (KDE6), Ubuntu 24.04 (GNOME46), Ubuntu MATE 24.04 and 24.10 Beta, enabling “Display line numbers” and “Highlight current line” in Mousepad, Pluma, Gedit. This bug exists everywhere for both the line number gutter and the highlighted line, with a single exception for Pluma under Ubuntu MATE, where the bug has been addressed, but only for their own text editor; GTK3 remains broken for everyone else. GNOME, Red Hat and Canonical don’t care, as GNOME is using GTK4, and gnome-text-editor
is not affected. For Gedit, there is an in-app fix: for dark themes, change the color scheme from Tango (the default one) to Oblivion or, where available, Yaru-dark.
The .config/gtk-3.0
profile copy fixes the theming when launched with sudo
for Mousepad and Pluma:
But Gedit suffers in the window decorations department, most likely because it uses CSD, which got confused:
So it’s better to avoid to apply for root KDE5’s attempt at theming GTK3 (and GTK4). The GTK2 fix (for the very few remaining GTK2 apps) is simple and harmless; the others, not so much.
Or upgrade to KDE6, eh?
Small changes in KDE6 that bothered me
Since we talked about theming GTK apps to match the Qt theme, KDE5 System Settings has a visible button for that purpose (bottom-right):
In KDE6, this option is hidden, so initially I thought they removed it!
It’s only by accident that I discovered where it’s hidden:
FOR FUCK’S SAKE! Do you know what this fuck is? It’s mimicking Google’s Material Design, by adding a three-dot “kebab menu” to the 3-line “hamburger menu”!
I already hated the hamburger menu, introduced in KDE in April 2021 (This week in KDE: KHamburgerMenu and some good bugfixes; How I learned to stop worrying and love the hamburger menu), and now the kebab one?! (Strange thing, nobody invented a pizza menu.)
This is a really teeny-tiny change for now, but it’s indicative of the lack of judgment of KDE’s developers! They focus on all the wrong things. KDE’s Goals, listed here, are bollocks. Fos instance, if the abandoned Calligra Office got ressurected and jumped to 4.0, it only reached the rolling-release distros and KDE neon (user and release), and they couldn’t even change the Calligra/Download page! They don’t have enough developers at KDE, but their websites are a mess, and I’m sure that Calligra’s developer (singular!) couldn’t update that page for lacking the credentials! Bureaucracy and lack of organization. BTW, KDE neon is still based on 22.04, they couldn’t rebase on 24.04. Pathetic.
Let me give you an even more pathetic way the KDE team likes to add stupid changes. Here’s the default Konsole in KDE6:
Would you know how to enable the menu, given that you just cannot access it? (It’s CTRL+SHIFT+M, but how would you find out about this?)
And this is the default one in KDE5, which is how it should be:
At some point, when they made some changes in Konsole end-2020, I was struck in an Arch derivative by the sudden enabling of both toolbars (there’s a single toolbar, but for some reason the left and right side as seen as separate toolbars):
Yes, they enabled the toolbars and disabled the menu! (I had to google it to find about CTRL+SHIFT+M.) Later, they reverted this change.
Gee, what was that theme? I forgot, but I want it back. Oh, I was using Salient OS, now abandoned, and I described here how I themed it.
I wrote about this change of defaults between Konsole 20.12.3 and 21.04 in The Mental Retard In Linux Is Real. The surprising thing is that this change has been implemented before December 31, 2020, but even in Arch, it only reached the public in the second half of April 2021! To put things in context, I’ll quote myself from that blog post:
Take a look (and keep scrolling down!) at This Week in KDE: you’ll see tons and tons of bugs getting fixed all the time, meaning they existed in the first place, to the point one must ask themselves how the fuck is KDE loved by so many people?!
If my reasons to consider KDE’s Dolphin the best GUI file manager (because it is!) made you believe that KDE is the nec plus ultra of desktop environments, let me show you la pièce de résistance from the same post:
Yup, someone called for features such as “Display thumbnails with alt + mouse hover” and “Display a toolbar in Konsole.” I suppose there weren’t more important fixes to do in KDE. The proposed toolbar was different, but they implemented something.
Since we’re at “let’s implement crappy things instead of fixing old bugs”: the news for January 15, 2021: This week in KDE: text reflow in Konsole! Wow, c’est quelque chose de jamais vu!
This week a huge new feature landed in Konsole: it now reflows the text when you resize the window! This feature can be turned off if you don’t like it, but comes on by default. It works really well. Thanks very much to Carlos Alves and Tomaz Canabrava for this work! It will be released in Konsole 21.04.
Guess what: the MATE Terminal, that disparaged GNOME2 clone ported to GTK3 and very slowly improved, but otherwise so passé, has text reflowing on window resize since version 1.9.0 of May 20, 2014, because it was built against
libvte
0.36 (the firstvte
version to fix the reflow)! And the missing of reflow-on-resize in Konsole is a bug first reported in June 2009, yet the fucktards chose to implement tons of stupid features instead of fucking fixing this bug earlier!
Well, let me restate it:
A crucial feature as the reflowing of the already displayed text upon the resizing of the terminal’s window was requested since 2009 for Konsole, it got in MATE Terminal in 2014, but it only became available in Konsole in 2021 (in KDE Gear 21.04, so it missed Kubuntu 21.04)!
Why am I even bothering to try to like KDE?
By the way, they said that KDE Plasma 5.27 is a Long Term Support version, but until when? “…you can feel the warm and stable 💘 from the KDE community forever… Or at least until the next LTS rolls around in 2024!” Huh?!
Is there in 2024 any Linux distro to offer separate branches of KDE5 and KDE6? And why not? They use different Qt versions, se there should be no name crashing unless, you guessed it, they tasked a retard to name those KDE6 libraries. (Did they?) Of course they did. Debian sid jumped from plasma-desktop-dev_5.27.11
in May to plasma-desktop-dev_6.1.5
in September!
As of 2024, there is no Linux distro that offers separate branches for KDE5 and KDE6. Ninguna.
We’re not repeating the case of KDE Plasma 4, which was completely unusable. But still, when even Kubuntu jumps into the KDE6 banwagon, this sucks. There is no respect for tried-and-trusted software, unless you keep using an LTS distro!
Some ratiocination—but not that much
In complete honesty, on this blog there are profs that I only switched to KDE after getting angry on XFCE and on Thunar, in two stages.
- I was disappointed by Xubuntu’s Sean Davis, which is the Xubuntu Technical Lead, and an Xfce Core Developer. I reported this in May 2021, in a very long post about a security vulnerability in Thunar. I described this vulnerability in a more succinct form in May 2024: The CVE-2021-32563 case.
- I was disappointed by Alexander Schwinn, which is the current Thunar developer. This happened in December 2022, and it involved a new feature in Thunar: the customization of the Compact View regarding the length from which the names are truncated and ended in ellipses. This option should have been disabled by default, but somehow in my Manjaro it got enabled, and I wasn’t able to disable it. Such a setting can be changed in Dolphin in a dialog box, but in Thunar it’s a “hidden setting” that must be changed by using
xfconf-query
orxfce4-settings-editor
, but you have to know what to look for! Upon arguing that this is not a responsible way to add a new feature, I was told: “Personally, I really don’t need users like you.” (Look here, starting with “But what made me drop XFCE was an(other) attitude.“)
This is when I decided that, after all, KDE is not a bad choice. But now, I’m torn between contradictory thoughts:
- KDE5 is OK, and KDE6 is apparently usable. Why am I tormenting myself?
- But the KDE team is clearly chasing the wrong rabbits, and barking up the wrong tree. They are going the GNOME3 way with stupid GUI changes, so who knows where they’ll end? And I’m only thinking of CSD (Client-Side Decorations), against which at some point I was using gtk3-classic. (This reminds me that my old post Is there any future for the GTK-based Desktop Environments? is still receiving visits from Google, despite being so obsolete that I can’t dare to read it myself!) But, who knows, as long as KDE invented the retarded plasmoids, they might come with their version of GNOME Shell!
- Maybe Liam Proven was right when he said that KDE is too complex. Not when it said that XFCE is the best, though. He said many things I disapprove of, but KDE is indeed too complex for its own sake (see the
LC_*
thing). - So again, maybe I was just trying to love KDE for the convenience of what it offers, regarding of the many other small annoyances that I never mentioned anywhere!
So far, I have used with Linux: FVWM2, FVWM95, IceWM, Openbox, Window Maker, XFCE, GNOME2, KDE3, KDE5, MATE. I could never use KDE4, GNOME3, Unity, Cinnamon, and Budgie. And I tried.
So I can adapt to some changes, and I can accommodate a few sets of “muscle memory” automatisms, but this has to end!
There were and still are a few decent desktop environments, but Gen Z and Gen Alpha are reinventing the wheel. Look at System76’s COSMIC Alpha 2. Just like GNOME 444 (I don’t know its current version and I don’t care), they’re proud of the new “Recent” feature in Nautilus/Files, while this bloody retarded file manager still can’t be bothered with a compact view, and the most advanced settings can only be changed at the CLI with gsettings
. Among the trepaned enthusiasts (“thank you, System76, for having the guts to try this.” and “This is going to be THE distro.”), this comment:
This company is just completely out of touch with people. Since Gnome, I have never ever heard anyone say they want a completely reworked UI for the Linux desktop.
What are these guys even doing, this was 100% unnecessary. You just remade 80% of Gnome, but moved half the stuff around for absolutely no reason. You’ll have 1% of the documentation online, you’ll have nowhere near the funds to keep up support, and people will just be frustrated with the unnecessary mess you created. For what? Just to reinvent the wheel?
This is what you spend donations on? Some of these companies need less programmers and some more product managers and sales people who actually understand what people want. It’s not the job of programmers to manage the product, managing products is for product managers, implementing changes is for programmers.
I have seen that programmer at System76 who put himself in charge of changes and thinks he’s a product manager. Most programmers have no idea what people want, that’s why product managers exist, they understand the market and market demands, that’s what they’re trained to do, that’s not your job as a programmer.
In the field of software, nobody cares about what people want! They didn’t create GNOME3 by asking people what they need. (They didn’t do it for KDE4, and the changes in KDE5 and KDE6 are also the developers’ own lunacies.) The woke generation didn’t help, either. They created “fully tiling” WMs that are completely unusable by normal people, while easy on-demand tiling isn’t available in normal, stacking window managers, despite it being available in Win3.1 and Win95/98! No product manager has ever taken any sensible decision on IT in the last 20 years! I fear that every major software will become like Win11.
So, Gen Z and Gen Alpha are free to suck my dick. Instead of breaking software, they should have more sex, even if with themselves. And not only them: Red Hat’s people who decided to screw GNOME and GTK weren’t necessarily that young. But they were stupid Americans. (I forgot to mention that macOS and iOs are completely unusable for me, and I don’t understand how intelligent people could use them. Or GNOME3-444.)
This being said, sticking to what I know it’s working and has decent ergonomics doesn’t leave me much leeway:
- Something I’m familiar with, so I can recover the “muscle memory” from the long-term memory.
- Something that doesn’t move fast, if at all, so I can stop worrying about it and focus on the application software.
- Something that is however still maintained and patched if needed, and rebuilt to be able to run with newer system libraries. (Linux is not Windows, and backwards compatibility doesn’t exist.)
The one and only candidate is the one I met 20 years ago under the name of GNOME2, and which is now called MATE.
Ubuntu MATE: a second attempt
Not the second attempt ever, but in recent years. Or maybe it’s indeed the second attempt to settle for Ubuntu MATE, the first one being on the day Ubuntu MATE 21.04 was released; the others were for MATE under different distros (Mint, Fedora). By the way, did you like how Canonical responded to the newest CUPS vulnerability? And yes, I have considered the caveats of running Dolphin with a dark theme under a GTK-based distro.
Repeating the Kubuntu formula, I tried both Ubuntu MATE 24.04.1 and 24.10 Beta. They both behave just fine, with no visible differences, which was exactly the point.
Back to snaps: let’s kill them, or should we?
I’ll cover both Kubuntu and Ubuntu MATE, but let’s first debunk a myth about CUPS as snap-only: it’s a lie!
On stupid article on OMG Ubuntu!: Ubuntu 23.10 Switches CUPS Printing Stack to Snap. No, this didn’t happen. Reddit: Ubuntu will ship CUPS as deb in 23.10, transition to snap postponed to 24.10. Nope, it’s not that, either. At some point, Ubuntu will be entirely snap-based including its core. Nay. I prefer some facts:
- There is an immutable Ubuntu Core Desktop in the works, but it will not replace the current Ubuntu desktop! It will be an alternative only.
- While such an immutable OS will require snaps (or Flatpaks, or both), the CUPS snap has been tested since 2021.
- Snapcraft doesn’t only have CUPS; OpenPrinting has published 6 snaps: CUPS,
gutenprint-printer-app
,ps-printer-app
,hplip-printer-app
,ipp-usb
,ghostscript-printer-app
. - Some people have experienced unwanted snaps even with Ubuntu 20.04. The explanation is simple: Chromium installed as snap has pulled CUPS as snap. Don’t install snaps that might require printing!
Once again: no drama llama!
Now for a surprise. What do we lose if we remove the snap support in Kubuntu?
$ snap list
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
core22 20240904 1621 latest/stable canonical✓ base
core24 20240710 490 latest/stable canonical✓ base
firefox 131.0-1 5018 latest/stable/… mozilla✓ -
firmware-updater 0+git.5007558 127 latest/stable/… canonical✓ -
gnome-42-2204 0+git.510a601 176 latest/stable/… canonical✓ -
gnome-46-2404 0+git.5d6be1b 48 latest/stable/… canonical✓ -
gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical✓ -
gtk-theme-breeze 1.0 2 latest/stable/… kde✓ -
icon-theme-breeze 1.0 3 latest/stable/… kde✓ -
mesa-2404 24.0.9 143 latest/stable/… canonical✓ -
snapd 2.63 21759 latest/stable canonical✓ snapd
thunderbird 128.2.2esr-1 518 latest/stable/… canonical✓ -
OK, Firefox and Thunderbird is what we want to replace with packages, and the support for GNOME is just crap (I just showed you how Flatpak can use 2-3 GB for GNOME and KDE support), so what we really lose is firmware-updater
. But this GUI app is not necessary! What you need is fwupdmgr
, part of the part of fwupd
package.
$ fwupdmgr get-updates
Devices with no available firmware updates:
• ELAN0524:01 04F3:3215
• ACER HD User Facing
• KINGSTON OM8PDP3256B-AA1
• KINGSTON SNV2S1000G
• System Firmware
Devices with the latest available firmware version:
• UEFI dbx
No updates available
Should there be firmware updates: sudo fwupdmgr update
.
How about Ubuntu MATE? When I last had a dispute with them, Ubuntu MATE 21.04 had ubuntu-mate-welcome
, gtk-theme-yaru-mat
e, and icon-theme-yaru-mate
as snaps. Guess what’s the situation in 24.04?
$ snap list
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
core22 20240731 1564 latest/stable canonical✓ base
firefox 129.0.2-1 4793 latest/stable/… mozilla✓ -
firmware-updater 0+git.5007558 127 latest/stable/… canonical✓ -
gnome-42-2204 0+git.510a601 176 latest/stable/… canonical✓ -
gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical✓ -
snap-store 0+git.e3dd562 1173 latest/stable/… canonical✓ -
snapd 2.63 21759 latest/stable canonical✓ snapd
snapd-desktop-integration 0.9 178 latest/stable/… canonical✓ -
Nada! Then why did they fuck with me, if in the end they did what I said was rational?!
So the snap support can be completely removed in both distros!
But I have decided against removing snapd
! Replacing Firefox and Thunderbird with “the real thing” is enough. What if at some point I decide to try something that’s more convenient to install as a snap? I might also want to install Flatpaks, who knows?
Either way, I configured the repo for Firefox and Thunderbird with snapd
on, just to make sure my system is properly configured to avoid installing them as snaps. You should do the same, then you can remove the snaps completely:
sudo apt autoremove --purge snapd
sudo apt-mark hold snapd
rm -rf ~/snap
Installing Firefox and Thunderbird as packages
There are plenty of guides on how to do it, but none of them tells you that there are two possible repos, at least for Firefox. I will present you both scenarios, so you could make your choice.
Some such guides:
- Ploum: The Theological Problem Behind Firefox in Ubuntu 22.04
- Linuxiac: Install Firefox as a DEB App on Ubuntu 24.04/22.04 LTS
- Linuxiac: Install Thunderbird as a DEB App on Ubuntu 24.04 LTS
- OMG Ubuntu!: How to Install Firefox DEB on Ubuntu (Not Snap)
- Mozilla: Install Firefox .deb package for Debian-based distributions (Recommended)
- Mozilla: Installing Thunderbird on Linux
For Firefox, there are two choices: the older Mozilla Team PPA (links 1 and 3; link 4 used it too, but they changed their minds), and the newer Mozilla APT repo for Debian-based distros (links 2, 4, 5).
The problem is that Mozilla’s APT repo only offers Firefox, but no Thunderbird. From the 6th link you’ll find that Mozilla recommends you to install Thunderbird… as a Flatpak! This will give you ESR 128, just like the snap. Manually installing it from a tar.bz
is possible, too, but it’s a PITA, and you’ll need to update it by hand.
So you’d have this alternative:
- The PPA that offers “Firefox ESR and Thunderbird stable builds”:
firefox
(130),firefox-esr
(115, not 128),thunderbird
(115, not 128). It already has packages for 24.10! - The APT repo:
firefox
(130).
This is a difficult choice if you’re a Thunderbird user: would you accept the “old ESR,” or rather a snap? Or a Flatpak, maybe?
The two methods, below. Remember, we don’t remove the snap system here! Not yet.
❶ The PPA is a classic one, and it’s easier to remember:
sudo apt remove firefox thunderbird
sudo snap remove firefox thunderbird
sudo rm /etc/apt/sources.list.d/mozilla.list # just in case you previously used method 2
sudo add-apt-repository ppa:mozillateam/ppa
sudo vim /etc/apt/preferences.d/mozilla
Paste inside:
Package: *
Pin: origin ppa.launchpadcontent.net
Pin-Priority: 1000
If you want to keep using Thunderbird as a snap, put this instead:
Package: firefox*
Pin: origin ppa.launchpadcontent.net
Pin-Priority: 1000
The first version has the advantage that no matter what other PPA you add, its packages would be preferred over the snap alternatives, should they exist! However, they would also be preferred over the official packages, which might or might not be what you want. Not on a global scale, anyway.
Therefore, a more prudent pinning would be to only favor the packages from “ppa:mozillateam/ppa” (replace *
with firefox*
if you want to keep using Thunderbird as a snap):
Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1000
This would avoid undesired package downgrades from other PPAs you might add in the future!
Now, it’s wise to block the fake packages that install snaps from being considered by apt
or Synaptic:
sudo vim /etc/apt/preferences.d/block-snaps
And add inside:
Package: firefox*
Pin: release o=Ubuntu
Pin-Priority: -1
Package: thunderbird*
Pin: release o=Ubuntu
Pin-Priority: -1
Omit the second section if you prefer Thunderbird as a snap.
Now, knowing that add-apt-repository
automatically performs an apt update
, the last step:
sudo apt install firefox thunderbird
❷ The APT way, which I find annoying, because they could have offered Thunderbird too if they wanted:
sudo add-apt-repository --remove ppa:mozillateam/ppa # just in case you previously used method 1
sudo install -d -m 0755 /etc/apt/keyrings
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
sudo vim /etc/apt/preferences.d/mozilla
Put inside (remove the previous content, if it exists):
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
Now, block apt
and Synaptic from taking into account the fake packages that pull snaps, just as I described at the previous method.
Finally:
sudo apt update
sudo apt install firefox
DISCUSSION: Linuxiac prefers to use the two methods at the same time: ❷ for Firefox and ❶ for Thunderbird, but it just doesn’t make sense to me. Firefox is the last version in both cases. OK, maybe the APT repo is faster to have it, but not by much. But the PPA also has Firefox ESR, so if you’re crazy enough to want to have 2 versions of Firefox…
After having tested that everything works fine, you can remove the snap system, if it really bothers you.
Why you need Ubuntu Pro in LTS
I wasn’t aware that I needed it myself! Here’s the story.
Ubuntu MATE has (had?) a dislike for a particular flash drive of mine (it’s a Ventoy drive that doesn’t hold any ISO anymore because I’m using it to transfer documents), and the Disk Mounter applet crashed a couple of times. (I could eject the drives from Caja or from the desktop, but I keep the applet as well.) When it crashed the last time (apparently, after the last updates, it stopped crashing), I noticed this:
The crash cannot be reported because I have “some obsolete package versions”?! But Software Updater said there aren’t any updates!
ludditus@grumpy:~$ sudo apt upgrade
...
Calculating upgrade... Done
Get more security updates through Ubuntu Pro with 'esm-apps' enabled:
libavcodec-extra libcjson1 libavdevice60 ffmpeg libpostproc57
libavcodec-extra60 libavutil58 libswscale7 libswresample4 libavformat60
libavfilter9
Learn more about Ubuntu Pro at https://ubuntu.com/pro
The following upgrades have been deferred due to phasing:
python3-distupgrade ubuntu-release-upgrader-core ubuntu-release-upgrader-gtk xdg-desktop-portal
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
I knew about phasing, but I forgot it’s still a thing! To quote this guy:
To give the end user a more stable and reliable system, Ubuntu introduced phased updates in 2013. Whenever a new package update is published, it is rolled out in phases. Only some users get that update initially. Ubuntu then waits for the crash reports generated by the Apport tool.
If it notices significant crash reports for the recently updated package, it will pause the update rollout on the package and work on fixing the issue. If no significant crash reports are collected, more and more users get that package update, until the update is finally “fully phased” and everyone gets that package update.
When you see ‘xyz package has been kept back’ message, it means that update on xyz package is being phased and your system is not getting it in the present rollout. If you wait for a few hours or run the system update the next day, you’ll notice that xyz package is now upgradable and some other package has been kept back.
Ubuntu has a dedicated webpage to show the status of phase updates.
It’s actually a good idea. Phased packages can be forcefully updates. In my case:
sudo apt install –only-upgrade python3-distupgrade ubuntu-release-upgrader-core ubuntu-release-upgrader-gtk xdg-desktop-portal
But the actual surprise was this part of the output:
Get more security updates through Ubuntu Pro with 'esm-apps' enabled:
libavcodec-extra libcjson1 libavdevice60 ffmpeg libpostproc57
libavcodec-extra60 libavutil58 libswscale7 libswresample4 libavformat60
libavfilter9
Learn more about Ubuntu Pro at https://ubuntu.com/pro
I never thought they would try to force Ubuntu Pro on people! And why are those 11 packages (installed by ubuntu-restricted-extras
) specifically mentioned as needing Ubuntu Pro to get updates?
This was sort of a trap, because here’s what the facts are, through a fake Q&A in which I’ll answer my own questions:
- Why am I nagged with this message, as long as this version was released less than 6 months ago? I thought Ubuntu Pro is only meant to extend the security updates support from 5 years to 10 years!
Because you have installed packages from “universe” or “multiverse”; they’re not guaranteed any updates, so you’re suggested to enable Ubuntu Pro. Packages in an LTS distro get updates for 5 years, but only if they’re from the “main” and “restricted” repos, the only repos supported by Canonical. Non-LTS releases, and “universe” or “multiverse” in all releases, are only supported by the community. Ubuntu Pro extends the support for all packages to 10 years! - So what’s the deal with these “esm-apps”?
In Ubuntu Pro lingo, “esm-infra” refers to the security updates provided for the packages in “main” and “restricted”; “esm-apps” are the security updates provided for the “universe” and “multiverse” packages. Ubuntu Pro extends this support from 5 to 10 years for “esm-infra” and from “best effort by the community” to 10 years for “esm-apps”! - So does it mean that the listed packages already have security patches, but I can’t see them because I’m not on Ubuntu Pro?
No, this doesn’t mean anything. They’re listed there only because they’re from “universe” or “multiverse” and you don’t have Ubuntu Pro. Once you enable Ubuntu Pro, you’ll be able to check the Pro updates with “pro security-status
” (more specifically: “pro security-status --esm-apps
“). - So this is just to persuade me to get an Ubuntu Pro subscription?
Yes. - But Ubuntu Pro is free for up to 5 computers per mail account, so why are they doing that? They don’t gain anything, as most users of “universe” and “multiverse” are likely to be home users, who don’t need more than 5 “licenses”!
I don’t know, they just do it. Maybe they want to increase awareness about Ubuntu Pro. Maybe they want users to become free promoters of Ubuntu Pro at their workplaces, once they use it at home. Or maybe they just want to know your mail, in case you don’t have any account on ubuntuforums.org or launchpad.net. - But does Ubuntu Pro cover other desktops, such as KDE, XFCE, or MATE, which otherwise are only covered for 3 years?
Yes, it does. As Ubuntu Pro extends security coverage to packages beyond just the core Ubuntu ones, desktop environments like KDE, XFCE, and MATE, which typically only receive community support for 3 years (on LTS versions), are covered for 10 years with security updates. - Wait, but then I could use Linux Mint with Ubuntu Pro!
No, you could not have both. Regardless of the customizations and extra packages in Mint and its updating of Cinnamon independently of Ubuntu’s repos, it’s just that Ubuntu Pro won’t accept a Linux Mint installation. Modifying/etc/os-release
and/etc/lsb-release
might not be enough to fool Canonical, and it might also break Mint. Linux Mint is for dumbos and senile senior citizens.
As I had an Ubuntu Pro account (I don’t remember why: was it because I had an Ubuntu One account, or because of one of the ubuntuforums.org or launchpad.net sites?), I just enabled it for this Ubuntu MATE laptop, using the token from https://ubuntu.com/pro/dashboard!
$ sudo pro attach xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Enabling Ubuntu Pro: ESM Apps
Ubuntu Pro: ESM Apps enabled
Enabling Ubuntu Pro: ESM Infra
Ubuntu Pro: ESM Infra enabled
Enabling Livepatch
Livepatch enabled
This machine is now attached to 'Ubuntu Pro - free personal subscription'
SERVICE ENTITLED STATUS DESCRIPTION
anbox-cloud yes disabled Scalable Android in the cloud
esm-apps yes enabled Expanded Security Maintenance for Applications
esm-infra yes enabled Expanded Security Maintenance for Infrastructure
landscape yes disabled Management and administration tool for Ubuntu
livepatch yes enabled Canonical Livepatch service
realtime-kernel* yes disabled Ubuntu kernel with PREEMPT_RT patches integrated
* Service has variants
NOTICES
Operation in progress: pro attach
For a list of all Ubuntu Pro services and variants, run 'pro status --all'
Enable services with: pro enable <service>
Account: xxxxxxxxxxx@xxxxx.xx
Subscription: Ubuntu Pro - free personal subscription
As a bonus, I can also have kernel updates that don’t require a restart!
Then:
$ pro security-status --esm-apps
...
Installed packages with an available esm-apps update:
ffmpeg libavcodec-extra libavcodec-extra60 libavdevice60 libavfilter9
libavformat60 libavutil58 libcjson1 libpostproc57 libswresample4 libswscale7
...
OK, I updated them. Was this necessary? Apparently, yes. The new packages have actually the same versions, but “+esm2
” has been appended to their names. I suppose this means 2 patches, but changelogs aren’t available.
I feel protected 😇
A few Ubuntu MATE idiosyncrasies
🐈⬛ When I was testing Ubuntu MATE 24.10 Beta, I tried to install it using my typical partition layout, which includes a 300 MB /boot/EFI
. The typical recommendation of 500 MB is pure madness, and some distros don’t accept less than that. While I’m sure that 100-200 MB would be perfectly fine (just how many kernels can one use, especially when not dual-booting?!), my compromise is 300 MB. To be accurate: 300 MiB aka “old-style, true MB” = 314.57 MB aka “decimal MB for the retards age”!
Except that the installer got confused, or had a peculiar bug. As at the time I had connected two flash drives (not just the Ventoy one), it only accepted this layout if the “device for bootloader installation” was not this NVMe! My assignation for /boot/EFI
was removed!
Forcing the NVMe for bootloader installation automatically generated a 1.13 GB /boot/EFI
partition! WTF?!
Note that I created a new 300 MB partition in “official decimal MB” values (some 286 binary MiB). Also note that in the partitioner, the only formatting option was VFAT (although it’s FAT32, really), whereas the partition automatically created by this bastard without even asking me was labeled FAT32, true to reality.
But why 1.13 GB? With Ubuntu MATE 24.04.1, I could install it using my traditional 300 MiB (duh) partition size! Here’s my post-install layout:
I hope it was just a bug in 24.10 Beta. Either way, upgrades will certainly accept whatever partition is there, but forcing 1.13 GB for new installs is crazy!
🐈⬛ I installed the “package-only” Firefox while having the snap system fully functional. I won’t remove it. but then, I noticed that it wasn’t anywhere in the menu, and update-desktop-database ~/.local/share/applications
didn’t help.
Editing the Brisk Menu revealed the cause: the Firefox menu entry has been kept just in case I decided to reinstall it later, but it was disabled. And it stayed this way. So I had to manually tick the “Show” checkbox for it!
🐈⬛ A third topic: the “Welcome” screen in the Live session, which in previous versions also included onboarding functions, has changed drastically.
Here’s the “Welcome” tool in Ubuntu MATE 22.04.5:
The user has to click on the “Desktop Layout” button to get the last screen, and then it’s advisable to make it show all seven layouts:
I’m pretty sure that in previous versions, such as 21.04, this onboarding tool forced you to see the choice of layouts, which was an excellent way to inform the user that there are several predefined layouts. And the previews are essential!
In Ubuntu MATE 24.04 and 24.10 Beta, you’re not asked “Try or Install?” first. Instead, you have a few screens with basic configuration, including the language, the keyboard and the Wi-Fi, then you’re asked “Try or Install?”, and once you made the choice “Try”… nada! No onboarding of any kind, no information that the user can change the layout from a predefinite set! (This is consistent with the main Ubuntu flavor, but that one wasn’t supposed to further assist the user in any way.)
The user has to know that a tool called MATE Tweak exists in the menus, and while it’s no big deal using it, there’s no preview of the seven layouts! This is a huge step backwards, if you ask me.
🐈⬛ A last issue. For multimedia & stuff, you’re strongly advised to install ubuntu-restricted-extras
, either during the initial setup (there’s a checkbox there, if you’re connected to the Internet), or later (sudo apt install ubuntu-restricted-extras
). I prefer to do it later, because installing Microsoft’s fonts often comes with a glitch.
This package should pull, as a dependency, ttf-mscorefonts-installer
. This package is copying the corresponding Debian package with changed changelog and signature, so I wouldn’t blame Ubuntu for the fact that, every 2 releases or so, people report errors with it. At some point, you’ll be asked in a terminal to accept an EULA, and then Microsoft’s fonts should be downloaded from SourceForge, then installed. Well, sometimes an error occurs, most likely caused by SourceForge. I’ve seen reports from years ago with all kinds of errors; in my case it was a silent error, but a flag was set to mark the fact that something didn’t go through, so this is what I was shown every now and then:
Clicking on “Run this action now was useless,” so I tried in a terminal:
$ sudo apt install --reinstall ttf-mscorefonts-installer
...
ttf-mscorefonts-installer: processing...
ttf-mscorefonts-installer: downloading http://downloads.sourceforge.net/corefonts/andale32.exe
/usr/lib/update-notifier/package-data-downloader:185: DeprecationWarning: apt_pkg.sha256sum is deprecated, use apt_pkg.Hashes
real_sha256 = apt_pkg.sha256sum(dest_file_obj)
ttf-mscorefonts-installer: downloading http://downloads.sourceforge.net/corefonts/arial32.exe
ttf-mscorefonts-installer: downloading http://downloads.sourceforge.net/corefonts/arialb32.exe
ttf-mscorefonts-installer: downloading http://downloads.sourceforge.net/corefonts/comic32.exe
ttf-mscorefonts-installer: downloading http://downloads.sourceforge.net/corefonts/courie32.exe
ttf-mscorefonts-installer: downloading http://downloads.sourceforge.net/corefonts/georgi32.exe
ttf-mscorefonts-installer: downloading http://downloads.sourceforge.net/corefonts/impact32.exe
ttf-mscorefonts-installer: downloading http://downloads.sourceforge.net/corefonts/times32.exe
Traceback (most recent call last):
File "/usr/lib/update-notifier/package-data-downloader", line 276, in process_download_requests
dest_file = download_file(files[i], sums[i])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/update-notifier/package-data-downloader", line 182, in download_file
with open(dest_file, 'rb') as dest_file_obj:
^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 40] Too many levels of symbolic links: '/var/lib/update-notifier/package-data-downloads/partial/times32.exe'
Processing triggers for fontconfig (2.15.0-1.1ubuntu2) ...
The stunning fact is that, despite that Python error, all the fonts were installed and working!
There is one fix to them all, and it starts by removing ttf-mscorefonts-installer
(sudo apt remove ttf-mscorefonts-installer
). Then:
- If the fonts were installed properly, there is nothing else to be done. Removing
ttf-mscorefonts-installer
does not remove the downloaded and installed fonts! - If the fonts were not installed, then install them manually.
To do that, go to SourceForge and download all the .exe
files, except wd97vwr32.exe
. Then, run cabextract *.exe
in the folder where you saved them (cabextract
was installed ttf-mscorefonts-installer
and was not uninstalled, unless you used sudo apt autoremove
).
Now, you have to choose between installing them globally, somewhere in /usr/share/fonts/truetype/
, or for your user only, somewhere in either ~/.fonts/
or ~/.local/share/fonts
. I recommend installing them locally, as they would survive through subsequent system installations, should you keep your /home
partition. To the point: the fonts I’ve installed locally while running AlmaLinux KDE have automatically been detected, because I have mounted the same /home
partition that has survived several distros without reformatting!
So, after mkdir -p ~/.fonts
or mkdir -p ~/.local/share/fonts
, mv
the fonts inside, then update the font cache: fc-cache -fv
and you should be done. Of course, except for the cache, you can do this using the file manager, but press CTRL+H to show the hidden dot files and dot directories.
10+1 customizations in Ubuntu MATE
I will only suggest you the most limited set of customizations, based on my preferences. I might have forgotten a few of them for a very simple reason: some defaults have been overridden by my customizations saved in dot folders on my home partition. Even if previously I ran KDE, there are GTK-specific settings and other profile settings that took effect in this MATE installation.
1️⃣ The layout. Even if I had today a screen with 4:3 or 5:4 aspect ratio instead of 16:9, I’d probably prefer a single panel layout these days. MATE defaults to the GNOME2 layout, but this can be changed by using the MATE Tweak tool described in the previous chapter. I prefer the “Redmond” layout because it’s even more “traditional Windows”-like than KDE’s layout. For instance, it has not succumbed to this idiocy that contaminated Win10 and Win11, that of having an Icons-only Task Manager instead of an Icons-and-Text one. Windows minimized to an icon sans caption only make sense in a vertical panel (à la Ubuntu GNOME) or in a useless dock (à la macOS or Win11). Of course, if you want to pin 20+ icon on the panel, like Dedoimedo does in KDE, it’s your choice to look dumb despite being intelligent…
2️⃣ If you didn’t do it during the setup, get those codecs: sudo apt install ubuntu-restricted-extras
(see above if you get related errors).
3️⃣ Firefox runs better when installed as a package instead of a snap. See above. To edit files at the CLI, if vim
is not installed by default, use nano
instead.
4️⃣ Install Synaptic (sudo apt install synaptic
). You’ll thank me later. I’ll explain in the next chapter why it’s better to have it. You do not need to make the manipulations described in a previous chapter. That info was there for your education.
5️⃣ Create an Ubuntu Pro account and enroll your machine. I told you why.
6️⃣ You might want to change the theme to a darker one. In Control Panel, there’s a Change Theme item under Common Tasks. It does the same thing as Appearance that can be found under Look and Feel.
You obviously don’t have to, but should you ever want to use Dolphin, KDE’s file manager, with a black theme, read this previous post of mine first.
Note that you can also change the font rendering. As a major change for me, I stopped fighting the subpixel antialiasing, despite what I wrote in June 2021 in Adventures in Linux Ep. 2: Subpixel idiocy. I briefly explained why in the last chapter that I just added. If Ubuntu MATE comes with Slight, RGB, I won’t advise you anymore to change it. (They sometimes say: “You need to let go of the past.”)
You should still be aware of an important aspect of Linux. When you change the text rendering in MATE, GNOME, XFCE, or Cinnamon, this would normally only affect the GTK-based apps. Conversely, when you change the text rendering in KDE, this would normally only affect the Qt-based apps. In either of the two situations, the rest of the apps, including those using other widget toolkits (AWT, FLTK, FOX, Fyne, Kivy), will use the system-wide fontconfig
defaults, as found in /etc/fonts/conf.d
. I mentioned this mechanism in the aforementioned post as “the classic way.”
On Ubuntu, ls -l /etc/fonts/conf.d
should list some 60 files, some of which would affect the antialiasing. Almost all of them aren’t local files, but symlinks to files in /etc/fonts/conf.avail
(that’s the standard location) and /usr/share/fontconfig/conf.avail
(that’s newer, I don’t remember it having been used 20 years ago). Linux is not simple, but at least it’s highly configurable.
7️⃣ Caja, the file manager. Quick changes:
- Edit, Preferences, Views, Default View: View new folders using: Compact View.
- Same screen, Defaults, Compact View, uncheck “All columns have the same width.”
- Edit, Preferences, Behavior, Executable Text Files: select “View executable text files when they are opened.” This will open the text files from, e.g., a USB stick that has a FAT32 or exFAT partition with Caja on double-click, without a useless question. As far as MATE is concerned, they’re executable because they can’t have Linux permissions.
Note that showing the hidden (starting with a dot) files can be toggled by CTRL+H, and showing the backup (ending with a ~) files can be toggled by CTRL+K.
8️⃣ MATE Terminal, quick changes:
- Edit, Profile Preferences, General: check “Allow bold text.”
- Edit, Profile Preferences, Scrolling: increase the Scrollback value to a larger one, or check “Unlimited.”
- Edit, Keyboard Shortcuts: uncheck “Enable the menu shortcut key (F10 by default)” because it will interfere with Midnight Commander (
mc
), should you want to use it. - In the same screen, I like to change the defaults for editing as follows (double-click to be asked for the new shortcuts):
Copy: from Shift+Ctrl+C to Ctrl+Insert.
Paste: from Shift+Ctrl+V to Shift+Insert.
You cannot set Select All to Ctrl+A because in bash
that’s supposed to move the cursor at the beginning of the line. And you can’t set Copy to Ctrl+C because this would end the program launched from the shell.
9️⃣ Customizing the applets on your panel. I highly recommend you to add the CPU Frequency Scaling Monitor, which allows for a quick change of CPU’s governor from Powersave to Performance and back.
As I mentioned in my long post about using AlmaLinux KDE, in the Small system tweaks section, in other desktop environments you’d normally have to install an extra app. In MATE, you already have this applet. You can’t change the CPU frequencies with it, but at least you can toggle between the two CPU governors.
Also mentioned there: the Linux kernel used to have many more governors, and the official kernel documentation is both a collection of lies and a testimony to the decaying of the Linux kernel: we used to have performance
, powersave
, userspace
, ondemand
, conservative
, and schedutil
. Now we only have performance
and powersave
. While we still had it, most people preferred ondemand
, but today’s powersave
actually performs pretty much like the former ondemand
.
In the above screenshot, there’s a blue Accessibility icon in the tray (which is called Indicator Applet Complete). That icon, which corresponds to Aytana Indicator Accessibility, cannot be removed (unless you remove the entire system tray area. The configuration of these indicators is a bit hidden, but thanks to this forum thread, I learned how it can be done.
Go to the Control Center, and search for Startup Applications (no, not the Assistive Technologies, despite the matching icon!). Once it opens, check the Show Hidden box!
Now you can uncheck Aytana Indicator Accessibility. I don’t remember to have had such a complex system tray in GNOME2.
🔟 Two apps I cannot live without. First, the fortunes! Ever since I met them in Slackware, I cannot see a terminal without a fortune
. Apparently, Ubuntu MATE already installed fortune-mod
and fortunes-min
for me, which is the bare minimum, but I suggest you to add fortunes
, fortunes-bofh-excuses
, fortunes-debian-hints
, fortunes-spam
, fortunes-anarchism
. Explore the possible packages in Synaptic.
To have them displayed automatically, I normally add them to ~/.bashrc
, but they could also be added to ~/.profile
. Here’s what I add at the end of ~/.bashrc
(I don’t customize much my prompt):
alias ls='LC_COLLATE=C ls -h --group-directories-first --color=auto'
fortune
For the second must-have: FSearch, which I described it back in 2021 and also in my long post about AlmaLinux KDE, where I described a bug that can lead to duplicate results. There is a PPA for it (even a second one for unstable versions):
sudo add-apt-repository ppa:christian-boxdoerfer/fsearch-stable
sudo apt install fsearch
0️⃣ Optional filesystem tuning. I always add noatime
to /etc/fstab
where appropriate! The current default, relatime
, is not the worst that can be, but who needs nowadays to know when a file has been accessed in reading? A file should only be stamped with the time of the last modification! Most file managers just ignore the time of the last read. I wrote about this in 2021: as that post doesn’t have anchors, search for “From noatime to ctime, atime, mtime: what you didn’t know about Linux.”
You should adapt the following to your actual partitions, but here’s my case:
$ mount|grep ext4
/dev/nvme0n1p3 on / type ext4 (rw,relatime)
/dev/nvme1n1p1 on /home type ext4 (rw,relatime)
$ cat /etc/fstab|grep ext4
/dev/disk/by-uuid/1cdef215-d7d4-428b-bef2-82b069f0e5da / ext4 defaults 0 1
/dev/disk/by-uuid/9321e439-5fa9-49e4-965f-f4626a96a884 /home ext4 defaults 0 1
Now, use sudo vim /etc/fstab
or sudo nano /etc/fstab
to edit it, and add noatime
after a comma after defaults
to the ext4
partitions:
/dev/disk/by-uuid/1cdef215-d7d4-428b-bef2-82b069f0e5da / ext4 defaults,noatime 0 1
/dev/disk/by-uuid/9321e439-5fa9-49e4-965f-f4626a96a884 /home ext4 defaults,noatime 0 1
Now you could try something like this, or just reboot:
sudo mount -o remount /
sudo mount -o remount /home
To check the result:
$ mount|grep ext4
/dev/nvme1n1p3 on / type ext4 (rw,noatime)
/dev/nvme0n1p1 on /home type ext4 (rw,noatime)
I wanted to try some other filesystem options, but they seem to be unsupported by Ubuntu’s kernels. Well, let’s remain on the safe side.
Another system tuning comes from the age when swap was quasi-mandatory. I’m still using a swap partition, but I don’t want the system to flush data to it when there’s still free RAM. With the default vm.swappiness=60
(Ubuntu doesn’t change this default), the kernel will begin swapping out less active memory pages to the swap partition despite RAM being almost half-empty (60 doesn’t strictly mean 60% full). Changing it to 10 or 20 will make the kernel prefer keeping as much as possible in RAM, only swapping when absolutely necessary. To do this, sudo vim /etc/sysctl.conf
(or, needless to say, sudo nano /etc/sysctl.conf
) and add at the end:
vm.swappiness=10
To change it temporarily, without rebooting:
sudo sysctl -w vm.swappiness=10
And check the result:
cat /proc/sys/vm/swappiness
A last tweak concerns the Magic SysRq shortcuts, of which REISUB is the most famous combination:
- R – Switch to XLATE (ASCII) mode
- E – Send SIGTERM to all processes except for init
- I – Send SIGKILL to all processes except for init
- S – Sync all mounted filesystems
- U – Remount file-systems as read-only
- B – Reboot
Another possibly useful shortcut, Alt+SysReq+F:
- F – Call oom_kill, which kills a process to alleviate an OOM condition
Beware that when there’s no major app open, this would usually kill your desktop environment or your X11 session!
Ubuntu’s default sysrq
value of 176 (128+32+16) only allows to run the SUB part of REISUB combination, which is enough to get out from the system freeze through a reboot. However, what I usually want is to restart my X11 session using SE, which in my opinion is safe enough:
- Sync all mounted filesystems (Fn + Alt + SysRq/PrtSc + S)
- Send SIGTERM to all processes except init (Fn + Alt + SysRq/PrtSc + E)
Fn is only required on laptops, which would also only have PrtSc written on that key. It might also be required on any external keyboard that features an Fn key.
Either way, to enable all Magic SysRq shortcuts permanently, you can do it by editing /etc/sysctl.conf
. You’ll notice at the end a disabled kernel.sysrq
. Uncomment it and set it to kernel.sysrq=1
(“1” meaning “all”).
To apply immediately without rebooting, once you made all the desired modifications to /etc/sysctl.conf
, apply them this way:
sudo sysctl -p
To enable a kernel.sysrq
value temporarily, there are two equivalent ways. For a value of 1:
sudo sysctl -w kernel.sysrq=1
echo 1 | sudo tee /proc/sys/kernel/sysrq
In my case, I only want SE, which means 144, so this is the value I use instead of 1 and which will replace the default 176.
NOTE: For additional data safety, RSEISUB should be used instead of REISUB. I don’t know why a sync is not performed earlier, before sending SIGTERM (E) and before sending SIGKILL (I). A second sync (the only sync in REISUB) is necessary before a reboot, but not in my case of only issuing SE, which will not reboot.
Hint: A general trick in Linux that eliminates the need to use an editor when all you need is to append to a file is to use tee
:
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
While this method is very popular, if you forget the “-a
” parameter, the text will overwrite the file instead of appending to it! To avoid this risk, use a separate file for each parameter:
echo "vm.swappiness=10" | sudo tee /etc/sysctl.d/99-swappiness.conf
Then, of course, reload everything from /etc/sysctl.conf
and /etc/sysctl.d/
:
sudo sysctl -p
10+1 ways of installing software in Ubuntu MATE
It’s time to guide the less experienced into the ways of installing new apps in Ubuntu MATE. In my previous long article on AlmaLinux, I used different ways, means, and sources to get the software I wanted. Generally, Debian and Ubuntu have many more packages in their repositories than RHEL clones with EPEL, but not everything is there. But how to get such software if it’s not preinstalled?
1️⃣ Install packages from the CLI with apt
. This is what most tutorials suggest you when they tell you to sudo apt install something
. Note that the older utility apt-get
still exists. There is also a curses
-based aptitude
that is rarely used. The Debian documentation on package management should be just fine.
2️⃣ Install packages using Synaptic. This is more practical when you don’t know exactly which packages are available, and you need a more friendly display of search results and of a package’s details. It’s not installed by default: sudo apt install synaptic
.
3️⃣ Install apps using a distro’s default GUI software manager. This is a bit tricky, because GNOME-based distros would use GNOME Software, and KDE-based ones would use Discover. Ubuntu MATE uses App Center, which is the successor of Software Boutique in Ubuntu MATE and of Snap Store in Ubuntu proper.
This is mostly convenient, but note that App Center also offers snaps, and it even defaults to showing them, so make sure you select “Debian packages” (when available):
4️⃣ Install snaps. This would make Canonical happy. Now, seriously, this might come in handy at times. Just don’t do that with Firefox. Nowadays, the web browser is one of the heaviest pieces of software! Not per se, but because of the tons of JavaScript that runs in some pages.
You can use App Center, or the CLI. There is documentation for that. A warning, though: when some software is available both as snap and Flatpak, more often than not the snap version is older than the Flatpak one.
5️⃣ Install Flatpaks. This would make Red Hat happy. I previously said that Flatpaks are more suited for GUI apps than snaps, but the reality is much more complex.
First, let’s add Flatpak support to Ubuntu MATE. In Kubuntu, Discover can manage Flatpaks, and there’s an option to enable this support. In most GNOME distros, GNOME Software has the Flatpak plugin installed by default. But in Ubuntu MATE, you have to do it by hand:
sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
At this point, it’s useful for you to know the general CLI commands:
flatpak search app-name
flatpak install app-id
flatpak list
flatpak update
flatpak run app-id
flatpak uninstall app-id
flatpak info app-id
Generally, you should prefer to explore Flathub to search for, and to discover new apps. I’ll tell you the bad news later; now, let’s start with a must-have app for everyone using Flatpaks: Flatseal, a graphical utility to review and modify permissions from your Flatpak applications. You just have to have it!
Here’s a nice music player, Gapless:
And Crosswords:
How do you install such apps? If you expand the “Install” button on each app’s page, you’ll find “Manual Install” commands. In the case of the aforementioned apps:
flatpak install flathub com.github.tchx84.Flatseal
flatpak install flathub com.github.neithern.g4music
flatpak install flathub org.gnome.Crosswords
Now, you probably don’t want to run them from the CLI, nor to manually create launchers that run them this ugly way:
flatpak run com.github.tchx84.Flatseal
flatpak run com.github.neithern.g4music
flatpak run org.gnome.Crosswords
And here’s the catch. Launchers for Flatpak apps should show up in your desktop environment’s menu, but this is not always immediate. The corresponding .desktop
files should be created in ~/.local/share/applications/
, but in most distros they’re created under /var/lib/flatpak/exports/share/applications/
. Oh, but update-desktop-database ~/.local/share/applications/
and sudo update-desktop-database /var/lib/flatpak/exports/share/applications
should surely import them all?
It depends. If in “them” we include Flatpak apps, it’s complicated. First, in all Ubuntu flavors, running any flatpak
command at the CLI will include such a warning in the output:
Note that the directories
'/var/lib/flatpak/exports/share'
'/home/ludditus/.local/share/flatpak/exports/share'
are not in the search path set by the XDG_DATA_DIRS environment variable, so
applications installed by Flatpak may not appear on your desktop until the
session is restarted.
This can be fixed by running either of the following:
echo 'export XDG_DATA_DIRS="/var/lib/flatpak/exports/share:/home/$USER/.local/share/flatpak/exports/share:$XDG_DATA_DIRS"' >> ~/.profile
echo 'export XDG_DATA_DIRS="/var/lib/flatpak/exports/share:/home/$USER/.local/share/flatpak/exports/share:$XDG_DATA_DIRS"' >> ~/.bashrc
Or you can manually edit one of the said profile files and add the contents between the simple quotes.
Now you really have to log out and log back in. Not only that warning won’t be displayed again, but the Flatpak apps you just installed will show up in the menus! Yay!
Not so fast. Suppose you install one more Flatpak app. Where is it in the menu? It’s nowhere! Let’s restart the panel, which would reload the menu: mate-panel --replace &
. Nope, it’s useless.
My conclusion: In all Ubuntu flavors, as well as in some other distros, you need to log out and log in to have a freshly installed Flatpak show up in the menus! I don’t know why, and I stopped caring. If you can’t log out right away, there’s always the possibility to run the respective app “the long way,” with the command listed in that app’s Flathub web page.
And there is more bad news. Not all Flatpak apps would observe your theme! You shouldn’t expect them to follow the actual theme, but at least a dark theme when the system is using a dark theme, and vice versa! For instance, no matter what I tried, I couldn’t the Flatpak version of Warpinator use a dark theme. It just ignored my efforts! But Warpinator is such a PITA that I’m not even sure I want to use it. It claims to be straightforward, and when it works, it works, but it’s still not as practical as Samba shares (are these Samba tutorials still valid? Ubuntu, Ubuntu MATE). And the caveats of using the Flatpak version are documented.
UPDATE: I forgot that Butterfly (kelebek333) has a mint-tools PPA for any Ubuntu version, LTS or non-LTS! It’s mostly for Bulky, Hypnotix, and Warpinator, not for the Mint tools that only make sense in Mint, nor for the XApps proper, most of which are forks of other apps and meant to make the Mint experience consistent across Cinnamon, XFCE and MATE (xed
is a fork of Pluma, xviewer
is a fork of Eye of GNOME, xplayer
is a fork of Totem, xreader
is a fork of Atril, pix
is a fork of gThumb).
sudo add-apt-repository ppa:kelebek333/mint-tools
sudo apt install bulky hypnotix warpinator
Bulky is a neat little tool used to rename files and directories. If its regular expression syntax works like the one I’m used to from KRename, then it’s going to be a great replacement for the Bica File Renamer I’ve been using in Windows for many years! Mass-renaming files could also be done with scripts, but why not do it visually?
Hypnotix is an overrated IPTV streaming application that, by default, is configured with a single provider called Free-TV. In real life, you’d need to add more sources.
Warpinator is arguably the most famous Mint app. It even has unofficial Android and Windows rebuilds, but the Windows ones are pretty outdated: this one is from Feb. 2022, and this one from Nov. 2023.
6️⃣ Use AppImages. This is a last-resort method, and I’ve used it in AlmaLinux for a couple of apps. You only have to set the executable bit (it can be done in the file manager), and you just run the app, no installation being required. But it will use a fixed theming.
Say you’re interested in DB Browser for SQLite, for which there is a snap and an AppImage that can run in any distro. For that particular app and for Ubuntu, there are two more choices, so four choices in all to run this particular app!
7️⃣ Install packages from PPAs or third-party repositories. I have illustrated both methods when I described how to install Firefox as a package. There was a PPA, and then using a Mozilla-provided repository.
Generally, when someone provided a repo or a PPA, they would tell you how to add that one. Here’s SoftMaker describing you how to add their repository. They don’t say it explicitly, but their repo offers several products as distinct packages: softmaker-freeoffice-2021
, softmaker-freeoffice-2024
, softmaker-office-2021
, softmaker-office-2024
, softmaker-office-nx
, and only the first two are free to use.
Back to in DB Browser for SQLite, let’s notice that Ubuntu has taken from Debian the package sqlitebrowser
in version 3.12.3, but if you install this PPA, you could get version 3.13.0, which is the latest.
sudo add-apt-repository -y ppa:linuxgndu/sqlitebrowser
sudo apt install sqlitebrowser
🎉 It’s showtime! Remember the pinning we talked about when installing Firefox as a true package? Initially, I used the optimistic one, favoring the entire set of PPAs from Launchpad that I’d ever install:
Pin: origin ppa.launchpadcontent.net
However, the above PPA has a slightly older libsqlite3-0
than Ubuntu, and I don’t want to downgrade it. So I had to change it to the prudential one:
Pin: release o=LP-PPA-mozillateam
For learning a bit about priorities, how about pinning this PPA too? I want from it only the packages that are newer than in the official repos, meaning sqlitebrowser
but not libsqlite3-0
. That’s easy:
sudo vim /etc/apt/preferences.d/pin-sqlitebrowser
Add inside:
Package: *
Pin: release o=LP-PPA-linuxgndu-sqlitebrowser
Pin-Priority: 999
🗒️ Quick reference on pin values, taken from man apt_preferences
:
P >= 1000
causes a version to be installed even if this constitutes a downgrade of the package990 <= P < 1000
causes a version to be installed even if it does not come from the target release, unless the installed version is more recent500 <= P < 990
causes a version to be installed unless there is a version available belonging to the target release or the installed version is more recent100 <= P < 500
causes a version to be installed unless there is a version available belonging to some other distribution or the installed version is more recent0 < P < 100
causes a version to be installed only if there is no installed version of the packageP < 0
prevents the version from being installedP = 0
has undefined behaviour, do not use it.
The existing priorities in use, both the default and pinned, can be consulted with sudo apt-cache policy
(you can use sudo apt-cache policy
packagename
to check the candidates for a specific package). You will notice the following:
- 1000 is the priority pinned for the packages from
o=LP-PPA-mozillateam
- 999 is the priority pinned for the packages from
o=LP-PPA-linuxgndu-sqlitebrowser
- 510 is the priority for Ubuntu Pro packages (
o=UbuntuESM
ando=UbuntuESMApps
) - 500 is the priority for the official repos (and the default general priority)
- 100 is the priority for the official
backports
repos - -1 is the pinned priority for
firefox*
andthunderbird*
packages fromo=Ubuntu
By playing with sudo apt remove sqlitebrowser
and sudo apt install sqlitebrowser
, and checking the libsqlite3-0
versions (also sudo apt-cache policy
sqlitebrowser
and sudo apt-cache policy libsqlite3-0
), I had the confirmation that the pinning policies I’ve set are correct. This was only for show, because the default priority is 500 for both the official and the PPA packages! The problem I was having was solely generated by my generously pinning at 100 the entire “origin ppa.launchpadcontent.net
”! Further reading: Pinning: Apt’s Best Kept Secret.
Exercise caution when installing 3rd-party repos or PPAs! Even if they’re not malevolent, accumulating dozens of such repos might lead at some point to failure to solve dependencies.
8️⃣ Install individual .deb packages provided by third parties. This is usually the case with packages that don’t require dependencies or that are statically linked and have everything inside, so to speak.
SoftMaker offers a .deb
for their Office; also for their FreeOffice. As explained at the previous point, they actually offer five .deb
files, three for their commercial product, and two for FreeOffice; but they don’t give you the exact links for all five files. (This is why using a repo is more convenient.)
My Epson EcoTank ET-M2170 is another example. Its drivers come, for Debian-based systems, as epson-inkjet-printer-escpr2_1.2.18-1_amd64.deb, epson-printer-utility_1.1.3-1_amd64.deb, and epsonscan2-bundle-6.7.70.0.x86_64.deb.tar.gz. The last one doesn’t extract to a .deb
package (“deb” is to mean “for Debian”), so you have to enter the extracted folder and run ./install.sh
, but the other two are regular packages.
Note that downloaded individual .deb
packages can be installed in 3 ways:
- Using
sudo apt install
at the CLI. - Right-click, open with GDebi Package Installer.
- Right-click, open with App Center. (In Kubuntu: open with Discovery. In other distros: open with GNOME Software.)
9️⃣ Install from binaries. The ./install.sh
thing I just mentioned is such an example, but let’s try something of a larger interest.
The e-book manager calibre
is always obsolete in most distros, even in rolling-release ones, because it releases very often. So anyone should use the method recommended on their web page:
sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
It will install everything under /opt/calibre/
, which is good practice. However, take note that to remove it, /usr/bin/calibre-uninstall
must be used (as mentioned at the CLI during the installation).
Another typical situation is with some VPNs. In my case, Private Internet Access has a binary installer, a file .run
that needs this kind of post-download treatment (the file name valid at the time of writing):
chmod +x pia-linux-3.6.1-08339.run
./pia-linux-3.6.1-08339.run
Needless to say, such a binary can do anything once you give it your password (for sudo
), so you have to trust the makers of such software to install it.
🔟 Build from sources. Oh, well, this is really the last resort. I gave many examples in that post about AlmaLinux. The main idea is that either you download a tarball, and you extract the sources, or you clone a Git repo, then you enter the source directory, and perform an incantation that generally is more or less around the two following scenarios:
./configure
make
sudo make install
or
mkdir build && cd build
cmake ..
make
sudo make install
Annoying, but this is what open-source and freedom are about!
0️⃣ Install software that is not software. This is not a sophism, but how do you call fonts or themes that don’t come as packages in your distro? (“Unnecessary ballast” is not the right answer.)
For themes, unsurprisingly, there is more than one way to install more than what comes with a distro.
When using KDE System Settings in Kubuntu or Control Center in MATE, themes or icon sets are usually downloaded as tarballs and installed for your user only under ~/.icons/
, ~/.local/share/icons/
, or ~/.themes/
. Let’s say you go to Gnome-look.org for the Papirus icon theme, and you download the main tarball or one of the variations with different color accents (say, the orange one). This is what you would install in Control Center, Appearance, once you click on “Install…”.
Since this isn’t a full theme, you’ll then need to click on “Customize…” then go to the Icons tab and scroll down to reach the new icon themes:
But recently I described installing Ubuntu’s Ambiance theme in MATE using a PPA! As it happens, you can do that with the Papyrus icon theme, too!
The official GitHub home for papirus-icon-theme suggests adding a PPA, which means that the icon themes would be installed globally:
sudo add-apt-repository ppa:papirus/papirus
sudo apt-get install papirus-icon-theme
There’s also a “purely binary” way under Papirus Installer (using a script), and there are also snaps! Finally, stupid me only discovered a couple of minutes ago that there’s an official papirus-icon-theme
in Ubuntu’s repositories, and yes, it’s a true package, not one that pulls a snap! (The official package won’t be updated by Ubuntu, whereas the PPA will provide updates.)
Fonts, fonts, fonts, but not as many as I listed two months ago! Here, too, fonts that are not installed as packages coming from the distro or from a PPA have to be installed manually.
The problem with Ubuntu MATE is that it can only install a single font file per operation, in both these ways:
- Control Center, Appearance, Fonts, “Add new font…”
- In Caja, right-click, Open with MATE Font Viewer, Install.
This is annoying when you have a dozen files per typeface! If you select several font files, it will try to open several MATE Font Viewer instances. In Dolphin, it would install the entire set of fonts in a single operation. So let’s do it the old way.
Let’s install the monospaced font I’m using on this blog for code, which is rom Iosevka, in one of the main two variants: Iosevka Fixed (normal), or Iosekva Term (with ligatures).
As previously described when mentioning the potential ttf-mscorefonts-installer
issue, all you have to do is to move the extracted fonts into ~/.fonts
or ~/.local/share/fonts
(you can move the entire folders!), then update the font cache: fc-cache -fv
.
If you have to use them in, e.g., MATE Terminal, you have to close it and launch it again.
🗒️ A special note on Ubuntu’s “new” font. Since I kept mentioning fonts, and even antialiasing, I want to make a comment on Christopher Barnatt’s video Linux Mint 22: Excellent Distro for Windows Users, in which he disliked “the new Ubuntu font” in Mint 22, compared to “the old Ubuntu font” in Mint 21:
The “old” Ubuntu fonts that Ubuntu 22.04 LTS was still using, and therefore Mint 21 too, have stopped at version 0.83 and can be found on the official, outdated design page: use the green Download button at the very bottom, and you’ll find 10 files for Ubuntu and 4 files for Ubuntu Mono. The “new” fonts, which are thinner, are versioned 0.869+git20240321 as packaged and as in Launchpad, but in GitHub they’re listed as 1.006 (Ubuntu Sans and Ubuntu Sans Mono). Either way, I happen to like the “new generation” Ubuntu fonts, and I don’t want to revert to the old one, no matter what Christopher Barnatt thinks. He and his Mint Cinnamon 22. Oh, Mint is not using Ubuntu Mono for the monospaced font—one more deviation from Ubuntu.
Notes on upgrading
There seems to be a lot of fuss about the potential difficulties in upgrading from an Ubuntu release to the next one. There are several possible situations:
- Upgrading from any Ubuntu release to the next one: packages make a 6-month jump in freshness.
- Upgrading from an LTS Ubuntu release to the next LTS: packages make a 24-month jump in freshness.
- Upgrading between non-successive Ubuntu versions, regardless of how you count them (all of them or only LTS): it’s complicated. I’d rather not.
The first case is the simplest one, and the upgrade should go smoothly. The only kinky issue is when you’re using third-party repositories or PPAs who haven’t yet upgraded to the new release. You should also check that all repos have the version (as name in Ubuntu) updated, so that they pull the correct packages.
As the time span between the release you’re upgrading from and the release you’re upgrading to widens, so does the risk of encountering unmet dependencies. This seems logical, because in the meantime, some libraries might have been discontinued, some others renamed, and not all the apps you might have installed—especially third-party ones—have adapted to the changes. It could also happen for some programs to be rebuilt against newer versions of some libraries (PyQt6 vs. PyQt5, GTK4 vs. GTK3, etc.) that changed the tree structure of the dependencies. In some cases, complete programs have been removed between a release and the next one! (As a side note, PyQt6 is a PITA, and most distros don’t have all of its libraries.)
This is why, officially, upgrading is supported only between successive LTS releases but not farther apart than that. 22.04 LTS can be upgraded to 24.04 LTS, but you can’t upgrade 20.04 LTS to 24.04 LTS. You’d have to make it in two steps: 20.04 → 22.04, then 22.04 → 24.04. On the other hand, while upgrading 23.10 to 24.04 LTS,and 24.04 LTS to 24.10 are supported as normal 6-month upgrades, upgrading 23.10 to 24.04 LTS is unsupported, despite the fact that it might just work!
Precisely because upgrading between LTS releases is an important jump in versioning, the general rule is that the automatic upgrade path is “not open” (it won’t be proposed to you, but you can still trigger it manually) until the first patch release! To the point: upgrading 22.04 LTS (even if it actually means 22.04.05) shouldn’t be done right after the release of 24.04 LTS, but only after 24.04.01 is out!
This is “for your safety” 🙂
From the Ubuntu 24.04 LTS (Noble Numbat) Release Notes:
Users of Ubuntu 23.10 have been offered an automatic upgrade to 24.04 since shortly after the release.
Users of 22.04 LTS will also start being offered the automatic upgrade now that 24.04.1 LTS has been released.
Upgrading Debian stable is like upgrading Ubuntu LTS, i.e., potentially problematic. Their DebianUpgrade documentation is outdated, and the procedure only uses apt-get, not apt. For educational purposes, let’s examine their way:
# First, ensure your system is up-to-date in it's current release.
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get full-upgrade
# In a text editor, replace the codename of your release with that of the next release:
$ sudo nano /etc/apt/sources.list /etc/apt/sources.list.d/*
# Clean and update package lists
$ sudo apt-get clean
$ sudo apt-get update
# Perform the major release upgrade, removing packages if required
$ sudo apt-get upgrade
$ sudo apt-get full-upgrade
# Remove packages that are not required anymore
# Be sure to review this list: you may want to keep some of them
$ sudo apt-get autoremove
# Reboot to make changes effective (optional, but recommended)
$ sudo shutdown -r now
A bit crazy, right?
● The generic Ubuntu documentation for upgrading a server is much more optimistic:
sudo apt update
sudo apt upgrade
sudo do-release-upgrade
● The generic Ubuntu documentation for upgrading a desktop makes use of the GUI, so this is only Step 1:
sudo apt update
sudo apt upgrade
Step 2: launch Software Updater (from the Administration menu or search for it in the menus; or run update-manager
at the CLI) and “follow the update flow” proposed and assisted by that GUI tool!
● As specified in Ubuntu MATE 24.04 LTS Release Notes, “The upgrade process to Ubuntu MATE 24.04 LTS from either Ubuntu MATE 22.04 LTS or 23.10 is the same as Ubuntu.” Here’s the Ubuntu 24.04 Upgrade Process for desktops:
Run the
update-manager
application.
Seriously, the rest is click the “Settings…” button, enter your password, select the submenu “Updates” from the Software Sources application (Software & Updates, meaning software-properties-gtk
), confirm that the notification is set to “For any new version,” return to Update Manager, click the “Check” button to check for new updates, use the “Install Updates” button, then run again update-manager
if updates were installed, and click “Upgrade” if this is available, then follow the on-screen instructions. Ugh.
This is BS meant for people who couldn’t run a manual update before and who aren’t even sure that the system is configured to notify them of a new release!
The only supplementary information (-d
means development, but they refer to the period between 24.04 and 24.04.1):
If you want to upgrade early, before upgrades are officially supported, you can pass the
-d
option when runningupdate-manager
. Do this at your own risk.
An equivalent way:
sudo apt update
sudo apt dist-upgrade
sudo update-manager
In fact, the last one doesn’t need sudo, as it will ask your password when needed. But there are two mentions to be made about apt dist-upgrade
vs. apt upgrade:
apt dist-upgrade
is now just an alias forapt full-upgrade
- There is a difference in what they do, and I quote from
man apt
:
upgrade is used to install available upgrades of all packages currently installed on the system from the sources configured via sources.list(5). New packages will be installed if required to satisfy dependencies, but existing packages will never be removed. If an upgrade for a package requires the removal of an installed package the upgrade for this package isn’t performed.
full-upgrade performs the function of upgrade but will remove currently installed packages if this is needed to upgrade the system as a whole.
Therefore, by using apt dist-upgrade
or apt full-upgrade
, you will have the packages with unmet dependencies removed prior to getting the chance of deciding on them in a GUI tool!
When in doubt, use the official instructions.
Back in the day, Dedoimedo wrote How to upgrade from Ubuntu 18.04 LTS to 20.04 LTS today. At the time, a GUI helper could have been invoked with sudo do-release-upgrade -d -f DistUpgradeViewGtk3
(or maybe sudo do-release-upgrade --frontend=DistUpgradeViewGtk
). This doesn’t seem to work anymore; it keeps being text-only. Why are they playing with these tools all the time?!
Just for your information, Linux Mint has a tool called mintupgrade
that the official documentation tells you to remove after having performed the upgrade 🤔
Final notes
We’re at the end of another apocalyptically long post, in line with the 28 posts under the tag longread, of which the 7 under the tag SPECIAL are guaranteed to be Linux-related.
Things are not as complicated as they seem, but there was a lot of information to convey, both facts and opinions. What was I supposed to do: break this in several posts when I know that people aren’t keen to follow links anyway? Write a magazine or a book?
Returning to GNOME2 reborn as MATE revived memories from 20 years ago. It’s good to be again in once-familiar territory. I loved the first Ubuntu versions, and I kept using GNOME2 in CentOS5 after GNOME2 was abandoned since Ubuntu 11.10. Distro-hopper as I was, I tried everything, but GNOME3 and what followed are simply unusable. Ubuntu’s GNOME is “elegant” and “modern” in its attempts to mimic some bad things of macOS, while also taking inspiration from OSes for touchscreens. But I’m not sure that the file manager needed to be dumbified that much, especially as Finder is not that dumb. Of course, it’s Red Hat to have given this direction to GNOME. Meanwhile, KDE6 mimics Win11’s mimicking of macOS, its developers liking the translucent pastel horror color schemes. This world is insane.
Recently, the Italian editor of Win Magazine and of Il mio Computer Idea! (which also publishes an edition of Linux Pro but has abandoned Ubuntu facile) came to the rescue of people who wanted an exit from the Windows monopoly by issuing the first Passa a Ubuntu magazine.
Typically for our times, they recommended Ubuntu generally, and Lubuntu for older hardware. They also cursorily presented Ubuntu Unity, Xubuntu, Ubuntu Budgie, Kubuntu and Ubuntu MATE, but they didn’t really recommend any of them. They have spent more time describing Zorin and Ubuntu Studio!
As for me, I firmly believe that Ubuntu MATE should appeal especially to people who weren’t born yesterday and who are not retarded TikTokers. People who know what a file and what a directory are, and people who need to be productive. I also believe Ubuntu MATE to be suited for both newer and older hardware. Or people.
Speaking about swap and RAM (
vm.swappiness
), I remember I noticed a difference in the memory management philosophy in successive versions of Windows.1. OH, THAT SLOW SWAP FILE? Win3.1 had such a primitive swapping mechanism (into WIN386.SWP), and it assumed that HDDs are so slow, that swap space was only used as a last resort. This led to the RAM being mostly full in Win3.1, with swapping occurring only when the system could no longer accommodate new data or processes.
2. SWAP OFTEN, SWAP BIG: Win95/98 tried to keep as much free RAM as possible. The idea was that free RAM would allow large applications to load faster. This has led to frequent and unnecessary swapping: even when there was plenty of free RAM available, Win95/98 tended to use the swap file frequently, moving data to disk to keep RAM usage low. This is why the HDD was much busier than in Win3.1, even if you had enough RAM.
3. MOMMA, I’M FAT AND STUPID! WinME perceived inusability likely stemmed from a combination of higher RAM requirements than the officially stated 32 MB and its aggressive memory management policy that tried to keep RAM free by constantly swapping to the hard drive.
4. BACK TO SQUARE ONE: WinXP introduced a more modern memory management system that delayed swapping as much as possible and tried to keep more data in RAM. The idea was that this would make for a smoother multitasking and better handling of larger applications. However, large applications were slow to start if RAM was fully utilized, as the system needed to swap out inactive processes. So the HDD was extremely busy while loading large apps: on the one hand, it flushed from RAM to swap, while at the same time still loading that large piece of software. Sort of Win3.1, but with a more sophisticated memory management, and with real multitasking.
5. I PREFER TO KEEP EVERYTHING IN MY HEAD: Win7 introduced a smarter caching system called SuperFetch that actively used free RAM for caching frequently used applications to speed up their launch. Instead of keeping RAM free, it focused on maximizing RAM usage for performance. So it minimized swap use even further, preferring to keep as much active data in RAM as possible, and swapping out data only when absolutely necessary, meaning RAM was generally close to full most of the time. However, when RAM was fully utilized and a large application needed to load, the system would have to swap aggressively. Note that unlike WinXP, Win7 didn’t only keep active apps in the RAM, but it even cached closed ones. Therefore, on system start, it was as snappy as WinXP, with a moderate RAM usage, but in time it would have the RAM close to full, even if you closed some apps you were using. When it needed to really use the swap, having an SSD instead of an HDD really helped.
6. I HAVE SO MANY IDEAS THAT I GOT MAD: Win10 introduced even more advanced (?) memory and disk caching techniques, including prefetching and enhanced paging mechanisms (whatever that means). Combined with its many more background services, telemetry, and a larger footprint, it relies so heavily on disk access that it’s virtually unusable with an HDD. The long boot times, delayed app launches, and overall sluggishness generally disappeared after upgrading to an SSD. Unfortunately, through cumulative updates, it became more and more of a hog, regardless of how much RAM and SDD you had. A 20 GHz 128-core CPU would probably help.
7. I HOPE YOU’LL MISTAKE ME FOR MACOS: Win11? Me not know it. But the hardware requirements introduced made it look like not wanting to run on 400 million computers. Almost like macOS, which is only supposed to run on Apple-branded hardware. Making the taskbar look like the Dock doesn’t sweeten the pill. Who cares about the memory management of an OS they’ll never use?
I inserted an update about a mint-tools PPA that offers Bulky, Hypnotix, and Warpinator. It’s not in the section on how to install from PPAs, but a bit earlier, at Flatpaks, because the Flatpak version of Warpinator was mentioned, and I wanted to offer a better option. On this occasion, I used for the first time the word “arguably” in this post.
A Japanese nicknamed Gokuraku Haze (this is how Google translates his name, and it’s a species of fish, Rhinogobius giurinus) keeps installing various distros on low-specced laptops. His experiences are useful in showing just how much RAM an installed distro could use by itself. Here’s his reports on RAM usage:
• Ubuntu 24.04 (GNOME):
1.0 GB
• Ubuntu MATE 24.04:
843 MB
• Linux Mint 22 XFCE:
812 MB
• Linux Lite 7.0:
796 MB
• Zorin 17.2 Lite: (Note that the Lite edition will be discontinued from Zorin OS 19 onwards, and the other editions use GNOME instead of XFCE.)
736 MB
• Xubuntu 24.04 Minimal:
661 MB
• Lubuntu 24.04.1:
651 MB
• Lubuntu 24.04 Minimal:
628 MB
• BunsenLabs Linux Boron (Openbox):
576 MB
• Debian 12.6 LXDE: (installed from the Live ISO)
508 MB
Not a specialist on this, but while having a low base RAM consumption is a good sign and commendable, both for energy saving and more liberated RAM for other applications, yet things could not be as simple. Could not be the case that due to the OS using so less, maybe we are handicapping a rapid application startup time? Or maybe it needs continuous bursts of RAM that, when measured over time, the average RAM consumption is quite off of what those initial figures suggest?
Don’t take me wrong, the figures are relevant for devices with less than 4GB RAM. Now, with laptops now with 16GB to 32GB, having a Distro RAM base of 1GB or 508MB seems irrelevant.
Energy saving? The entire RAM is powered, regardless of whether it holds data we rely on or random values.
OTOH, we know that those “RAM optimizers” for Android are doing more harm than good. As an app goes background in Android, it’s still in the RAM, unless a stupid “optimizer” unloads it. And then, when switching back to it, it needs to be reloaded from the eMMC storage, which takes time and, incidentally, also energy.
So it’s better to keep them in the RAM. When the system needs to really kill them, it will do so. Android apps are supposed to save their status when they receive onPause(), so if they receive onDestroy(), they shouldn’t be affected, as they’ll restart from where they were left even if they need to be fully reloaded.
Didn’t you notice that some XFCE distros are configured to “Launch KDE services on startup”? This might seem like an unnecessary bloat, but if there are KDE apps installed, they’ll start faster once the required libraries are preloaded. (And if there are no KDE libs on your system, nothing will be loaded.)
Only systems with very little RAM should minimize their RAM usage.
However, it might be that an app that needs rapid random allocation of extra memory should really benefit from having lots of free RAM. It really depends on the app.
Also on the topic of RAM, I forgot to consider the various mechanisms used to deal with Out-Of-Memory (OOM) situations in Linux. There are 3 of them: the kernel’s built-in OOM killer, systemd-oomd, and EarlyOOM.
1. The kernel’s OOM killer is a built-in mechanism that automatically terminates processes when the system runs out of memory. It is triggered when the system is in a critical state and cannot allocate memory for essential operations. It selects processes to kill based on a scoring system that includes memory usage and process priority.
Cons: You cannot get rid of it even if you wanted to. It can be unpredictable and may kill important processes. Does not provide fine-grained control over which processes to terminate.
2. systemd-oomd is a user-space service provided by systemd that monitors memory usage and can terminate processes to prevent OOM situations. It can be configured to act before the system reaches a critical state, providing a more proactive approach. It uses a set of rules and heuristics to decide which processes to terminate. Cons: Its configuration can be complex and may require tuning. In real life, it can behave very, very badly.
3. EarlyOOM is a user-space standalone daemon designed to detect and handle OOM situations before the kernel’s OOM killer is triggered. It monitors system memory usage and can act when memory pressure reaches a configurable threshold. Highly configurable, it allows fine-grained control over OOM handling based on various criteria, such as memory usage, process priority, and user-defined rules. Cons: It may need careful tuning to avoid terminating important processes. In real life, people complain about it too: either it doesn’t do anything, or it can even terminate itself!
I recall being worried about the mishaps that could happen because of
systemd-oomd
.Complaint #1: I’ve now disabled systemd-oomd on my Fedora desktops:
Complaint #2: Ubuntu 22.04 comes with the
systemd-oomd
service enabled by default, which has been “helpfully” killing my IDE and / or terminals whenever I try to compile an application using an abundance of threads / memory.The fix to this:
Test it:
On my Ubuntu MATE:
Interestingly,
systemd-oomd
is installed by default in Ubuntu, but not in Kubuntu, Ubuntu MATE, Xubuntu, Lubuntu, Ubuntu Cinnamon, Ubuntu Unity! It can be found in the “main” repository (alongsidesystemd
).Let’s accept that
systemd-oomd
may be particularly suited for server environments. However, its inclusion in the main Ubuntu desktop flavor with GNOME feels strange. If Canonical deems the GNOME desktop environment to be that resource-heavy, why don’t they use another DE for their main desktop?For the second potential killer, on my machine:
Indeed, while
earlyoom
is in “universe,” it’s not installed by default in any Ubuntu flavor.https://guide.ubuntu-mate.org/
It covers version 22.04 LTS, but the differences in 24.04 LTS, not counting the upgraded apps, are mostly these:
— The Ubuntu font is thinner 🙂
— The Welcome app doesn’t [almost forcefully] show you the possible layouts.
Therefore, if it’s just fine to start from the beginning…
https://guide.ubuntu-mate.org/#page-overview
…make sure you don’t miss the personalization section, including MATE Tweak for Panel Layouts:
https://guide.ubuntu-mate.org/#personalization
A truly fabulous introduction to Linux MATE.
The new installer in Ubuntu MATE 24.04, which is the same as the one in the main Ubuntu flavor (only Kubuntu and Lubuntu use Calamares) is written in Flutter. The new App Center is also made with Flutter.
Post-factum, I’ve read about some people having issues with the new installer. The reports are for the initial 24.04 release, not for 24.04.1, so I don’t know if they did something to mitigate that.
So, the installer kept crashing on some people in Ubuntu, Ubuntu MATE, Xubuntu. Possible suggested causes:
– Using LUKS-encrypted partitions.
– Using a drive that has Windows partitions (encrypted at that).
Suggested workarounds:
– Use safe graphics mode on startup. This seems to have always worked, but it’s not related to Nvidia, as Dell XPS 13, for which there are many reports, usually comes with Intel® Iris® Xe Graphics. OpenGL might be a reason.
– Lowering the resolution (this is ugly).
– Use ext4 and no f-ing LUKS.
– Disconnect from the Internet (Wi-Fi) during the setup (this is an option in the installer).
– Do both: perform an off-line installation at 800×600.
– Remove all the existing Windows partitions.
– Stupid suggestions not having to do with anything, like using Rufus instead of Ventoy or Balena Etcher. (Anything that isn’t Ventoy is for tards.)
It didn’t help that some idiots wanted to install it in VirtualBox, not on metal.
Either way, booting into safe graphics mode at startup fixed the issue for whoever had it and bothered to try this fix. Meanwhile, I hope this got fixed for 24.04.1 (and 24.10 Beta, soon to have 24.10 released) for those hardware situations that triggered it.
I also read reports from tards claiming: “In the Ubuntu Ubiquity legacy installer when selecting manual partitioning I had the freedom to not only select endless partition tables but more importantly create a separate boot partition for where my new Ubuntu install places my efi/boot. In the new Flutter version I can only select which drive to place my boot but doesn’t allow me to create or select a specific boot partition where I want my Ubuntu boot partition to be.” This is definitely NOT the case in 24.04.1, and I’m pretty sure it wasn’t the case in 24.04 either, in manual partitioning!
One such report revealed a weird partitioning layout: “In my current Alienware X17 I run 4 distros. To competently separate and quick swap one of my distros in rotation I have one separate small boot partition for each distro I use for example: Ubunt: Boot partition / System Partition + Fedora Boot partition / system partition, Arch: Boot Partition / System partition ……….. and so on.”
Read it again: “one separate small boot partition for each distro.” Now, as I already said, this installer won’t accept too small boot partitions! When I previously created (in GParted) a 300 MiB boot partition, it accepted it. When (in 24.10 Beta) I created a 500 MB partition in the installer, it either didn’t accept that disk for boot, or it forced a 1.13 GB boot partition! So I suppose that creating a small new boot partition wasn’t accepted, and it wasn’t enough space to make a larger one. Even if manually created in GParted, if it’s way too small, it would certainly be rejected.
Ubuntu should be for normal people, not for people multi-booting between four distros on the same machine!
So far, I’m happy with Ubuntu MATE. (I’ve changed that wallpaper to something more soothing.)
You can use QEMU 5.2.0 from December 2020 to run Windows 3.11 from November 1993. With networking and Internet Explorer 5! Alan Pope did it on his ThinkPad Z13 running Ubuntu 24.04.1, but this old version of QEMU had to be built.
Oh, my: Alan Pope has published 46 snaps! Not very useful, I’m afraid. OK, maybe emoj. And Dedoimedo, big Notepad++ fan, might like Notepad Next.
I forgot about one more way to install and update packages because I never used it, and I’m not sure that I’ll ever use it: deb-get by Martin Wimpress (Wimpy), the lead developer of Ubuntu MATE.
Wimpy seems to be an extremely energetic individual, having created or contributed to many projects. Between March 2020 and November 2022, he was the guy behind Rolling Rhino, which later evolved into the Rolling Rhino Remix. (Needless to say, once you run that rolling-release thing, you won’t be able to use any 3rd-party repo, as nobody tracks a rolling Ubuntu.)
Back to deb-get:
Well, no, not really. They can also be updated manually: just download a newer
.deb
and install it!But using
deb-get
is a PITA:Well, I suppose I have such a token, but I still don’t like the concept. I’m one of the few people who really hate GitHub. Yes, I do have an account with them, but GitHub is shitty.
Dedoimedo, Oct. 4. 2024: Linux desktop freezes, pm_runtime_work hogged CPU error.
In brief, he encountered an IPv6 issue on his Slimbook Titan (AMD Ryzen 9 CPU + Nvidia RTX 3070 GPU; that’s 125 W for the graphics and 45 W for the processor; MT7921 Bluetooth) running Kubuntu 22.04 LTS Jammy.
The Bug #2049220 “Update firmware for MT7921 in order to fix Framework 13 AMD 7040” was supposedly fixed, and an update firmware provided.
Dedoimedo:
Editing
/etc/default/grub
to add"ipv6.disable=1"
toGRUB_CMDLINE_LINUX
then runningupdate-grub
and rebooting wasn’t enough. The corresponding kernel module had to be blacklisted in/etc/modprobe.d/blacklist.conf
by adding a lineblacklist ipv6
then rebooting.Before commenting on the kernel, I’d like to salute Dedoimedo’s views of IPv4. They’re consistent with my take expressed here, in which I said that IPv6 is hardly needed, and certainly not for home users and most companies. I was ending with this: “You can very well live without IPv6.”
This is exactly what Dedoimedo chose to do. His take, in the chapter “An aside on IPv6 …”:
Now and then, despite his fabulous episodes of justified criticism on the world’s stupid technical or design decisions, Dedoimedo gives me occasions to think of him: “Atta smart guy, too bad he’s not that smart after all: look at the games he plays, look at its icons-without-text on the taskbar, look how he wants to install IrfanView in Linux, and look how high he’s ranking Notepad++.” And then he comes with one more proof of being clear-sighted in a world of brainwashed people who constantly want to invent something, and they do it very badly.
Well, at least he’s somebody. On Reddit and Hacker News, they might disagree with him, but I’ve seen him acknowledged as a Linux expert. About me? “What’s wrong with that frustrated boomer? He needs his head examined.”
But IPv6 is also a question of pathetic Linux kernel quality. It was the Linux kernel that integrated the unreliable Paragon NTFS driver. This is why I recommended disabling it in AlmaLinux with ELRepo’s kernels (blacklist
ntfs3
and installntfs-3g
); you should do the same in Ubuntu MATE. It was the same Linux kernel that broke the analog audio jack in my old laptop. No wonder then that the Linux kernel, even when provided with an easy fix that would add support for two extremely similar webcams (0408:4033 and 0408:4035), only added support for one of them (0408:4035) about 2 years later. This is the quality of the Linux kernel.So why am I using Linux? I was much happier with MS-DOS and Windows 3.1 (not even Wfw 3.11, because I used Trumpet Winsock for TCP/IP), but these days you need a computer 2,000 times more powerful and software 10,000 times more complex to be able to open a web page. Faced with this mass cretinism, I had to choose the lesser evil. (FreeBSD is still a nice dream, as it was 30 years ago, and 15 years ago… and nobody will ever build proprietary software for it.)
♦
EDIT: As for how IPv6 might confuse some software, I have a story about a Sagemcom home router so poorly designed, that when the ISP didn’t provide it an IPv6 address, it still offered internal IPv6 addresses to the LAN. But then, poorly written software would assume an IPv6 connection was available when it wasn’t. As a result, WhatsApp’s audio and video calls wouldn’t work (somehow, text chats would always use IPv4). And some KDE versions would claim that there’s “Limited Connectivity” (
plasma-nm
would say so).The fix I mentioned in this post (unfortunately in Romanian) consists in configuring the Wi-Fi connection in KDE so that in the IPv4 tab “IPv4 is required for this connection” be checked. Some genius meant this to act as if it were saying, “IPv4 is all I need, you can ignore IPv6 if it doesn’t work!” BTW, in the same versions of everything, no other DE would claim there’s limited connectivity! Only KDE Plasma 5. So disabling IPv6 is always a good idea.
I’ve tested Ubuntu’s 24.04 flavors against this router. Even in the desktop environments that don’t care about the IPv6 address not being routed, there’s a side effect in the Flutter-based installer.
While activating the Wi-Fi connection in the DE doesn’t raise any warning, if you proceed to install the distro and choose the option to connect to the Internet (so the most recent packages would be installed right away), Flutter chokes. Some other retard (who probably designed WhatsApp’s Android app, too) made the installer wait ad infinitum if it detected an IPv6 that can’t be used to reach the Internet. Because even if you did manually connect to the Internet and the Live session just works, it will disconnect and try to reconnect from within the installer, then it gets stuck because of the IPv6 glitch. Yeah, this is the quality of the software people write nowadays.