Cross-platform dotfiles management for macOS and Ubuntu/Debian.
curl -fsSL https://raw.githubusercontent.com/wonderchang/dotx/main/install.sh | bashOr with wget:
wget -qO- https://raw.githubusercontent.com/wonderchang/dotx/main/install.sh | bashcurl -fsSL https://raw.githubusercontent.com/wonderchang/dotx/main/install.sh | bash -s -- vim git tmuxcurl -fsSL https://raw.githubusercontent.com/wonderchang/dotx/main/install.sh | bash -s -- --dry-run# Clone the repository
git clone https://github.com/wonderchang/dotx.git ~/dotx
cd ~/dotx
# Install everything
./bootstrap.sh
# Or install specific components
./bootstrap.sh vim git tmux bash
# Or preview changes first
./bootstrap.sh --dry-runDevelopment Tools:
- vim - Vim editor with vim-plug and plugins
- git - Git version control with custom configuration
- tmux - Terminal multiplexer with powerline theme
- bash - Modern bash with bash-git-prompt (custom theme)
- nvm - Node Version Manager
- pyenv - Python version manager
- pipx - Python application installer
- uv - Python package and project manager
Configurations:
- Cross-platform dotfiles (
.vimrc,.gitconfig,.tmux.conf,.bashrc) - Platform-specific settings (macOS Homebrew, Ubuntu APT)
- Powerline fonts for tmux
- Custom bash-git-prompt theme
Environment Variables:
# Customize installation location (default: ~/dotx)
export DOTFILES_DIR="$HOME/.dotfiles"
# Use a different repository
export DOTFILES_REPO="https://github.com/yourusername/dotx.git"
# Use a different branch
export DOTFILES_BRANCH="develop"
# Then run install.sh
curl -fsSL https://raw.githubusercontent.com/wonderchang/dotx/main/install.sh | bash# Install all components
./bootstrap.sh
# Install specific components
./bootstrap.sh vim git tmux
# Uninstall components
./bootstrap.sh --uninstall vim
# Preview changes (dry-run)
./bootstrap.sh --dry-run --install bash
# Show help
./bootstrap.sh --help| Component | Description |
|---|---|
vim |
Vim editor with plugins |
git |
Git configuration |
tmux |
Tmux with powerline theme |
bash |
Bash with git prompt |
nvm |
Node Version Manager |
pyenv |
Python version manager |
pipx |
Python app installer |
uv |
Python package/project manager |
all |
All components (default) |
- macOS - Automatically installs Homebrew if needed
- Ubuntu/Debian - Uses APT package manager
- ✅ Cross-platform - Works on macOS and Ubuntu
- ✅ Selective installation - Install only what you need
- ✅ Dry-run mode - Preview changes before applying
- ✅ Idempotent - Safe to run multiple times
- ✅ Auto-backup - Existing files are backed up with timestamp
- ✅ Uninstall support - Clean removal of all components
- git - Required for cloning the repository
- bash - Shell scripting (available on all systems)
- curl or wget - For one-line installation (optional)
cd ~/dotx
./bootstrap.sh --uninstallOr uninstall specific components:
./bootstrap.sh --uninstall vim gitPowerline fonts not showing in tmux (SSH):
- Install and configure powerline fonts on your local machine (where your terminal emulator runs)
- For iTerm2: Preferences → Profiles → Text → Font → Select a "Powerline" font
Shell not changed on macOS:
- Restart your terminal after installation
- Check if bash is in
/etc/shells:cat /etc/shells
Dry-run to debug:
./bootstrap.sh --dry-runWTFPL - Do What The Fuck You Want To Public License
- Tmux configuration based on gpakosz/.tmux
- Inspired by various dotfiles repositories in the community