No, this blog wasn’t hijacked. This comes from the author of 😾 30 Years Defending Linux — Until I Called It Quits. But this is a public service to those who want to install and use a lightweight Linux distro, at their risks and perils. As to what happened and what will happen with my laptops, in a future installment.
Yes, I’m not senile, I know I criticized the Ubuntu 25.10 family, but Lubuntu was one of the best flavors of the season (Kubuntu 25.10 also worked fine, even with Wayland, but it’s heavier). All things considered, Lubuntu 25.10 should be rather fine to keep a ten-year-old laptop running.
The problem? Lubuntu 24.04 LTS will stick to PCManFM-Qt 1.4.1 forever, as nobody’s going to backport a newer LXQt from universe! Debian 13, despite featuring the newer version 2.1.0, lacks the improvements brought by 2.2.0. The Fedora 43 LXQt spin, to be released soon, has 2.2.0, but let’s face it: the same way MATE looks the best in Ubuntu MATE, LXQt looks the best in Lubuntu. Only XFCE looks like shit in Xubuntu, mostly because Sean Davis never had good taste (XFCE looks much better in Manjaro and in Mint).
The idea is for you to install Lubuntu 25.10, get used to LXQt 2.2.0, then upgrade to Lubuntu 26.04 LTS and stay with it until your old computer dies, unless you decide to upgrade to the next LTS after 2, 4, or 6 years. On any LTS release, should you enable Ubuntu Pro (free for up to 5 computers per account), you got 10 years of security updates!
In Ubuntu Pro lingo, “esm-infra” refers to the security updates provided for packages in main and restricted; “esm-apps” are the security updates provided for universe and multiverse packages. Non-GNOME desktop environments are in universe. 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”! This means even LXQt should, in theory, receive security updates for 10 years! But only for Lubuntu 26.04 LTS, once you upgrade to it and activate Ubuntu Pro, for which you need an account, just like you do with Microsoft 🙂
But I didn’t say that you should use Linux instead of Windows; I said you could use Lubuntu 25.10 (then 26.04 LTS) on older hardware, despite Win11-capable laptops starting at about €400 (VAT-included). In the case of Lenovo, they might have soldered RAM (Apple-like) and a single NVMe slot. In the case of Acer, they would have 2 RAM slots and 2 NVMe slots, but you might end up with a problematic MediaTek Wi-Fi/BT chip.
In a Reddit thread started by someone looking for a stable, modern-looking Linux distro, among the various recommendations (Debian, Fedora KDE or GNOME, Mint, Kubuntu, Ubuntu LTS Pro, Aurora, Ultramarine, CachyOS, elementary OS, MX Linux, openSUSE Leap, Pop!_OS), there was this interesting opinion:
Why I wouldn’t recommend others [than Pop!_OS]:
Not having .deb support is a 99% dealbreaker in my opinion. Ubuntu is still dominant and most private software adapted to Linux is gonna be packaged as a .deb. A fully compatible workstation requires Debian-based. This means no Arch-based and no Fedora-based.
Many Debian-based distros go all-in on “anti-bloat” and “FOSS-only” and while that’s not really your aim here, you want an “it just works” distro. This means no Debian, no elementary OS, and so on.
Ubuntu is the devil. Do not use Ubuntu and if possible stay away from snaps.
I’ve heard MX Linux works, haven’t tried it. Might interest you.
Linux Mint Debian Edition is good. I think it’d work for you, but it’s a bit more aimed at casual users than devs. It’s kinda messy inside if you look hard into it, but it works fine.
While Pop!_OS is a shitty choice because of the COSMIC desktop environment that’s clearly not for everyone (and it’s still in the alpha stage), there are points of agreement with this guy:
There is so much software, and not just proprietary ones, that, in the eventuality they offer a Linux edition, they only offer a .deb or, in some cases, also a .rpm. It can happen for them to offer a “universal” installer (usually a huge script that embeds the binary) in case it’s an Electron app or some really self-contained binary. AppImages are far from being the best choice, and Flatpaks are rare in the world of commercial software. In my experience, .deb is the most likely format to be offered. Often, only builds for LTS versions of Ubuntu are offered, which restricts the choice even more. But indeed, choosing a Debian-based distro is the safest choice. A flavor of Ubuntu LTS is even better.
No elementary OS, no Devuan, no Zorin, and so on. Keep it mainstream.
Snaps or no snaps, Ubuntu is not the devil. Snaps can be completely removed from most, if not all flavors (Ubuntu MATE 21.04 had the theming from snaps, but this is no longer the case).
MX Linux is “a better Debian” and a sound choice, despite its debatable default theming (with different layouts in XFCE and KDE).
All editions of Mint are depressingly ugly, IMO, and, with all their pluses, are quite messy indeed under the hood. Mint adds bugs to Ubuntu or Debian (LMDE) by breaking some packages that cannot be installed or don’t work anymore as intended (at least mate-tweak and xfce4-panel-profiles, but there are more of them). LMDE is probably more “pristine” than the Ubuntu-based editions, but it is Cinnamon-only.
Either way, I suppose Debian-based distros still have some leverage over, say, Fedora. However, for bleeding-edge packages of open-source software, I’d say that Arch-based EndeavourOS (with AUR) or maybe Manjaro, openSUSE Tumbleweed, and even Fedora are much more suited.
Most “normal” people don’t need bleeding-edge packages, except for up-to-date web browsers. They also don’t need “modern” desktop environments based on retarded GNOME or hipsterish tiling window managers! Something that preserves the desktop metaphor introduced by Win95 should be just fine.
Oh, Ubuntu Pro doesn’t apply to Linux Mint, which is not a “genuine” Ubuntu OS.
3. What I suggest you to configure in a freshly installed Lubuntu 25.10
❶ Select a faster server
LXQt Configuration Center (or Preferences), Software Sources, Download from:, Other…, Select Best Server. Confirm your choice.
Alternatively, just select a server from your country.
❷ A minor Openbox improvement
I had issues with double-clicking on titlebars to maximize them, and I thought that I should go to Preferences, Openbox Settings, Mouse, Double click on the titlebar, and set the unconfigured action (Customs actions) to Maximizes the window.
The real culprit was the too restricted interval, set to 200 ms. I prefer to set it to 500-600 ms.
It makes sense once you notice that a “normal” double-click is set to 400 ms! Why should a double-click on a titlebar be more frantic than that?
❸ Desktop improvements
Right-click on the desktop, Desktop Preferences, check Make all items stick to their positions. Otherwise, they’ll start moving around each time a new icon is added to the desktop because they’d start sorting themselves alphabetically.
If you want to put the Trash icon in the bottom right of the screen, but it refuses to stay close enough to the right side, adjust in the same Desktop Preferences dialog box the spacing: set Margins of work area to 4px on all four sides. You could also decrease the Minimum item margins.
❹ More Openbox improvements
In Lubuntu, active windows have a blue frame. Would you like to have it disabled? Should the answer be positive, read on and act accordingly.
Preferences, Openbox Settings, Theme. Suppose you stick to Lubuntu Arc.
Now, knowing that add-apt-repository automatically performs an apt update, the last step:
sudoaptinstallfirefoxthunderbird
❼ Get rid of the remaining snaps
What do we lose if we remove the snap support completely? Just like in Kubuntu, practically nothing! If you selected a full install, you’ll have Krita installed as a snap, but it also exists as a true package!
What we really lose is firmware-updater, a GUI app (from GNOME) that is not necessary! What you need is fwupdmgr, part of the fwupd package. At the CLI:
fwupdmgrget-updates
But Lubuntu can apply firmware updates via the already installed combination Discover + plasma-discover-backend-fwupd + fwupd! So just use Discover:
❽ Increase the contrast in GTK apps, including Firefox
In LXQt Settings, Appearance, GTK Style, set GTK 2 Theme and GTK 3 Theme to Adwaita or Adwaita-dark instead of the inconsistent defaults, which are Arc-Darker for GTK 2 and Breeze for GTK 3.
If libavcodec61 is already installed, it will be removed and replaced by libavcodec-extra61.
ubuntu-restricted-extras will also retrieve ttf-mscorefonts-installer.
❶⓿ Clipboard shortcuts and QTerminal
There is the X11/Linux way of using the clipboard, and there is “the other way” of doing things.
Inheriting from UNIX, there is a “clipboard dualism”:
The PRIMARY selection (“paste the selection”): This is the “select to copy, middle-mouse-click to paste” mechanism. Just highlighting text automatically copies it to the PRIMARY selection, and you paste it with a middle-mouse-click or via Shift+Ins. No explicit copy action is needed!
The CLIPBOARD (“paste from clipboard”): This is the traditional Ctrl+C/Ctrl+V clipboard known to Windows users.
Frankly, more than 30 years into UNIX-like OSes, I still find this schizophrenia dumb. My muscle memory has formed around Ctrl+Ins (copy) and Shift+Ins (paste) from the age of Windows 3.1 and even earlier, as these keyboard shortcuts are inherited from IBM’s Common User Access (CUA) standard from the late 1980s. (Motif and CDE used CUA bindings and the CUA-style clipboard, whereas Open Look/XView/OLWM went the way of mouse-based selection and paste from the so-called PRIMARY selection. Fuck them.) Then, Windows 95 standardized Ctrl+C and Ctrl+V, although they were already available in software such as Microsoft Word 2.0 for Windows 3.1 (for 3.0, actually).
Nowadays, Ctrl+Ins and Shift+Ins are impractical on TKL keyboards that lack the Ins key (Fn+Del), but I have a long-standing asymmetrical habit when the keyboard allows for it:
Ctrl+C to copy (with the left hand).
Shift+Ins to paste (with the right hand); only when Ins is missing (and requires Fn+Del), Ctrl+V to paste.
And QTerminal (alongside other terminal apps) occasionally breaks it. It doesn’t do anything on Ctrl+V, and it might paste from the wrong clipboard on Shift+Ins.
Say I copied a text from a web page using Ctrl+C. In QTerminal, I cannot use Ctrl+V to paste it (Ctrl+C and Ctrl+V are not used to avoid conflicting with whatever CLI app is launched, especially as Ctrl+C would interrupt or kill a process), and Shift+Ins might not always do what I want. The last time I used the pattern “let’s select with the mouse and paste with the mouse (middle button)” was around 1996, I guess. Occasionally, I remember I could use the middle mouse button, but that’s the scrolling button to me. I just hate so much this concept! QTerminal defaults to:
Ctrl+Shift+C (copy the selection to clipboard)
Ctrl+Shift+V (paste from clipboard)
Shift+Ins (paste the selection)
So I select something, then copy with Ctrl+C, then I might accidentally select something else without pressing any other key, and on Shift+Ins… it’s “shit insert”! Because the UNIX idea of automatically keeping the selection ready to paste is something I never asked for, and, really, who the fuck does anything else than scrolling with the middle mouse button that’s actually a wheel?! This is the worst thing inherited from UNIX! I bet macOS users hate it even more than I do, because they don’t even have a middle button.
I prefer to map my CUA shortcuts and to ignore “the non-clipboard clipboard.” (Pasting with the mouse will still work!)
In QTerminal’s Session, Preferences, Shortcuts, you can add, e.g., Ctrl+Ins and Shift-Ins. But how to add them instead of replacing the existing shortcuts? I can see some “|” that separate 2 shortcuts for the same command, but I can’t do the same. Unfortunately, for multiple shortcuts, you need to edit the config file:
This effectively disables “Paste Selection,” even if in most cases it’s the same as the contents in the “true clipboard,” but one cannot assign the same shortcut to two different actions.
OK, now close QTerminal and open it again.
⓫ Improve the shell’s aesthetics and ergonomics
featherpad~/.bashrc
Paste this at the very end:
# Colored lsaliasls='LC_COLLATE=C ls -h --group-directories-first --color=auto'# Colored manpagesexportLESS_TERMCAP_mb=$'\e[1;32m'exportLESS_TERMCAP_md=$'\e[1;32m'exportLESS_TERMCAP_me=$'\e[0m'exportLESS_TERMCAP_se=$'\e[0m'exportLESS_TERMCAP_so=$'\e[01;33m'exportLESS_TERMCAP_ue=$'\e[0m'exportLESS_TERMCAP_us=$'\e[1;4;31m'exportGROFF_NO_SGR=1# Custom promptexportPS1="\[\e[1;31m\][\u@\h \[\e[1;32m\]\W\[\e[1;31m\]]\$ \[\e[m\]"# Because it's the best software ever writtenfortune
For the last one:
sudoaptinstallfortunes
Let’s make you smarter:
Color codes explained:
\[\e[1;31m\] – Bold red (the brackets and username@hostname)
\[\e[1;32m\] – Bold green (the working directory \W)
\[\e[1;31m\] – Back to bold red (closing bracket and $)
\[\e[m\] – Reset to default color
Standard ANSI color codes:
30 – Black 31 – Red 32 – Green 33 – Yellow 34 – Blue 35 – Magenta 36 – Cyan 37 – White
The 1; prefix makes them bold/bright.
For a more orange (albeit non-ANSI) color: export PS1="[\e[1;38;5;214m][\u@\h [\e[1;32m]\W[\e[1;38;5;214m]]\$ [\e[m]"
256-colororange (or amber) shades: 208 (darker) or 214 (lighter). I prefer 214.
38;5 enables 256-color mode in terminal escape sequences:
\e[1;38;5;214m │ │ │ └── Color number (214 = orange) │ │ └───── 5: Use 256-color mode │ └─────── 38: Set foreground color └────────── 1: Bold/bright attribute
Make sure you don’t screw something up: bash needs to know which characters are visible (count toward line length) vs. invisible (color codes). With mismatched brackets (been there, done that!):
bash miscalculates prompt width.
Text overwrites itself when using long commands.
Cursor positioning gets messed up.
And there are three different types of brackets:
\[ and \] = Bash wrappers (must be paired).
\e[ and m = ANSI escape codes (the [ here is part of \e[, and m closes it).
[ and ] = Literal brackets you want to display in your prompt.
For the ANSI escape codes, blame the 1970s and LSD.
⓬ Filesystem tuning
We need to change relatime (which is by default) into noatime. 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.
You should adapt the following to your actual partitions, but here’s my case:
$ mount|grep ext4
/dev/nvme1n1p3 on / type ext4 (rw,relatime)
/dev/nvme0n1p1 on /home type ext4 (rw,relatime)
$ mount|grep ext4
/dev/nvme1n1p3 on / type ext4 (rw,noatime)
/dev/nvme0n1p1 on /home type ext4 (rw,noatime)
⓭ Adjust the kernel
Setting vm.swappiness to 10 or 20 will make the kernel prefer keeping data as much as possible in RAM, only swapping when absolutely necessary. The traditional /etc/sysctl.conf is legacy, so we do this:
sudofeatherpad/etc/sysctl.d/10-vm.conf
Add inside:
vm.swappiness=10
Obviously, “the sysadmin way” would have been a one-liner:
To avoid rebooting, reapply all system settings, and check to see if “10” is printed:
sudosysctl--systemcat/proc/sys/vm/swappiness
⓮ Magic SysRq
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
What we actually need is SUB, to be used in an absolute emergency when the system is frozen and needs to be rebooted while still trying not to screw up the filesystems:
Alt+SysRq+S – in practice Alt+PrtSc+S (or Alt+Fn+PrtSc+S on older ThinkPads)
Alt+SysRq+U – in practice Alt+PrtSc+U (or Alt+Fn+PrtSc+U on older ThinkPads)
Alt+SysRq+B – in practice Alt+PrtSc+B (or Alt+Fn+PrtSc+B on older ThinkPads)
In some newer ThinkPads, SysRq is not exposed at all (the firmware simply doesn’t generate the SysRq scancode). In some older ones, SyRq is Fn+S, hence Alt+SysRq+S is impossible: Alt+Fn+S+S. Tell me again how great ThinkPads are!
Fortunately, there isn’t anything you need to do in Lubuntu 25.10:
$ cat /usr/lib/sysctl.d/55-magic-sysrq.conf
# The magic SysRq key enables certain keyboard combinations to be
# interpreted by the kernel to help with debugging. The kernel will respond
# to these keys regardless of the current running applications.
#
# In general, the magic SysRq key is not needed for the average Ubuntu
# system, and having it enabled by default can lead to security issues on
# the console such as being able to dump memory or to kill arbitrary
# processes including the running screen lock.
#
# Here is the list of possible values:
# 0 - disable sysrq completely
# 1 - enable all functions of sysrq
# >1 - enable certain functions by adding up the following values:
# 2 - enable control of console logging level
# 4 - enable control of keyboard (SAK, unraw)
# 8 - enable debugging dumps of processes etc.
# 16 - enable sync command
# 32 - enable remount read-only
# 64 - enable signalling of processes (term, kill, oom-kill)
# 128 - allow reboot/poweroff
# 256 - allow nicing of all RT tasks
#
# For example, to enable both control of console logging level and
# debugging dumps of processes: kernel.sysrq = 10
#
kernel.sysrq = 176
As it happens, S + U + B = 16 + 32 + 128 = 176. Case closed.
⓯ FSearch – voidtools’s Everything equivalent for Linux
Now, guess what? Since 25.04, fsearch is included in universe, so only the 2nd line is needed!
What’s kind of worrisome is that the last release on GitHub took place on Aug. 5, 2023. This app is frozen. Oh, well, at least it works. It’s not perfect, but it’s OK.
⓰ Bulky from Linux Mint
From the many Mint tools and XApps used in Linux Mint, I rarely used Warpinator, and Hypnotix is junk. But Bulky is a great bulk file renamer, and it’s regex-aware!
Here, too, I’ll tell you what I used to do in 24.04:
Unfortunately, the mint-tools PPA is literally abandoned: the last update took place 58 weeks ago, and the last Ubuntu release that’s supported is 24.04. Apparently, Mint’s goodies are only for Linux Mint and LMDE these days.
Nonetheless, Bulky can be installed on Ubuntu 25.10, regardless of the flavor! Go on GitHub on its release for LMDE 7, and grab packages.tar.gz. Inside, you’ll find bulky_3.9_all.deb. Install it (you can use Discover to keep it “the GUI way”), and you’re done!
Amazing.
⓱ Flatpaks, the other evil
Instead of Canonical’s maleficence, Red Hat’s mischief, eh? Well, sometimes an app isn’t available as a package. And exploring apps more like you do it under Android and iOS, only with a less strict containerization, can be quite practical.
If you look at the corresponding Bug #2122161, you’ll notice that it was fixed on Oct. 10 by updating apparmor to version 5.0.0~alpha1-0ubuntu8.1. On Oct. 14, the bug for flatpak had the status Confirmed → Invalid, because the status for apparmor went Fix Committed → Fix Released.
As a matter of fact, in all Ubuntu flavors, running any flatpak command at the CLI includes 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.
Not only will that warning never be displayed again, but the Flatpak apps you just installed, as well as those you’ll install from now on, will show up in the menus!
⓲ A note on mixing apps
Some people have a strong preference for KDE or at least Qt apps if they use KDE, or for GNOME or GTK apps if they use GNOME. Users of Cinnamon, MATE, and XFCE typically add GTK apps to those provided by their desktop environment. XFCE, being eternally half-baked, is usually “enhanced” with, say, Atril from MATE, Cheese from GNOME, and so on. Its image viewer, Ristretto, being at version 0.13.3, literally screams to be replaced by gThumb (which I love!), eom (Eye of MATE), or eog (Eye of GNOME). BTW, eog has been replaced by Loupe and Cheese by Snapshot because GNOME’s “modernization” efforts are a mess.
The important thing to know is that, despite their association with a major desktop environment or with a different UI toolkit, some such apps don’t pull heavy dependencies. A few examples on an installed Lubuntu 25.10:
gThumb: “Space needed: 31.0 MB” (despite being a GTK app)
Haruna: “Space needed: 34.4 MB” (despite being associated with KDE)
Believe it or not, I prefer Haruna to VLC.
⓳ Extra fonts
I have a maniacal fixation on fonts. It can be seen in the long list of fonts I suggested back in the day for AlmaLinux 9.4 KDE. Most people would simply use the preinstalled fonts, possibly with additions from the official repositories.
If I were to only make two suggestions of extra fonts, here’s what they would be:
For a sans serif, I believe Inter makes a great font. (You can try it on Google Fonts.) Go to their GitHub, grab the ZIP from Assets, extract it, and then install the TTFs from “extras/ttf”. There are several variants to play with; I tend to prefer Inter Display Medium or Inter Medium.
By installing, I mean copying them locally in ~/.local/share/fonts/ or globally in /usr/local/share/fonts/. Then don’t forget to register them:
sudofc-cache-fv
To view or manage fonts, install either font-manager or font-viewer (each has the other one as a dependency).
You should be aware that fonts can be customized in Lubuntu in several places:
The default global font: in LXQt Settings, Appearance, Font.
The elements managed by the window manager (window titles, menus): in Preferences, Openbox Settings, Font.
In certain apps (QTerminal, FeatherPad, etc.).
⓴ Touchpad and NumLock issues
Laptop users who really use the touchpad (I always use the mouse these days) usually complain when it’s not properly configured out of the box.
Go to LXQt Settings, Keyboard and Mouse, scroll down to Mouse and Touchpad, and then select from the Device: drop-down list the real touchpad (such a device usually has two entries: one ending in “Mouse” and one ending in “Touchpad”).
Enable “Tap to click” and, should you have the same old muscle memory like I do, select Scrolling: at the Edge instead of the more modern Two-Finger crap.
An even more popular complaint is NumLock defaulting to off:
There is a very good reason for this deliberate choice. Some laptops that lack a numerical pad nonetheless have a NumLock button (Fn+F11 in the picture below) that, once activated, transforms the keys UIOJKLM into 4561230, respectively. When NumLock is off, only Fn makes those letter keys behave as numerical ones. This is why activating NumLock by default can be a very bad choice on some laptops.
On the other hand, many more laptops do have a numerical pad, but they lack the keys Home, End, PgUp, PgDn. Some people prefer to use the numpad for navigation, especially as it also has larger ArrowUp and ArrowDn than the ridiculously packed normal ones.
4. Wayland: thinking about the future
Wayland isn’t something we should worry about too soon, but it would eventually become mandatory.
Currently, LXQt can use KWin or Openbox. In Lubuntu, it uses Openbox by default. If it were to support Wayland, that could only happen via KWin (from KDE), which is slightly heavier. When they fully support Wayland, they’ll probably call that release 3.0. 🙂
However, even if LXQt 2.3 releases in November 2025, the chances for it to land in Ubuntu 26.04 LTS (April 2026) are rather slim. Unless Debian and Ubuntu both move unusually fast, LXQt 2.3 in Ubuntu 26.04 LTS is unlikely. A Wayland‑ready LXQt would probably target Ubuntu 28.04 LTS.
I just hate the AI-generated wallpapers!
5. Hibernation, maybe?
Hilariously enough, while a new Linux kernel patch aims to let you cancel hibernation mid-process, the kernel team and the maintainers of most distros actively try to discourage you from using hibernation. I know since 2006-2008 how fragile Linux drivers can be and how resuming from suspend-to-disk can leave important peripherals in limbo: network, Bluetooth, even video. I know since 2006-2008 how fragile Linux drivers can be and how resuming from suspend-to-disk can leave important peripherals in limbo: network, Bluetooth, even video. With poorly written drivers, device firmware often doesn’t cooperate, and sometimes a long wait after a shutdown is required to “clear” the status. Many Linux drivers aren’t even able to fully control a device: I remember from my dual-boot years how hibernating from Windows and resuming from Linux led to dead network, and the only fix was to boot into Windows again. Linux just couldn’t bring that device back to life! That’s beyond pathetic.
Meanwhile, hibernation always works in Windows, except that Microsoft wants to fake it: fake hibernation (hybrid sleep), fake shutdown (partial hibernation with fast startup), fake reboot (warm, not cold).
This being said, there are so-called “legitimate” reasons to avoid hibernation. Even if you don’t work for the CIA or MOSSAD, if the swap isn’t encrypted, oh, my, hibernation would be a vulnerability. But Secure Boot and encrypted partitions could also prevent Linux from properly resuming. So they decided to tell you that “you don’t need it because you have sleep (suspend-to-RAM).”
Except that power can be lost in a PC, and a laptop’s battery can’t power the RAM and the SSD indefinitely. Hibernation was at some point perceived by some as the second-best invention since sliced bread, especially as HDDs were slow. Now it’s forbidden territory.
What’s also true is that modern desktop environments can save the session and reopen those programs on logon. Unfortunately, not all software would reopen the same files or projects, scroll the document to where it was, select the same tools as before, and so on. This is not Android or iOS, and most apps weren’t designed to serialize and restore the entire state.
For all I know, MX Linux does not have hibernation enabled by default, and their wiki is outdated, but it’s the only distro that has a tool specially designed to help you enable it once you have a large enough swap! (Is this the reason they’re so popular on DistroWatch?! CachyOS and Mint are more popular these days, but MX Linux consistently ranks 3rd.)
From memory and notes, there were unofficial guides to help people enable hibernation in distros such as Mint 19.x, Mint 20.x, Ubuntu 20.04 LTS, Ubuntu 21.10, and so on.
But Ubuntu actively even disables the “Hibernate” button in desktop environments! H8ers.
At the other end, Fedora doesn’t care at all, so it enables all the buttons in XFCE’s logout screen, but the hibernation and the hybrid sleep don’t work even if the buttons are shown. I was able to make hibernation work in Fedora 34 and 35 (I never used ZRAM, another stupid fad) on a 1-liter HP ProDesk 400 G6 mini-PC (USFF). On the same system, I also successfully enabled hibernation in Manjaro XFCE.
On the newer laptop, with MT7663-based Wi-Fi and BT, I had hibernation technically working in 2023 under openSUSE Leap 15.5 (kernel 5.14.21 only supported Wi-Fi, but not BT), then under openSUSE Tumbleweed, and eventually in AlmaLinux 9.3 KDE (but using a 6.1 kernel from ELRepo). Unfortunately, no kernel can resume from hibernation without breaking both Wi-Fi and BT in MT7663 (or only Wi-Fi if BT wasn’t supported). Well, typical Linux driver quality. So I called it quits and forgot about hibernation.
I will not bother you with the steps I used to attempt to make hibernation work in Lubuntu 25.10 on my laptop. I did everything I could, everything that made sense, and adapted to the newest changes I could identify. For instance, I didn’t miss the two sections from /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla. But the Hibernate button was still disabled, and resuming from a hibernation triggered by sudo systemctl hibernate failed without any given reason, just like it did under Ubuntu MATE 24.04 LTS:
Hibernation worked (if we ignore the quality of some drivers) in the past under other distros on the same machine and with the exact same disk layout (I reuse /home and reformat /boot/efi, swap, and /).
The Linux kernel is garbage.
6. SCRIPTS: Win95-style on-demand tiling!
As I wrote here, while I just cannot understand the utility of automatic tiling window managers, I’m a big fan of the old-school on-demand tiling, as experienced in Win3.1 and improved in Win95.
They call “vertical tiling” the arrangement like books in a shelf and “horizontal tiling” the arrangement like piled pancakes. But I always used the reverse terminology and considered that horizontal tiling is when items range from left to right, like so:
My “horizontal tiling” or “lay vertically”
To make sense semantically, they should have called their arrangements “lay vertically” (like laundry on a clothesline) and “lay horizontally” (like pancakes)! But I guess it’s too late to start using “pancake layout” and “clothesline layout,” so I’ll stick to what we have, just with swapped definitions.
If you disagree with my definitions, you’re free to swap the key bindings for the script I’ll present later below, but you’re also free to go fuck yourself.
Now, let me go back in time to Win3.1 and show you how it tiled 2-3 windows (“horizontally” in my view, “vertically” in theirs):
For exactly 4 windows, the tiling was both horizontal and vertical, so to speak:
Win95 added the choice of horizontal or vertical tiling, plus cascading windows:
Later developments are of lesser interest to me.
So, say I want to implement this behavior in Openbox under Lubuntu.
Say we start with 3 non-minimized windows:
We should be able to “tile horizontally” or “vertically”:
Then we should be able to restore the original layout, also on demand.
Should we have exactly 4 windows, the tiling should be symmetrical (2×2, not 1×4 or 4×1):
To get this behavior in Lubuntu 25.10, follow these steps.
① The second package is most likely already on your system:
⑤ Add key bindings to Openbox in ~/.config/openbox/rc.xml. What you need to do is to insert the 3 blocks after <keyboard> and before </keyboard>, so don’t just blindly paste everything you see below!
<keyboard><!-- Tile Horizontally (Ctrl + Alt + H) --><keybindkey="C-A-h"><actionname="Execute"><command>/home/ludditus/bin/tile-auto h</command></action></keybind><!-- Tile Vertically (Ctrl + Alt + J) --><keybindkey="C-A-j"><actionname="Execute"><command>/home/ludditus/bin/tile-auto v</command></action></keybind><!-- Untile / Restore (Ctrl + Alt + K) --><keybindkey="C-A-k"><actionname="Execute"><command>/home/ludditus/bin/untile</command></action></keybind><!-- (Keep all your other keybinds below) --></keyboard>
The chosen key bindings (keyboard shortcuts, hotkeys, accelerators, whatever you call them) aren’t very practical, but it’s not easy to find combinations that are not used for something else or that are just not reaching this code!
⑥ Reload Openbox:
openbox --reconfigure
⑦ You should now get this behavior:
Ctrl + Alt + H → Tiles windows side-by-side
Ctrl + Alt + J → Tiles windows top-to-bottom
Ctrl + Alt + K → Restores the windows to their previous positions
Aspects that needed to be taken into account:
Minimized windows are to be ignored.
lxqt-panel needs to be ignored.
The instance of pcmanfm-qt that manages the desktop should be ignored, but other instances are valid windows.
It needs to handle 2, 3, 4+ windows.
4 windows should go into a 2×2 grid.
Any other number of windows should be tiled in 1 row (horizontally or vertically).
Known limitations:
It only works on the active desktop (workspace).
It only works on the first monitor (display).
If you trigger a second tiling operation before an untiling takes place, restoring the original layout is impossible. Also, restoring from a tiling to a previous tiling is not accurate.
This blog uses technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent will adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Barely posted, and I already had to make some corrections!