This repository contains personal configuration files (dotfiles) optimized for a macOS frontend development environment. It sets up Zsh with Oh My Zsh, installs useful tools and applications via Homebrew, configures Git, and applies various macOS settings.
- Shell: Zsh + Oh My Zsh with useful plugins (
git,node,npm,yarn,pnpm,docker,z, etc.). - Package Management: Uses Homebrew and
brew bundleto manage CLI tools and GUI applications (Brewfile). - Node.js Management: Uses fnm for Node.js version management.
- Git Configuration: Sensible defaults and useful aliases (
git/.gitconfig,git/.gitignore_global). - Editor Configuration: Basic editor consistency via
.editorconfig. - macOS Settings: Customizes macOS defaults for Finder, Dock, keyboard, screenshots, and more via scripts in the
osx/directory (Use with caution, reviewosx/utility.shandosx/dock.sh). - Installation Script: Provides an idempotent
install.shscript to set up Homebrew, install dependencies, and create necessary symlinks.
- macOS
- Git (for cloning)
-
Clone the repository:
git clone https://github.com/phoinixi/dotfiles.git ~/.dotfiles(Using
~/.dotfilesis a common convention, but you can choose another location) -
Run the installation script:
cd ~/.dotfiles ./install.sh
The script will:
- Install Homebrew if it's not already present.
- Install all packages and applications listed in the
Brewfile. - Install Oh My Zsh if it's not already present.
- Create symbolic links from your home directory (
~/) to the configuration files in this repository (e.g.,~/.zshrc->~/.dotfiles/.zshrc). Existing files will be backed up (e.g.,~/.zshrc.bak). - Install the LTS version of Node.js using
fnm. - Apply macOS settings defined in the
osx/directory.
-
Restart your terminal: Open a new terminal window/tab or run
source ~/.zshrcfor all changes to take effect. -
(Manual Step) Configure Git User: Set your Git user name and email globally:
git config --global user.name "Your Name" git config --global user.email "your.email@example.com"
- CLI Tools:
fzf,ripgrep,bat,eza,httpie,jq,watchman,gh,coreutils, etc. - Frontend:
fnm,pnpm. - Apps:
hyper,visual-studio-code,cursor,brave-browser,google-chrome,raycast,docker,slack,telegram,whatsapp, etc. (CheckBrewfilefor the full list).
- Brewfile: Add or remove packages/casks by editing the
Brewfileand re-runningbrew bundle install --file=~/.dotfiles/Brewfile. - Zsh: Add custom aliases, functions, or change plugins/theme in
.zshrc. - Git: Modify
git/.gitconfigfor different Git settings. - macOS Settings: Edit scripts in the
osx/directory (carefully review changes, especially inutility.sh). Remove the call tosource index.shininstall.shif you don't want these settings applied.
.
├── Brewfile # Homebrew packages and applications
├── Brewfile.lock.json # Generated by brew bundle
├── README.md # This file
├── .editorconfig # Editor code style consistency
├── .zshrc # Main Zsh configuration (sources OMZ, sets options, aliases)
├── git/
│ ├── .gitconfig # Git configuration (symlinked to ~/.gitconfig)
│ └── .gitignore_global # Source for global gitignore
├── install.sh # Installation and setup script
├── osx/ # macOS customization scripts
│ ├── index.sh # Main script applying macOS settings
└── utils/ # Helper scripts for install.sh
└── utils.sh
Found a bug or want a new feature? Please create an issue.