Skip to main content

A collection of dotfiles for macOS that make your terminal experience comfortable, productive, and visually pleasing with a consistent Gruvbox theme.

Features: Gruvbox colours β€’ Starship prompt β€’ Productive shell β€’ Sleep hang fix β€’ Git config β€’ Micro editor β€’ Tmux setup β€’ One-click install
Download dotfiles.zip

What's Included

Shell Environment

  • Zsh with modern features and completions
  • Starship prompt with Gruvbox theme
  • Welcome script showing system stats and random quotes
  • 50+ aliases for common commands
  • Utility functions for development

Git Configuration

  • 80+ aliases for common workflows
  • GPG signing enabled
  • Better diff and merge tools
  • Colorized output
  • Useful status formats

Editor & Tools

  • Micro editor with Gruvbox theme
  • Tmux with intuitive keybindings
  • Node.js configuration (.npmrc, .nvmrc)
  • Homebrew package list (Brewfile)

System Optimization

  • macOS defaults script for sane settings
  • Finder improvements
  • Dock customization
  • Security enhancements

Sleep Hang Fix

  • Automatic recovery from post-sleep terminal hangs
  • GPG agent restart - prevents git commit freezing
  • DNS cache flush - fixes npm and network timeouts
  • Process cleanup - removes hung npm processes
  • LaunchAgent - runs every 5 minutes in background

Quick Installation

# Extract the zip file
unzip dotfiles.zip
cd dotfiles

# Run the installer
./install.sh

# Restart your terminal
source ~/.zshrc

The installer will:

  • Backup your existing dotfiles
  • Create symlinks to the new configurations
  • Install Homebrew packages
  • Apply macOS system defaults

Essential Shortcuts

ll          # List files in detail (using eza)
la          # List all files including hidden
mkcd <dir>  # Create and enter directory
..          # Go up one directory
...         # Go up two directories

Git Workflow

gst         # Git status - short format
glog        # Git log with graph
ga          # Git add
gcmsg "msg" # Git commit with message
gp          # Git push
gl          # Git pull
gco <branch> # Checkout branch

Development

nr dev      # npm run dev
nrb         # npm run build
yarn start  # Start with yarn
serve       # Start HTTP server in current directory

Utilities

weather     # Show weather forecast
myip        # Show public IP address
localip     # Show local IP address
speedtest   # Test internet speed
extract file.zip # Extract any archive

Theme Preview

The dotfiles use the Gruvbox color scheme throughout:

  • Warm, eye-friendly colors
  • High contrast for readability
  • Consistent appearance across all tools

Terminal Welcome

Every new terminal session shows:

  • System information (OS, uptime, memory, disk, IP)
  • Battery status (on laptops)
  • Git repository status
  • Random motivational quote

Starship Prompt

A clean prompt showing:

  • Username and hostname
  • Current directory
  • Git branch and status
  • Active development tools (Node, Python, Rust, Go)
  • Current time

File Structure

dotfiles/
β”œβ”€β”€ .zshrc                     # Zsh configuration
β”œβ”€β”€ .gitconfig                 # Git configuration  
β”œβ”€β”€ .tmux.conf                 # Tmux configuration
β”œβ”€β”€ .micro/
β”‚   └── settings.json          # Micro editor settings
β”œβ”€β”€ .npmrc                     # NPM configuration
β”œβ”€β”€ .nvmrc                     # Default Node.js version
β”œβ”€β”€ starship.toml              # Starship prompt configuration
β”œβ”€β”€ welcome.sh                 # Terminal welcome script
β”œβ”€β”€ fix-sleep-hangs.sh         # Auto-fix for post-sleep hangs
β”œβ”€β”€ com.user.fix-sleep-hangs.plist # LaunchAgent config
β”œβ”€β”€ fix-sleep-hangs-sudoers    # Sudo permissions
β”œβ”€β”€ Brewfile                   # Homebrew packages
β”œβ”€β”€ macos-defaults.sh          # macOS system defaults
β”œβ”€β”€ install.sh                 # Installation script
└── README.md                  # Documentation

Sleep Hang Fix Setup

The dotfiles include an automatic fix for terminal hangs after waking from sleep. To enable:

# Install the LaunchAgent
cp ~/dotfiles/com.user.fix-sleep-hangs.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.user.fix-sleep-hangs.plist

# Set up passwordless sudo for DNS flush
sudo cp ~/dotfiles/fix-sleep-hangs-sudoers /etc/sudoers.d/fix-sleep-hangs
sudo chmod 0440 /etc/sudoers.d/fix-sleep-hangs

Or run manually after waking: ~/dotfiles/fix-sleep-hangs.sh

Customization

Adding Personal Configs

Create a .zshrc.local file for personal customizations:

# ~/.zshrc.local
alias myproject="cd ~/Development/myproject"
export MY_VAR="value"

Starship Prompt

Edit ~/.config/starship.toml to customize the prompt appearance.

Micro Editor

Add plugins or modify settings in ~/.config/micro/settings.json.

Requirements

  • macOS 10.15+ (Catalina or newer)
  • Zsh (default on modern macOS)
  • Homebrew (installed by script)
  • Internet connection for package installation

Manual Setup

If you prefer manual installation:

# Create symlinks
ln -s ~/dotfiles/.zshrc ~/.zshrc
ln -s ~/dotfiles/.gitconfig ~/.gitconfig
ln -s ~/dotfiles/.tmux.conf ~/.tmux.conf
ln -s ~/dotfiles/.micro ~/.micro
ln -s ~/dotfiles/.npmrc ~/.npmrc
ln -s ~/dotfiles/.nvmrc ~/.nvmrc
ln -s ~/dotfiles/starship.toml ~/.config/starship.toml

# Install Homebrew packages
brew bundle --file ~/dotfiles/Brewfile

# Apply macOS defaults
bash ~/dotfiles/macos-defaults.sh

Contributing

Found a bug or have a suggestion?

  • Open an issue on GitLab
  • Submit a pull request with your improvements
  • Share your customizations!

License

AGPL License. Feel free to use these dotfiles as a base for your own setup.


Pro Tip: After installation, set your terminal font to Fira Code, JetBrains Mono, or Hack Nerd Font for the best experience! The Starship prompt works with any font, but these look great.

Last modified: March 12, 2026

↑ TOP