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
Seems like there’s now an option for that in Home-Manager: https://nix-community.github.io/home-manager/options.xhtml#opt-wayland.windowManager.sway.config.keybindings
But yeah, if you tried to use it when Sway wasn’t yet well-supported, or just want to use some obscure software in general, then yeah, things can get more complicated…
or just want to use some obscure software in general, then yeah, things can get more complicated…
Well thanks, so NixOS is not for me then.
Oof, I was just talking about making things declarative there. If you want to configure it the old-fashioned way, like you would on other distros, then those difficulties don’t apply.
In more general terms, though, it’s a bit of a double-edged sword. The Nix package repository has more packages than other package managers: https://repology.org/repositories/graphs
So, the chance of finding an obscure software, that’s already packaged, is rather high.
Here’s the online package search, if you want to check the availability of some of the obscure software you use: https://search.nixos.org/packagesBut then, yeah, the flipside is that, from what I understand, you can’t just download a random executable off of the internet and run it, because of the Filesystem Hierarchy Standard not being adhered to, as the post also mentions.
You can set up Flatpaks, and I believe AppImages would work, because those also live in their own FUSE filesystem. Well, and there is ways to emulate the FHS layout to get normal applications to run, too.But yeah, way out of my field of expertise there. I have only one software installed which isn’t packaged for Nix, which is a program I wrote myself.
And to get sufficient FHS emulation for that, I just needed this line in my config:programs.nix-ld.enable = true;More complex programs will need a bit of extra configuration: https://wiki.nixos.org/wiki/Nix-ld
(I could also add a
flake.nixfile into my software’s repository, though, which would make it so it could be installed straight from my repo, as if it was packaged.)
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.
This reminds me of something I might have said of pre-alpha Gentoo days.
Gentoo is well documented and works almost out of the box.
Sure it is now, but it was not always. Gentoo didnt just spring forth from the aether full-grown.
pre-alpha
The period of pre-0.1 that I reference above, ended in 2002 with the release of 0.1 Alpha. This is back when the idea of adding a binary installer was controversial in the gentoo community. That was 24 years ago, in case you are following along. So going on about the current state of Gentoo is not super relevant. I am glad it is better, but I am old enough to remember when it was a pretty gnarly ball of yarn and that is what I mentioned.
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.
Is there no forum or discord for the distro? Or a self help book. Way back in the day that’s how i did shit on slackware. Irc and books.
Pretty sure there’s an unofficial discord server with around 16k members.
Damn right. And the Nixos community forums are full of people unwilling to accept this. They will gaslight you into thinking you’re the problem. “Just do this”, as I’d it’s completely obvious and you’re dumb for not realising that. Of course if they find out you have some ideological incompatibility with them, you’re out anyway.
NIXOS really needs a fork. One that embraces or rejects flakes outright. One that stops inviting ideological battles. And one that embraces documentation.
One that stops inviting ideological battles
That’s impossible IMHO. Nix is fundamentally about doing things “the right way”, and so there will always be disagreements about what “the right way” is. I think they are bound to be eventually settled on the best possible answer, you don’t need a fork for that.
If only the battles were about software. They are about unrelated beliefs and political ideologies. I’d very much prefer ideological battles about software trust me.
I mean, you don’t really need a fork for that. Anyone who’s motivated to actually improve the situation here, can just write appropriate documentation.
I guess, a fork would give you a new name, and therefore a clean slate where there’s not loads of contradicting information already out there. But yeah, that’s also a lot of work…
Well, I’m not in Microslop platforms, so that’s going to be difficult.
Second, the way things work in the current nix/nixos community make it easy to create a PR but very difficult to get it merged. Attempts at writing documentation are nitpicked to death, unless you belong to the privileged class of the documentation team or have merge rights on Microslop’s Github.
A fork would also give an attempt at forming a new community with different rules and focus.
You are thinking of the better alternative, guix
I’m not that much a fan of brackets and jumping through hoops to install anything non-GNU.
There are forks of Nix. Perhaps you might like Lix.
I haven’t yet found out where its major differences lie. And it seems like they haven’t taken a firm stance on flakes (yes or no). They also only forked the interpreter, not nixpkgs. A good step, but their documentation wasn’t good, the last time I checked.
The problem is that NixOS achieves all of this by breaking assumptions that almost all Linux software relies on. Most Linux binaries assume the Filesystem Hierarchy Standard exists, and they expect interpreters and libraries at fixed global paths.
This is a problem of those applications, we began to make appimages that do not make those assumptions and work in NixOS directly. (And this also means it works in places like alpine where a lot of those binaries wont either).
People like to throw the FHS around but the reality is that not a single distro follows it fully, I wouldn’t rely on it to be the same in the near future at all.
Most of these are still relevant issues afaik, so yeah… appimages are just not a solution for everything. Same as stuff like flatpak and snap. These are nice for when you just need some little standalone app that doesnt do a lot of compute heavy stuff, but they will never replace native implementations.

