Skip to content

SmartMur/smartmur-dev-dotfiles

SmartMur

SmartMur dotfiles banner

SmartMur Dotfiles (macOS Terminal)

macOS Shell License Repo pre-commit

Production-ready macOS terminal dotfiles with reproducible setup, safe backups, Homebrew package management, and iTerm2 profile/theme automation.

Terminal Preview

Start here: docs/GETTING_STARTED.md Contributing: CONTRIBUTING.md Security policy: SECURITY.md Security rulebook: docs/SECURITY_RULEBOOK.md Roadmap: ROADMAP.md

Overview

This repository captures your preferred terminal environment so it can be applied consistently on any Mac.

  • Symlink-based dotfile management
  • Automatic backup of previous local configuration
  • Homebrew dependency installation from Brewfile
  • Starship prompt and iTerm2 profile/theme setup
  • Clear separation of secrets from version-controlled files

Repo Structure

.
├── Brewfile
├── LICENSE
├── bootstrap.sh
├── install.sh
├── assets/images/
├── config/.config/
│   ├── iterm2/
│   └── starship.smartmur.toml
└── zsh/
    ├── .zshrc
    └── .zsh/
        ├── aliases.smartmur.zsh
        ├── functions.smartmur.zsh
        ├── nvm.smartmur.zsh
        └── starship.smartmur.zsh

Requirements

  • macOS 13+
  • zsh (default on macOS)
  • Xcode Command Line Tools
  • Homebrew
  • Git

Quick Start

git clone https://github.com/SmartMur/dotfiles.git mac-terminal-dotfiles
cd mac-terminal-dotfiles
./install.sh
exec zsh

Dotfiles setup flow

Professional Checks (Before Push)

bash -n bootstrap.sh
bash -n install.sh
pre-commit run --all-files
python3 scripts/security_scrub.py

If a leak is detected, stop and follow docs/SECURITY_RULEBOOK.md before any push.

Install hooks once per clone:

brew install pre-commit
pre-commit install

Dependabot PR Automation

Dependabot PRs are auto-managed by:

  • .github/workflows/dependabot-automerge.yml

It updates branches, auto-approves bot PRs, and enables auto-merge after CI passes.

One-Line Bootstrap (Fresh Machine)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/SmartMur/dotfiles/main/bootstrap.sh)"

The bootstrap script installs prerequisites if needed, clones this repo into ~/.smartmur-dotfiles, and runs install.sh.

What install.sh Does

  • Creates timestamped backups in ~/.terminal_backups/mac-terminal-dotfiles-<timestamp>/
  • Symlinks repo-managed files into ~/.zsh*, ~/.config/*, and iTerm2 Dynamic Profiles
  • Sets the iTerm2 default profile GUID to the SmartMur profile
  • Runs brew bundle --file Brewfile unless --skip-brew is passed

iTerm2 and Branding

  • Dynamic profile location:
    • ~/Library/Application Support/iTerm2/DynamicProfiles/smartmur.dynamic.json
  • Additional profile assets:
    • ~/.config/iterm2/smartmur.itermcolors
    • ~/.config/iterm2/smartmur-profile.json

Brand assets copied from https://smartmur.ca on February 18, 2026:

  • assets/images/smartmur-white.png
  • assets/images/smartmur-favicon.png

Customization

  • Core shell behavior: zsh/.zshrc
  • Aliases/functions modules: zsh/.zsh/*
  • Prompt style: config/.config/starship.smartmur.toml
  • Package list: Brewfile

After changing files in this repo:

./install.sh --skip-brew
exec zsh

Secrets and Security

Never commit API keys or tokens.

Use a local-only file:

  • ~/.zsh/secrets.zsh

Example:

export OPENAI_API_KEY="..."

Incident and history-rewrite procedure is documented in docs/SECURITY_RULEBOOK.md.

Troubleshooting

  • Prompt/theme not updating: run exec zsh
  • iTerm2 profile not switching: restart iTerm2 and open a new window
  • Missing packages: run brew bundle --file Brewfile
  • Rollback required: restore files from ~/.terminal_backups/...

Maintenance Workflow

git pull
./install.sh --skip-brew
exec zsh

Contributing

See CONTRIBUTING.md.

License

MIT License. See LICENSE.

About

Nexus Bootstrap — Development environment setup, shell configs, and tooling.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors