There’s definitely a steep initial learning curve as you observed and dialing in your configuration is time consuming in my experience but once you’ve got things the way you like, it’s pretty smooth sailing from there.
Edit: removed compared to arch references. Not relevant to the comment.
As someone who tried NixOS recently for the first time, it feels like an uphill battle.
Some immediate concerns I have as a newbie are below. Bear in mind that I’m a single user on a single system.
Organisation is daunting as fuck
Even a relatively simple desktop config seems rather large to me. I expect the complexity of my config to balloon if I were to use this as my primary OS. There seems to be no consensus on how things should be separated.
I’ve heard home-manager is good, but I don’t really get the point of it. What does it achieve for me that editing configuration.nix doesn’t? I’ve yet to find a benefit. It’s just another place to dump endless configs and another command to remember to run.
Installing software feels like the roll of a dice
I installed NixOS to try Hyprland, and their docs say to just use programs.hyprland.enable = true, which I’ve come to learn is a module. But that’s not the only way to install things! You also have system packages and user packages! I just want to install some software, I don’t want to have to look up whether it’s a module or a package every time I want something new. I’m never sure what I should add to which section. No other distro that I know of has this problem! Having 3 different places to add software seems excessive. What am I using? Windows? And now there’s Flakes too. I’m sure they’re great, but right now I just see them as yet another way to install software on Nix. Great.
There’s more, but I’ll leave it there for now. I’m sure there are reasonable answers to all that I’ve said, but I’m just frustrated. I really want to like Nix, but it’s not making it easy.
tl;dr: Two things. 1) Lack of consensus on how configs are organised is confusing. 2) Having 3 different ways of installing software (modules/packages/flakes) does not feel better than apt install or pacman -Syu etc.
Read up on modules. It’s obvious you haven’t even googled it.
I’ve heard home-manager is good, but I don’t really get the point of it. What does it achieve for me that editing configuration.nix doesn’t?
You’re not supposed to use configuration.nix for userland packages. Separation of concerns, and so you don’t need to rebuild all the time.
Declarative package management and configuration
You only need to remember one command to install and update all your packages
Installing software feels like the roll of a dice
There are many ways to install a package, and that allows you to chose the one you want to use. Nobody’s forcing you to use the module instead of just the package…
And now there’s Flakes too. I’m sure they’re great, but right now I just see them as yet another way to install software on Nix. Great.
You don’t use flakes to install packages. You use them to control the package definitions, pin specific versions, add packages from outside of nixpkgs in a declarative manner, and so on.
I really want to like Nix, but it’s not making it easy.
You really want to like Nix, but don’t want to learn basic concepts and instead expect it to behave like every other distro.
If installing packages is too much for you, give up on nixos and use something else. That’s literally the easiest and most issue free part of using it. You can install hyperland through nix on Debian or whatever distro you want.
does not feel better than apt install or pacman -Syu etc.
Yeah, why would anyone want a list of packages they currently have installed. Can’t think of any benefits, nope…
There’s definitely a steep initial learning curve as you observed and dialing in your configuration is time consuming in my experience but once you’ve got things the way you like, it’s pretty smooth sailing from there.
Edit: removed compared to arch references. Not relevant to the comment.
As someone who tried NixOS recently for the first time, it feels like an uphill battle.
Some immediate concerns I have as a newbie are below. Bear in mind that I’m a single user on a single system.
Organisation is daunting as fuck
Even a relatively simple desktop config seems rather large to me. I expect the complexity of my config to balloon if I were to use this as my primary OS. There seems to be no consensus on how things should be separated.
I’ve heard home-manager is good, but I don’t really get the point of it. What does it achieve for me that editing configuration.nix doesn’t? I’ve yet to find a benefit. It’s just another place to dump endless configs and another command to remember to run.
Installing software feels like the roll of a dice
I installed NixOS to try Hyprland, and their docs say to just use
programs.hyprland.enable = true
, which I’ve come to learn is a module. But that’s not the only way to install things! You also have system packages and user packages! I just want to install some software, I don’t want to have to look up whether it’s a module or a package every time I want something new. I’m never sure what I should add to which section. No other distro that I know of has this problem! Having 3 different places to add software seems excessive. What am I using? Windows? And now there’s Flakes too. I’m sure they’re great, but right now I just see them as yet another way to install software on Nix. Great.There’s more, but I’ll leave it there for now. I’m sure there are reasonable answers to all that I’ve said, but I’m just frustrated. I really want to like Nix, but it’s not making it easy.
tl;dr: Two things. 1) Lack of consensus on how configs are organised is confusing. 2) Having 3 different ways of installing software (modules/packages/flakes) does not feel better than
apt install
orpacman -Syu
etc.Read up on modules. It’s obvious you haven’t even googled it.
You’re not supposed to use configuration.nix for userland packages. Separation of concerns, and so you don’t need to rebuild all the time.
Declarative package management and configuration
You only need to remember one command to install and update all your packages
There are many ways to install a package, and that allows you to chose the one you want to use. Nobody’s forcing you to use the module instead of just the package…
You don’t use flakes to install packages. You use them to control the package definitions, pin specific versions, add packages from outside of nixpkgs in a declarative manner, and so on.
You really want to like Nix, but don’t want to learn basic concepts and instead expect it to behave like every other distro.
If installing packages is too much for you, give up on nixos and use something else. That’s literally the easiest and most issue free part of using it. You can install hyperland through nix on Debian or whatever distro you want.
Yeah, why would anyone want a list of packages they currently have installed. Can’t think of any benefits, nope…