Skip to content
RocGodPublic

About

Config Files

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

87 Commits

Folders and files

Repository files navigation

Dotfiles for macOS

This repository contains my personal configuration files and scripts for quickly setting up a new macOS machine.


📚 Table of Contents


✅ Prerequisites

  • macOS 13 (Ventura) or later — tested on Apple Silicon
  • Internet connection
  • An Apple ID signed in (required for App Store / Xcode CLT)
  • Nothing else — the installer handles git (via Xcode CLT) and stow (via Homebrew) for you

⚠️ Always review remote scripts before piping them to your shell. Open install.sh and read it before running the Quick Start command below.


🚀 Quick Start

⚠️ Review the script before running. Read install.sh first — never pipe a remote script into bash blindly.

To set up your new Mac with all required packages and configurations, run:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/RocGod/dotfile/main/install.sh)"

The install.sh script will:

  1. Back up existing configs to ~/.dotfiles_backup_<timestamp>
  2. Install Xcode Command Line Tools and Homebrew
  3. Install Oh My Zsh + plugins (zsh-autosuggestions, fast-syntax-highlighting)
  4. Install all CLI, development, and window-management packages via Homebrew
  5. Clone this repo to ~/dotfile and symlink everything with stow
  6. Create zsh cache directory for completion caching

If you already have the repo cloned and just installed, you can run the equivalent steps as recipes instead: just install (or individually: just backup, just xcode, just homebrew, just packages, just zsh-plugins, just dotfiles). Run just with no arguments to list all recipes.


📦 What's Included

Core Tools

Optional Tools (installed if available)

Shell Features

  • Performance optimizations: Completion caching, conditional plugin loading, 50K history entries
  • Enhanced fzf: Nord color scheme, fd integration for faster file searching
  • Smart navigation: Auto-pushd with duplicate prevention
  • Safety features: Interactive prompts for rm/cp/mv, trash-cli integration

🛠 Post-Install Manual Steps

A few things install.sh cannot automate — handle these after the script finishes:

  1. Grant accessibility permissions to AeroSpace and Raycast in System Settings → Privacy & Security → Accessibility.
  2. Start AeroSpace and borders:
    open -a AeroSpace
    brew services start borders
  3. Neovim (if installed): open nvim and run :Lazy sync or :checkhealth to install plugins.
  4. Set your default shell to the Homebrew zsh if desired:
    chsh -s /opt/homebrew/bin/zsh
  5. Verify installation: Run source ~/.zshrc to load the new configuration.

🔄 Updating & Uninstalling

Pull the latest configs and re-link:

cd ~/dotfile
git pull
stow --restow .   # or: just restow

Preview what stow would change before applying, without touching anything:

cd ~/dotfile
stow --simulate --verbose .   # or: just stow-dry

Remove all symlinks created by stow:

cd ~/dotfile
stow -D .

Restore a backup created by install.sh:

ls ~/.dotfiles_backup_*
# then copy what you need back into place

🗂️ Structure

Root files

Path Purpose
.zshrc Zsh shell config with performance optimizations, plugins, and aliases
.stow-local-ignore Files stow should skip when symlinking
install.sh Bootstrap script for a fresh Mac (simplified and optimized)
justfile Same setup steps as install.sh, exposed as just recipes, plus maintenance recipes (update, restow, stow-dry)
test_install.sh Unit tests for the functions in install.sh (mocks brew/git/stow/xcode-select)

.config/ — grouped by purpose

Directory Purpose
Shell / prompt
starship.toml Starship prompt theme
Window management & desktop
aerospace/ AeroSpace tiling window manager config
borders/ JankyBorders window-border config
Terminal / editor
ghostty/ Ghostty terminal config (theme, font, shell integration)
nvim/ Neovim config (Lua, plugin lockfile)
Tools & integrations
linearmouse/ Mouse/trackpad scrolling and pointer settings
raycast/ Raycast AI and extension settings
containers/ Podman connection config

Key Configuration Highlights

.zshrc features:

  • Completion caching for faster tab completion
  • Conditional plugin loading (only loads plugins for installed tools)
  • 50,000 history entries with smart duplicate handling
  • Enhanced fzf with Nord color scheme and fd integration
  • Auto-pushd for better directory navigation
  • Safety aliases with trash-cli integration
  • Fast Node.js version management with fnm

install.sh features:

  • Automatic backup of existing configs
  • Simplified code with bash best practices
  • Conditional installation of optional packages
  • Automatic removal of conflicting plugins
  • Creates necessary cache directories
  • Covered by test_install.sh — run bash test_install.sh to verify changes before pushing

📝 License

Personal use only. Feel free to fork and adapt for your own setup.

About

Config Files

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages