Setup scripts for bootstrapping a fresh Linux machine with zsh, Fish, Rust CLI tools, Vim, and sensible defaults.
Run the scripts directly with curl. Each one is self-contained and idempotent.
Installs zsh, Oh My Zsh, autosuggestions/syntax-highlighting plugins, the Starship prompt with the gruvbox-rainbow preset, and uv for Python package management.
curl -fsSL https://raw.githubusercontent.com/jamesETsmith/dotfiles/main/setup-zsh.sh | bashInstalls Rust via rustup and a curated set of tools: ripgrep, bat, eza, bottom, hyperfine, sd, tokei, git-delta, zellij, Yazi, and leaf. The script prefers prebuilt binaries through cargo-binstall, falls back to Cargo builds when needed, and verifies that each expected command is available. It also drops config files and shell aliases.
curl -fsSL https://raw.githubusercontent.com/jamesETsmith/dotfiles/main/setup-rust-env.sh | bashInstalls Vim, links the repo .vimrc to ~/.vimrc, installs vim-plug, and installs the plugins declared in .vimrc.
curl -fsSL https://raw.githubusercontent.com/jamesETsmith/dotfiles/main/setup-vim.sh | bashInstalls the latest Fish release binary from GitHub (override with FISH_VERSION=4.8.1 to pin), installs Hack Nerd Font Mono (and MesloLGS NF as fallback) for prompt and eza icons, installs Fisher, installs Tide, installs uv for Python package management, and applies the Tide prompt config captured from this machine. Missing tools (curl, tar, unzip) are installed rootlessly into ~/.local/bin when possible; git and Fisher/Tide fall back to GitHub archives, and fc-cache is optional.
curl -fsSL https://raw.githubusercontent.com/jamesETsmith/dotfiles/main/setup-fish.sh | bashgit clone https://github.com/jamesETsmith/dotfiles.git
cd dotfiles
./setup-zsh.sh
./setup-rust-env.sh
./setup-vim.sh
./setup-fish.sh| Script | Highlights |
|---|---|
setup-zsh.sh |
Installs zsh, Oh My Zsh, zsh-autosuggestions, zsh-syntax-highlighting, Starship prompt, uv, writes .zshrc, sets zsh as default shell |
setup-rust-env.sh |
Installs build deps, Rust toolchain, ripgrep, bat, eza, bottom, hyperfine, sd, tokei, git-delta, zellij, Yazi, leaf, writes tool configs and shell aliases |
setup-vim.sh |
Installs Vim, links .vimrc, installs vim-plug, and installs Vim plugins declared in .vimrc |
setup-fish.sh |
Installs latest Fish from GitHub release binaries, rootlessly bootstraps missing curl/tar/unzip into ~/.local/bin, installs Hack Nerd Font Mono + MesloLGS NF, installs Fisher and Tide, installs uv, links Fish config, and applies saved Tide prompt settings |
These scripts auto-detect your package manager (apt, dnf, or pacman) and are safe to re-run.
GitHub Actions wraps setup and verification steps with ci/measure-step.sh. Each run writes timing details to the job summary and uploads a timings.jsonl artifact named by workflow and commit SHA, making setup-time changes easy to compare across commits.