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:
30
stow/bash/.bash_aliases
Normal file
30
stow/bash/.bash_aliases
Normal 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
25
stow/bash/.bashrc
Normal 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
5
stow/bash/.inputrc
Normal 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
9
stow/git/.gitconfig
Normal file
@@ -0,0 +1,9 @@
|
||||
[user]
|
||||
name = Ryan Hamilton
|
||||
email = ryanehamil@outlook.com
|
||||
|
||||
[color]
|
||||
ui = auto
|
||||
|
||||
[core]
|
||||
editor = nano
|
||||
Reference in New Issue
Block a user