66cbb97f916e183ed91f79d7614801f5087d53e4
- Reorganize dotfiles into stow/ subdirectories (bash/, git/) - Add package management system with categorized package lists - Enhance install.sh with interactive package selection - Fix package selection logic and improve error handling - Update dotpull alias to work with new stow structure - Add comprehensive documentation in README.md Breaking Changes: - Dotfiles moved from root to stow/ subdirectories - Install script now requires user interaction for package selection - Stow commands now target individual config directories
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
├── install.sh # Bootstrap script with package management
└── README.md # Documentation
Install
bash <(curl -sL https://ryans.tools/dotfiles)
The installer will:
- Clone this repository to
~/.dotfiles - Prompt you to choose which package sets to install
- Backup any existing conflicting files
- Use GNU Stow to symlink configurations
- Set up bash aliases including the
dotpullupdate alias
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:
dotpull
This alias will pull the latest changes and re-stow all configurations.
Manual Management
To manage individual configurations:
cd ~/.dotfiles/stow
stow -t ~ bash # Link bash config
stow -t ~ git # Link git config
stow -D bash # Unlink bash config
Languages
Shell
100%