
Self-taught Projects
From Ubuntu to CachyOS
A secondary work laptop has been running on CachyOS since early April 2026, following a migration from Ubuntu that had been accumulating grievances since 22.04.
What Prompted the Move
Ubuntu's pain (pun intended) releases have a reliable tradition of introducing problems that weren't invited. Two incidents that stucks:
- Electron app instability
Certain Electron-based apps (Docker Desktop, VSCode) required opting into alpha releases to achieve stable behavior. The stable channel was the unstable one. The labeling was doing its best. - The libfuse2 incident
AppImages requirelibfuse2to run. On 24.04,libfuse2no longer exists under that name, it was quietly renamed tolibfuse2t64. Installinglibfuse2instead gave APT enough rope to removefuse3,ubuntu-session, and enough of the desktop session stack to ensure the laptop wouldn't boot into a GUI again. Recovery involved rolling back through GRUB. AppImages were subsequently avoided until further notice, which turned out to be indefinitely.
What's Set Up
- Migrating LibreWolf profiles is straightforward without relying on online sync. The profiles are files. Files can be moved. This remains an underrated property.
- Several desktop environments were tested (e.g., System76 COSMIC, Niri). The process was called "exploring options." KDE Plasma still won. The exploration happened anyway.
- Installing self-built Tauri apps requires AUR tooling to package and install locally, which took longer to figure out than the app itself took to build.
Why CachyOS?
- Why not Arch?
Arch is philosophically correct and practicallly exhausting as a starting point. CachyOS ships with a functioning system, sane defaults, and performance-oriented kernel patches without requiring the user to earn it first through ISO ritual. Some people find meaning in the manual process. This was not that occasion. The goal was a working system with the option to break it deliberately, not a guided tour ofpacstrap. - Self-inflicted breakage, on a schedule of one's choosing
Ubuntu's regressions arrived uninvited with each point release. A rolling release doesn't eliminate instability, it just relocates the decisions. Updates happen when they happen, and any resulting fallout is owned rather than inherited. - KDE QoL improvements
GNOME operates on the philosophy that fewer settings produce better users. KDE disagrees, and the disagreement is visible. Special Application Settings alone justify the migration, per-window geometry, focus behavior, and virtual desktop rules that actually persist. System Settings expose controls that on GNOME would require a shell extension, a prayer, and a reboot to find out if it worked. - Package management
CachyOS ships with Shelly, a GUI package manager, for those who have apparently decided that typingpacman -Sconstitutes an unreasonable demand on one's time. It covers AUR, official repositories, AppImages, Flatpaks, and local packages. Terminal access still included for the unconvinced.
Any Quirks?
Rolling release, KDE, and a custom kernel walk into a bar. Occasional hiccups:
- AUR dependency for self-built Tauri apps
Tauri applications require AUR tooling to package and install locally. An AppImage path exists, but it proved more complicated than building a PKGBUILD. A blank page with no error in AppImage;.pkg.tar.zstjust works. - Konsole defaults to Fish
Fish ships as the default shell in Konsole. Existing bash muscle memory does not transfer gracefully untilbasssavior is installed. Switching back is straightforward. The reason it hasn't happened is that fish's inline autocomplete predictions are genuinely useful in a way that bash's double-tab completion is not. Adaptation is ongoing. The muscle memory is not pleased. - KDE credential prompts
KDE enforces application-level access controls more visibly than most environments. VSCode, for instance, surfaces a KWallet keyring prompt for credential storage. The behavior is correct and the intent is reasonable. It is also unexpected the first time, and second time, and occasional the third.