My personal macOS setup. For those who no longer find spiritual enlightenment in the 47-click System Preferences pilgrimage after each reinstall.
- macOS Defaults: Disables animations in favor of speed and responsiveness
- Key Repeat: Set to ludicrous speed for zooming around in vim
- Finder: Forces column view because efficiency matters
- No More Accents: Disabled the accent menu that pops up when you hold a key
- Hammerspoon: Hotkeys for essentials like:
super+A
: Toggling between AirPods and laptop speakers (because auto switching is finicky at best)super+D
: Toggle dark mode
- Amethyst: Window management for keyboard-focused workflows
- Karabiner/LinearMouse: Input device customizations for maximum comfort (mouse acceleration, caps lock doubles as ESC/ctrl)
- Fish Shell: With vi mode and aliases etc
- Zed: The new daily driver
- Vim/Neovim: I mean I probably could live with vanilla vim/neovim but I keep the config around
- VS Code: I hate it, but I use it
- Doom Emacs: For when you want your text editor to be an operating system - mostly used as glorified git client with magit
-
Clone this thing:
git clone https://github.com/stephenkirk/dotfiles.git ~/dotfiles
-
Run the script:
cd ~/dotfiles ./setup.sh
-
Go make coffee. Or tea. Or grab a beer. This will take a bit.
- Installs Homebrew
- Installs a ton of stuff from Brewfile:
- All the dev tools (git, python, rust, go, etc.)
- CLI utilities that make terminal life bearable
- Apps like VSCode, iTerm2, and more
- Configures macOS with sensible defaults
- Symlinks configs so everything just works™
Peruse the Brewfile if you're curious about what I use daily. It's a mess, but it's my mess.
Fork it. Break it. Fix it. It's yours now.
- iterm themes aren't auto-installed, you'll need to do that yourself (gasp)
- Some shortcuts are very specific to my workflow (see: the "Productivity Enhancement" Balatro alias)
- All text autocorrections and substitutions are disabled (smart quotes aren't that smart)
-- One-key audio device switching (Hammerspoon)
hs.hotkey.bind(super, "A", function()
-- Toggle between speakers and AirPods because menus are for people with time to waste
end)
# Smart PR review list command
function to_review
gh pr list -S "review-requested:@me" --json title,url,author --jq 'map("[\\"@\\(.author.login): \\(.title)\\"](\\(.url))") | .[]'
end
# Disable animations and speed up macOS
defaults write -g NSWindowResizeTime -float 0.001
defaults write -g NSToolbarFullScreenAnimationDuration -float 0
defaults write com.apple.dock expose-animation-duration -float 0
# The most important productivity tool
function balatro
"/Users/stephenkirk/Library/Application Support/Steam/steamapps/common/Balatro/run_lovely_macos.sh" $argv
end