Am I out of touch?

No, it’s the forward-thinking generation of software engineers that want elegant, reliable, declarative systems that are wrong.

  • HakFoo@lemmy.sdf.org
    link
    fedilink
    arrow-up
    7
    ·
    3 months ago

    I suspect the tooling isn’t quite there yet for desktop use cases.

    If I were to try to replicate my current desktop in an immutable model, it would involve a lot of manual labour in scripting or checkpointing every time I installed or configured something, to save a few hours of labour in 2 years time when I get a new drive or do a full install.

    The case is easier for defined workload servers and dev environments that are regularly spun up fresh.

    • demesisx@infosec.pubOP
      link
      fedilink
      English
      arrow-up
      10
      ·
      3 months ago

      to try to replicate my current desktop in an immutable model, it would involve a lot of manual labour in scripting or checkpointing every time I installed or configured something, to save a few hours of labour in 2 years time when I get a new drive or do a full install.

      If you have only one system, you might find the benefits not to be worth the bikeshedding effort.

      However, I suspect that you’d be surprised with how easy it can be using home-manager. I have literally nothing that I need to do to a newly compiled NixOS system from my config because EVERYTHING is declared and provided inside of that config.

      If you don’t mind, can you give me an example of something in your config that you think is impossible or difficult to port to the Nix style? I’d be happy to attempt to Nixify it to prove my point. I’ve pretty much figured out how to do everything in the Nix way.

      and I don’t mind if I end up being incredibly wrong on this point and promise to be intellectually honest about it if I am indeed wrong. It just sounds like a fun exercise for me.

      • HakFoo@lemmy.sdf.org
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        3 months ago

        I guess the assumption is more that for me, a fresh install is often about decluttering as much as anything-- the five Wayland compositors, three music players, and six pseudo-IDEs I tried and didn’t like don’t need to follow me to the next build.

        In a conventional install, that just means “don’t check the checkbox in the installer next time”. In a Nix-style system, this is a conscious process of actively deciding to remove things from the stored configuration, no?

        I suppose the closest I’ve gotten was recently migrating my setup from a desktop to a new laptop. Mostly copying over some config from my home directory, but even then, I wanted enough different stuff-- removing tools I don’t use on the laptop, adding things like battery monitoring and Wi-Fi control-- that it involved some reconfiguration.

        • demesisx@infosec.pubOP
          link
          fedilink
          English
          arrow-up
          9
          ·
          3 months ago

          I’d actually argue the opposite in regards to clutter. If I switch to a new config without the software I don’t want anymore, that software goes away entirely when I do a garbage collect and there’s nothing left over like there might be in ‘’~/.config’’ on a non-immutable system.

          IMO, the actual realization of Dolstra’s dream is flakes and home manager. They allow you to boil your whole config down to a git repo where you can track changes and rollback the lock file if needed.

          I find it nice to open my config in an IDE and search by string inside of my config where I can comment out whatever I don’t need. Laziness also makes that pretty convenient too. Nix will only attempt to interpret what is accessible in code. If I comment out an import, that whole part of the config seamlessly shuts off. It’s quite elegant.

          I’m even more envious of the atomicity of GUIX but IMO, it’s a little too much building the world from scratch for a newb like me.