Skip to content

wonderchang/dotx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotx

Cross-platform dotfiles management for macOS and Ubuntu/Debian.

Quick Install

One-Line Installation

curl -fsSL https://raw.githubusercontent.com/wonderchang/dotx/main/install.sh | bash

Or with wget:

wget -qO- https://raw.githubusercontent.com/wonderchang/dotx/main/install.sh | bash

Install Specific Components

curl -fsSL https://raw.githubusercontent.com/wonderchang/dotx/main/install.sh | bash -s -- vim git tmux

Preview Before Installing (Dry-Run)

curl -fsSL https://raw.githubusercontent.com/wonderchang/dotx/main/install.sh | bash -s -- --dry-run

Manual Installation

# 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-run

What Gets Installed

Development 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

Customization

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

Usage

# 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

Components

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)

Platform Support

  • macOS - Automatically installs Homebrew if needed
  • Ubuntu/Debian - Uses APT package manager

Features

  • 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

Requirements

  • git - Required for cloning the repository
  • bash - Shell scripting (available on all systems)
  • curl or wget - For one-line installation (optional)

Uninstall

cd ~/dotx
./bootstrap.sh --uninstall

Or uninstall specific components:

./bootstrap.sh --uninstall vim git

Troubleshooting

Powerline 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-run

License

WTFPL - Do What The Fuck You Want To Public License

Credits

  • Tmux configuration based on gpakosz/.tmux
  • Inspired by various dotfiles repositories in the community

About

Cross-platform dotfiles for macOS and Ubuntu — bootstrap your dev environment with one command

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors