Config files for macOS and Linux (Debian-based). Works on GUI systems or headless servers.
Run the bootstrap script on a fresh machine:
curl -fsSL https://raw.githubusercontent.com/smweber/dotfiles/master/bootstrap.sh | bashThe script will guide you through:
- Updating system packages (Linux)
- Setting up SSH keys and GitHub access
- Cloning this repo to
~/.dotfiles - Installing and running GNU Stow
- Installing Homebrew and packages
- Setting up tmux with TPM
- Installing GUI apps (if applicable)
Each step is interactive—you can skip anything you don't need.
If you prefer to set things up manually:
# Clone the repo
git clone [email protected]:smweber/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
# Install stow
# macOS: brew install stow
# Linux: sudo apt install stow
# Stow the configs you want (use --no-folding to create individual symlinks)
stow --dotfiles --no-folding sh
stow --dotfiles --no-folding fish
stow --dotfiles --no-folding tmux
stow --dotfiles --no-folding nvim
stow --dotfiles --no-folding git
stow --dotfiles --no-folding jj
stow --dotfiles --no-folding alacritty # GUI only
# Linux GUI: stow --dotfiles --no-folding i3 rofi polybar
# macOS: stow --dotfiles --no-folding aerospace| Package | Description | Platform |
|---|---|---|
| sh | Shell profile, aliases | All |
| fish | Fish shell config | All |
| tmux | Tmux config with TPM | All |
| nvim | Neovim config | All |
| git | Git config | All |
| jj | Jujutsu config | All |
| alacritty | Terminal emulator | GUI |
| i3 | Window manager | Linux GUI |
| rofi | App launcher | Linux GUI |
| polybar | Status bar | Linux GUI |
| aerospace | Window manager | macOS |
Installed by the bootstrap script:
- fish, tmux, neovim, mise, jj, fzf, ripgrep, bat
- btop, direnv, tree
- font-meslo-lg-nerd-font
Linux GUI: i3-wm, rofi, feh, polybar, brightnessctl
bin/agent.sh can seed build artifacts between JJ workspaces.
- Manifest path:
~/src/agent-workspaces/<repo>/agent-artifacts - Format: one repo-relative path per line (for example
buildortarget) - Behavior:
- On first workspace create/switch in a repo, the manifest is auto-created with detected defaults.
- When creating or switching to a workspace, missing listed paths are copied from the current workspace.
- Controls:
agent artifacts disable/agent artifacts enable(persistent per-repo opt-out/opt-in)agent artifacts clean [workspace](remove configured artifact paths from current or named workspace)AGENT_DISABLE_ARTIFACT_HYDRATION=1(one-shot opt-out for a single command)