I believe dwm[1] by suckless is around 2000 lines of C. That used to be my go-to for a WM until I got too used gnome. As much as I loved the simplicity of that style of window manager, I am far past the days where I'd delight in tweaking my Linux installation to my personal tastes. If I could have a git repo with a static config that just built my OS the way I like it with minimal messing around, I would love that. I've heard NixOS is meant to work like that but I haven't found the time to try it. Perhaps someone here can enlighten me?
That's exactly how I use Nix—I have a repo that can reproducibly build the same NixOS setup across my machines, and I can even share a large chunk of the config with my work Macbook.
Once I got over the hump with Nix, I found it easier to manage and improve my Linux configuration than on "traditional" distros I've tried (Fedora, Ubuntu... etc).
Unfortunately, the learning curve was pretty brutal, and I don't think I would have made it over without using Nix for development (without NixOS) first on both my projects and at work.
I found the Nixos learning curve easier when I started with nust nix-shell and then home manager on Debian and macOS. It let me focus on building up workflows in nix for particular tasks and I’ve slowly worked outwards towards overlays and full nixos deploys.
> I am far past the days where I'd delight in tweaking my Linux installation to my personal tastes. If I could have a git repo with a static config that just built my OS the way I like it with minimal messing around, I would love that. I've heard NixOS is meant to work like that but I haven't found the time to try it.
NixOS is neat.
And "OS setup from git repo" is something NixOS is excellent at.
However, the effort it would take for you to come up with your own NixOS configuration would be much greater than what it would take for you to just re-configure your system each time & keep notes (or write the commands down as scripts).
This was the realization I came to when I booted up a NixOS VM to start building my configuration. I recently borked my Arch install and had to start from scratch. It took me about 4 hours to get my system back where I left it — all I brought with me were my dotfiles.
I just cannot imagine I would spend less than 4 hours figuring out NixOS and its DSL. Even if I setup a fresh OS twice a year I just don’t see it being worth my effort — beyond learning a cool new OS.
Arch works well for me and I like the package ecosystem / rolling releases.
Nix’s payoff is moving to use it for dev projects as well as your base OS config. I’ve been using it instead of the standard mix of brew/bundler/nvm/etc. everyone uses to setup their development environment for React native or instead of pip/venv and couldn’t be happier: no globally installed tools with conflicting versions, just a .envrc and a shell.nix in each project. (No one else on the team uses nix this way, but, in a year or so, I’ve not run into any issues)
Checkout pop she by system76. They call it a tiling vm but it's just a gnome extension. It's got full mouse support so you can memorize the high-frequency shortcuts and use your mouse for the long tail.
[1] http://dwm.suckless.org/