My Mac Setup - 2020/21: Getting close to OS nirvana
Published: 2021-01-26 14:15:32

---
title: My Mac Setup - 2020/21: Getting close to OS nirvana
published: true
description: The Covid Year
tags: 
//cover_image: https://direct_url_to_image.jpg
---

Here's how I set up my Mac. I feel like it's pretty close to the perfect setup for me. There are a couple of minor annoyances but the tools below really help with my flow and general good productivity vibes *cracks knuckles, drinks coffee, ends up reading Twitter for 10 minutes*...

## Clipboard Manager
This is, without doubt, the biggest productivity booster and main contributor to overall feelings of time savings: working with the OS instead of fighting against it. 
It doesn't really matter which clipboard manager you use (I use the one built into [Alfred](https://www.alfredapp.com/)) just so long as:

- It keeps a long history
- Is available with an easy keypress combo. I use CMD+Shift+v. 
- It can store and display text and images
- It is searchable
- In Alfred  it shows the icon of the Application you were in when you copied the data to your clipboard, which helps find older entries

There are two main workflows I use the clipboard manager for. 

First is being able to search through a long history. URLs, images, code snippets I used yesterday. Being able to search through a few days of history feels like a superpower. I think I probably make use of this workflow about 50 times a day. 

Second is loading up several items of data into the clipboard in one app and then pasting them into another. Classic use-case for this is credit card data out of Bitwarden and into a web page. Similar for things like DB connection parameters. 

## Keyboard Based Window Manager
I am totally in love with [Hammerspoon](http://www.hammerspoon.org/). Most people probably discover it as a window snapping tool but it is so much more than that. I have my Hyper key set up as Caps Lock via [Karabiner](https://karabiner-elements.pqrs.org/). 

Hammerspoon helps you move windows around using keyboard shortcuts, but the API covers so much of OSX and related Apps, it really is selling it short to describe it like that. Here are some ways I use it:

- Snap windows to different parts of my screen
- Bounce windows between my MacBook and external screen
- Set up all windows for different work contexts (development/comms/reading browser etc.) in 1 shortcut
- Focusing on different windows with 1 shortcut. I can get to the 8 most used apps with single shortcuts like caps + i for iTerm. 
- Changing MacBook desktop resolution for when I'm feeling old and don't need the high dpi. 
- Running a Caffeine equivalent in my menu bar
- Changing sound output (Mac speakers/Jabra/Hifi)
- Play/Pause/Skip on Spotify
- Setting default volume in different contexts

Like I said, the API is great. You script Hammerspoon with Lua so you can pretend to be a game dev whilst you're at it. 

## Screenshot grabber

Tried loads, settled on [Zappy](https://zapier.com/zappy) from Zapier. Free, fast, does video, super easy to add annotations. Lightweight. Well done Zapier. 

Added the [s3-image-upload Alfred](https://github.com/tonyxu-io/Alfred-Workflow-Upload-S3) plugin to Alfred so that I can share clipboard images online with one Alfred command, 

## Alfred / Launcher
Alfred is very well known. Great software, I pay for upgrades as soon as they are available! My plugins:

- Create a Gist from clipboard contents
- Create Calendly links
- Create Zoom links
- Upload clipboard to S3 and create public URL
- Search Obsidian
- Search Github Projects

## Infinite History
[This is genius](https://github.com/larkery/zsh-histdb). Every single zsh command I've entered for the last ~9 months is stored in a sqlite database, instantly searchable. An amazing time saver for commands you run infrequently like obscure docker or gitlab-runner incantations. 

## ZSH tools
I use [zimfw](https://github.com/zimfw/zimfw) but I still feel like it takes too long to open a new terminal tab. I use the [Powelevel10k](https://github.com/romkatv/powerlevel10k) theme which helps in that you can start typing as soon as a new tab is open but ZSH is not fully loaded, but it's still a delay. Still searching for a solution to this! 

## Dock
I use this [iVANKY](https://www.amazon.co.uk/IVANKY-Docking-Station-Multiport-MacBook/dp/B089K8ZS2L) dock. It's pretty good, but has a super weird bug when using Zoom where the network gets knocked out for a few minutes at a time. Super annoying! Zoom must be sending unusual traffic and I can't be bothered to figure out the root cause. Hoping it will go away in an OSX update at some point!

## Best of breed apps
I've settled on the following. These haven't changed all year, so I guess I like them.

- [Table Plus](https://tableplus.com/). Finally you can work with postgres databases with a beautiful app. 
- [Paw](https://paw.cloud/). Hands down the best REST GUI there is. The level of polish in Paw is just incredible. Plus they don't charge a regular fee for standard git style cloud storage. I love it so much. 
- [Sublime Merge](https://www.sublimemerge.com/). Fast as hell. I still end up in a git mess every now and then but at least I get there quickly.
- [Mimestream](https://mimestream.com/). Gmail client. SEVEN MB. YES. SEVEN. Spiritual successor to Sparrow. Amazing. Love it. Would pay 200 dollars for a license when it comes out of beta without any hesitation. 
- [Wireguard](https://www.wireguard.com/install/). Worth the hype. 
- [Bitwarden](https://bitwarden.com/). I self host [bitwarden_rs](https://github.com/dani-garcia/bitwarden_rs).