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
Since I’m already a NixOS user, I thought to check out Series 4. One of the steps was “install flatpak”
My disappointment is immeasurable and my day is ruined.
My disappointment is immutable
Ahh, itsfoss.com. they had some article on “being a supercharged Joplin user” or some nonsense and suggestion 3 or 4 was “Create a notebook”… Really being a power user when you’re utilizing the most basic functionality the app was created for…
“install flatpak”
why would someone do that in NixOS? nix has a lot of packages and using flatpaks imperatively would lead to less reproducibility
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?
What’s up with the ux design of nix? I get it’s made for advanced users but still. I’m reading through this guide and man it’s convoluted.
The different ways of installing packages. Either through editing the configuration.nix or running a command. The weird inconsistency of nix commands.
nix-env -iA
to install andnix-env --uninstall
to uninstall. Then updating usesnix-channel --update
but upgrade usesnixos-rebuild switch --upgrade
. All this to use the package manager. Also haven’t even mentioned flakes or home manager.It’s a cool OS, but the UX really needs work imo.
[Edit] I do wanna add something else too because I feel like my point isn’t getting across.
It’s okay to have a complicated ui. Especially if your target audience are tech-savvy. But even tech-savvy people have to start as new users. A tech-savvy new user isn’t going to know what the best practices are. Being able to anticipate the steps for installing a package is important for ux. If the commands for installing packages isn’t cohesive/intuitive, then the user has to spend more time looking for guides and learning how to use the software.
People also mentioned a new command in the works. This is great! However, these current commands are being recommended through blogs and nix. New users won’t know about this new command.