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.
↑ TOP