- Shell 100%
| platform | ||
| aliases.sh | ||
| commands.README.md | ||
| commands.sh | ||
| commands.tsv | ||
| hosts.sh | ||
| install.sh | ||
| interactive.sh | ||
| profile | ||
| README.md | ||
Shared shell profile
This repository owns the login environment and interactive commands intended to be shared by Bourne-family shells.
"Shared" means shells capable of reading POSIX-style sh, such as sh, Bash,
Dash and—with appropriate compatibility—Zsh. It does not mean that the same
file can be sourced directly by shells with different languages, such as Fish
or Nushell.
Responsibilities
- Install
~/.profileas a symlink into this repository. - Define XDG locations and general editor/browser environment variables.
- Construct PATH idempotently for language and user-level executable paths.
- Load environment setup that is portable at login, such as Cargo's
envfile. - Provide common aliases and small interactive functions that are useful across supported Bourne-family shells.
- Isolate Arch Linux commands from otherwise portable shell configuration.
Boundaries
The profile file must remain quiet, idempotent and safe for a POSIX shell to
source during login. It must not print an alias catalogue, configure a prompt,
perform interactive terminal operations or start background work.
Interactive shells should source interactive.sh from their own RC file. The
login profile deliberately does not source it, because login profiles may also
run in non-interactive sessions.
Shell-specific prompt, history, completion and initialization belongs in the
corresponding shell repository, currently bash. User services and timers
belong in the separate systemd repository.
Files
profile: portable login environment and PATH construction.interactive.sh: POSIX loader and manually curated alias reminder.aliases.sh: common POSIX interactive aliases and helper functions.commands.sh: command-catalogue display and validation functions.hosts.sh: SSH destination listing function.platform/arch.sh: Arch Linux applications, GNU options and Pacman/systemd integration, written with POSIX shell syntax.commands.tsv: curated command descriptions and reminder visibility.commands.README.md: format and maintenance instructions forcommands.tsv.install.sh: installs the~/.profilesymlink.
Alias portability
The shared interactive files use POSIX shell syntax. Bash-only compatibility
aliases—including names that are deliberately being retired—live in the Bash
repository's aliases.bash instead.
External commands remain platform-specific by design: aliases for Pacman, systemd, GNU utilities and local applications target this Arch Linux setup. Syntax portability does not imply operating-system portability.
The Arch update function runs the local archnews_wrap Pacman workflow and,
after a successful upgrade, requests a non-blocking refresh from the systemd
user service package-status-refresh.service.