There are many Distros out there, but what they all do is make useful and modern systems.
What are your not well known hacks/tricks to make the Linux Desktop experience WAY better and modern?
Here are mine
Install a bigger Distro
I dont recommend Ubuntu anymore, as they are simply doing things that are not traditional anymore. Unless they open source their snap store, and allow third party repos, its simply not a free Linux Distro.
But its true that sticking to something “Upstream” helps a lot with stable Experience and Support.
I recommend Fedora, and they put a lot of focus on the new, modern Atomic Variants.
You may also stick to Opensuse, Arch or even Debian. Debian will get boring and stay partly broken. Opensuse struggles with adaption sometimes. Arch is Arch…
Get Flatpak & Flathub
Having an “out of the box” system helps extremely with updates, package conflicts and all. With Flatpak, you have access to nearly all Graphical Linux Applications (that are widely used and maintained).
Its not sufficient for everything, but 70% or so of the users could totally have a 90% Flatpak/10% native packages system.
This reduces the amount of entropy drastically. Entropy means chaos, the randomness that your package manager needs to fight. Every install and removal of a package makes your system diverge from the tested version upstream, and developers will often say “We cant reproduce this issue”.
Also at the same time, Flatpaks remove the need of seperate packaging, they have official binaries (--subsection=verified
). Thus the versions are often newer.
Also, Flatpaks are open, and have easy containerization and permission management.
Containerize workloads
Example: I have a Laptop that does Private, Secure and Work things.
Best would be to have isolated containers or even Virtual Machines, if you really dont want other apps spying on something you dont like. This is luckily nearly nonexistent, even though X11 and the lack of SELinux make common Distros not actually secure.
So if you can use VMs with graphical acceleration and have enough RAM, install a very light Desktop on there or even a Window Manager (Fedora Sway spin?).
One step below: you can use isolated containers. Toolbox and Distrobox are not suited for that out of the box, but there are ways to isolate its directories and also remove filesystem permissions completely.
The last but still useful step is to have Toolbox/Distrobox Containers. It doesnt isolate your filesystem at all, as its primary use case is to have app support from every Linux Distro. So you can use Ubuntu PPA, Arch AUR, Fedora COPR, Opensuse and many more Distro-specific repos.
While thats mostly not needed, you can group your projects here, most common use case is a dev environment with loads of other dependencies, that you dont want to put on your main system.
Stick to secure defaults
Example: Fedora and others are nearly unique at using SELinux, which is naturally on Android.
Also, Distros being very stable with Wayland, Pipewire and other modern standards, are a good indication. Switching from Kubuntu to Fedora-KDE for example was a great step.
Its not best to self hack all your security features. Even though MAC address randomization or secure DNS settings are not default poorly.
Things like hardened kernel, hardened malloc, measured boot, hash authentification (Heads BIOS for example) are not common, which is pretty bad.
Try OSTree Distros
There are now great talks about different versions of Immutability.
- Linux User Space: Happy Rebasing to everyone!
- Fedora Project Podcast: Silverblue and immutable Desktops
To keep it short: Do you know how your system will look like after using it regularily, updating, installing, uninstalling, for many upgrades?
You can be more sure by following the containerization standards, but still the system can not be resetted, and you cant simply display the changes you did to your system.
With OSTree Distros you can reset, rebase to another system (completely different or simply with some other packages), display every change you did to it, revert the changes to your last boot, keep any image as a backup before experimenting… And all updates and installs are atomic! If something fails, you will have no update, no chance to break at all, even when using rolling git releases or something.
Automate
Automate updates, this is so important and poorly not standard. This doesnt mean having to click a button on a store always. I am working on some better system, detecting networks and battery state.
Automate backups of important directories to an external Drive.
For example using Syncthing. Why need a server when you have all your data on two devices that you own. The chance of both breaking is not very high.
Or use Nextcloud, maybe combine it with Cryptomator if you dont trust your Server.
Automate command line tasks in your shell config.
Automate app startups if they take long.
Automate your passwords by using a password manager.
Automate annoying cookie banner removal using UBlock Origin.
Automate entering “sort by price” or “only in 100km range” etc in ebay, or anything else, using “Add Custom Search Engine” and a custom search string.
What are your tips for Linux Desktops?
I dont know if BTRFS is user unfriendly, but if they dont use OSTree afaik you cant reset, view diffs and all that.
VanillaOS is high in useful package management, but not very secure too, poorly.
With btrfs you can do way more, than ostree offer. Like install some package, do something, than just rollback system as nothing happened at all. You can rollback parts of system, like any folder. You may compare differences up to single files. Easy. You can rollback months back! That is what Micro OS about, rollback anything at any time with ease. Common user just do not need it.
You can do the exact same end result with rpm-ostree. Not single files or anything, but I guess thats not really the default configuration? With ostree you can pin deployments, otherways you only keep one backup system which saves resources
No. I see you are somewhat obsessed with ostree. Think about btrfs like fstree. It is way more powerful. The entire btrfs filesystem is kind an ostree. I used Workstation before Silverblue and I could rollback entire os back to days, without home folder, if I need too. But that does not make it immutable right? There is a btrfs-grub, which allows to rollback to any pinned snapshot. If something goes wrong in Workstation you just rollback.
Edit. As Fedora uses btrfs by default (but you can use ext4 too) I also thought about btrfs rollbacks. I actually forgot to examine it, as Fedora docs say something about it, like they should not be used together, I did not read why exactly.
Really interesting, havent heard of that. Yes I saw that Fedora Workstation does something similar with the btrfs snapshots and also they make updates more stable by using this little system that runs on reboot instead of doing it while running.
I found most of info. Using btrfs snapshots in Silverblue is possible, but you need lots of preparations before installing it (like in Fedora Workstation, but even more), and even if you did, it would be pointless, as Silverblue allready does same job with ostree overlays pretty good. Using both is not good idea, unless you really need to break up something). It is possible to layer snapper and use snapshots with home, so you may rollback any file or changes very quick, but I am allready making backups of home dayli with dejadup, everything is saved to cloud and if I mess some files, I can rollback any file any day back. To keep things simple it is really enough. Silverblue is cool 😁
Btrfs and Ostree definitely are different approaches to the problem. Btrfs has all the benefits you mentioned (cow filesystems and snapshots are just awesome) but it doesn’t support the system layers like Ostree does. So you can’t easily export a btrfs system into a container for example or rebase your OS on a new image.
To me both a super useful together too but covering different domains, everything mutable needs a backup and recovery method too, even on an Ostree system.
Stuff like guix and nix also cover a lot of these domains too (or can at least), but still leave stuff like user data as an exercise for the system admin to handle (though an exercise you can use guix/nix to configure something like btrfs to handle!).
deleted by creator
The container concept is super useful for with CI/CD tools. So I could update my config have it spin up just the layers I care about run tests and if it passes then switch out the old piece of the running system.
Make it easy enough and you can get users testing super bespoke systems and possibly sharing the results with others helping catch the edge cases sooner.
At least that is part of my dream on it. Of user oriented distributed systems is also something I’ve worked towards here and there.
Btrfs and snapper work together for rollbacks or viewing diffs