Jump to content

New Computer Runbook

From Archive
Revision as of 16:00, 31 May 2025 by Ejfox (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

New OS X Machine Setup Runbook

Getting from zero to productive in <30 minutes

Phase 1: Essential Infrastructure (5 mins)

# Install Homebrew first
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Core terminal tools
brew install git tmux zsh neovim ghostty

# Modern CLI replacements
brew install lsd bat btop dust duf

Phase 2: Dotfiles & Shell (5 mins)

# Clone and setup dotfiles
git clone https://github.com/ejfox/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./sync-dotfiles.sh

# Install Oh My Zsh + Powerlevel10k
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

# Restart terminal, run p10k configure, choose minimal options

Phase 3: Development Environment (10 mins)

# Node.js environment
brew install node npm
npm install -g canvas-sketch-cli things-cli

# Neovim setup (LazyVim auto-installs on first run)
nvim
# Let it install everything, then :q

# Git configuration
git config --global user.name "EJ Fox"
git config --global user.email "[email protected]"

Phase 4: Applications & Workflow (10 mins)

# Development tools
brew install httpie jq gh copilot-cli

# Optional but nice
brew install --cask sketchybar

Phase 5: Personal Integration (Variable)

API Keys & Secrets

  • Setup 1Password CLI: `brew install --cask 1password-cli`
  • Setup GitHub CLI: `gh auth login`

---

Debian ThinkPad Setup

From bare metal to tiling window manager paradise

Phase 0: Creating Debian USB

# Download Debian ISO (non-free firmware version for ThinkPad wifi)
wget https://cdimage.debian.org/images/unofficial/non-free/images-including-firmware/current/amd64/iso-cd/firmware-12.2.0-amd64-netinst.iso

# Create bootable USB (replace /dev/sdX with your USB drive)
sudo dd if=firmware-12.2.0-amd64-netinst.iso of=/dev/sdX bs=4M status=progress && sync

# Or use Rufus on Windows / Balena Etcher on macOS

Phase 1: Base System Setup (15 mins)

# After Debian installation, update system
sudo apt update && sudo apt upgrade -y

# Essential packages
sudo apt install -y curl wget git build-essential software-properties-common

# Add non-free repos for additional drivers
sudo apt install -y firmware-linux firmware-linux-nonfree

# Modern shell
sudo apt install -y zsh tmux
chsh -s /usr/bin/zsh

Phase 2: Hyprland Window Manager (20 mins)

# Install Hyprland dependencies
sudo apt install -y meson cmake ninja-build pkg-config libwayland-dev libxkbcommon-dev \
  libpixman-1-dev libcairo2-dev libpango1.0-dev libgtk-3-dev \
  libegl1-mesa-dev libgles2-mesa-dev libgbm-dev libinput-dev \
  libxcb-xinerama0-dev libxcb-icccm4-dev libxcb-randr0-dev \
  libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev \
  libxcb-glx0-dev libxrandr-dev

# Install Hyprland (may need to compile from source)
sudo apt install -y hyprland || {
  git clone --recursive https://github.com/hyprwm/Hyprland
  cd Hyprland
  make all && sudo make install
}

# Essential Wayland tools
sudo apt install -y waybar wofi swaylock-effects swayidle wl-clipboard \
  grim slurp mako-notifier foot brightnessctl playerctl

Phase 3: Terminal & Development (10 mins)

# Modern CLI tools (need to build some from source)
sudo apt install -y ripgrep fd-find fzf htop neofetch

# Install Rust for modern CLI tools
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env

# Build modern CLI replacements
cargo install lsd bat dust duf
cargo install --git https://github.com/aristocratos/btop.git

# Node.js via NodeSource
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs

# Neovim (latest version)
sudo apt install -y ninja-build gettext cmake unzip curl
git clone https://github.com/neovim/neovim
cd neovim && make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install

Phase 4: Dotfiles & Configuration (5 mins)

# Clone dotfiles
git clone https://github.com/ejfox/dotfiles.git ~/.dotfiles
cd ~/.dotfiles

# Create Hyprland-specific configs (if not in dotfiles yet)
mkdir -p ~/.config/hypr ~/.config/waybar ~/.config/foot ~/.config/mako

# Install Oh My Zsh + Powerlevel10k
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

# Sync dotfiles
./sync-dotfiles.sh

Phase 5: ThinkPad Optimizations

# Power management
sudo apt install -y tlp tlp-rdw
sudo systemctl enable tlp

# ThinkPad-specific tools
sudo apt install -y thinkfan tp-smapi-dkms acpi-call-dkms

# Fingerprint reader (if supported)
sudo apt install -y fprintd libpam-fprintd

# TrackPoint configuration
echo 'options psmouse proto=imps' | sudo tee /etc/modprobe.d/trackpoint.conf


Debian-Specific Gotchas

  • WiFi drivers - Use firmware ISO for ThinkPad compatibility
  • Modern CLI tools - Many need cargo/rust compilation
  • Hyprland - May need manual compilation on older Debian
  • Foot terminal - Lightweight replacement for terminal emulators
  • Waybar - Configure with geometric symbols like tmux
  • Power management - Install `tlp` for ThinkPad battery optimization

Emergency Fallbacks

  • No Hyprland? Use `i3` window manager instead
  • No Wayland? Fall back to X11 with `i3` or `awesome`
  • Compilation fails? Use older versions from apt repositories
  • No GUI? tmux + terminal workflow still fully functional