bash-preexec arms its DEBUG trap from __bp_interactive_mode at the end of PROMPT_COMMAND, but its lazy installer runs mid-way through the first prompt because zoxide and ghostty append their hooks after it. Those hooks disarm the trap again, so the first interactive command of every session never reached preexec and atuin silently dropped it. Arm from PS0 instead, which is expanded once per interactive command before the DEBUG trap and is therefore independent of PROMPT_COMMAND ordering. Also guard the script against running twice: it is installed as both loginShellInit and interactiveShellInit, and /etc/profile sources /etc/bashrc, which registered starship's precmd/preexec hooks twice in every login shell. |
||
|---|---|---|
| .. | ||
| hm-bootstrap.sh | ||
| install-btrfs.sh | ||
| shell-init.sh | ||