Modern dotfiles installer with animated progress display.
╔══════════════════════════════════════════════════════════════╗
║ Settings Installer ║
╠══════════════════════════════════════════════════════════════╣
║ [████████████████████████████████████████░░░░░░░░░░] 80% ║
║ [6/8] Rust toolchain ║
╚══════════════════════════════════════════════════════════════╝
✓ Installing Rust via rustup
✓ Installing cargo-binstall
⠋ Installing eza...
# Install everything with a single command
curl -fsSL https://raw.githubusercontent.com/jiunbae/settings/master/bootstrap.sh | bash -s -- --all
# Or install specific components
curl -fsSL https://raw.githubusercontent.com/jiunbae/settings/master/bootstrap.sh | bash -s -- zsh nvim tmux# Download and run the bundled installer (no git required)
curl -fsSL https://github.com/jiunbae/settings/releases/latest/download/install-bundled.sh | bash -s -- --all# Clone and install everything
git clone https://github.com/jiunbae/settings.git
cd settings
./install.sh --all
# Or install specific components
./install.sh zsh nvim tmux rust tools- Modular Architecture - Install only what you need
- Cross-Platform - Linux, macOS, and WSL support
- Progress Display - Animated spinner with progress bar
- Dry-Run Mode - Preview changes before applying
- Idempotent - Safe to run multiple times
Usage: install.sh [OPTIONS] [COMPONENTS...]
Options:
-a, --all Install all components
-f, --force Force reinstall (overwrite existing)
-v, --verbose Enable verbose output
-n, --dry-run Show what would be done
-h, --help Show help message
Components:
base Basic packages (curl, wget, git, build-essential)
zsh Zsh + Oh-My-Zsh + Powerlevel10k
nvim NeoVim + SpaceVim
tmux tmux + TPM (Tmux Plugin Manager)
rust Rust toolchain + cargo-binstall
uv uv (fast Python package manager)
tools CLI tools (eza, fd, bat, ripgrep, fzf)
tools-extra Extra CLI tools (delta, dust, procs, bottom)
| Component | Description |
|---|---|
| Zsh | Modern shell |
| Oh-My-Zsh | Zsh framework |
| Powerlevel10k | Fast, customizable prompt |
| zsh-syntax-highlighting | Fish-like syntax highlighting |
| zsh-autosuggestions | Fish-like autosuggestions |
| Component | Description |
|---|---|
| NeoVim | Hyperextensible Vim-based editor |
| SpaceVim | Community-driven modular vim distribution |
| Component | Description |
|---|---|
| tmux | Terminal multiplexer |
| TPM | Tmux Plugin Manager |
| Component | Description |
|---|---|
| Rust | Systems programming language |
| cargo-binstall | Binary package installer |
| uv | Fast Python package manager (10-100x faster than pip) |
Basic tools (tools):
| Tool | Replaces | Description |
|---|---|---|
| eza | ls |
Modern ls with icons and git integration |
| fd | find |
Simple, fast alternative to find |
| bat | cat |
Cat with syntax highlighting |
| ripgrep | grep |
Fast regex search tool |
| fzf | - | Fuzzy finder |
Extra tools (tools-extra):
| Tool | Replaces | Description |
|---|---|---|
| delta | git diff |
Better git diff viewer |
| dust | du |
Intuitive disk usage |
| procs | ps |
Modern process viewer |
| bottom | htop |
System monitor |
settings/
├── install.sh # Main entry point
├── bootstrap.sh # Remote installation bootstrap
├── lib/ # Core libraries
│ ├── core.sh # Logging, spinner, utilities
│ ├── platform.sh # Platform detection, package manager
│ └── cli.sh # CLI argument parsing
├── modules/ # Installation modules
│ ├── base.sh # Basic packages
│ ├── shell.sh # Zsh + Oh-My-Zsh + P10k
│ ├── editor.sh # NeoVim + SpaceVim
│ ├── tmux.sh # tmux + TPM
│ ├── rust.sh # Rust + cargo-binstall
│ ├── python.sh # uv
│ └── tools.sh # CLI tools
├── scripts/ # Build scripts
│ └── bundle.sh # Create bundled installer
├── configs/ # Configuration files
│ ├── .zshrc
│ ├── .p10k.zsh
│ ├── .tmux.conf
│ └── .SpaceVim.d/
└── .github/workflows/ # CI/CD
└── release.yml # Auto-release on tag
| Platform | Package Manager | Architecture |
|---|---|---|
| Ubuntu/Debian | apt | x86_64, arm64 |
| macOS | Homebrew | Intel, Apple Silicon |
| WSL | apt | x86_64 |
# Preview installation (dry-run)
./install.sh --dry-run --all
# Install shell environment only
./install.sh zsh
# Install with verbose output
./install.sh -v zsh nvim tmux
# Force reinstall everything
./install.sh --force --all
# Install Rust and CLI tools
./install.sh rust tools tools-extra# Restart your shell
source ~/.zshrc
# or
exec zsh
# Verify installations
eza --version
fd --version
bat --version
rg --versionAfter installation, these aliases are configured in .zshrc:
# Modern replacements
alias ls='eza --icons'
alias ll='eza -la --icons --git'
alias cat='bat'
alias find='fd'
alias grep='rg'
alias du='dust'
alias ps='procs'
alias top='btm'
# Editor
alias vim='nvim'
alias vi='nvim'View installation log:
cat ~/.install.logForce reinstall a component:
./install.sh --force zshRun in verbose mode:
./install.sh --verbose --allMIT