Hey folks! I'm getting a fresh laptop for the first time in about a decade (Framework 16) in a couple of months and am looking forward to doing some low-level tinkering both on the OS and hardware. I'm planning to convert into a "cyberdeck" with quick-release hinges for the screen since I usually use an HMD, built-in breadboard, and other hardware hacking fun.
On the OS, I'm planning to try NixOS as a baremetal hypervisor (KVM/QEMU) and run my "primary" OSes in VMs with hardware passthrough. If perf is horrible, I'll probably switch back to baremetal after a bit. But, I'm not likely going to be gaming on it so, I'm not likely to have much issue.
Once the hypervisor is working in a manner that I like, I should have an easy time backing up, rolling back, swapping out my "desktop" OS. I've been using Linux as my pretty much my only OS for over a decade (I use MacOS as a glorified SSH client for work). Most of my time has been on distros in the Debian or RHEL families (*buntu, Linux Mint, Crunchbang, CentOS, etc) and I pretty much live in the terminal these days.
With all of this said, I am coming to you folks for help. I would like you folks to share distros, desktop environments, window managers that you think I should give a try, or would like to inflict on me and what makes them noteworthy.
I can't guarantee that I'll get through suggestions, as my ADHD has been playing up lately, but I'll give it an attempt. Seriously. If you want me to try Hannah Montana Linux, I'll do it and report back on the experience.
EDIT: Thank you all for your fantastic suggestions. I'm going to start compiling them into a list this weekend.
If you're a tinkerer it's kind of addicting. I thought I'd give it a try just to see what it was like, and ended up staying up all night customizing it, and now about a month later I don't really want to go back to KDE (been using KDE for almost 20 years)
Recently there supposedly have been nVidia improvements and success stories. Check the Hyprland wiki to see if it makes sense for you to try. Or is it only the 2000 series and above that have benefitted from Wayland driver improvements?
Must try distros: Fedora, Mint, Void. But seriously, if you are using Nix to begin with, why use anything else? Nix is as good as it gets. If you really want to do a combo, I would recommend Fedora or Mint using Nix as just the package manager and not the hypervisor. All distros are basically the same nowadays.
Must try desktop environments: Xfce, Cinnamon, Gnome, KDE Plasma
I've never really Fedora or Void. Will definitely try those.
Of your DEs, I think KDE is the only one that I've not used significantly. I need to fix that. I think MATE deserves a place there too.
ETA: As for why not just Nix or Nix as a package manager? I've become accustomed to being in VMs all of the time and really like the way that doing so impacts how I interact with a system and extra capabilities provided.
In short: Nix tracks all installable software and dependencies using a Merkel tree data structure to ensure fully reproducible builds of software. This Merkel tree also provides properties similar to that of a C.O.W. filesystem where you can snapshot and rollback system software build configurations in O(1) time, it just rewrites a fixed number of symbolic links to the root of the desired Merkel tree. In my opinion, it is the most technologically advanced package manager currently in existence.
Every input that goes into building a piece of software on Nix OS (or in the Nix package manager in general) is hashed and placed into a database on the system. These hash IDs become dependencies for everything they are used to build. By tracing the chain of hash IDs you can guarantee that every single bit that goes into the build of the system software is accounted for. If two separate computers with the same ISA are running the same tree of packages verifiable by their hash IDs, you are guaranteed that both computers are running the exact same software. All dynamic libraries, shared libraries, executable files, and even the config files in the package database refer only to other files in the database.
When you use Nix OS, not just the package manager, the C compiler, boot loader, and kernel are themselves build inputs. You can even roll back to a snapshot of a working system from the bootloader menu if you accidentally break your system (as long as the package database is not corrupted).
Finally, the system itself is both built and configured using a declarative programming language. So you install software by declaring that it should exist, and the package manager computes precisely which dependencies must be installed to realize what it is you have declared in the system configuration files. Making a change to what is installed requires simply altering the lines of code in the system configuration file. You can also use these configuration files to easily construct Docker images or Flatpacks.
There's not really anything specific but it'll be the first time I experience a full plasma upgrade since I started using Linux in 2022. From what I've seen of it, the interface is going to be a lot cleaner though so I guess I'm looking forward to that.
For a totally different experience, and if you ever want to spin up a distro in a "container" there's BlendOS
https://blendos.co/
I'm an Arch user so I'm sort of staying where I am but am always open to ideas, so I tried Blend a while back. As said on this page for the distro:
https://itsfoss.com/immutable-linux-distros/
"In other words, you can install any package on the distro (RPM, DEB, etc.) while getting the immutability and update reliability as one would expect."
Wow, I don't pay as much attention to developments in the space as I did a few years ago and I can see I should start to again. These are some pretty interesting distros you've linked.
My #1 distro recommendation would be Fedora Atomic (immutable Fedora variants).
It's still a bit "underground" and hasn't reached huge popularity yet, but I see its potential that it will very soon.
I have ADHD too and Fedora Atomic is a lifesaver. Why?
You can "distrohop" anytime you want by rebasing.
With that, you basically swap out the OS with something else (examples will follow), but keep your data and some settings.
If you are on Fedora Workstation (Gnome) and want to have KDE, installing and removing those packages is a huge huge mess.
On the OSTree variant, it's just one command, 5 minutes of waiting, and bam, you have a clean install.
I do that all the time.
Less bugs and better security by reproducibility. Every install is the same.
Very quick rollbacks if something did go wrong. You can't brick your OS, which I did a lot before.
Huge choice. See at universal-blue.org , it provides vanilla images with some quality of life changes, as well as custom ones, including "unsupported" DEs and spins, e.g. a gaming distro. They aren't forks per se, they are basically build scripts and maintain themselves, which is why they're always up to date and way better than Nobara for example.
Distrobox pre-installed: you can just create an Arch container and use the AUR from it. So you don't need to run (and troubleshoot) Arch on bare metal, but can comfortably benefit from all great things Arch provides
I just went through setting my new PC up with Fedora Kionite (the atomic KDE version). I had some issues at first, but now that it's running it's awesome! Though I should mention I'm using an alternate distribution called Universal-Blue (basically provides batteries-included images of atomic Fedora), specifically kionite-nvidia.
The things I ran into:
My monitor has a long startup time, so I had to increase the GRUB timeout to see previous kernels
Kionite didn't start after initial rpm-ostree update (fixed by disabling internal GPU)
Steam games didn't work properly (fixed by switching to X11, probably due to NVidia GPU)
Sometimes the first login after boot doesn't work on the default TTY, probably due to sddm (fix by switching to TTY2 when it occurs)
If you are an advanced linux user then I would suggest giving a try to the following distros: arch, void, gentoo and (like you said in the post) nixOS.
The reason behind is that this distros are focused on the tinkering aspect of linux, the experience of setting up everything the way you want.
If you want to give a shot to WMs I would suggest i3, sway, dwm, dwl, river, bspwm, Qtile and hyperland (maybe focus more on the Wayland ones if you want to try the latest software).
I wouldn't recommend specific ones, but I would recomnend you try out distros with unique features. Such as an immutable one, one that is built from source, one with packages, one with snap, one with flatpack, etc.
This will help you understand and evaluate what you like.
I'm slightly biased, but if you already know a bit of Linux and desire more control / customisation, or want to understand how a system is put together, then I highly recommend Gentoo Linux. The install process is pretty simple, and with the new binary package hosts you have the option of quickly installing precompiled packages to get a system installed or up-to-date.
The USE flags on packages, combined with portage the package manage enable an unparalleled level of configurability, the community is welcoming and respect user choice about how they want to configure / use their system, and the documentation on the wiki is top notch - I'd say better than the arch wiki in terms of quality overall.
Yeah. Gentoo has been on my list for a while. I'm pretty comfortable building things from source (don't even bother with packages for Neovim these days - they never seem up to date for my distro). Curious to see the workflows.
Don't know if it is a must-try, but LXQt has come a long way. The file browser is excellent. Everything is fast and snappy and very traditional (start button, system tray, etc.). Runner up I guess.
You can run Alpine as a desktop. The Edge branch. New software, got what you need, installs and updates fast.
It's easy. After running setup-alpine and rebooting with a bar install there is built-in script setup-desktop that lets you install Gnome, Plasma or Xfce.
Every linux enthusiast should try Qubes at least once. The architecture is totally different, vastly more secure in many ways than most Linux distros. It's definitely not for everybody, but if privacy and security rank high on your priority list it's worth a look. It never ends up in Linux top ten lists for some reason, but it's an incredible OS.
What is your actual personal use case, all you mention is a terminal, which every distro will support, likely with many different choices as to terminal options?
Beyond the usual browsing I'll mainly be doing tinkering with hardware, gateware, firmware, CAD, art, projects that I may or may not finish, and the like. It's going to be my "everything but playing video games" machine.
Not quite your setup but I run Debian stable KDE with KVM.
I am also using distrobox to run applications in containers. It’s nice having arch/ubuntu/fedora/gentoo software running in a container and the application gets exposed to you stable environment. Another option is Bedrock Linux to look at
That's absolutely my thought. Having a rock solid system close to the metal that doesn't really get touched is something that I've become used to from work. It gives a lot more insurance against having to do as many re-installs and maximizes compatibility.
While I don't have much experience using nixos as a hypervisor I do have a few years experience using Proxmox on top of Debian. Managing multiple VMs and backups are very straightforward with Proxmox. As for your daily driver VM, the skies the limit, well mostly your HDD space is the limit. I've realized that after trying a ton of different distros the only real difference is the package manager and the preinstalled software.
I love Proxmox, especially with CEPH as backing storage for VMs. I've never thought about it as a local hypervisor. Might be worth a try, if I don't like NixOS.
Forget a DE, sounds like you need a WM. Definitely check out some tiling options like i3 or sway, especially since you spend so much time in the terminal.
Some great newer tech distros would be Fedora Silverblue, or if you like Debian, there is VanillaOS. They are immutable distros, and they introduce a new way of using Linux. I like to pair it with distrobox, which lets you use regular Linux applications in a container.
I'm going to be on an AMD CPU and didn't opt for the discrete GPU at this time, nor will I be purchasing an Nvidia device until they start being consistently FOSS-friendly.
I do intend to dig deeper into OSHW and eventually build a modern, fully open-source laptop eventually but, we'll see if I can get there within the decade. Coreboot/Libreboot would definitely make the mainboard implementation a lot easier. Hopefully, Framework gets around to Coreboot support.
I recommend you try Gentoo and DWM. You don't have to use this setup forever, but at least try setting it up. Installing Gentoo, patching DWM and st, etc. is fun and it's an interesting experience. If you want to use Wayland, check out dwl and the foot terminal emulator. Perhaps you're actually gonna like Gentoo and stick with it, I think it's a great distro. They also provide binaries for larger programs, so you don't have to compile stuff like Firefox. But definitely try out custom kernels.
I run Hyprland on Arch. It seems most of the people who run window managers instead of full fledged desktop environments prefer the minimalism of Arch.
Fedora rawhide’s an interesting bleeding edge experience. I’d recommend installing fedora minimal and setting up your system from there.
The rpm system’s rather robust when it comes to installing the correct dependencies when done correctly so I personally haven’t had any issues with version conflicts.
LeftWM. I've been using it for about a year now and I have no complaints vIt doesn't hold your hand as much as other WMs, but it is extremely powerful if you're willing to do some manual setup.