Remix.run Logo
linsomniac an hour ago

I switched my workstation over to NixOS ~6 weeks ago and it's been really good, I'm a total convert. The thing that really got me over the hump was entirely configuring it using Claude Code.

One unexpected benefit is that both my workstation and my backup laptop have the same setup, so I can run updates on the scratch box before doing my workstation. I decided to run the "latest" rather than 25.11 release, so it's nice to test before I apply (I hit a GDM issue a few weeks ago that left me at a black screen; but not a huge deal, just select the "previous" option in the grub screen).

I've got everything to parity with what I had on my previous Ubuntu workstation. I had anticipated issues with some software that isn't packaged (but NixOS packages a LOT), but that wasn't an issue. Claude was able to do all those things no problem.

The biggest tricky bit was with my vim setup; I've been using AstroVIM and trying to get away from managing my own vim setup. You can't, AFAICT, just apply astrovim in NixOS. So I described the vim setup I wanted to Claude Code, and I now have a ~700 line config that implements everything I wanted: LSP, TreeSitter, a small variety of other things. Unlike Astro/Lunar, where tweaks you want to make are buried in some set of files in this whole giant distro, it is all encoded in this one "neovim.nix" file.

I also set up home-manager and SOPS and so far that has been working just great! I now have home directory settings that are replicated across 2 machines.

I'm still really only using it on one machine, so we'll see how it gets more complicated if I start running it on some servers.

willx86 38 minutes ago | parent | next [-]

I eventually gave up using mason and lsp servers and used nixvim

https://github.com/will-x86/nixos-dotfiles

( ./home/base/nixvim)

mplanchard 39 minutes ago | parent | prev | next [-]

I'm on year 6 and still feel the same way, using NixOS for all my machines, and also for my homelab servers (building on the main machine and then deploying over SSH). Everything else feels primitive by comparison. Rolling back is incredible.

I have one github repo with a top-level flake containing system definitions for all of my machines. Much of my config is modularized, so it's easy to take custom stuff from one machine and use it on another.

It's nice to hear that AI tooling is making it more accessible for people.

pmarreck 24 minutes ago | parent | prev | next [-]

> The thing that really got me over the hump was entirely configuring it using Claude Code.

I MOSTLY understood it before Claude Code, but WITH Claude Code it's almost a no-brainer for most people. All the upside with none of the downside.

shevy-java 40 minutes ago | parent | prev [-]

> entirely configuring it using Claude Code

This scares me. I would not want AI to run my computer systems.

mplanchard 38 minutes ago | parent | next [-]

I'm no AI booster by any stretch of the imagination, but it's not "run[ning] ... computer systems" in this case. Your NixOS setup is defined by declarative config files, and nix builds or updates a working system from them. AI in this case is just writing the config files, which you'd then (hopefully) read and at least vaguely understand before applying them.

pmarreck 28 minutes ago | parent | prev | next [-]

It generates a config file. You can read it before applying it. While Nix may be nigh intractable to write for some people, it is quite a bit easier to read, and any shenanigans would immediately be noticed.

Yiin 35 minutes ago | parent | prev | next [-]

that's quite interesting because I would love for AI to run my systems, given it is capable enough (and it is given right tools). Jarvis anyone?

spacington 30 minutes ago | parent [-]

Yep!

Just waiting for the dgx spark style system with proper bandwidth as nd a price point of max 1500 or winning the lottery.

But in 3 years I bet I will have Jarvis.

Told my wife already thatwe need a lab room

exe34 17 minutes ago | parent | prev [-]

It writes into a configuration file that I git diff before applying.