• visc@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 days ago

        NixOS is for people who have accidentally uninstalled 90% of their system because they didn’t pay attention to what other packages depend on the thing they were uninstalling and were desperately looking for a an undo button.

    • Zozano@lemy.lol
      link
      fedilink
      English
      arrow-up
      10
      ·
      7 days ago

      I’m still a Linux noob all things considered, and I’ve been using NixOS for six months or more.

      It is HARD, but I see the true value of it. I will never need to reinstall Linux because I broke it, that’s simply impossible.

      If I ever need to migrate my system, it’s all backed up to github. With a single

      Bash update.sh
      

      every single .config file backed up, system upgraded, all packages updated.

      I just love Nix, it’s the perfect OS for me.

      Now I just need to learn how to use flakes…

      Sidebar: I’ve never asked before, but maybe someone can help me out. If I install a flake of an application, am I supposed to add it to the existing flake, or can I modulate flakes?

      I’ve noticed when installing the nixvim flake it generates a new flake and it runs when I issue the

      nix run ~/.dotfiles/nixvim/flake.nix
      

      command, but I don’t want to have to run that command every time. I feel like making a fish abbreviation isn’t the correct way of doing this.

      • tinkling4938@lemmynsfw.com
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        6 days ago

        So I’ve only been using nix about a year and only used flakes. I use in two ways.

        First, I have my main nix flake. Most everything is controlled from that. It has several outputs from full blown nixos builds per host or some home manager builds for non-nixos systems.

        Third-party flakes I use as inputs to my own flake then use the override system to inject them into nixpkgs. Then I just install whatever like normal from nixpkgs. I can either override an existing pkg (neovim nightly replaces regular neovim for me), or you can just add as a new package to nixpkgs by using a different attribute name.

        Second way is for projects with their own repo. I’ll add a project flake that has a devshell with direnv so as soon as I enter that directory it sets up a sort of virtual environment just for that project. You can add outputs to it so others can use as a third-party flake.

        My main starting point was https://github.com/Misterio77/nix-config for this design.