e4063b5559
Two changes that address a longstanding frustration: bash history is lost on every container recreate, and the container's ~/.bashrc and ~/.inputrc are stock Debian (no history tuning, no prefix search on arrow keys, no integrations). Added a named volume 'devbox-shell-history' mounted at ~/.cache/bash with HISTFILE pointing there; history now survives 'docker compose up --force-recreate'. The volume is added to both docker-compose.yml and docker-compose.shared.yml, and ~/.cache/bash is registered in the entrypoint ownership-fix loop per the AGENTS.md convention. Baked rootfs/home/developer/.bash_aliases (sourced automatically by Debian's default ~/.bashrc) and rootfs/home/developer/.inputrc into the image. They give new containers: 100k-entry timestamped dedup history with per-prompt flush, Up/Down arrow prefix history search, case-insensitive coloured completion, aliases that prefer eza and bat when present, git shortcuts, interactive rm/mv/cp, zoxide and fzf (via 'fzf --bash') integration, and a [devbox] prompt marker. The fzf integration uses 'fzf --bash' because we install fzf from GitHub releases, not apt — the apt-path key-bindings aren't present. Users who prefer their host's own shell config can uncomment two commented bind-mount lines in docker-compose.yml to shadow the baked defaults.
28 lines
1.4 KiB
Plaintext
28 lines
1.4 KiB
Plaintext
# opencode-devbox readline defaults
|
|
# To override, bind-mount your host's ~/.inputrc over this file
|
|
# via docker-compose.yml.
|
|
|
|
# Inherit system-wide defaults (colour, 8-bit input, …) if present
|
|
$include /etc/inputrc
|
|
|
|
# ── History search on Up/Down ────────────────────────────────────────
|
|
# Type a prefix, press Up, and walk through previous commands starting
|
|
# with that prefix. Ctrl-Up / Ctrl-Down keep the unconditional stepper.
|
|
"\e[A": history-search-backward
|
|
"\e[B": history-search-forward
|
|
"\e[1;5A": previous-history
|
|
"\e[1;5B": next-history
|
|
|
|
# ── Completion quality ───────────────────────────────────────────────
|
|
set show-all-if-ambiguous on # single Tab shows matches on ambiguity
|
|
set completion-ignore-case on # case-insensitive file/dir completion
|
|
set colored-stats on # colour ls-style completion list entries
|
|
set colored-completion-prefix on # highlight the matched prefix
|
|
set visible-stats on # append /*@ type indicators in completion
|
|
set mark-symlinked-directories on # add trailing / to symlinks to dirs
|
|
set skip-completed-text on # don't re-insert already-typed text
|
|
|
|
# Treat hyphens and underscores as equivalent when completing (e.g.
|
|
# typing `foo-` matches both `foo-bar` and `foo_bar`).
|
|
set completion-map-case on
|