Hi guys, I’m just starting down my nixOS journey. And i think I’m at the point where I see how powerful going down this path can be but not where I’m actually capable of executing everything i want to do.
So i planing to do this bit by bit. I started playing with nixOS in a VM on my main laptop, and after getting the absolute basics in order I installed it on my backup laptop some days ago.
Finding good coherent documentation that does not assume some previous knowledge of how things should be used is my current issue. So I hope I can get some pointers how and where I can learn more to get myself a better understanding of how things work.
I have made a pretty bare bone system mostly following Wil T youtube videos witch was very helpful getting up and running.
link to my config: GitHub - arosl/nixosconf: nixosconf
I have a couple of questions:
-
Is there some good patterns i should follow, or some anti-patterns i should avoid?
-
Why does a lot of nix config i find have the pattern /default.nix instead of just packageName.nix?
-
I have had a bit of an issue configuring neovim the nix way. Just before I discovered nixOS I discovered nvChad and was amazed about how fast this complete IDE experience was feeling, but the installation process is just pulling in sidecars en masse, so probably as far as you can get from a pure nix experience as you can get. So I have been looking for nix ways to get a similar experience up and running that I can customize later. I realized i could run some neovim.flakes like this:
nix run github:jordanisaacs/neovim-flake
nix run github:notashelf/neovim-flake
But if I want to change my nixos config so when run (neo)vim i get the notashelf flake version of neovim. How do I do that? I guess if I want to make changes to this I just need to fork that repo and add my own changes, but I don’t currently understand how I can change my flake.nix output to get this version of neovim.
I have added other input and outputs to my flake myself. But I don’t have a good enough understanding of the process to understand how to get the correct output from random flakes.