Re: Gush - a (half-baked) Graphical User SHell
- From: colin.macleod@xxxxxxxxx
- Date: Tue, 5 May 2009 01:31:46 -0700 (PDT)
On 5 May, 01:49, Jeff Hobbs <jeff.ho...@xxxxxxxxx> wrote:
On May 4, 4:47 pm, Colin Macleod <colin.macl...@xxxxxxxxxxxxxxxxxxxx>
wrote:
I've just uploaded a little project of mine to the "half-bakery" athttp://wiki.tcl.tk/_repo/gush/. I call it "gush" for Graphical User
SHell. It's an attempt to update the Unix command line by integrating
the functions of a shell, a "dumb" terminal window, and a pager like
"more" or "less".
Interesting. Have you ever considered updating tkcon to have this
support? There is actually some undocumented magic code in tkcon that
plays around with Expect and attempts to control the tty. I didn't
have much need for it myself, so I never finished it. It would be
nice to fit this all into one mega-console though (or maybe mini-
console is preferred?).
Jeff
Hi Jeff,
Yes, there is some overlap with tkcon, I should take another look at
that.
My emphasis is different though. Tkcon is basically aimed at working
in
Tcl, with some shell-type features as well. Because I want gush to
look
and feel like a standard shell, at least in its basic features, I have
to
compromise on Tcl-compatibility. Eg. entering "ls *[hcp]" in gush
lists
source files, in tkcon you get: invalid command name "hcp".
In tkcon if you type "vmstat 5" it hangs, in gush you see its periodic
output
and you can kill the process with control-c or "background" it with
control-z
(which does not stop the process, just leaves it running in its own
region
of the screen but prompts for a new command below this).
I do use Expect, but only in a section I put in to handle certain
awkward
programs which prompt for input and read to/from /dev/tty rather than
stdin
and stdout. On startup I fork and disconnect from the controlling
terminal
so I can get a new controlling terminal routed through Expect to
manage
interaction with /dev/tty. This works ok on Solaris, but has problems
on
Linux which I did not find time to solve, so I disabled it in the
version
I uploaded. Earlier I had tried running all commands through Expect,
but
I was concerned about using too many ptys, and I didn't need the
pattern
matching so I dropped that. Also "man" for example will try to do its
own
paging if it thinks it's on a terminal, it works better to have it see
a
pipe so it writes all the output, then you can use gush's own paging
to
move through the output.
Colin.
.
- Follow-Ups:
- Re: Gush - a (half-baked) Graphical User SHell
- From: Jeff Hobbs
- Re: Gush - a (half-baked) Graphical User SHell
- References:
- Gush - a (half-baked) Graphical User SHell
- From: Colin Macleod
- Re: Gush - a (half-baked) Graphical User SHell
- From: Jeff Hobbs
- Gush - a (half-baked) Graphical User SHell
- Prev by Date: Re: "Properties List" in a megawidget?
- Next by Date: Re: tablelist and <Button-2> events ...
- Previous by thread: Re: Gush - a (half-baked) Graphical User SHell
- Next by thread: Re: Gush - a (half-baked) Graphical User SHell
- Index(es):
Relevant Pages
|