Mac Utilities Im Using in 2020

Craig Huber
5 min readJan 30, 2020

--

If you’ve been been developing for a while, chances are you might be stuck in a workflow thats holding you back. I have been using the same tools for years and never thought to change my habits or routines. Recently, I’ve discovered some useful hacks, utilities and shortcuts that have really improved my productivity (or so I like to think) so I thought I’d share a few. I’m sure there are some paid equivalents to these apps but I’ve tried to focus on open source ones.

Flycut

Before I found Flycut whenever I copied something important to my clipboard I would copy it to notepad as a backup incase something else might overwrite my clipboard later. Flycut allows you to copy text and save to a clipboard manager which you can recall later using a shortcut. So, if you need to re-paste something that was in your clipboard 3 days ago you can do that with a shortcut. Flycut can store up to 100 items and can sync with iCloud.

Flycut Clipboard Manager

alt-tab-macos

I switched to MacOS in 2007 but one of the things I’ve always missed about Windows is alt-tab window switching. Mac has command-tab but it doesn’t show you previews of the applications in use and also doesn’t show them if they are minimized to the dock. I’ve searched for years to this problem and now alt-tab-macos solves it. It’s a bit buggy but new releases are coming out often.

Graphical Previews of Open Windows

Rectangle

MacOS has had split screen since Yosemite. To use it though, you have to drag and drop your windows to the edges for it to turn on. Who’s got time to do that when you can use a keyboard shortcut. There are many window managers out there that do the same but I like rectangle because its written in Swift and there a frequent releases.

Split Screen

FZF

A colleague once suggested I install this but I ignored it because I didn’t understand why I would need it. I use Fish shell and it already has really good command line auto-completion. FZF becomes really handy when you cant remember the full syntax of the command you need. For example, if you can only remember a couple characters of the command in question, you can just control+r and type the characters you do remember to do a fuzzy search through your history. Luckily there is also an fzf fish shell integration that you can install here.

Fuzzy searching history for `lambda`

Dot

I kept hearing about dotfiles but never knew how people managed them until I can across dot. Dot allows you to store all your vim, bash, vscode config files in GitHub, but have them synced to your local machine via git. That way, if you need to setup your dev environment on a new machine you can just run the following command to sync your dotfiles.

$ dot init ubnt-intrepid/dotfiles
$ dot check

The missing link that dot provides is it symlinks ~/.dot/.somefile according to a .mappings file like so:

[general]
"vim/vimrc" = "~/.vimrc"
"nano/nanorc" = "~/.nanorc"

Bat

Bat is a drop in replacement for the command line tool cat except it has more features. It does things like syntax highlighting, git integration.

Syntax highlighting in cat

Exa

Exa is like ls on steroids. I symlink ls to exa and use it for coloured output, git integration, human friendly file sizes.

Git Integration, Coloured Output

Z

Even with fzf and Fish auto-completion changing directories often can be a pain. Z allows you to change directories with minimal keystrokes. Z tracks your most frequently used directories and makes an educated guess to which directory you’re trying to change into. So you can type:

z foo

And if foo actually lives in /home/me/docs/apps/dev/foo, you’ll be changed to that directory. Fish integration here

ripgrep

ripgrep allows you to search a directory using a regex pattern while still respecting .gitignore. I store all my notes in markdown using notable. Using ripgrep I can search all my notes without ever leaving the commandline.

age

I don’t know anyone that actively pgp encryption due to its complexity and cumbersome setup. More frequently I find myself encrypting files these days and age seems is easy to get up and running. It works with ssh keys or passphrases as well

$ age -p secrets.txt > secrets.txt.age
Enter passphrase (leave empty to autogenerate a secure one):
Using the autogenerated passphrase "release-response-step-brand-wrap-ankle-pair-unusual-sword-train".
$ age -d secrets.txt.age > secrets.txt
Enter passphrase:

Chrome Search Engine Keywords

It blows me away that most people don’t care or dont use chrome search engine keywords. With these keywords setup, you can type something like:

yt <tab> dogs 

To search YouTube for “dogs” without having to go to www.youtube.com, finding the search box, entering your query and pressing enter. I have the following shortcuts setup:

Shortcut       Keyword                         Url                        
------------------ --------- --------------------------------------
Chrome Bookmarks chb chrome://bookmarks/?q=f
Chrome History chh chrome://history/?#q=%s
Github gh https://github.com/search?q=%s
Google Maps gm https://www.google.com/maps/search/%s
Youtube yt https://www.youtube.com/results?search_query=%s
Soundcloud sc https://soundcloud.com/search?q=%s
yt: dogs

--

--

Craig Huber

Craig Huber is a Senior Devops Engineer where he focuses on building cloud infrastructure, automation, containers and helping teams deploy their applications