Personal dev environment setup that I use across machines. Nothing fancy, just automates the boring stuff so I can get coding faster.
- Shell setup: Zsh with Oh My Zsh, Powerlevel10k theme, and the usual productivity plugins
- Git config: Bunch of useful aliases and GPG signing setup
- Utility scripts: Random tools I've built over time for downloading videos, checking packages, etc.
- Cross-platform: Works on both macOS and Linux (And no, windows doesn't count as a developer machine)
dotfiles/
├── bin/ # My custom scripts
│ ├── getVideo # yt-dlp wrapper
│ ├── packageCheck # Check Python package security
│ └── ... # Other random utilities
├── config/
│ ├── zsh/ # Zsh configs and themes
│ ├── bash/ # Bash fallback
│ ├── shell_common/ # Shared stuff (aliases, functions)
│ ├── shell_work/ # Work-specific configs (empty by default)
│ ├── gitconfig.aliases # Git shortcuts I actually use
│ └── .editorconfig # editorconfig for IDEs to pick up globally
├── test/ # Linting scripts
├── install # Python installer script
└── uninstall # Clean removal
Just clone and run the installer:
git clone <this-repo> ~/workspace/dotfiles
cd ~/workspace/dotfiles
./installThe installer will:
- Back up your existing configs (adds
.backupsuffix) - Install Oh My Zsh and plugins
- Set up symlinks for all the dotfiles
- Configure Git (it'll ask for your email)
- Set up GPG signing if you have it
> ./install -h
usage: install [-h] [--zsh] [--symlinks] [--gpg] [--git] [--all]
Install/setup utility
options:
-h, --help show this help message and exit
--zsh Setup oh-my-zsh, plugins and themes
--symlinks Create symlinks for dotfiles and bin
--gpg Configure GPG agent and pinentry
--git Configure Git and GPG signing
--all Run all tasks (default if no flags are provided)Shell improvements:
- Smart autocompletion and syntax highlighting
- History search that actually works
- A decent-looking prompt (Powerlevel10k)
Git shortcuts (just a few favorites):
git s # status
git lo # pretty log
git peeps # who's been committing
git whoami # current git identityRandom utilities:
getVideo <url> # Download videos with sane defaults
packageCheck <package> # Check Python package security via SnykIf you want to undo everything:
./uninstallThis removes symlinks and restores your original files.
- Add work stuff to
config/shell_work/(git ignored) - Platform-specific aliases go in
config/shell_common/darwin.aliases.shorlinux.aliases.sh - Toss new scripts in
bin/(included in path)
- Python 3.13+ (for the installer)
- Git
- GPG (optional, for commit signing)
That's about it. Feel free to fork and adapt for your own setup.