This was the one to finally stop getting me to distro hop. Cachy is very easy to use and very well maintained. The performance is usually the selling point people talk about, but it's also very customizable and beginner-friendly (especially for an arch-based distro).
It uses an online installer that lets you choose the desktop environment, boot manager, file system, among other things. You can follow the defaults if you're new. Once you install it, it also comes with a few helper applications that can quickly set up things you'd want to use, like a one-click button that installs all the gaming packages you want to use and their flavor of Proton which is (allegedly) faster than the default.
They also have a really good wiki which I contributed a bit to and a very active community if you need help. All around, 10/10 would recommend to anyone. I managed to convince my friend who's new to Linux to use this instead of Zorin and he's had a great time.
I really dislike that Linux proper doesn't by default have x.xx-server, x.xx-workstation, x.xx-laptop and x.xx-desktop kernel variants. Or just doesn't have defaults, requiring distros to think about what to set during compilation.
A lot of the current defaults stem from the 90s, and often were eyeballed by the creator of said code. They're not good defaults for modern servers nor workstations nor laptops nor desktops. And all of those devices work best with different defaults.
It doesn't seem (yes, appearances can be deceiving) to be that much work, because no extra code needs to be written. For each variant, just set different default parameter values for stuff like swappiness, lazy RCUs and what not. Make it a thing to revisit the defaults every 10 years.
CachyOS and some other distros already do this, but a big chunk of distros doesn't because they think the defaults are well-thought out.
> CachyOS and some other distros already do this, but a big chunk of distros doesn't because they think the defaults are well-thought out.
Based on what I saw 1-2 years ago last time I looked at it, most distributions to customize and don't use the defaults straight up. From memory, so someone correct me if I'm wrong:
- RHEL/SLES - Lots of patches to kernels
- Arch - Closer to just using defaults, some config choices and downstream adjustments (so the opposite of CachyOS almost, which is why we have CachyOS in the first place)
- Ubuntu - Probably the most patched distribution compared to upstream components, also includes a lot of Canonical-specific stuff on top of that.
- Fedora - Has some bleeding edge bits and bobs
- Debian - Bit more conservative than Ubuntu, but still has patches for stability, security and backports.
In my experience, distributions changing the defaults and customizations seems to be the norm rather than the exception.
> In my experience, distributions changing the defaults and customizations seems to be the norm rather than the exception.
Which makes each and every one of those totally different operating systems that can run similar code to each other. We need to stop thinking of these as Linux "distros" and start thinking of these as totally separate and distinct operating systems that are based around the Linux kernel. Sort of like a business cooperative model.
I love the separation of concerns. It provides an amazing terminal-first kernel and everything graphical is maintained by various different organizations, and you can choose between many different options.
Maintaining a large distro is extremely difficult and every decision has several trade-offs.
Why would you want different kernels for different device types?
Genuine question! I maintain my own Linux distro (upstream Linux + portage) for all my devices and haven’t found much reason to go beyond kernel per arch. I’m curious if there’s something I could be missing.
I generally have three types of Linux devices I typically use. My desktop, servers locally/remotely, and "mobile" devices (more like tablets I guess).
For the first, I want the lowest latency for everything I do, together with the highest burstable speed whenever possible, for pretty much all the components.
For the servers, I basically have two types, one which does storage, they just need large disks that can be slow, and one which users actually connect to, that one needs focus on throughput, latency and performance isn't as important as "can serve all requests in a reasonable timeframe, even under load".
Finally, many of the portable devices run on batteries, so on those the focus is power-saving, even if it compromises on performance.
I'm sure others out there have more device types, like ultraweight watches, security devices, monitors, radios and much more. Each one of these have different tradeoffs, and tuning the kernel and OS for each use case makes it a lot better usually. Personally I use NixOS for everything except my desktop (CachyOS right now!), and it makes it really trivial to create profiles based on the same configuration, deployed to all devices, and today they're are tuned for exactly their purpose, as Linus intended :)
Well, for the two examples I named:
vm.swappiness defaults to 60, which is default from when everyone was still running spinning rust with a swap partition. Servers these days usually have very specific storage+memory configurations, whereas the usual desktop or laptop has an SSD and 16GB+ of RAM with RAM compression expanding it.
Lazy RCU loading is good on a laptop because you only lose about 10% performance and only with specific workloads, but your idle and light load energy consumption improves. Most laptops spend like 95%+ in light or idle load scenarios. Conversely, on a desktop you don't care (much) about idle and light load energy consumption, you only care about keeping max load consumption low enough so that your fans stay quiet. And on a workstation you don't care about a system being whisper quiet so you can go nuts with the energy consumption.
> vm.swappiness defaults to 60, which is default from when everyone was still running spinning rust with a swap partition. Servers these days usually have very specific storage+memory configurations, whereas the usual desktop or laptop has an SSD and 16GB+ of RAM with RAM compression expanding it.
You don't need to compile a specific kernel for that, this is setup via sysctl.
> Lazy RCU loading is good on a laptop
Do you mean RCU_LAZY? Most distros will already enable that: it doesn't do anything without rcu_nocbs, so there's no negative impact on server workloads.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...[calvin@debian-trixie ~] grep RCU_LAZY /boot/config-6.12.57+deb13-amd64 CONFIG_RCU_LAZY=y # CONFIG_RCU_LAZY_DEFAULT_OFF is not set [calvin@debian-trixie ~] grep RCU_NOCB_CPU /boot/config-6.12.57+deb13-amd64 CONFIG_RCU_NOCB_CPU=y # CONFIG_RCU_NOCB_CPU_DEFAULT_ALL is not setYou just have to set rcu_nocbs on the kernel cmdline.
Swappiness and many others can be changed by some sort of system preset rather built that way. I know not ALL options can be done that way, but I'd want to see changes start there where feasible.
I totally missed that part of your comment, my bad. Thanks for elaborating on those, I feel inspired to experiment!
So far my kernel journey has been about making my hardware work + enabling features, and that’s mostly how I’ve been discovering config options. Do you have any suggestions on where one aught to read further on this sort of kernel tuning?
EDIT: doing some further research, couldn’t you just set those options via sysctl w/o needing to build a separate kernel?
Yes you can adjust them via sysctl or directly as kernel parameter arguments. That isn't my point. My point is that Linux has some horrible defaults :+)
> This was the one to finally stop getting me to distro hop.
For me it was Debian 12 with Sway (Wayland) followed by Debian 13 with labwc and Sway.
Now I can switch from a tiling window manager (WM) to a floating WM depending on the work task.
> labwc and Sway
Is there an option to stay permanently in floating mode, and allow manual placement? I'm stuck on AwesomeWM using just floating windows with easy keybindings for moving them around/resizing, etc. and am looking to jump from X11 to Wayland
Why use Awesome with floating windows?
Because it makes no sense to do tiling on a 12" screen, especially when you have keyboard shortcuts to activate/start applications
I prefer it still because it makes sense for every window to be maximized at startup. Also one layout that still makes sense is 1 window taking up 100% of the horizontal space and 95% of the vertical save for a small strip for a terminal.
I have - Meta + Z: Activate/iterate through terminal windows - Meta + W: Activate/iterate through browser windows
And when on a laptop I maybe do a split view 2-3 times a day for a short term. 95% of the time it's full sized windows which I switch between using keyboard shortcuts.
Same, same, and same.
I also just like the predictability of placing a window in a location and then the next time it spawns in the exact same place I last left it
I had not heard of labwc before, super cool that it's compatible with openbox themes! Openbox was one of the first "cool wm" I think I used back in the day, probably like 15 years ago now when it supplanted Fluxbox as the dominant *box.
nixos for me. broke it once 9 years ago, but I never figured out how.