I've been using Nix↗ and Home Manager↗ to manage (most of) the software I use on my computers for about a year and a half now. Nix's declarative approach to package and configuration management lets me create a single base configuration and then selectively apply the relevant pieces to my different devices, whether it's my daily-driver Chromebook, the Pixelbook I converted to NixOS, a VM running in my homelab or The Cloud, or the WSL environment of my work laptop (where I also overlay work-specific configurations).
I track those configurations in my public 'dotfiles' repo↗, and I've done a lot of tinkering with these Nix-based configs in that time as I've gotten more comfortable with the Nix language and discovered new useful utilities, but that tinkering really ramped up this month:
These updates included a lot of small tweaks and fixes, but there were some larger transitions included along the way.
Ditching VSCode for Neovim
VSCode has been my go-to text/code editor for years, and it's served me well. But I've been frustrated that I couldn't use Nix to manage the configuration and plugins of the VSCode install on my Windows work laptop; trying to manually keep all those settings in sync with my Linux machines has been a bit of a fight.
I started doing more and more of my text editing in Vim since I knew that experience would be consistent. And then I tried out Neovim↗ and realized I could use its extensive plugins to completely replace VSCode. The result is an editor that is lighter and more configurable while still providing all the IDE-esque niceties like syntax highlighting and validation and code completion suggestions with a more keyboard-oriented workflow. And my Nix setup ensures I'll have a familiar development environment on any of my systems.
Ditching Tabby for Kitty
I started using Tabby↗ as my terminal emulator of choice back in April. It's been pretty great, but it hasn't yet been packaged for Nix↗, which can make configuration management a little messy. I had seen a lot of other Nix configs referencing a different terminal app called Kitty↗ so decided to give it a try.
It took a bit of fiddling (and wrapping it with NixGL↗ to get it running, but once I did I was able to completely manage the terminal's configuration with Home Manager (the dream!). Kitty is fast, configurable, and packed with features (many of which I'll never use because tmux).
Catppuccin all the things!
Another recent discovery has been the lovely pastel-based catppuccin↗ color scheme. I fell in love with the soothing colors and quickly set about applying it to Kitty, Neovim, and tmux.
I think the result is pretty nice!
Now to see if I can get back to building things and writing about the things I build rather than just endlessly tinkering with my tools...

