1
0
Go to file
Ryan Hamilton 66cbb97f91 feat: restructure dotfiles with GNU Stow organization
- 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
2025-08-04 19:16:02 -05:00

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:

  1. Clone this repository to ~/.dotfiles
  2. Prompt you to choose which package sets to install
  3. Backup any existing conflicting files
  4. Use GNU Stow to symlink configurations
  5. Set up bash aliases including the dotpull update 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
Description
No description provided
Readme 163 KiB
Languages
Shell 100%