This article is spot on. Fantastic operating system with a clear concept of how it should be done. And great for people that want to fight for it. But everything you want to do that's slightly off the path is a 3 hour research project in documentation that's pretty damn poor. It eventually wears you out.
Nixos user here for 4 years.
Yep
Its legit you want to try sway window manager?!?
Sway = true;
You want to change the keybinds and make it declarative.
MAY GOD HELP YOU.
Files.home
Is what u want and it took me 3 hours to find that
I love NixOS but it really does make the hard things easy and the easy things hard. I even take "vacations" from it. Like right now for example. I switched back to Arch for a bit as I found myself spending too much time playing around with my various nix configurations/modules and also getting frustrated in trying to get some random application to work. So went back to Arch so I don't have to think about stuff.
the beauty of NixOS is I can go back to it and be exactly where I left off in like 15minutes. I just need a break from it.
I gave nixos a shot and pretty immediately noped out. All I wanted as a starting point was nvim with lazyvim. And as you said, it was a huge research project and after an hour with no luck, I nuked it.
I feel like it's actually not that hard... if you can tell what advice is bad and shouldn't be followed. Which I realize is a major catch-22 for new users.
My honest advice on Neovim (for everyone) is to do this:
environment.systemPackages = [ pkgs.neovim ];- Configure Neovim as you usually would (hand-written
init.lua, Lazyvim installer, whatever) - Ignore/Disable Meson and use shell.nix to get language servers and formatters instead (alternatively: enable nix-ld for Meson or Mise)
- Completely ignore all the wrapper garbage like
programs.neovim, nixvim, nvf, nixCats, and all the others
The last one is important. You can try all you want to make the garbage work and it eventually will, at least kinda, but IMHO the very idea of what they're trying to do is bad, ultimately making them a colossal waste of time.
I have less strong but overall similar feelings regarding Home Manager, those newly hyped wrapper managers and libraries, the "Dendritic Pattern", etc. The NixOS community loves coming up with novel ways to shoot themselves in the foot.
This reminds me of something I might have said of pre-alpha Gentoo days.
Switching is hard, but going back is impossible.
it undermines decades of Unix experience
Which I don't have. So my interest got piqued.
package everything you want to run
Sounds like a way to finally make my attempts at using Linux organized
bulletproof rollbacks
I wonder how many Nix cheerleaders are aware of OSTree based systems like Silverblue, Kinoite, Bazzite, etc? They provide the same immutability guarantees, but none of the pain and standards-defiance of NixOS.
I think Nix (the package manager) is a much stronger sell than NixOS. You can use Nix to install your apps on top of another immutable OS, whereas otherwise you might go with Flatpaks, containers, AppImages, etc. It's certainly better than adding Homebrew or some other manager like Pacman.
For devs, Nix is nice for people who can't or don't want to use containers for any reason (or want to use both!). I just don't see anyone benefiting from using NixOS except for Nix addicts.
Have you tried this? I run NixOS on my server, Aurora (immutable Fedora distro based on Universal Blue) on my desktop PCs, and this sounds very interesting. Unfortunately, it seems that this is explicitly not supported on ublue-os systems.
I haven't actually, I just assumed it would be pretty straightforward to do, but apparently not :/
That issue is full of cringe though. Not a good look for either side, and not productive. It's not clear whether the ublue people don't feel like supporting it, or if it's actually not possible due to SELinux issues.
They provide the same immutability guarantees
Not as easy to have your entire system introspectable, sharable between devices, and under the same VCS. NixOS is declarative first and foremost, and all other benefits fall out from that; immutability is just one of them.
NixOS is a hack that shoehorns existing FOSS software into what an OS should really be. I doubt we'll get anything better for the foreseeable future, except maybe Guix.
Personally, i dream of a stateless, tag/attribute-based, tree-less operating system. "directories" would not be neccessary but a tag could be displayed as one in file managers. Want to load a library? type:library, name:xyz it is.
Stuff is there on the disk anyway, you just have to identify it.
But that would require the whole system and the tooling made for this.
But maybe we get there; since the young generation isn't used to file trees anymore.
Edit: ok, scratch the kernel, it could work.
You described a file system. You can make that system easily and put in any os. You don't have to make and os for one feature.
Wouldn't it just require a kernel module rather than a whole kernel?
I think what you're looking for is simply an indexer + UI that sorts your filesystem by tags rather than by directory structure. Not sure if that's as beneficial as you imagine it to be, but IIRC KDE allows you to do something like that in Dolphin.
~~No, they always have to keep a index uptodate. And no synch (or even compatibility) with other such tooling.~~ Only thing that comes close currently is xattributes some fs support. But they are wholly a undefined blank slate.
About advantages, no broken paths would be one.
Dolphin (well, whatever the KDE's indexer is called) uses xattrs under the hood for tagging, so it will be compatible with other software (including {get,set}fattr).
The index has to be up-to-date, but then that would be true with any tag-based filesystem, it's just happening on a different layer (and arguably a layer which is more suitable for this - not sure it'd be a good idea to enforce synchronous indexing during xattr writes).
The most significant user-facing obstacle is lack of software which supports this system, but I guess that shows that there's not much desire for it in reality.
Right, i remembered KDE using xattr just after writing the answer. But still, only a KDE convention how the data is stored, not a fs convention.
But my point was, we could entirely get rid of file trees.
How many times did i wish, find slowly traversing the fs tree, that you could define a bit more details than the name and roughly if it is a file, a directory or a symlink.
Working on a small trashdir shell script currently, there is a .trashinfo file with the date deleted and the last used path; that's a hack, not a solution.
The fs index could contain things like mime type, intended use (library, executable, plaintext), advanced security context, deleted/visibility, without storing a tree the tooling has to hang on to. Finding stuff on the whole disk could be instantaneous.
And yeah, of course this would be incompatible to everything *nix and Windows currently. Which is why i think it would need to be a whole new OS (with compatibility tooling to *nix).
Current *nix kernels have a lot of Server-centric assumptions the distro tooling has to work around for desktop use anyway. The file systems also, they were made for server-centric use in times of MB, not TB. ext3/4 are just iterations over the old thing, with higher limits, better optimized algorithms, and so on.
I also think- how often am I borking or reinstalling my desktop?
It's a good idea but I've been running the same system for years and years. All that effort goes kind of unused. I replicated most of what I'd need in a single ansible playbook over the years that didn't take long. In the rare event I need to reinstall at all.
Lol love the title.
I feel the same about KDE on Wayland, it's amazing but it's not stable enough yet.
Took my laptop to work and it had a stroke when I plugged it into the office monitors
chiming in as another person running KDE on wayland with no more issues than i've had on any other software
That's weird.
To share a contrasting experience, I run KDE on Wayland on a laptop with two physical monitors with different rotations and three virtual monitors with different resolutions and it all Just Works.
Didn't they start going anti-woke at some point? I was very excited about nixos when i started trying it and then between the weapons sponsorships and some anti woke stuff i read about at the time, i moved on
I'm not sure that description makes a lot of sense. Nixpkgs/NixOS is a fairly large community project. Some of the contributors are certainly anti-woke (although quite a few of those were banned from official spaces a while back), and some are MIC employees (Anduril is somewhat infamous with a seat on the so-called "steering council"). That's not especially unusual by itself, and you can definitely do worse than "one guy is a MIC employee" (just ask the GNU or suckless folks). What is unusual is the very public meltdowns that happened surrounding it, including the moderation team resigning. The community fortunately seems to have survived all of that though.
Anyone curious can read through the most recently active governance related thread and the rest of the discourse meta category. Outside of that the subreddit had an issue with Lunduke spam at the time, but this has since died down (and the posts were removed). I don't frequent the Matrix (official) or Discord (unofficial) so maybe those are really bad and I don't know about it, but from my experience I honestly have little to complain about.
Having someone from the MIC with a seat on the steering council is pretty fucking damning on its own ngl
This title is exactly right
Linux
A community for everything relating to the GNU/Linux operating system (except the memes!)
Also, check out:
Original icon base courtesy of lewing@isc.tamu.edu and The GIMP