← Back

My Dotfiles In Plain English

I keep updating my Dotfiles to sync all of my Mac machines. Dotfiles are configuration files on the system which can be edit and share as a plain text. They're called "dotfiles" because they typically have leading . to make them hidden from the file system by default. Dotfiles can be built from scratch, or using tools like rcm, Dotbot, or even Ansible. Having shared Dotfiles availble on GitHub means I can setup a new Mac with all the apps I want using only a few commands. I use make command which calls Dotbot to install things for me, including :

  • Install essential package managers
    • Homebrew package manager for both command line tools and GUI apps (casks)
    • mas for apps in Mac App Store
    • asdf for managing multiple programming languages with multiple versions
  • Symlink all the dotfiles to ~ :
    • Zsh : .zshrc with Zinit, an ultra-fast Zsh plugin manager (Much faster than Oh-My-Zsh!)
    • Powerlevel10k
    • Yabai - The only working tiling window manager for macOS.
    • Tmux : Use gpakosz's .tmux with Tmuxinator to manage complex Tmux sessions
    • Karabiner Elements : The ultimate keyboard customizing app which I have been using for so many years. However, I use Goku to generate the Karabiner JSON file from the .edn format
  • For some GUI apps which does not support Dotfiles, I sync their settings with mackup with Syncthing.

(This page is still work in progress)