Personal dotfiles configuration for macOS development environment.
This repository contains configuration files for various tools and applications used in my development workflow. All configurations are managed using GNU Stow for easy symlink management.
.zshrc- Zsh configuration with Oh My Zsh, Powerlevel10k, and custom aliases.p10k.zsh- Powerlevel10k prompt configuration
.gitconfig- Git configuration with aliases, colors, and delta integration.gitignore- Global gitignore patterns
.config/fish/- Complete Fish shell configurationconfig.fish- Main Fish configuration with paths, aliases, and tool integrationsconf.d/fnm.fish- Fast Node Manager (fnm) integrationfish_variables- Fish universal variables
.config/sketchybar/- macOS status bar configurationsketchybarrc- Main configuration filecolors.sh- Color scheme definitionsicons.sh- SF Symbols icon definitionsitems/- Status bar item configurationsplugins/- Status bar plugin scripts
.config/starship.toml- Cross-shell prompt configuration
Before setting up these dotfiles, ensure you have the following installed:
git clone https://github.com/yourusername/dotfiles.git ~/dotfiles
cd ~/dotfilesbrew install stow# Install Oh My Zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Install Powerlevel10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# Install other tools
brew install eza dust ouch fnm starship fish# Deploy all configurations (will adopt existing files)
stow -t ~ . --adopt
# Or deploy specific packages
stow -t ~ .zshrc
stow -t ~ .p10k.zsh
stow -t ~ .gitconfig
stow -t ~ .configl,ll,la,lt- Enhancedlscommands usingezac- Open current directory in VS Codecr- Open current directory in Cursordu- Disk usage withdustcomp/decomp- Compression utilities withouch
- Delta for enhanced diffs
- Useful aliases (
gco,gcb,gcm,gst, etc.) - Automatic rebase on pull
- Autosquash and autostash enabled
- Fast Node Manager (fnm) for Node.js version management
- Automatic Node version switching on directory change
- Modern shell with syntax highlighting
- Git abbreviations
- Tool integrations (starship, direnv, zoxide)
- pnpm and Bun support
- Custom macOS status bar
- System monitoring (CPU, battery, volume)
- Media controls
- Window management integration
To add new configuration files:
- Add the file to this repository
- Run
stow -t ~ .to create symlinks - Commit the changes
Example:
# Add a new config file
echo "some config" > ~/dotfiles/.vimrc
git add .vimrc
git commit -m "Add vim configuration"
# Deploy it
stow -t ~ .To update existing configurations:
- Edit the files in this repository
- Changes are automatically reflected in your system (via symlinks)
- Commit the changes
If you encounter conflicts when running stow:
# Use --adopt to move existing files into the repo
stow -t ~ . --adopt
# Or remove conflicting files first
rm ~/.conflicting-file
stow -t ~ .If symlinks become broken:
# Remove all stow symlinks
stow -D -t ~ .
# Recreate them
stow -t ~ .If Fish shell isn't working properly:
# Reinstall Fish configuration
stow -D -t ~ .config
stow -t ~ .configThis project is licensed under the MIT License - see the LICENSE file for details.
- GNU Stow for dotfile management
- Oh My Zsh for Zsh framework
- Powerlevel10k for the prompt theme
- Sketchybar for the status bar
- Fish Shell for the modern shell experience