A collection of dotfiles designed for a modern macOS development workflow. Features fast shell startup, intelligent command-line tools, and streamlined Git operations.
Terminal: iTerm2 with MesloLGS NF font
eza
: A modern replacement forls
with Git integrationbat
: Acat
clone with syntax highlightingripgrep
: Fast search tool (replacement for grep)fd
: User-friendly alternative tofind
fzf
: Fuzzy finder for files and historyzoxide
: Smarter directory navigation that learns from your habitsdelta
: Better Git diff viewing
- Automatic Node version switching with
fnm
- System monitoring with
btop
- HTTP requests with
httpie
- Directory visualization with
tree
- Simplified man pages with
tldr
- Fast shell startup with Powerlevel10k instant prompt
- Syntax highlighting
- Command auto-suggestions
- Fuzzy completion
- Rich command history
- Directory jumping with zoxide
# Clone the repository
git clone https://github.com/builtbylane/dotfiles.git ~/.dotfiles
# Run the installation script
cd ~/.dotfiles
./install.sh
The installation script will:
- Create necessary symbolic links
- Install Homebrew if not present
- Install required packages
- Set up Zinit (Zsh plugin manager)
- Configure private settings (see below)
Two private configuration files are created during installation:
-
~/.private_env.zsh
:- Store sensitive environment variables
- Add personal aliases
- Configure API keys
- Add any machine-specific settings
-
~/.gitconfig.private
:- Store Git credentials
- Configure work-specific Git settings
- Add private Git aliases
# Open current GitHub repository in browser
gopen
# Open current branch's PR page
gpr
# Clone and CD in one command
gclonecd https://github.com/user/repo
# Cleanup merged branches (protects important branches) *
gclean
# Copy last commit message to clipboard
cl
# List local branches sorted by last commit date
git lb
# List all branches (including remote) sorted by last commit date
git lba
** Protected branches that won't be deleted: main
, master
, develop
, staging
, prod
, production
*
# Rebase current branch with latest main/master
git update
# Rebase current branch with any remote changes on current branch
git update-branch
# Squash commits for clean history
git squash
# Push with force-with-lease safety
git pub
Protected branches that won't be deleted: main
, master
, develop
, staging
, prod
, production
.. # cd ..
... # cd ../..
zi # Interactive zoxide navigation
cdf # cd to current Finder folder
ls → eza
cat → bat
find → fd
grep → rg
r → npm run
yr → yarn run
br → bun run
pr → pnpm run
c → code .
dot → code ~/.dotfiles
.dotfiles/
├── install.sh # Installation script
├── Brewfile # Homebrew dependencies
├── .zshrc # Main shell configuration
├── zsh/
│ ├── aliases.zsh # Command aliases
│ ├── options.zsh # Shell options
│ ├── paths.zsh # PATH configuration
│ └── functions/
│ ├── git.zsh # Git utilities
│ └── navigation.zsh # Navigation helpers
├── git/
│ ├── .gitconfig # Git configuration
│ └── .gitignore # Global gitignore
└── templates/
├── private_env.template
└── gitconfig.private.template
# Pull latest changes
cd ~/.dotfiles
git pull
# Re-run installation script
./install.sh
The installation script is idempotent and can be run multiple times safely.
Add to ~/.private_env.zsh
for machine-specific aliases or aliases.zsh
for shared ones.
Place new function files in zsh/functions/
- they'll be automatically loaded.
- Shared settings: Edit
.gitconfig
- Private settings: Edit
.gitconfig.private
- Shell startup time is optimized through async loading
- Git configuration uses modern safety defaults
- All tools are configured for a dark terminal theme
- The shell history is configured for 100,000 entries