5 Things I've Learned about NixOS
As I write this, I’m on day 4 of my next 2-year Linux Challenge. First off, it has been very weird not to be on openSUSE anymore. I used it for what seems like forever in Matt years, and being away from it just feels odd. I go to update, and there’s no more sudo zypper dup. Kinda sad, really. NixOS is a different kind of experience than anything I’ve really had before. So today, I’m going to discuss a few of the things I’ve learned so far.
I will make a video soon about my first week or 10 days on NixOS, so if you watch that, there will likely be some overlap.
NixOS is Easy To Set Up
NixOS uses the Calamares installer. And it allows you to pick your desktop during install. It is easier to install than openSUSE, Fedora, and Debian. By far. The complexities only come in after you’ve installed it. And even then, if you can handle a bit of basic code and use Google, the NixOS config file isn’t difficult to suss out. Is it for absolute beginners? No. But it also isn’t to be feared.
Flakes Aren’t Scary or Hard
I had the hardest time my last time on Nix getting my head around flakes. This time, I ignored most of the NixOS guys. They’re all wizards when it comes to Nix, and way beyond what I will ever be. Asking a NixBro to tell you what a flake is is like asking a rocket scientist what a rocket is. You’re going to get a lot of information you’re not going to understand.
To put it simply, a flake is simply a NixOS configuration file. That’s all it is. It has some special features that allow it to lock your version of NixOS into a specific version. That way, if you need to rebuild your system from the ground up, you can do so knowing that it’s going to be the exact same system. This is a useful feature, to be sure. For me, the highlight of Flakes has been the ability to modularize my Nix config into smaller parts. Maybe the reproducibility will be good for me later; right now I haven’t needed it.
Remembering That The Configuration File Exists Is Hard
I’ve been indoctrinated to do things a certain way. Let’s call it “The Linux Way.” I’ve been doing this for 10 years. Want to mount a drive? I can do that. Want to use NFS or AUTOFS? I can do that too. And I can do those things the same way on almost every distro I’ve ever used, be it Ubuntu or openSUSE.
Those ways exist on NixOS, but you’re not supposed to use them. mount does exist, so you could use it, but you’re really supposed to either use the hardware configuration file or, as I did, mount your drives using the configuration.nix file. Same with NFS; it goes in the config.
I’ll admit, this different way of doing things is really taking some getting used to. I think I’m there now, but those first few days when I was doing most of my setup? I forgot quite a few times that I was supposed to do things differently than I’ve always done them. It didn’t lead to trouble, but it was a bit frustrating. I think mostly because I haven’t seen any real benefit for doing it differently.
The Nix guys are going to say it’s about ’the ability to reproduce your system in the exact same way each time,’ as if everyone reinstalls every sixth day and/or has a dozen ThinkPads in their workflow. That is a great feature to have, but so far, I’ve just seen a distro that insists on doing things differently. That’s fine, but I’m still looking for the benefit to me. It has only been 4 days, so I’m sure I’ll get there, but so far, this is just a fun way to try something new.
It’s the PATHs That Eff You Up
Nothing is stored where you think it will be. Everything is in a directory called nix store and that means that if you haven’t been listening to all the Bash guys who told you to use /usr/bin/env bash in all your scripts all these years, you’re screwed. Bash isn’t in /bin/bash like all your scripts claim. So you’ll have to either change them to what they should have been all along or find a workaround.
This is just one example of the paths getting in your way. /usr/local/bin Doesn’t exist either, so putting your scripts there is a no-go. It’s not a big deal, but as I said in the last section, it takes some getting used to.
I’ve also had some problems where certain applications are looking for things in a certain spot that actually doesn’t exist. Kitty, for one, doesn’t have the ability to auto-update its config due to some oddness on NixOS’s part. The bash prompt oh-my-posh that I was using doesn’t work unless they can access the /usr/local/bin path. (Supposedly, you can change the PATH for that, but I couldn’t make it work.)
All of this isn’t a deal breaker, and most of it can be worked around easily, but because NixOS chooses to do things differently, that’s going to break some things along the way. I’ll be interested to see what else falls into this category as these 2 years go by. I’m sure I’ll find more.
It Works Better Than I Thought It Would
Given all the different things I just talked about, and that’s only a few of them, I expected everything to be hard or impossible to do. I knew somewhat that this was a false thing in my brain. I’ve used NixOS before, but now as my daily driver, so much more needs to work for me to be able to use it. Things like NFS. Last time, I wasn’t into home labs yet, so I didn’t use NFS. This time I use it all the time.
I expected to have audio issues and probably some hardware issues too.
But none of that happened. Like with openSUSE, things just work. They work well. Now, is this because I’m just good at Linux, or is it because NixOS works well? I don’t know the answer to that question yet. But either way, this works way better than I thought it would. Other than the kitty thing, I’ve found no hurdle I couldn’t get past one way or another, and that exceeds expectations.
Conclusions
I have a lot of content planned for NixOS, both here on the blog and on the channel. I’ll try not to flood you with Nix content, but this is what’s new to me, so I’m going to want to talk about it. I really like NixOS so far. More than I thought I would. Has it wowed me? No. But it works. And that is more than I expected. So, so far, I feel good about this and my ability to use this for the next 2 years.
Have you used NixOS? Would you like to? Talk about it in the comments below!






