# Ryan's Dotfiles A comprehensive dotfiles repository for SSH, remote environments, and development setups. ## Structure ``` ~/.dotfiles/ ├── stow/ # Configs organized for GNU Stow │ ├── bash/ # Bash configuration (.bashrc, .bash_aliases, .inputrc) │ ├── git/ # Git configuration (.gitconfig) │ └── [other configs] # Additional configurations as needed ├── packages/ │ ├── base.txt # MUST HAVE - Core system utilities │ ├── cli-tools.txt # Nice-to-haves - Enhanced CLI tools │ ├── dev.txt # Development tools (docker, node, etc) │ └── gui.txt # Desktop applications ├── bootstrap.sh # Get repo and select branch ├── setup.sh # Main orchestrator - runs all configuration └── README.md # Documentation ``` ## Install **From internet:** ```bash bash <(curl -sL https://ryans.tools/dotfiles) ``` **From local copy (USB drive, etc.):** ```bash ./bootstrap.sh ``` The installer will: 1. **Bootstrap:** Clone repository (or use local copy), select branch if desired 2. **Setup:** Check dependencies, backup conflicts, install packages, configure with GNU Stow ## Updates **Regular updates (recommended):** ```bash dotpull ``` **Branch switching or major re-setup:** ```bash cd ~/.dotfiles && ./bootstrap.sh ``` ## Package Categories - **Base**: Essential system utilities (curl, git, stow, vim, etc.) - **CLI Tools**: Enhanced command-line tools (bat, fzf, ripgrep, etc.) - **Development**: Programming languages and dev tools (nodejs, python, docker, etc.) - **GUI**: Desktop applications (firefox, code, vlc, etc.) ## Updating After initial installation, use the `dotpull` alias to update your dotfiles: ```bash dotpull ``` This alias will pull the latest changes and re-stow all configurations. ## Manual Management To manage individual configurations: ```bash cd ~/.dotfiles/stow stow -t ~ bash # Link bash config stow -t ~ git # Link git config stow -D bash # Unlink bash config ```