Announcing basht, a modification of bash-5.3 in which no task writes
directly to the terminal. Every task, the shell included, writes to
its own pty; output reaches the screen as whole lines, each tagged
[name:instance:pid:line]; and background jobs print through a stable
prompt while the line being typed survives at the bottom of the
screen. Concurrent tasks cannot interleave mid-line. The model comes
from the tagged consoles of the Univac 1100-series systems I used
early in my career.

Repository: https://github.com/samiam95124/basht
Demo (9 min): https://youtu.be/stjK6rqtQno
Theory of operation: https://github.com/samiam95124/basht/blob/main/basht.theops

The diff against upstream is 11 files, +1887/−21, with roughly 1700
lines of that in self-contained new modules. Interactive shells only;
bash -c, cron jobs, and #! scripts behave exactly as stock bash.
Full-screen programs are detected at their first alternate-screen
escape and moved to their own terminal window. GPLv3, same as
upstream.

To be clear, this is a standalone fork, not a patch submission — I'm
not requesting a merge or review. Sharing it here because this list is
where people who think about shell behavior are, and the design may be
of interest. Comments welcome.

Scott Franco
San Jose, CA

Reply via email to