Dotfiles and configuration for my macOS development environment.
./install.sh # Install required apps and tools
./deploy.sh # Deploy all configs (backs up existing)
./deploy.sh zsh nvim tmux # Deploy specific configs onlyUses LazyVim framework. Config lives in nvim/.
User settings: vscode-settings-user.json
-
Install tmux plugin manager:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm -
Copy config and install plugins:
cp tmux.conf ~/.tmux.conf -
Start tmux, then press
Ctrl-a + Ito install plugins
-
Install Oh My Zsh:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" -
Copy config:
cp zshrc ~/.zshrc
AeroSpace - tiling window manager for macOS
cp aerospace.toml ~/.aerospace.tomlcp gitconfig ~/.gitconfig| App | Description |
|---|---|
| Brew | macOS package manager, install everything else through this |
| Ghostty | GPU-accelerated terminal emulator |
| AeroSpace | i3-like tiling window manager for macOS |
| Bruno | Offline-first API client, alternative to Postman |
| Docker | Containers for local dev and databases |
| VSCode | Code editor for larger projects |
| Brave Browser | Privacy-focused Chromium browser |
| Zen Browser | Firefox-based browser with vertical tabs |
| DBeaver | Universal database GUI client |
| Bitwarden | Open-source password manager |
| Obsidian | Markdown-based knowledge base |
| Numi | Text-based calculator with unit conversions |
| Discord | Community and team chat |
| Telegram | Messaging |
| App | Description |
|---|---|
| GitHub CLI | PRs, issues, and repos from the terminal |
| NVM | Switch between Node.js versions per project |
| Neovim | Terminal editor, configured with LazyVim |
| Golang | Go programming language and toolchain |
| Rust | Rust language and Cargo package manager |
| Bun | Fast JS/TS runtime, bundler, and package manager |
| UV | Blazing fast Python package and project manager |
| miniconda | Minimal Conda installer for Jupyter notebooks |
| AWS CLI v2 | Manage AWS services from the terminal |
| AWS Vault | Securely store and switch AWS credentials |
| kubectl | CLI for managing Kubernetes clusters |
| Tool | Description |
|---|---|
| htop | Interactive process viewer |
| tmux | Terminal multiplexer for split panes and sessions |
| zoxide | Smarter cd that learns your most visited directories |
| fzf | Fuzzy finder for files, history, and anything piped to it |
| tree | Display directory structure as a tree |
| tig | Interactive Git log viewer in the terminal |
| ripgrep | Extremely fast recursive text search (rg) |
| rsync | Fast incremental file and directory sync |
| jq | Command-line JSON processor |
| JankyBorders | Highlight active window with colored borders |
brew install htop tmux zoxide fzf tree tig ripgrep rsync jqJankyBorders requires a separate tap:
brew tap FelixKratz/formulae
brew install bordersDisable press-and-hold for VS Code (enables key repeat):
defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false
defaults delete -g ApplePressAndHoldEnabledDrag windows from anywhere with Ctrl + Cmd + click:
defaults write -g NSWindowShouldDragOnGesture -bool true