My Setup at the beginning of 2021

2021-01-08

Inspired by The Orange One’s State of the Apps, I thought I would document the tools I use to get my job done. If for no other reason than to look back next year and see what has changed.

OS

I’m running Arch Linux on all my computers. This is because it works well for me. All the packages I could ever need are available and there is no reason for me to change.

For other people’s computers that I maintain ( parents, wife etc. ), I normally put Manjaro on there. It is quick to set up and if I ever need to ssh in to fix or install something, I can use the same commands I do on my personal machines.

Desktop Environment

DWM. I don’t understand why tiling window managers aren’t the default. I remember when Windows (Vista?) introduced their window snapping and thinking at the time that this was how computers should work.

i3 is another great tiling window manager that I used to use and I normally still recommend to people who want to try one.

I use Rofi as my program launcher and for various other scripts. In the coming year, I may look to switch this to dmenu or fzf. I am happy with rofi and have no real reason to change other than curiosity.

Editor

Neovim. This year saw me make the switch from Vim to Neovim as my primary editor. Initially, the thing that convinced me to make the switch was Deoplete although since moving I have also taken advantage of neovim’s excellent language server support.

In terms of plugins for vim / neovim, I try to keep it to a minimum. As I mentioned, I have deoplete with a couple of completion sources. I have a couple of language definitions and a colour scheme.

One plugin I do use and rely on heavily is FZF which provides fuzzy searching of files, help pages, buffers or anything else I give it.

Shell

I use ZSH as my shell. During this last year I have moved away from oh-my-zsh. In doing this, I have noticed a significant speed increase in my shell.

If you’re interested, you can read about why I choose ZSH.

Browser

I use a customized version of Firefox. The most significant changes I have made to it are the hiding of the top bar and the use of Tridactyl which adds vim-like bindings to Firefox. A recent addition I made was Firevim which embeds a neovim client into text areas.

Email

My personal email provider is Protonmail. I am very happy with it. My email setup consists of neomutt, vim, mbsync, notmuch and imapfilter.

Calender

I have recently come across Remind which has replaced Calcurse as my calender application of choice. It is configured, and reminders are added using a text file (or a collection of text files). These can then be version controlled.

It allows for complex reminder logic to be specified. I may well write a blog post about it in the future but, for now, just know that you can use many programming constructs like if statements when defining events.

For a more detailed introduction, I strongly recommend Tim Chase’s post on Remind.

RSS

This is pretty simple. I use Newsboat. It does everything I need it to, it’s configurable and has vim-like key bindings.

Indecently, this is also how I manage my YouTube subscriptions. Any new videos come into my RSS reader, I watch them using MPV and then I stop watching youtube. This has been one of the biggest increases to my productivity. I no longer get youtube suggestions so I don’t find myself getting lost in the endless rabbit holes of youtube. I watch what I want to watch and then I get on with something else.

Notes

I just use Vim. I am currently working on a shell script to help me better index my folder of notes although I’ll write a blog post about that when it is nearer a first stable release.

Online Hosting / File Sync

I host in instance of Nextcloud that provides me with file sync, online editing and sync for contacts, calender etc.

Keyboard

I still use the Colemak keyboard layout which has been designed for ergonomic typing. I do the majority of my typing on an Ergodox EZ.

Passwords

I use Pass which is a thin wrapper around Git and gnupg. Passwords are stored in an encrypted text file and version controlled with Git. On my phone I use Password Store which works in almost the same way.

Phone

I currently use a rooted, de-googled Samsung Note 8. There is not much to say really except almost all my apps come from F-droid. I have been unhappy for a while with the current state of phones, although that is starting to change with the advent of new GNU/Linux phones. I have a Pinephone being delivered soon and have ordered a FX Tech Pro1 X. Both of these ship Linux and I’m hoping that I’ll be able to replace my android handset as my daily driver.