Skip to content


Tag: #nix

Setting up per-project RLS for Emacs with Nix and Direnv

One of my favorite things about Nix is using the nix-shell to provision the development tooling for a project without infecting the rest of the system. Even if the project itself isn't built with Nix, I will often have a shell.nix just to provision tools like Cargo and SBT. This becomes especially helpful with Rust where each of my Rust projects can have a different rustc version without needing to switch my rustup toolchain.

Installing NixOS

In an effort to force myself to learn Nix I spent last weekend installing NixOS on my desktop. It ended up being a fairly involved process for me, especially since I barely have any experience with Linux. Therefore I've decided to write about my installation process (to the best of my recollection anyways), both as a reminder to myself and for anyone else who may be curious.

My first Nix derivation

When I started learning Nix I set myself a milestone of contributing a derivation to Nixpkgs. Along the way I learned some interesting things about the Nix toolchain and began to really appreciate the freedom it gave me to experiment.

My journey into Nix

As a Windows user for many years, I always liked that there was a way to uninstall any program I installed1. When I moved to Mac OS and installed programs through the App Store, brew, pip, I quickly realized I had no clue how to reliably uninstall them. This made me quite uncomfortable, but I managed to live with it.