new-computer-who-dis

Personally helpful setup scripts and other information for new systems.

View the Project on GitHub ryanspoone/new-computer-who-dis

New Computer; Who Dis

Lint Code Base

A comprehensive, modular setup script for configuring new macOS development machines. Get from unboxing to coding in under an hour with automated installation of tools, applications, and security configurations.

Features

Quick Start

# Download the repository
git clone https://github.com/ryanspoone/new-computer-who-dis.git
cd new-computer-who-dis

# Review the scripts
cat macos-setup.sh
ls -la scripts/

# Run the setup
chmod +x macos-setup.sh
./macos-setup.sh

Option 2: Direct Download and Run

Security Warning: Always review scripts before executing them!

# Download and run
curl -fsSL https://raw.githubusercontent.com/ryanspoone/new-computer-who-dis/main/macos-setup.sh -o macos-setup.sh
chmod +x macos-setup.sh
./macos-setup.sh

Option 3: Automated with Configuration

# Clone repository
git clone https://github.com/ryanspoone/new-computer-who-dis.git
cd new-computer-who-dis

# Create configuration file
cp .setup-config.example .setup-config
# Edit .setup-config with your preferences

# Run with configuration
./macos-setup.sh --config .setup-config

What Gets Installed

System Configuration

Security

Package Managers

Development Languages

Databases

Essential CLI Tools

Applications

Browsers:

Development:

Productivity:

Security:

Fonts:

Shell Configuration

VS Code

Extensions:

Settings:

Project Structure

.
├── macos-setup.sh              # Main orchestration script
├── macos-cleanup.sh            # Uninstall/cleanup script
├── Brewfile                    # Homebrew package definitions
├── .setup-config.example       # Configuration template
├── scripts/
│   ├── utils.sh               # Shared utility functions
│   ├── 01-system-preferences.sh
│   ├── 02-package-managers.sh
│   ├── 03-development-tools.sh
│   ├── 04-shell-setup.sh
│   ├── 05-security.sh
│   └── 06-vscode.sh
├── dotfiles/
│   ├── .gitconfig             # Git configuration template
│   ├── .gitignore_global      # Global gitignore
│   └── .editorconfig          # Editor configuration
├── .devcontainer/
│   ├── devcontainer.json      # VS Code dev container config
│   └── README.md
└── README.md

Usage

Interactive Mode

Run the main script and respond to prompts:

./macos-setup.sh

Configuration File Mode

Create a configuration file to automate responses:

cp .setup-config.example .setup-config
# Edit .setup-config with your preferences
./macos-setup.sh --config .setup-config

Run Individual Scripts

Execute specific setup modules:

# Just install packages
./scripts/02-package-managers.sh

# Just configure shell
./scripts/04-shell-setup.sh

# Just security hardening
./scripts/05-security.sh

Help

./macos-setup.sh --help

Customization

Modifying Packages

Edit Brewfile to add/remove packages:

# Add a new CLI tool
brew "neofetch"

# Add a new application
cask "figma"

# Add a font
cask "font-cascadia-code"

Then install:

brew bundle install

Adding Custom Scripts

Create a new script in scripts/:

#!/bin/bash
set -euo pipefail
source "$(dirname "$0")/utils.sh"

section "My Custom Setup"
log "Installing custom tools..."
# Your code here

Add it to the SETUP_SCRIPTS array in macos-setup.sh.

Customizing Dotfiles

Templates are in dotfiles/. Copy and customize:

cp dotfiles/.gitconfig ~/.gitconfig
# Edit with your information

Troubleshooting

Logs

All output is logged to ~/.macos-setup.log:

tail -f ~/.macos-setup.log

Common Issues

Homebrew not in PATH

# For Apple Silicon
eval "$(/opt/homebrew/bin/brew shellenv)"

# For Intel
eval "$(/usr/local/bin/brew shellenv)"

VS Code ‘code’ command not found

Permission denied

chmod +x macos-setup.sh
chmod +x scripts/*.sh

Script fails partway through

Uninstalling

To remove everything installed by this script:

chmod +x macos-cleanup.sh
./macos-cleanup.sh

Warning: This will remove applications and configurations!

GitHub Codespaces / Dev Containers

This repository includes a dev container configuration:

Using GitHub Codespaces

  1. Click “Code” → “Create codespace on main”
  2. Wait for container to build
  3. Start developing in your browser

Using VS Code Dev Containers

  1. Install Docker Desktop
  2. Install VS Code “Remote - Containers” extension
  3. Open repository in VS Code
  4. Click “Reopen in Container”

See .devcontainer/README.md for details.

Requirements

Estimated Time

FAQ

Q: Is this safe to run? A: Yes, but always review scripts before running. Everything is logged and changes can be reverted.

Q: Can I run this on an existing system? A: Yes! Scripts are idempotent and won’t break existing configurations.

Q: What if I don’t want everything? A: Use interactive mode and skip unwanted sections, or run individual scripts.

Q: How do I update installed packages? A: Run brew update && brew upgrade && brew cleanup

Q: Can I customize the packages? A: Yes! Edit Brewfile and run brew bundle install

Q: Does this work on Intel and Apple Silicon Macs? A: Yes! The script detects architecture and configures appropriately.

Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Test your changes
  4. Submit a pull request

License

MIT License - see LICENSE for details.

Credits

Created by Ryan Spoone

Inspired by various dotfiles repositories and macOS setup scripts from the community.

Support


Happy coding!