It’s necessary for my very important hobby of generating anime nudes.

  • Pyro@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    8 months ago

    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.

    • Euphoma@lemmy.ml
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      8 months ago

      Nix is a programming language, so you have to organize your configuration yourself like you would for any programming project, usually by splitting it into multiple files. Also you can search system modules on the same page that you search for packages though usually there’s not much of an explanation for what it does outside of reading the source code.

      System modules use the package from the repository while enabling some systemd stuff and whatever other options that you will want enabled with it. On a single user system, there is no meaningful difference between system packages and user packages.

      Home-manager can be used to manage files in your home directory, like your configs for apps and stuff. It also can have more module options for apps so you can set up their settings declaratively. Its not for everyone but this is what its supposed to do, outside of your normal nix configuration.

      Nix flakes aren’t a way to install packages, but a way to manage the nix based projects which include nix packages and your nixos configuration and is supposed to make it more reproducible, so its not directly related to installing packages. However if a package for something isn’t in the repos, someone may make a nix flake for installing and building the package.

      Its understandable that you are having trouble though, because the documentation for nix and nixos is terrible, and it only got better for me once I actually spent time learning the nix programming language.

    • Shareni@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      8 months ago

      Organisation is daunting as fuck

      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?

      1. 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.

      2. Declarative package management and configuration

      3. 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…