My macOS configuration files.
- yabai — Tiling window manager
- skhd — Hotkey daemon
- JankyBorders — Window borders
- SketchyBar — Custom menu bar
- SketchyVim — System-wide Vim keybindings
- Ghostty — GPU-accelerated terminal
- Helix — Terminal text editor (with LSP for Elixir, Rust, TOML, JSON)
- Neovim + LazyVim — IDE-like Neovim config
- Starship — Shell prompt
- herdr — Terminal multiplexer for AI coding agents
- zoxide — Smarter cd
- Docker
- DataGrip — Database IDE
- Apidog — API development
- asdf — Version manager (Erlang, Node.js, Elixir, Rust)
- GnuPG
- nnn — Terminal file manager (custom fork)
- Sloth — Process inspector
- btop — System monitor
- lazygit — Git TUI
Most setup steps are in .install.sh
Config lives in .config/herdr/config.toml (prefix is ctrl+b; ctrl+space is
unusable on macOS because the input-source switcher claims it).
Plugins are installed into ~/.config/herdr/plugins/ at runtime, so the payloads
and plugins.json are gitignored. Restore them with:
sh ~/.config/herdr/install-plugins.shThat installs:
- herdr-sidebar — File explorer + source control pane
- herdr-resurrect — Restores panes and agents after a restart
- sessionizer — fzf project switcher
- tab-smart-rename — Names tabs from what the pane is doing
- agent-usage — Agent usage readout in the status bar
Plugin settings that are worth keeping (the herdr-resurrect allowlist and
settings) are tracked under .config/herdr/plugins/config/.
The config is done entirely in Lua (and some C), using SbarLua. One-line install for sketchybar config (requires brew):
curl -L https://raw.githubusercontent.com/shegx01/dotfiles/master/install_sketchybar.sh | sh