I found these interesting Nix OS articles series for users that want to try it and learn first things, have a good reading!
- NixOS Series #1: Why Should You Consider Using NixOS?
- NixOS Series #2: How to Install NixOS on a Virtual Machine?
- NixOS Series #3: Install and Remove Packages in NixOS
- NixOS Series #4: Things To Do After Installing NixOS
- NixOS Series #5: How to set up home-manager on NixOS?
#nixos #linux #tutorial #guide
My usecase is that I want to build a rock-solid workstation laptop for my non-tech-savvy family member.
I configure all the basics in .nix files, and then from there, they can install Flatpak from the software center, like they are used to doing.
Then I can just do a rebuild switch when I see them, make sure it’s all working, and then trust that they probably won’t break the system in-between.
Edit: to be clear, in my own config, if it’s not reproducible, I’m actively working to fix that.
I mean why would you be fully against flatpak? I use NixOS without it and always packaged natively on Arch, but especially when upstream offers flatpak, it makes sense to enable it. Keeps the user-facing programs up to date and somewhat sandboxed while you can have a stable release beneath it. Especially if the system’s actual users aren’t that tech-savvy.
Stuff on unstable tends to break, especially electron-dependent derivations. Stable doesn’t always have the latest and greatest. Flatpak seems like a good compromise for desktop applications in some cases.
I thought about doing that but updating nixos confuses me. Does
nixos-rebuild switch
pull new packages? To my understanding there is a file that saves all currently installed versions of packages and switch only adds new things but wouldn’t update packages.Like, if I want to update Google Chrome. Doing switch wouldn’t change anything if the config hasn’t changed, right?
I believe that’s correct – if nothing has changed from your last generation, then the new generation will be identical. But if something has changed, it will do a bunch of duplicating and remapping symlinks in the Nix store to ensure that everything plays nicely together and that you can rollback to a previous generation if needed.
So if you do a rebuild switch regularly, you will end up with gigs worth of old “copies” of things that aren’t being referenced in your current generation.
That’s what nix-collect-garbage handles – once you know your current generation is working well, you collect the garbage and recover that space, at the expense of not being able to roll back.
That’s why I think building a core system with NixOS and then having user software come from Flatpak is a nice combo for simple workstation that won’t update and bork itself, leaving my grandpa without a laptop until I can come take a look.
Edit: To clarify, nixos-rebuild-switch won’t update your Flatpaks at all – just the Flatpak service
That makes a lot of sense. I can setup their computer with nixos and stuff that needs to be updated regularly (like a web browser) can be flatpak which should be more stable too.
Then
flatpak update
would get them updated without rebuilding the whole OS.My grandparents have been rocking Linux Mint for a few years. I have managed Chrome through Flatpak since I discovered that was possible on Mint. I’ve been flirting with the idea of having NixOS instead so I don’t have to remember what I’ve configured in the past. I’m not 100% sure now though :-P
Exactly right. Throw in Plymouth and set the bootloader timeout to 0 and you’ve got a noob-friendly workstation.
Plymouth?
It’s a graphical boot screen.
Just helps eliminate all the bootloader noise you see when booting up or powering off that make scare off less tech-savvy folks
Oh cool. My grandparents don’t have any idea that scrolling text isn’t normal on startup. Neat project though!