A modular and automated setup for macOS development environment with terminal, productivity apps, and coding tools.
# Clone the repository
git clone <your-repo-url> ~/dev/dotfiles
cd ~/dev/dotfiles
# Run the setup
chmod +x setup.sh
./setup.sh- Zsh with Oh-My-Zsh framework
- Powerlevel10k theme for beautiful prompts
- Plugins: autosuggestions, syntax highlighting, completions
- Fira Code Nerd Font for programming ligatures
- Homebrew package manager
- NVM for Node.js version management
- Node.js LTS with npm
- pnpm for faster package management
- Raycast as default launcher (replaces Spotlight)
- Obsidian for knowledge management
- Grammarly Desktop for writing assistance
- VS Code with Dracula theme
- Essential extensions for web development
- Configured settings for optimal coding experience
~/dev/dotfiles/
├── setup.sh # Main setup script
├── .zshrc # Zsh configuration
├── p10k.zsh # Powerlevel10k config
├── raycast/
│ └── setup.sh # Raycast installation
├── obsidian/
│ └── setup.sh # Obsidian setup
├── vscode/
│ ├── setup.sh # VS Code setup
│ ├── settings.json # VS Code configuration
│ ├── extensions.yml # Extensions list
│ └── fix.sh # VS Code repair tool
└── oh-my-zsh/ # Auto-generated
cd ~/dev/dotfiles/vscode
./setup.shcd ~/dev/dotfiles/raycast
./setup.shcd ~/dev/dotfiles/obsidian
./setup.shEdit vscode/extensions.yml to add or remove extensions:
extensions:
theme:
- id: dracula-theme.theme-dracula
name: "Dracula Official"Then run:
./vscode/setup.shModify vscode/settings.json and re-run the setup to apply changes.
- Edit
.zshrcfor shell customization - Run
p10k configureto customize the theme - Changes are automatically symlinked to
~/.zshrc
If VS Code becomes corrupted or extensions fail to install:
cd ~/dev/dotfiles/vscode
./fix.shIf Command+Space doesn't open Raycast:
- Open Raycast manually
- Go to Preferences
- Set Global Hotkey to Command+Space
- Grant necessary permissions
If the terminal font doesn't look right:
- Restart your terminal
- Check VS Code terminal font settings
- Re-run the setup if needed
If Node.js commands aren't working:
source ~/.zshrc
nvm install --lts
nvm use --lts- Create a new directory:
mkdir ~/dev/dotfiles/myapp - Create setup script:
touch ~/dev/dotfiles/myapp/setup.sh - Add to main setup.sh in the productivity apps section
Each module is independent. Modify the individual setup scripts as needed without affecting others.
- macOS (tested on latest versions)
- Internet connection for downloads
- Admin privileges for app installations
- Installs Homebrew if not present
- Configures terminal with Zsh and Powerlevel10k
- Sets up development tools (Node.js, pnpm)
- Installs productivity apps (Raycast, Obsidian, Grammarly)
- Configures VS Code with theme and extensions
- Creates symlinks for configuration files
- Backs up existing configurations safely
- Automatic backups of existing configurations
- Idempotent scripts - safe to run multiple times
- Modular design - install only what you need
- Error handling with fallback methods
- Verification steps to ensure successful installation
To add new features or fix issues:
- Test changes thoroughly
- Maintain the modular structure
- Add appropriate error handling
- Update this README if needed
This project is for personal use. Modify and distribute as needed.
Note: This setup is optimized for web development workflows. Adjust configurations based on your specific needs.