New Computer Runbook: Difference between revisions
Appearance
Created page with "== New Machine Setup Runbook == ''Getting from zero to productive in <30 minutes'' === Phase 1: Essential Infrastructure (5 mins) === <pre> # 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 </pre> === Phase 2: Dotfiles & Shell (5 mins) === <pre> # Clone and setup dotfiles gi..." |
No edit summary |
||
Line 1: | Line 1: | ||
== New Machine Setup Runbook == | == New OS X Machine Setup Runbook == | ||
''Getting from zero to productive in <30 minutes'' | ''Getting from zero to productive in <30 minutes'' | ||
Line 46: | Line 46: | ||
=== Phase 4: Applications & Workflow (10 mins) === | === Phase 4: Applications & Workflow (10 mins) === | ||
<pre> | <pre> | ||
# Development tools | # Development tools | ||
brew install httpie jq gh copilot-cli | brew install httpie jq gh copilot-cli | ||
# Optional but nice | # Optional but nice | ||
brew install --cask sketchybar | brew install --cask sketchybar | ||
</pre> | </pre> | ||
Line 60: | Line 56: | ||
==== API Keys & Secrets ==== | ==== API Keys & Secrets ==== | ||
* Setup 1Password CLI: `brew install --cask 1password-cli` | * Setup 1Password CLI: `brew install --cask 1password-cli` | ||
* Setup GitHub CLI: `gh auth login` | * Setup GitHub CLI: `gh auth login` | ||
==== | </pre> | ||
--- | |||
== Debian ThinkPad Setup == | |||
''From bare metal to tiling window manager paradise'' | |||
=== Phase 0: Creating Debian USB === | |||
<pre> | |||
# 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 | |||
</pre> | |||
=== | === Phase 1: Base System Setup (15 mins) === | ||
<pre> | |||
# 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 | |||
</pre> | |||
=== Phase 2: Hyprland Window Manager (20 mins) === | |||
<pre> | |||
# 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 | |||
</pre> | |||
=== Phase 3: Terminal & Development (10 mins) === | |||
<pre> | |||
# 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 | |||
</pre> | |||
=== Phase 4: Dotfiles & Configuration (5 mins) === | |||
<pre> | |||
# 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 | |||
</pre> | |||
=== Phase 5: ThinkPad Optimizations === | |||
<pre> | |||
# 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 | |||
</pre> | |||
=== | === 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 === | === Emergency Fallbacks === | ||
* '''No | * '''No Hyprland?''' Use `i3` window manager instead | ||
* '''No | * '''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 | ||
</pre> | </pre> |
Latest revision as of 16:00, 31 May 2025
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