1
0

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
This commit is contained in:
2025-08-04 19:16:02 -05:00
parent 7fd2fd7317
commit 66cbb97f91
10 changed files with 216 additions and 21 deletions

30
stow/bash/.bash_aliases Normal file
View File

@@ -0,0 +1,30 @@
# ~/.bash_aliases
alias ll='ls -alF --color=auto'
alias la='ls -A --color=auto'
alias l='ls -CF --color=auto'
alias h='history'
alias grep='grep --color=auto'
alias d='docker'
alias dc='docker compose'
alias dotpull='echo "🔄 Updating dotfiles..." && git -C ~/.dotfiles pull && echo "🔗 Re-stowing dotfiles..." && (cd ~/.dotfiles/stow && for dir in */; do if [ -d "$dir" ]; then echo " Stowing $dir..." && stow -R -t ~ "$dir" || echo " ⚠️ Failed to stow $dir"; fi; done) && echo "✅ Done."'
alias reloadbash='source ~/.bashrc && echo "Bash config reloaded."'
linkdocker() {
if [ -e ~/docker ] && [ ! -L ~/docker ]; then
echo "~/docker exists and is not a symlink. Not replacing."
return 1
fi
ln -sf /opt/docker ~/docker
}
alias install_tailscale='curl -fsSL https://tailscale.com/install.sh | sh'
alias hs_connect='sudo tailscale up --login-server https://headscale.ryans.tools'
alias profile='bash <(curl -sL https://ryans.tools/host_profile)'
alias install_qemuagent='sudo apt update && sudo apt install -y qemu-guest-agent && sudo systemctl enable --now qemu-guest-agent'
alias install_stow='sudo apt install -y stow'
alias install_neofetch='sudo apt install -y neofetch'
alias memoryinfo='sudo dmidecode -t memory | grep -i "Type:\|Speed:\|Size:"'

25
stow/bash/.bashrc Normal file
View File

@@ -0,0 +1,25 @@
# ~/.bashrc - loaded during interactive shells
# Source global definitions if available
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# Source user aliases
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# Color prompt
PS1='\[\e[0;36m\]\u@\h \[\e[0;33m\]\w\[\e[0m\] \$ '
# History settings
HISTSIZE=10000
HISTFILESIZE=20000
HISTCONTROL=ignoredups:erasedups
shopt -s histappend
# Enable bash completion if available
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi

5
stow/bash/.inputrc Normal file
View File

@@ -0,0 +1,5 @@
# ~/.inputrc
set completion-ignore-case on
set show-all-if-ambiguous on
TAB: menu-complete

9
stow/git/.gitconfig Normal file
View File

@@ -0,0 +1,9 @@
[user]
name = Ryan Hamilton
email = ryanehamil@outlook.com
[color]
ui = auto
[core]
editor = nano