Skip to content

mkorsback/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔧 Dotfiles

My personal macOS dotfiles and development environment setup.

📋 Features

  • Automated macOS setup script for new machines
  • Custom shell configuration (zsh with Oh My Zsh)
  • Homebrew package management
  • Node.js environment via NVM
  • macOS system preferences automation
  • Symlinked configuration files

🚀 Quick Start

Fresh macOS Installation

Clone this repository and run the bootstrap script:

git clone https://github.com/YOUR_USERNAME/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
chmod +x bootstrap.sh
./bootstrap.sh

The bootstrap script will:

  1. ✅ Install Xcode Command Line Tools
  2. ✅ Install Homebrew
  3. ✅ Create symlinks for dotfiles
  4. ✅ Install Oh My Zsh with useful plugins
  5. ✅ Install NVM and Node.js LTS
  6. ✅ Install packages from Brewfile
  7. ✅ Set zsh as default shell
  8. ✅ Apply macOS system preferences

After Installation

Restart your terminal or reload your shell configuration:

source ~/.zshrc

Some changes may require a system restart to take full effect.

📁 Repository Structure

dotfiles/
├── bootstrap.sh          # Main setup script for new machines
├── symlink.sh           # Creates symlinks for dotfiles
├── Brewfile             # Homebrew packages and applications
├── macos_defaults.sh    # macOS system preferences
├── .gitconfig           # Git configuration
├── .gitignore_global    # global gitignore
├── .vimrc               # vim configuration
├── .zshrc               # Zsh configuration
└── README.md            # This file

🔌 Included Oh My Zsh Plugins

  • zsh-syntax-highlighting - Fish-like syntax highlighting
  • zsh-autosuggestions - Fish-like autosuggestions

🛠️ Customization

Adding Homebrew Packages

Edit Brewfile and add your packages:

brew "package-name"
cask "application-name"

Then run:

brew bundle install --file=Brewfile

Modifying Shell Configuration

Edit .zshrc to customize your shell environment, add aliases, or configure plugins.

Changing macOS Defaults

Edit macos_defaults.sh to customize system preferences. Run it with:

bash macos_defaults.sh

🔄 Updating

To update Homebrew packages:

brew update && brew upgrade

To update Oh My Zsh:

omz update

To update Node.js:

nvm install --lts
nvm use --lts

⚠️ Important Notes

  • The bootstrap script is designed for macOS only
  • Some Homebrew installations may require password authentication
  • Network connection is required for downloading packages
  • The script will wait for Xcode Command Line Tools installation to complete
  • Existing configurations will be backed up before symlinking

🐛 Troubleshooting

Homebrew not found after installation

For Apple Silicon Macs, ensure Homebrew is in your PATH:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

NVM command not found

Reload your shell or manually source NVM:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

Permission denied when changing shell

You may need to add zsh to allowed shells:

sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s "$(which zsh)"

📝 License

This repository is provided as-is for personal use. Feel free to fork and customize for your own needs.

🤝 Contributing

This is a personal dotfiles repository, but suggestions and improvements are welcome! Feel free to open an issue or pull request.

About

My dot files

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages