--- title: My Setup at the beginning of 2021 tags: - FZF - Linux - ZSH description: How I work at the beginning of 2021 date: 2021-01-08 --- Inspired by [The Orange One's State of the Apps](https://theorangeone.net/posts/state-of-the-apps-2021/), 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](https://archlinux.org/) 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](https://git.jonathanh.co.uk/jab2870/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](https://i3wm.org/) 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](https://github.com/davatorium/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](https://github.com/neovim/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](https://github.com/Shougo/deoplete.nvim) 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](https://github.com/junegunn/fzf.vim) 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](https://jonathanh.co.uk/blog/the-switch-to-zsh.html). ## Browser I use a [customized version of Firefox](https://jonathanh.co.uk/blog/keyboard-driven-firefox.html). The most significant changes I have made to it are the hiding of the top bar and the use of [Tridactyl](https://github.com/tridactyl/tridactyl) which adds vim-like bindings to Firefox. A recent addition I made was [Firevim](https://github.com/glacambre/firenvim) which embeds a neovim client into text areas. ## Email My personal email provider is [Protonmail](https://protonmail.com/). I am very happy with it. My [email setup](https://jonathanh.co.uk/blog/mutt-setup.html) consists of neomutt, vim, mbsync, notmuch and imapfilter. ## Calender I have recently come across [Remind](https://dianne.skoll.ca/projects/remind/) which has replaced [Calcurse](https://www.calcurse.org/) 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](https://blog.thechases.com/posts/remind/). ## RSS This is pretty simple. I use [Newsboat](https://newsboat.org/). It does everything I need it to, it's configurable and has vim-like key bindings. Incidentally, 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](https://nextcloud.com/) that provides me with file sync, online editing and sync for contacts, calender etc. ## Keyboard I still use the [Colemak](https://colemak.com/) keyboard layout which has been designed for ergonomic typing. I do the majority of my typing on an [Ergodox EZ](https://ergodox-ez.com/). ## Passwords I use [Pass](https://www.passwordstore.org/) 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](https://f-droid.org/en/packages/dev.msfjarvis.aps/) 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](https://www.indiegogo.com/projects/pro1-x-smartphone-functionality-choice-control#/). Both of these ship Linux and I'm hoping that I'll be able to replace my android handset as my daily driver.