A comprehensive macOS dotfiles configuration that automates environment setup, includes development tools, GPU support, and a modular Zsh shell configuration powered by Prezto.
- Quick Start
- Features
- Installation
- Installed Apps & Tools
- Zsh Configuration
- Git Configuration
- Usage & Commands
- GPU Support
- Troubleshooting
# Clone this repo to ~/.dotfiles
cd ~/.dotfiles
make bootstrapThis will install Homebrew packages and link all configuration files.
- Automated Bootstrap: Single command setup for entire environment
- Modular Zsh Configuration: Clean, organized shell configuration with Prezto framework
- Development Stack: Support for Python (UV), Node.js (pnpm, NVM), Rust, Go, and Java
- GPU Support: GPU verification utilities and compute libraries (OpenCL, Vulkan)
- Git Configuration: Pre-configured git settings with global gitignore
- Make-based Workflow: Simple commands for common tasks
- macOS with Zsh shell (default since Catalina)
- Git installed
- Administrator access for Homebrew installation
-
Clone the repository
git clone <repo-url> ~/.dotfiles cd ~/.dotfiles
-
Run bootstrap
make bootstrap
This will:
- Install Homebrew (if not present)
- Install all packages from Brewfile
- Link all dotfiles to their proper locations
-
Restart shell or source zshrc
exec zsh
- LLVM: Compiler infrastructure and toolchain
- Rust: Systems programming language
- Go: Concurrent programming language
- Java: OpenJDK 21 (via Temurin)
- OpenBLAS: Optimized BLAS library for linear algebra
- LAPACK: Linear algebra package
- libomp: OpenMP runtime for parallel computation
- CMake: Build system generator
- Vulkan Headers & Loader: Graphics and compute API
- Molten-VK: Vulkan implementation for Metal
- OpenCL Headers: Compute language headers
- clblast: GPU-accelerated BLAS library
- llama.cpp: Fast LLM inference
- Homebrew: macOS package manager
- Node.js (NVM): Node version manager
- pnpm: Fast Node package manager
- UV: Python project and tool manager
This configuration uses Prezto, a Zsh framework that provides:
- Modules: Curated set of shell features organized as modules
- Themes: Pre-built prompt themes
- Completion: Advanced completion system
environment: Environment variable managementterminal: Terminal settingseditor: Vim-style keybindingsdirectory: Directory navigation and historyhistory: Command history managementcompletion: Intelligent tab completionautosuggestions: Fish-like syntax suggestionssyntax-highlighting: Real-time command syntax highlightinggit: Git-related functions and abbreviationsprompt: Prompt customization
Loads Prezto and sources modular shell configuration files.
Sets up:
- Homebrew environment
- Node Version Manager (NVM)
- PNPM home directory
- UV Python aliases
Common shortcuts for development work:
ls → ls -G # Colorized ls
npm → pnpm # Use pnpm instead of npm
npx → pnpm dlx # pnpm executable runner
p → pnpm # Short alias
pi → pnpm install # Install dependencies
pr → pnpm run # Run scriptsEnables the "sorin" theme from Prezto, providing a clean, informative prompt with git status.
Configures which Prezto modules to load and their settings.
Edit git/gitconfig with your details:
[user]
name = Your Name
email = you@example.com- Global Gitignore: Common patterns ignored across all repositories
- Editor: Uses Neovim for git commits
- Global Patterns: Automatically ignores:
.DS_Store(macOS system files)node_modules/(Node dependencies)dist/(Build output).env(Environment files)
All tasks are managed through Make:
make bootstrap # Full environment setup (brew install + link configs)
make link # Link all dotfiles to home directory
make brew # Run Homebrew bundle
make gpu-check # Verify GPU and compute supportUpdate Homebrew packages
brew bundle upgrade --file=~/.dotfiles/BrewfileAdd new Homebrew package
brew install <package-name>
brew bundle dump --file=~/.dotfiles/Brewfile --forceUpdate Prezto
cd ~/.zprezto && git pullModify shell aliases
vim ~/.dotfiles/zsh/aliases.sh
exec zsh # Reload shellRun make gpu-check to verify GPU capabilities:
make gpu-checkThis will check:
- Metal: Apple's graphics framework
- Vulkan: Cross-platform compute API
- OpenCL: Compute language support
- Vulkan SDK headers and loaders
- Molten-VK for Vulkan support on Metal
- clblast for GPU-accelerated linear algebra
- llama.cpp for optimized LLM inference
# Python with GPU support
uv run python script.py
# Rust with GPU
rustc --target x86_64-apple-darwin script.rs
# Check available GPUs
system_profiler SPDisplaysDataType | grep Metal# Ensure you're in the dotfiles directory
cd ~/.dotfiles
# Try with full path if needed
make -C ~/.dotfiles <command># Check if symlinks are correct
ls -la ~/.zshrc ~/.gitconfig
# Re-link files
make link
# Reload
exec zsh# Verify brew is installed
brew --version
# Install Homebrew if missing
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Then run bootstrap
make bootstrapThe zshrc expects Prezto to be installed at ~/.zprezto. If it's missing:
git clone --recursive https://github.com/sorin-ionescu/prezto.git ~/.zprezto
exec zsh# Ensure dependencies are installed
make brew
# Check individual components
vulkaninfo # Vulkan support
system_profiler SPDisplaysDataType | grep Metal # Metal support
python3 -c "import pyopencl" # OpenCL Python bindings~/.dotfiles/
├── bootstrap.sh # Main setup script
├── Brewfile # Homebrew packages
├── Makefile # Task automation
├── README.md # This file
├── zsh/
│ ├── zshrc # Main shell config
│ ├── zpreztorc # Prezto settings
│ ├── env.sh # Environment variables
│ ├── aliases.sh # Command aliases
│ └── prompt.sh # Prompt theme
├── git/
│ ├── gitconfig # Git user & editor config
│ └── gitignore_global # Global git ignore patterns
└── scripts/
└── verify_gpu.sh # GPU verification utility
- Edit
zsh/aliases.sh - Add your alias:
alias myalias='command' - Reload:
exec zsh
- Edit
zsh/env.sh - Add:
export MYVAR="value" - Reload:
exec zsh
- Install with
brew install package-name - Update Brewfile:
brew bundle dump --file=~/.dotfiles/Brewfile --force - Commit changes to repository
- Edit
zsh/prompt.sh - Change theme name in:
zstyle ':prezto:module:prompt' theme 'theme-name' - Run
exec zsh
Available Prezto themes: sorin, powerlevel9k, minimal, and others
This repository is provided as-is for personal use.