Skip to content

jiunbae/settings

Repository files navigation

Settings

Platform Shell License

Modern dotfiles installer with animated progress display.

╔══════════════════════════════════════════════════════════════╗
║  Settings Installer                                          ║
╠══════════════════════════════════════════════════════════════╣
║ [████████████████████████████████████████░░░░░░░░░░]  80%    ║
║  [6/8] Rust toolchain                                        ║
╚══════════════════════════════════════════════════════════════╝

  ✓ Installing Rust via rustup
  ✓ Installing cargo-binstall
  ⠋ Installing eza...

Quick Start

One-Line Install (Recommended)

# 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

Using Release (Bundled Installer)

# 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

Manual Clone

# 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

Features

  • 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

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)

Components

Shell Environment

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

Editor

Component Description
NeoVim Hyperextensible Vim-based editor
SpaceVim Community-driven modular vim distribution

Terminal

Component Description
tmux Terminal multiplexer
TPM Tmux Plugin Manager

Development Tools

Component Description
Rust Systems programming language
cargo-binstall Binary package installer
uv Fast Python package manager (10-100x faster than pip)

Modern CLI Tools

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

Directory Structure

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 Support

Platform Package Manager Architecture
Ubuntu/Debian apt x86_64, arm64
macOS Homebrew Intel, Apple Silicon
WSL apt x86_64

Examples

# 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

Post-Installation

# Restart your shell
source ~/.zshrc
# or
exec zsh

# Verify installations
eza --version
fd --version
bat --version
rg --version

Shell Aliases

After 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'

Troubleshooting

View installation log:

cat ~/.install.log

Force reinstall a component:

./install.sh --force zsh

Run in verbose mode:

./install.sh --verbose --all

License

MIT

About

settings for me.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •