Was thinking a bit more about the way the command history works, and
I've had a number of ideas, so I thought I'd post them and up and see
what folk think. Note there is an issue open about some of this
already:
http://code.google.com/p/hotwire-shell/issues/detail?id=83
I'll start with some thoughts about how gnome-terminal works. Some
observations
* if the results of the last few commands is short, I can see quite a
few command results at once.
* there is a fixed buffer size (which can be altered in the
preferences) that sets the number of lines saved before results are
discarded.
So my expectations of a terminal replacement are partly set by the
above properties. With the timeout it seems a bit random when results
disappears when you are used to a buffer. To translate this into
hotwire design, I would make the default be that
* there is a value in the preferences that sets the number of
(finished) results that will be kept. There is a default value (of
say 10, so it works out of the box) but the user can change that.
* the default way of displaying results would be to show all the
results - each result would have its own box, with the command run at
the top of the box (in bold on a darker background), a line beneath
it, and then the output of the command. The boxes would appear in the
order run. That way I can see the result of the last few commands (if
the output is short).
* You can collapse (and expand) individual results, or collapse all,
or expand all. Think of the gmail interface for viewing a thread of
messages. Obviously we would have to allow for both mouse and
keyboard shortcuts for doing this. (Which makes me think of something
like vi command mode, removing the focus from the input box and using
j and k to go up and down the commands, opening as you go, maybe with
n and p to do next and previous without opening, but maybe I just use
google reader too much. One step at a time ...)
In addition I like the idea of
* being able to pin results (so that they don't expire)
* naming results (so that they can be filtered as "current" can be)
* clearing individual (or all) results