You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
5.7 KiB

---
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.