Software I Use

Custom Keyboard Shortcuts

Karabiner for custom key maps.
For example, I’ve remapped CapsLock to Command on hold and Escape if pressed by itself. Same with the semicolon key, it acts as CMD+SHIFT+CTRL on hold or sends ; if pressed by itself.

BetterTouchTool for binding system actions.

Keyboard Maestro for creating macros and automation. The Palette feature is great.

Window Switcher

I’ve tried two popular window switchers, Contexts and Witch.

I prefer the features and UI in Contexts. I mainly use its search feature and customizable app switcher.

Text Editors

Intellij IDEA

For programming, I use Intellij IDEA. I use it for everything since you can download plugins that’ll let you code in Java, Go, Python, and more. I haven’t had any serious performance issues and it’s packed with tools.

Intellij has a solid Vim plugin too. IdeaVim lets you map IDE actions in your .ideavimrc file.

Here are a couple other plugins I like:

  • KJump
  • SaveActions
  • Material Theme UI
  • Rainbow Brackets


Vim makes editing text fun again. I use Neovim in iTerm2 for writing and making quick edits, and IdeaVim for programming.

Vim has a learning curve, but you can become very productive editing text since most commands are just 1-3 key presses away.

Notes and Todo Lists

I get things done by crossing things off a checklist, they’re great. There’s even a book on why they’re great. I’ve tried a lot of todo list and note-taking apps in the past, but vimwiki was the winner for me.

Vimwiki lets you construct linked texts files so you can easily organize notes and ideas. It also includes support for check lists and journaling.

I have iTerm2’s hot key window mapped to a global key bind so I can easily jot notes down and jump back to whatever I was doing. I wanted something similar to Capture in org-mode.


Alfred is a mac productivity tool that’s packed with features. I mainly use it for searching apps, files, and the web.

I’ve also written a post on what hardware I use.