I used to read articles on usesthis.com when I was fresh out of college, and some of them influenced the choices I made. I thought it was about time to write down what I use. Who knows, maybe it might help someone.

Hardware

I usually get a MacBook from my employer. At home, I have built my own desktop computer. I have a dual 4K monitor setup and a Microsoft Sculpt keyboard. I am very particular about keyboards and try to avoid using laptop keyboards as much as possible after my early struggle with RSI over a decade ago. I am bummed that Microsoft has discontinued the product. I use an Apple trackpad and rarely touch the mouse. I also have a Wacom pen tablet hooked up, but rarely use it.

Software

Operating System

I regularly switch between macOS and NixOS. Because I deal with servers at work, I had to deal with many Linux distributions, but for personal use I have been sticking with NixOS lately. Because I regularly switch between macOS and NixOS, I mostly use tools that work on both OSes as much as possible, though this might not always be possible.

Editor

I use Emacs as my editor and get most of my work done via it. After more than 15 years of continuous use, all the keyboard shortcuts have become muscle memory at this point. Because of the readline influence, many of the Emacs shortcuts work everywhere like browsers, shells, etc. I have a long list of Emacs extensions I use, some of which I built myself. Maybe it’s for another blog post.

Terminal

I use tmux and Alacritty. I rely on tmux heavily, and I usually have one of them running on both monitors with multiple tabs, with multiple split panes running various servers.

Window Manager

On NixOS, I use Sway WM. I have multiple workspaces configured to run specific apps and a fully customized top menubar. Unfortunately, macOS is so behind in this area that I have to live with the native spaces.

Hotkeys

OS-level hotkeys and keyboard control are something that allows me to switch seamlessly across apps without wasting time on Alt-Tab, and move between macOS and NixOS with ease. This is also OS-specific. I use a combination of Hammerspoon and Karabiner-Elements on macOS. I use xkeysnail and Sway WM on NixOS. These tools allow me to make the same keyboard shortcuts do the same thing on both OSes.

Package Manager

I use nixpkgs and home-manager on both OSes. I have all my dotfiles stored in a git repo that I sync across my laptops and desktop. I also use nix-darwin on macOS to manage OS-level settings. I have tailscale running on all my machines, so I can ssh from one to another; it doesn’t matter if I am on the same WiFi network or a different one.

Launcher

I use Albert on NixOS and Alfred on macOS. I use them to open browser bookmarks a lot.

Browser

I use Chrome and Firefox with uBlock Origin. The internet is nowadays unbrowsable without an adblocker. I have tried other keyboard-centric editors, but I couldn’t find any with good adblocker support yet, so I have settled on vimium extension for now. Once you have multiple Google accounts, you start to see the account selection dialog everywhere and various other daily drudgery. I use Witchcraft that automates away all those problems.