What I use
Get an idea of what I'm using day to day, and what I do to optimize the way I work.
- macOS - Operating System
- iTerm2 - terminal
- zsh - shell
- Vim - vim editor via MacVIM GUI
- tig - terminal git client
- Hammerspoon system automation
- iA Writer - notes app
- ErgoDox EZ keyboard
Dotfiles
I keep a Dotfiles repository with all the setup I can configure using files or commands. This includes vim, zsh, Git, Ruby, Hammerspoon, cloc, FZF, ctags, macOS, etc.
Git tooling
I've written a linter for Git called Lintje that validates Git commits. It checks if commits follow the preconfigured set of rules.
To simplify creating Pull Requests with multiple commits I've written commit-format. It makes it easier to copy commits from the terminal to Pull Request descriptions.
Editor
I use vim as my primary text editor. Switching to vim saved me much time in the long run, being able to customize it to my needs.
The theme I use is called Twilight, a dark theme based on a Sublime Text theme, but customized for my vim setup.
The alternative theme I use is called vim pencil, which is a light color theme. I switch to this theme when I write text such as documentation, blog posts and novels. This creates distance from the coding I do most of the time.
Keyboard
I try to keep my work setup as ergonomic as possible. To do so I'm using an ErgoDox EZ keyboard. I use this split keyboard to keep my hands further apart from one another, which helps with better posture.
As an added benefit the keyboard is 100% programmable, which I used to my advantage to create a lot of custom shortcuts. See my ErgoDox EZ keymap repository for the details.
System automation
Hammerspoon is a macOS specific app that allow for system automation. It can be customized to the user's specific needs, which I find very important, because everyone's preferences are different.
My setup includes window management, application switching, switching keyboard layouts between a "normal" keyboard and my ErgoDox EZs, and enabling/disabling Wi-Fi and Bluetooth. It even controls which applications are visible at any given time.
I've written about why I use and how I use Hammerspoon to switch between applications and how that speeds up my workflow.