• 0 Posts
  • 13 Comments
Joined 1 year ago
cake
Cake day: July 1st, 2023

help-circle

  • installer

    You mean the “new” installer GUI? I never used it TBH, I always did partitioning (and everything else) via CLI, not sure about that. But NixOS (gnome version) has GParted and all other kinds of partitioning tools on board, so just partition it as you think it’s best and then generate a config via nixos-generate-config as described in the manual. One tip, when going down that rabbit hole (when you’re committing at least): Start with Nix flakes right away. Checkout all kinds of dotfiles in github of other users (and on github there are a lot of configurations that can be source of inspiration).


  • OCI images and CI/CD to buid the image

    Actually since I just had a similar issue at work. I fought a little bit with the traditional Docker pipeline, and then discovered this: https://mitchellh.com/writing/nix-with-dockerfiles, which not only solved my problem much faster, but is also more efficient, since only the actual dependencies of the package are in there (and it can be really reproducible). So you can actually combine the best pieces of each technologies (Docker - sandboxing/containerizing, Nix - packaging and configuration).

    Btw. Nix is rapidly growing (since flakes mostly), so I think a slow shift towards Nix is happening already.

    But I agree, migrating traditional dotfiles to Nix+home-manager takes time. I did it incrementally (I used activation scripts to link directly to the old config files, and slowly converted the old config to Nix.



  • Yes, it certainly invites you to tinker and experiment with the system without having to fear a broken state. I got multiple forks for different applications (e.g. helix-editor with a few merged PRs), and configured the system in a detail not comparable to any previous distros I was on. Really like how I can e.g. carelessly switch between different desktop environments (without VM)…


  • Yes, if you’ve found your distro, I also don’t see a point in switching, there’s more important stuff than learning how to install and setup your distro everytime you hop. I only hopped, when I wanted to have a clean install because my previous was kinda broken (dirty state over time), and/or wanted to have more control, or try a different desktop-environment. I have now found a distro (NixOS) where I can have all of that at the same time (so no point in hopping anymore for me too).


  • I have hopped rather rarely. I think my journey started with Debian -> (all kinds of flavors of) Ubuntu -> Arch -> NixOS.

    Maybe I missed a few (started with linux at probably ~2005). I’ve stayed on each of these for a few years, I think I switched between Ubuntu flavors a little bit more frequently. Stayed on Arch the longest for ~7 years. And I think I have basically settled now since 3 1/2 years on NixOS without plan to hop any further distros (unless there comes a distro comparable to NixOS that has less quirks and is generally nicer to use (e.g. tooling, strong, strict static typing etc.)).

    NixOS is quite different than other distros (which IMO are all very similar) but does package-management+system-configuration basically how it should be done (in hindsight). It’s a rather steep learning curve in the beginning, but it only gets better over time, since your system continuously improves, compared to different distros that accumulate dirty state over time and in one way or the other break after some time. This was often the reason why I hopped on a different distro, since I wanted a clean fresh install, which I get with something like Impermanence+tmpfs on root after each reboot.


  • Interesting.

    I have settled with NixOS+home-manager. It got quite a bit better over the last 3 1/2 years.

    After learning and understanding all the quirks of NixOS, I’ve got a super nicely configured system, that just gets better over time, not comparable to a(ny) different distro I know of (they kinda degrade after time IME). I really like the way I can compose all my configuration via functions in modules and reuse relevant stuff on different servers and desktops I use (via flakes), always with the same up-to-date configuration.