The points in the screenshot are just false and outdated, the guy even says that it doesn’t work on every distro lol
This is signal made with sharun working on ubuntu 12.04 a 14 year old distro: https://imgur.com/a/1f5S0P7 The distro is so old that internet no longer worked lol, had to use a flash drive to transfer the appimage.
we use a lot less storage than flatpak and this comparison is outdated, we have reduced the size of a lot of apps since then.
I actually did a quick test installing an alpine linux container and about 10 GUI apps vs appimage and appimage used less storage, now this comparison was flawed because I later realized that the alpine stable repo was super old and for example GIMP was pulling the gtk2 version instead of the gtk3 one (which brings all of gtk2 into the system instead of sharing the existing gtk3) but you get the idea of how close we are.
For updates and desktop integration use AM or soar
but they will never replace native implementations.
Eden makes its appimage using sharun, they made it with PGO optimizations on it which has a ~10% increase in FPS.
native implementations wouldn’t bother doing this, in fact PCSX2 had to tell people to not use the official archlinux package while it existed, because archlinux compiled it with generic flags which was horrible lol
This is also the reason why this benchmark showed appimage performing much better, you are free to optimize your application, while distros packages, flatpak, etc you often have to deal with packaging policies that do not allow this:
https://www.reddit.com/r/linux/comments/u5gr7r/interesting_benchmarks_of_flatpak_vs_snap_vs/
At this point, FHS feels more like a hindrance to me. Also, it was made in a time with very limited disk capacity and personal computers weren’t much of a thing yet.
Switching is hard, but going back is impossible.
I never want to go back to an OS I can’t diff or track under revision control. I just love being able to solve an issue once and move on without worrying about if I’ll forget all the minutiae of changes I made to my customized system when it eventually comes to migrating workstations or replicating across my computers.
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.I have a Nvidia GPU, and the monitors are work are old-ish
Might be the issue 🤷♂️
I have a Nvidia GPU
Ah, well I wouldn’t blame any of your graphical issues on any Linux software then.
Explain more
I plug in the monitor through HDMi, everything freezes.
I reboot, works fine.
I plug out the HDMI, everything freezes.
deleted by creator
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.
I’ve made it so my home directory and root are two different partitions so whenever I need to reinstall I still have my customization data around
Same. If I ever had to reinstall that makes it even easier anyhow.
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
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.
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.
deleted by creator
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,findslowly 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.
Wouldn’t it just require a kernel module rather than a whole kernel?
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.
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
This lets Gentoo look like a beginner/user-friendly distro next to NixOS.
The fact that my OS should not be a project anymore made me switch to Debian instead to NixOS. But I need to try an immutable distro some time.
Fedora offers a very good set of choices.
its amusing my first/second Distro was NixOS(and i didnt know much Linux,and someone told me its a good distro)
It is a good distro. It’s just that the documentation is either outdated, inaccurate or inexistent and that the learning curve is parallel to the y-axis.
The community, somewhat understandably, has limited time and willingness to explain the same things over and over, yet for some reason refuses to conclude that rigorously maintaining a wiki is their best bet to combat this situation and will ultimately be less effort than repeating the same explanations.Oh okay
NixOS has some neat ideas but goes to the deep end implementing a near-perfect design of those ideas. If you need those ideas, it’s really great.
I’m fantasizing about doing a lipstick-on-pig kind of a facsimile of NixOS on top of Arch Linux.
Nixpkgs and home manager on top of Arch is a nice hybrid system. I gave up on the idea for my PC because it enforces a level of tidiness that I’m not always on board with. Sometimes I do Evil Things to my computer and leave garbage lying around. It doesn’t complain, and I’d shoot it if it did
Did not know that is something people do on arch!
It seems needlessly complicated. I installed it as a virt like I do with most distros and it seems like they are dumbing it all down to the point its headed toward android levels of needless complication.



















