• blotz@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    10 months ago

    What’s up with the ux design of nix? I get it’s made for advanced users but still. I’m reading through this guide and man it’s convoluted.

    The different ways of installing packages. Either through editing the configuration.nix or running a command. The weird inconsistency of nix commands. nix-env -iA to install and nix-env --uninstall to uninstall. Then updating uses nix-channel --update but upgrade uses nixos-rebuild switch --upgrade. All this to use the package manager. Also haven’t even mentioned flakes or home manager.

    It’s a cool OS, but the UX really needs work imo.

    [Edit] I do wanna add something else too because I feel like my point isn’t getting across.

    It’s okay to have a complicated ui. Especially if your target audience are tech-savvy. But even tech-savvy people have to start as new users. A tech-savvy new user isn’t going to know what the best practices are. Being able to anticipate the steps for installing a package is important for ux. If the commands for installing packages isn’t cohesive/intuitive, then the user has to spend more time looking for guides and learning how to use the software.

    People also mentioned a new command in the works. This is great! However, these current commands are being recommended through blogs and nix. New users won’t know about this new command.

    • Random Dent@lemmy.ml
      link
      fedilink
      English
      arrow-up
      0
      ·
      10 months ago

      I’ve read so many things that try to explain what flakes are, and for the life of me I still don’t understand what they are or what they’re for lol.

      • Laser@feddit.de
        link
        fedilink
        arrow-up
        0
        ·
        10 months ago

        They’re not that different from the classic nix files. Their main difference is that their inputs are always well-defined (as opposed to a channels registry, i.e. you can get totally different systems by reapplying a configuration when you change channels which doesn’t change your nix file at all). A configuration is always exactly described by a flake.nix and flake.lock.

        I mean there is more to it, but this is the primary motivation. What you would normally put into use case specific nix files goes into a flake’s output section. The stuff in your input sections is what you can use in there.