Tools, software, etc.

25 May 2025

These are all the tools I use for hacking and tinkering on a daily basis, as of the date above. By keeping an explicit list, I try to critically assess my usage of any tool. The less reliant I am on software and computers, the better 1For example, I explicitly choose not to use a calendar program, except to set reminders for extremely important events. Meticulously organizing your life with a Google Calendar—you’re literally ceding control to the machine..

Software

Core:

OSNixOS (unstable, “Xantusia”)
EditorNeovim
BrowserZen
Kernel(s)linux-zen, linux-asahi
DesktopHyprland (Wayland)
Layouthyprscroller
Terminalkitty
Login shellNushell (w/ fish completer)

Productivity:

BrowserZen
TypesettingTypst
Accountinghledger
Audio WorkstationReaper

Hardware

Computers:

HostnameSpecs
adrasteaBlade 14, Ryzen 9 5900HX, RTX 3070 Max-Q, 16GB DDR4
demeterCustom desktop, i7-13700KF, RTX 4080 FE, 32GB DDR5
callistoMacbook Pro, Apple Silicon (M1 Pro), 16GB unified memory
gallium2014 Mac Mini, used as a homelab and server

Other devices:

E-readerKindle Scribe
Audio interfaceScarlett 4i4 (Gen 3)
MicrophoneAston Microphones Origin

Keyboards:

Keychron Q60 MaxHappy Hacking layout, Gateron Oil Kings (factory lube)
Custom tofu65Ink Black v2 (hand lube)

More info

Operating system

On all of my machines (including Apple), I currently run NixOS unstable (NixOS 25.11 “Xantusia”), the bleeding-edge rolling-release branch of NixOS.

On Apple Silicon, I rely on the Asahi Linux project which provides the reverse-engineered graphics stack and hardware abstractions required to run Linux.

By the way

NixOS is a highly idiosyncratic Linux distribution (“distro”) that behaves entirely differently from nearly all other distros. Your entire system is specified through expressions written in the Nix programming language—you must write code that specifies exactly how your system is deployed. For example, if I want to update the colorscheme of my system—it is not possible to open any sort of settings menu and click a button to do so—rather, I must enter my configuration and figure out the requisite Nix code to write in order to set the color.

You may say “this sounds completely insane.” You would be correct. However, somehow, it works. Just one consequential advantage of the aforementioned tedium is my entire system’s colorscheme is now generated at build-time, by running a genetic algorithm on my wallpaper that literally simulates darwinian natural selection to evolve the optimal colorscheme to pair with it. Because all programs are also configured in this manner, the colorscheme can set not only typical system themable programs, but also inject colorschemes into any program managed by NixOS (for me, that would be all of them), such as Discord, Spotify, and more.

Additionally, I keep a darwin (macOS) and Windows 11 installation around for when I need them. Windows is used for crappy video games with invasive anticheats that don’t run on Linux (and I wouldn’t install them there anyways)—not limited to Valorant, Destiny 2, LoL, etc. I rarely play these games anymore so likewise my Windows installation sees uptime every couple months at most. Linux can run nearly every other Windows game through Proton. macOS is seldom used but usually handles multimedia better—e.g. if I need to plug into a projector to play a movie or presentation.

Editor

I use Neovim. Before that—VS Code—but I was growing increasingly wary of the AI enshittification being integrated into the editor, as well as a general growing distaste for electron.

I created my configuration from scratch. I use quite a few plugins, but I try to stick to plugins that strictly extend the capabilities of existing features rather than add entirely new ones.

Browser

I use Zen, a fork of Firefox. It’s kind of janky but it’s the only browser with all the features I want—namely, not Chromium based and supports sidebar tabs. I maintain the semi-popular Nix package for it.

Kernel

I use linux-zen in general because regular linux has some weird interactions with my laptops when returning from suspend. I keep PREEMPT_DYNAMIC enabled for realtime capabilities.

On my Apple Silicon devices I of course use the linux-asahi kernel from the Asahi Linux project. But I still use NixOS, not the Asahi Fedora Remix. If you’re curious, it is a surprisingly smooth experience.

Desktop environment

I use Hyprland. It has all the features I expect out of a window manager. I use a plugin that enables a scrolling layout like PaperWM. However, the codebase is pretty messy and I frequently experience minor regressions and the community is somewhat suspect.

Therefore, I’m looking to jump ship to the dedicated scrolling compositor Niri once a few features are added.

Terminal

kitty is good and Kovid is a cool guy. The terminal does everything I want and more, it’s fast, and I’ve never experienced any bug. No complaints.

Login shell

I used to use fish, but now I’m on nushell, an experimental shell that takes the concept of UNIX pipes and makes them pass typed structured data that is much easier to manipulate.

Computers

adrastea is a laptop-turned-workstation, on account of poor Razer quality control forcing me to toss the battery out. callisto is my daily driver laptop—the Apple Silicon processor gives it great battery life. demeter is my home PC, which I don’t keep with me in college.