1.9 KiB
1.9 KiB
Bash configuration
This repository owns configuration that is specific to interactive Bash and the Bash login sequence.
Responsibilities
- Install
~/.bash_profileand~/.bashrcas symlinks into this repository. - Make login Bash load the shared
~/.profileenvironment before.bashrc. - Configure Bash history, prompt rendering, completion and command-not-found behaviour.
- Initialize Bash integrations such as NVM, Pyenv, z.lua and gitstatus.
- Display the startup greeting and cached package status.
- Display
TODO.mdand.autonote.mdafter successful directory changes. - Load common interactive aliases from the
profilerepository.
Boundaries
This repository does not own:
- Portable login environment variables or shared PATH construction. Those
belong in the
profilerepository. - Common aliases intended for more than one Bourne-family shell. Those belong
in
profile/aliases.sh; genuinely Bash-specific aliases may live here. - User services, timers or background refresh logic. Those belong in the
systemdrepository. Bash may consume their cached output or request a non-blocking service start. - Secrets, machine credentials or project-specific environment settings.
Startup flow
A login Bash reads:
~/.bash_profile -> ~/.profile -> ~/.bashrc
A non-login interactive Bash reads only ~/.bashrc and inherits the login
environment from its parent process. .bashrc returns immediately when the
shell is not interactive.
Files
bash_profile: connects Bash login startup to the shared profile and Bash RC.bashrc: interactive Bash configuration.gitstatus-custom.sh: prompt integration for gitstatus.cheat.bash: completion forcheat.install.sh: installs the home-directory symlinks and gitstatus dependency.
Run install.sh when initially installing the repository. It preserves an
existing destination before creating each symlink.