This is my backup of my dotfiles.
.bashrccontains shared interactive shell settings and is tracked in this repository..bash_profilestays minimal and only loads.bashrcfor login shells..bash_localis optional for machine-specific settings and is not tracked by Git.
Load order on login shells:
.bash_profile.bashrc.bash_local(if present)
.msmtprcis copied to~/bysetup.sh(not symlinked), so each device can keep its own password config.- Add a password command in local
~/.msmtprc(example:passwordeval "pass show mail/gmail_app_password"). - Set
NOTIFY_EMAILin~/.bash_localforbin/notify_me.sh. - Start from
.bash_local.examplein this repository for first-time setup.
First-time setup:
cp ~/.bash_local.example ~/.bash_localThen edit ~/.bash_local as needed.
Example:
export NOTIFY_EMAIL="your_email@example.com"bin/wsl_port_forward.sh [port]now validates WSL usage and defaults to port2222.bin/clipboard.sh <file>validates file andclip.exebefore copying.bin/clipboard_xclip.sh <file>validates file andxclipbefore copying.
.bashrcnow setsDISPLAYonly when running in WSL.- SSH agent fallback restores from
~/.ssh/ssh-agentand re-creates it only when needed. - PATH entries for optional tools are added only when directories exist.
- Run
./setup.shfor normal setup. - Run
./setup.sh --dry-runto preview changes without writing files. - Run
./setup.sh --forceto overwrite copied local files such as~/.msmtprc.