My hardware and software setup for 2020

Published on December 22, 2019

This post is out of date and is for archive/comparison purposes only. See the 2021 post here

Physical setup

My desk is a 48”x24” Herman Miller Everywhere Rectangular Table. I wish I had gone with the white finish and legs for the table.

A giant AUKEY mouse pad covers the top, granting unlimited mouse travel, and it’s much nicer to have a soft surface than to place my wrists on the bare desktop.

I sit on a limited edition SOHO Premier Soft Pad Management Chair in brown Italian leather with a matte black aluminum frame. My previously chair was a generic padded dining chair, but it broke and now I use the seat as a foot rest.

I have a nice Poppin file cabinet that doubles as a second seat.


Main computer

My primary computer is a Mac Pro 5,1 2010. I bought it in an office liquidation auction in 2016. It’s considered end-of-life by Apple, but with third party support I’m able to continue using it.

I upgraded it with a wireless AC/bluetooth 4 card, 48GB of RAM, a SAPPHIRE PULSE RX580, and an NVMe boot drive along side several SSDs. I use OpenCore bootloader for EFI bootscreen and native Catalina support.

For peripherals, I use

Everything plugs in to a Belkin 8-Outlet surge protector.

Media computer

I use an Intel NUC 7i5BNH as a media computer, connected to my TV. It is outfitted with


I’m an Android user on a Pixel 4a.

My particular favorite apps are:


I use Bose SoundSport Wireless Headphones. I haven’t gone full wireless because I like having the neck wire to hang them from when I’m not wearing them.


White Pebble Time running rebble services. I’ve had two pebbles, both Kickstarter backer editions. I still consider the Time the best smartwatch.


My dotfiles, vimrc, zshrc, and Chrome extensions of choice are in GitHub if that’s what you’re into.

My terminal

CLI tools I use include:

  • fd for finding files and directories
  • fzf for fuzzy finding integrated with git, vim, and my shell
  • ripgrep for finding and filtering files by contents
  • z.lua a fast lua implementation if autojump / z
  • zinit for managing my zsh plugins

On the mac I use Catalina. I use iTerm2 because I like its window splitting features above all other terminal emulators.

On the NUC I use Manjaro Linux KDE version. Manjaro has the benefits of Arch Linux (IMO, primarily pacman and the AUR) without having to do the setup for the millionth time. And KDE Plasma is pretty. Konsole is my terminal emulator because it is non-electron, supports splitting without tmux, 24-bit color, customizable shortcuts and scrollback. It checks all the boxes for me. Terminator and Termite are my other terminal choices. I am not using them because they are libvte-based and I wanted to stay in the KDE world.


I still use Neovim having moved from Vim years ago. I follow HEAD since I’m prudent enough read the Gitter room and changelogs.

I made my own color scheme called ”meh.” It caters to what I consider important when looking at code.

My programming font of choice is Mozilla’s Fira Mono.

Neovim in Konsole


For note-taking, I converted to Joplin Notes last year. Joplin is cross-platform including mobile apps; it has markdown support, tagging, and end-to-end encrypted syncing. The desktop UI is a bit drab, but customizable via CSS.

Password manager

My password manager is Bitwarden, and I pay for Premium. I moved from KeepassXC to make sharing some passwords easier with my family.

File sync and backups

I wouldn’t be at a loss if I had re-provision with the same settings and restore my files.

For file syncing and sharing I use Dropbox and Google Drive (e.g. my resume, avatars, etc.). I always assume that things in those cloud services can go public at any time. For super private stuff, I have a Synology NAS I can access.

My cloud files and local photos and documents are synced to my NAS. I send encrypted, incremental snapshots of the synced drive to Backblaze B2 using restic running in a Docker container.

A few of my GitHub and GitLab repos are mirrored to a local Dockerized Gitea server in case either of those services go down or missing. Watchtower keeps my Docker containers up-to-date automatically.

On the OS-level, I keep my /etc backed up using etckeeper, and push to a remote git repo as backup.