There is also no command history for my gui clicks; once you've clicked on something, there's no way to reuse that click in some slightly different way.
There is also no command history for my gui clicks; once you've clicked on something, there's no way to reuse that click in some slightly different way.
So, when outputting a number, you could display it in the output stream as a circle of radius N. Then, any input which wanted a number as argument (using "(accept 'integer ..)") would let you type a number or click on that circle.
This could be extended to shell command parser for richer input choices (rmdir can only accept directories, cat won't). Existing utilities could support a "richly typed stream of objects" (graphical ls) or a wrapper or output processor could add it. The latter has the advantage that not all commands would need to be aware, and it could be multi-functional (could work on "ls|grep", "find", "tar tf" output--but you might need to specify type hints).
I think it would be handy to have all my recent files, directories, outputs handy in a list on the side (with keyboard shortcuts too; I'm not a clicker..).
So in no way should your command history have to be compromised just because you have alternative input methods available.
[1] A Guided Tour of the Common Lisp Interface Manager, http://3e8.org/pub/scheme/doc/lisp-pointers/v4i1/p17-rao.pdf
And: applications that have Macro recorder features (Office and many text editors) allow you to actually record your actions - clicks or otherwise - into code that can be rerun.
Why have macros and history reimplemented badly by every application when one application could do it well?
That doesnt take away from the point, however, that GUI actions can be stored in history, composed, etc.
Some R (programming language) GUI frontend does it in this way.
It would be kind of cool to have gui interfaces (including the general desktop gui) have something like this dual mode.