Personal dotfiles for macOS and Linux, managed by strap — a Go-based TUI installer.
This repo contains configuration files for 20+ tools and a custom CLI (strap) that symlinks configs, installs packages, sets up SSH/GPG keys, and configures system preferences — all from an interactive terminal UI.
git clone https://github.com/neoighodaro/dotfiles.git ~/Developer/dotfiles
cd ~/Developer/dotfiles/cli
go build -o strap .
./strap installPreview without making changes:
./strap install --dry-runConfigs are symlinked from configs/ into $HOME. Platform-specific variants are handled automatically.
| Category | Tools |
|---|---|
| Shell | Zsh (autosuggestions, syntax-highlighting, 200k history), Starship prompt |
| Terminals | Ghostty, Wezterm, Zellij |
| Editors | VS Code, Cursor, Claude Code |
| Git | Delta diffs, SSH signing, 35+ aliases, global hooks |
| macOS | AeroSpace (tiling WM), Karabiner, Sketchybar, Hazel |
| Kubernetes | K9s with custom skins |
| Other | Lazygit, Ansible, SSH, GPG, curl, wget, screen |
Homebrew formulas — starship, eza, bat, zoxide, fzf, zellij, lazygit, git-delta, bun, ripgrep, fd, jq, gnupg, and more.
Homebrew casks — Ghostty, Cursor, Docker, 1Password, Arc, Raycast, AeroSpace, and more.
Linux — a curated subset installed via apt.
- Creates standard directories (
~/Developer, etc.) - Links utility scripts to
~/Developer/bin - Generates SSH (ed25519) and GPG keys
- Sets macOS system preferences
- Configures default shell to Zsh
k # kubectl
lg # lazygit
cat # bat (syntax-highlighted cat)
rm # trash (safe delete on macOS)
please # sudo last command
reload # re-source .zshrc
flushdns # flush macOS DNS cacheThe full alias list is in configs/zsh/aliases.sh.
configs/ # Tool configurations (symlinked to $HOME)
cli/ # strap — the Go TUI installer
scripts/ # Utility scripts linked to ~/Developer/bin
wallpapers/ # Desktop wallpapers
worktrunk/ # Worktrunk commit generation config
legacy/ # Old shell-based installers (deprecated)
MIT — Neo Ighodaro
