• phantomwise@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    7 days ago

    I’ve been stuck on Nix for two weeks because I thought it would be a good idea to put a distro I had never used but that wouldn’t break on my backup laptop in case my main one ever broke. I just couldn’t force myself to install debian, not that I have anything against debian, it’s just… kinda boring, while Nix seemed very interesting. IT SEEMED LIKE A GOOD IDEA AT THE TIME I SWEAR.

    Guess what happened… I broke Arch. Then I reinstalled and the next day the laptop broke. Then the next day I tried to get my data back and the hard drive broke. So, backup laptop with Nix for two weeks…

    • I really really really like the declarative stuff. Installing packages through config files is so nice I’ll never lose track of what I’ve installed ever again 🥰 🥰 🥰 I was already using a git repo for all my config files + GNU Stow to symlink everything to its proper place, so adding the .nix configs to that setup was very easy.
    • Having a clean system on rebuild is great. No more clutter left everywhere that I don’t know about, no more half broken stuff left lying around.

    But…

    • It’s not Arch. Not Nix’s fault, but I kept hearing that it would be “like Arch but declarative”… and it’s really not 😑 Everything seems over-complicated vs as simple as possible.
    • I absolutely hate the language.
    • What’s with those error messages from hell???
    • And speaking of hell, every language that can’t just use indentations like YAML instead of cluttering the code with {} and [] and () should have been relegated to the darkest pit of hell 20 years ago. But points to Nix for being less awful than JSON (the comma on every line but not the last thingy make me want to build a time machine to go murder the grandparents of whoever thought it was a good idea)
    • Packages are out of date even in the unstable branch (I know it’s unfair since it’s not trying to be a rolling release… but… but…)
    • Where are the source packages? Is that an Arch only thing? I liked having packages that automatically use the latest git commit without needing to manually install from source and manually reinstall each time I want an update like a medieval peasant… 😭
    • Nix packages are weird. Even someone who’s terrible at coding like me can read Arch PKGBUILDS… I miss you Arch 😢
    • Apps not working because of paths that don’t exist on Nix… what do you mean I need to patch the package myself? 😭 But at least there’s steam-run, great preserver of what’s left of my sanity.
    • Can’t wrap my head around installing some stuff like VSCode extensions (the advice I got was "don’t bother just do it imperatively…) (Edit: Finally figured it out!!!)
    • Wiki is often sparse on info and not very helpful if you don’t already know what you are doing (and I clearly don’t 😅)
    • Hidden configs. Some stuff works on its own like pipewire even though I haven’t installed or configured it (I went with a minimal install that just gave me a tty then build from there, no DE), and how it’s already configured is not in the default config files. It’s very confusing not knowing why some stuff works and how it’s configured by default.

    But it’s kinda growing on me. Like mold. Or cancer. Brain cancer.

    • phantomwise@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      7 days ago

      Finally managed to enable VSCode extensions without doing it imperatively or using home manager I’m so happy I could cry 😭 😭 😭

      It actually wasn’t even that bad, I’m just terrible at understanding documentation I guess

      	(vscode-with-extensions.override {
      		vscodeExtensions = with vscode-extensions; [
      			bodil.blueprint-gtk          # Gtk Bluprint language support
      			ms-vscode.makefile-tools     # Makefile language support
      			bbenoist.nix                 # Nix language support
      			ms-python.python             # Python language support
      			naumovs.color-highlight      # Color Highlight
      			ms-azuretools.vscode-docker  # Docker
      			donjayamanne.githistory      # Git History
      			seatonjiang.gitmoji-vscode   # Gitmoji
      		];
      	})
      
      • SolarBoy@slrpnk.net
        link
        fedilink
        English
        arrow-up
        1
        ·
        9 days ago

        This command will just run an executable file on nix. Normally only executables which are installed from the package manager will work.

        appimage-run is another option. Which can be used to run, you guessed it, appimages

  • traches@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    0
    arrow-down
    1
    ·
    11 days ago

    I like the idea of nixos, but I feel like it makes a bunch of daily sacrifices in order to optimize a task I do once every few years? I hardly ever get a new computer, but I install/uninstall/update/tweak packages on my system all the time. With a dotfile manager and snapshots, I get most of the benefit without any of the drawbacks.

    • Phoenix3875@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      11 days ago

      For DevOps, it provides consistency for every CI run and production deployment, especially when a whole system needs to be shipped.

      • OhVenus_Baby@lemmy.ml
        link
        fedilink
        arrow-up
        0
        ·
        10 days ago

        I’m always on the go, swapping PCs, travelling for medical reasons. Buy, sell, trade hardware. Nix allows me to boot into my system as if I never left with a simple hardware config update script. Rock solid consistency.

        • Cyberwolf@feddit.org
          link
          fedilink
          arrow-up
          0
          arrow-down
          1
          ·
          10 days ago

          Is your hardware always the exact same? Because if it isn’t, then I’m sure you have to do modifications to your config file. And at that point you night as well just use a regular distro instead.

    • iopq@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      10 days ago

      You only have one machine? I benefit from sharing configs between the laptop and the desktop. They are not the same, but I can easily copy paste a complex service I defined in my desktop to do the same thing on my laptop

      • traches@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        0
        ·
        9 days ago

        I have a desktop, laptop, and a few VMs and servery things. Dotfile manager (yadm, which is a git wrapper) to sync personal settings, everything else I just do manually. The system-level configs are either different enough that standardizing them isn’t very helpful, or no more complicated than installing packages and activating services.

        • iopq@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          9 days ago

          Activating services is the specific task NixOS is great at, you can just add it and it downloads the packages and starts it and generates the configs

          • traches@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            1
            ·
            9 days ago

            Yeah, I’ll probably switch eventually I’m just trying to talk myself out of it because I don’t have the time to learn right now