cjosta@tasu77.UUCP (Jonathan Sweedler) (05/07/89)
I am running mush on a sun console. I originally used the tool interface to mush, but discovered that this interface lacks A LOT of the functionality of the curses interface. I found that I actually prefer the curses interface. The only problem with this interface is that I no longer get instant notification of my incoming mail. The way I am running mush now is to open a shelltool in which I only run mush i.e. I always have a mush window (similar to using the tool interface) but this mush window uses the curses interface. I can change my icon on this window to be a mailbox, but mush, of course, doesn't put the flag up when new mail arrives. Is there anyway to change this easily? I think it would be useful if there was some way to tell mush to print a string out (this would allow me to change my icon) or run a program when new mail arrives. Also, something that I noticed from the very early days of mush. If you are running mush in curses mode and the cursor is an inverse bar and is resting on a mail message that does not fill the line (i.e. there are blank spaces on the right side of the cursor) and you suspend mush with a ^Z and then resume it, the blank spaces on the right side of the screen stay highlighted even after you move the cursor onto another mail message. Oh, by the way. The new editing features of outgoing mail are great! Jonathan Sweedler === National Semiconductor Israel UUCP: ...!{amdahl,hplabs,decwrl}!nsc!taux01!cjosta Domain: cjosta@taux01.nsc.com
schaefer@ogccse.ogc.edu (Barton E. Schaefer) (05/08/89)
In article <1628@taux01.UUCP> cjosta@tasu77.UUCP (Jonathan Sweedler) writes: } I am running mush on a sun console. I originally used the tool } interface to mush, but [...] I found that I actually } prefer the curses interface. The only problem with this interface is } that I no longer get instant notification of my incoming mail. The reason for this lies in a basic difference between the line/curses mode interfaces and the tool interface. Of the three interfaces, only the tool mode is event driven. That means that mushtool essentially spends its time waiting for an event, which might come from anywhere -- keyboard, mouse, or timer. The timer events are set up by mush itself, and when one comes in, mush performs the check for new mail. If new mail has arrived, mush checks to see if it is in iconic state, and acts appropriately. The line and curses modes, on the other hand, are not designed to handle events from multiple sources. In those modes, mush spends its time waiting for input from stdin (usually the keyboard). Instead of checking for mail once per minute, mush checks after each command. Many of the features that you find lacking in tool mode depend on this synchronous I/O behavior -- I'm not sure what would be required in order to handle asynchronous events like the timer for checking new mail. } Is there anyway to change this easily? No. It might, however, be possible to add a command that would cause mush to stop and wait for new mail -- then you could give that command before closing the shelltool to an icon. } I think it would be useful if there was some way to tell mush to print a } string out (this would allow me to change my icon) or run a program when } new mail arrives. Given the command suggested above, you could handle that. } Also, something that I noticed from the very early days of mush. If you } are running mush in curses mode and the cursor is an inverse bar and is } resting on a mail message that does not fill the line (i.e. there are } blank spaces on the right side of the cursor) and you suspend mush } with a ^Z and then resume it, the blank spaces on the right side of the } screen stay highlighted even after you move the cursor onto another } mail message. This is a curses oddity and I'm not sure mush could do anything about it. I'll put it on the list of things to look at. } Jonathan Sweedler === National Semiconductor Israel -- Bart Schaefer "And if you believe that, you'll believe anything." -- DangerMouse CSNET / Internet schaefer@cse.ogc.edu UUCP ...{sun,tektronix,verdix}!ogccse!schaefer
lmb@vicom.COM (Larry Blair) (05/08/89)
In article <1628@taux01.UUCP> cjosta@tasu77.UUCP (Jonathan Sweedler) writes:
=I am running mush on a sun console. I originally used the tool
=interface to mush, but discovered that this interface lacks A LOT of
=the functionality of the curses interface. I found that I actually
=prefer the curses interface. The only problem with this interface is
=that I no longer get instant notification of my incoming mail.
My solution for this is to run the "newmail" program from the elm distribution.
I start it in my .profile before it fires up suntools. The messages that is
produces when new mail arrives cause my "contool" to flash.
--
Larry Blair ames!vsi1!lmb lmb@vicom.com
dheller@cory.Berkeley.EDU (Dan Heller) (05/09/89)
In article <1713@vicom.COM> lmb@vicom.COM (Larry Blair) writes: >In article <1628@taux01.UUCP> cjosta@tasu77.UUCP (Jonathan Sweedler) writes: >=I am running mush on a sun console. I originally used the tool >=interface to mush, but discovered that this interface lacks A LOT of >=the functionality of the curses interface. I found that I actually >=prefer the curses interface. The only problem with this interface is >=that I no longer get instant notification of my incoming mail. > >My solution for this is to run the "newmail" program from the elm distribution. >I start it in my .profile before it fires up suntools. The messages that is >produces when new mail arrives cause my "contool" to flash. As I believe someone mentioned, curses mode informas you of new mail more frequently than tool-mode. However, it does not do it while you are idle, which is the problem. If you're on a BSD machine (in the general sense, sun's don't have it by default) you probably have sysline --a program which tells you of new mail as well as other interesting info on your status line (the titlebar on suns). I also have a program called "watch" which, I believe, is portable to any system. It tells you the time, $cwd and monitors new mail as it comes in -- It outputs to your status line or can give it an option to echo the escape sequence to deiconify a winodw in suntools if you like. Requests for the source tothis program can be sent to me at cory.berkeley.edu. X-window users can use xwatch -- the iconic version of the same program for X11R[23]. Finally, you can write a simple shell script that does nothing but monitor mail and, in the event of new mail, echo the escape sequence necessary to open the window. Dan Heller <island!argv@sun.com>
dv@unicom.UUCP (David W. Vezie) (05/10/89)
In article <1628@taux01.UUCP> cjosta@tasu77.UUCP (Jonathan Sweedler) writes: > ... I can change my icon >on this window to be a mailbox, but mush, of course, doesn't put the >flag up when new mail arrives. Is there anyway to change this easily? I've solved that problem in a rather interresting way. I use the command line mode of mush (it's what I'm used to, and it works the best for me). I have a dedicated shelltool used for just mush, so I have the apropriate icon (in this case a modified mailtool icon (with "DV" on it :-)) for it. I use my .forward file to include a filter that does all the window management stuff. Here's how it works: I have two .forward files, one for when I'm here, and one for when I'm not: The one for when I'm here reads: dv,"|/u0/dv/bin/mailicon" The one for when I'm gone reads simply: dv Then, I make sure that my "mushtool" is always in the same window (by using "skill" to kill off everything on ttyp0, then starting the "mushtool" so that it automatically starts with ttyp0). My "mailicon" program does: --------------- #! /bin/sh # First, free up the process doing the filtering cat > /dev/null # .mailtty always contains /dev/ttyp0 if [ ! -f /u0/dv/.mailtty ]; then exit 0 fi TTY=`cat /u0/dv/.mailtty` if [ "X$TTY" = X ]; then exit 0 fi if [ ! -f $TTY ]; then exit 0 fi # put it in background in case it blocks if [ -f /u0/dv/.mailautoopen ]; then /u0/dv/bin/sVecho "\007\033]I/u0/dv/=images/mail.icon\033\\ \b\033[1t\c" > $TTY & lastpid=$! else /u0/dv/bin/sVecho "\007\033]I/u0/dv/=images/mail.icon\033\\ \b\c" > $TTY & lastpid=$! fi sleep 5 ( /bin/kill -9 $lastpid 2> /dev/null & ) exit 0 ---------------------------------------------- Couple of things with this; sVecho is the Sun port of System V echo (/usr/5bin/echo) (since we don't keep all of /usr/5bin around). The .mailautoopen file determines whether or not it will automatically open the window so that I can read it (if I'm busy with something, I'll remove the file, so that it won't). It also always changes the icon so that it shows the "flag" as being up. There is a check here that it can actually write to the pty. If it blocks, then it's killed 5 seconds later. When I first got this going, I had a problem with my proc table choking with all these "mailicon" processes. This prevents that. Then, I've got some things in my .mushrc that controls this. My "mushtool" script: --------- #! /bin/sh skill -1 ttyp0 MAILRC=$HOME/.mushrc.sun shelltool -Wp 42 180 -Ws 730 637 -WP 1088 0 -Wl ""\ -WI /u0/dv/=images/nomail.icon -c /u0/dv/bin/mush & --------- skills off everything on ttyp0 (so that I'm guaranteed of getting that pty), it also sets my $MAILRC to be .mushrc.sun, which reads: --------- cd sh tty set screen=29 set crt=33 cmd updend "update -N;potm;f + $;sVecho '\033]I/u0/dv/=images/nomail.icon\033\0134\c'" cmd q 'sVecho "\033[2t";updend' set ignoreeof = q set prompt = '^[]lNew: %n, Unread: %u, Deleted: %d, Folder: %f, (%T)^[\\Msg %m of %t: ' cmd open touch ~/.mailautoopen cmd noopen rm ~/.mailautoopen source ~/.mushrc.common --------- Important things here -- updend updates the folder, runs "potm" (sets a header to the phase of the moon), sets the pointer to the last message, and changes the icon to be the "nomail" icon. 'q' closes the window, then does all that (so that if I do a 'q', it will do all the updating and such (which can take a while because I usually keep >100 messages in my main folder) when the window's closed, and I can know when it's done by the icon changing. I also have my prompt set to put some useful info on the status line (note that the { '^', '[' }s up there should be changed to escapes). I then have two cmd's for determining whether or not my mushtool will automatically open, and finally it sources .mushrc.common (all the common .mushrc stuff (my normal .mushrc contains non-suntools specific versions of the "updend", "q", commands and the $prompt). You'll probably find things like "why does he do that? That doesn't make any sense at all!" You're right. Just while doing this, I found a couple of problems with it. I havn't put too much time into this system beyond getting it to work, which it does. Hope this helps some of you with your system. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= David W. Vezie, Systems Hacker | dv%unicom@pacbell.com "I support Star Wars (tm), | pacbell!unicom!dv it's SDI that I can't stand" --Me | {sun,ucbvax}!pixar!unicom!dv
rock%warp@Sun.COM (Bill Petro - GSG Marketing) (06/08/89)
Here is a little tool that I use on my Sun that will tell you not only when you get new mail, but how many new mail items you have, and how many unread items you have. It is called "checkmail" and can be run as a window tool in iconic form. I run it automatically every 120 seconds as part of my .suntools file with a very large font. Here is my .suntools entry (should be all one line): shelltool -Wp 2 153 -Ws 481 224 -WP 600 0 -Wi -Wt /usr/lib/fonts/fixedwidthfonts/gallant.r.19 -Wl "suntool: checkmail" -WL "suntool: checkmail" checkmail -i 120 Here is the shell script itself. It is in "shar" format, which means save everything below the cutmark into a file called "neato". Then type "sh neato" and three files will be created: checkmail, mail.icon, and nomail.icon. I have included these two icons for your viewing pleasure. Otherwise, you can uncomment the lines "#Havemail ..." and "#Nomail ...". Type "chmod +x checkmail" and you are set. To run it all the time, put the entry above in your .suntools file. To run it on the command line with a 120 second cycle, type "shelltool checkmail -i 120 &" Bill Petro ------------------- Cutmark, cut here, valuable coupon ---------------------- #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of shell archive." # Contents: checkmail cm_shar mail.icon nomail.icon # Wrapped by rock@warp on Wed Jun 7 15:18:22 1989 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'checkmail' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'checkmail'\" else echo shar: Extracting \"'checkmail'\" \(1030 characters\) sed "s/^X//" >'checkmail' <<'END_OF_FILE' X#! /bin/sh X# X# checkmail - checks for new mail and updates icon label X# with "new" message. X# X# syntax: checkmail [ -i seconds ] X# X# 16.nov.87 yOOnkim@Sun.COM X# X Interval=60 # In seconds X case $1 in X-i*) X if [ $# = 2 ] X then X Interval=$2 X fi X ;; esac X Havemail=mail.icon Nomail=nomail.icon X#Havemail=/usr/include/images/mail.icon X#Nomail=/usr/include/images/nomail.icon X XEsc='' Close="echo -n ${Esc}[2t" X newLabel() X{ X echo -n "${Esc}]L$1\\" X} X newicon() X{ X echo -n "${Esc}]I$1\\" X} X newicon $Nomail newLabel "" X$Close while true do X Top=`echo x | mail | head -2 | egrep "new$|unread$"` X case "$Top" in X *new*unread) X label=`echo $Top | \ X awk '{printf("%d/%d", $(NF-3), $(NF-1));}'` X newLabel "${label}" X newicon $Havemail X ;; X *new) X label=`echo $Top | awk '{printf(" %d", $(NF-1));}'` X newLabel "${label}" X newicon $Havemail X ;; X *unread) X label=`echo $Top | awk '{printf("%d_U", $(NF-1));}'` X newLabel "${label}" X newicon $Havemail X ;; X *) X newLabel "" X newicon $Nomail X ;; X esac X sleep $Interval done END_OF_FILE echo shar: 3 control characters may be missing from \"'checkmail'\" if test 1030 -ne `wc -c <'checkmail'`; then echo shar: \"'checkmail'\" unpacked with wrong size! fi chmod +x 'checkmail' # end of 'checkmail' fi if test -f 'cm_shar' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'cm_shar'\" else echo shar: Extracting \"'cm_shar'\" \(0 characters\) sed "s/^X//" >'cm_shar' <<'END_OF_FILE' END_OF_FILE if test 0 -ne `wc -c <'cm_shar'`; then echo shar: \"'cm_shar'\" unpacked with wrong size! fi # end of 'cm_shar' fi if test -f 'mail.icon' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'mail.icon'\" else echo shar: Extracting \"'mail.icon'\" \(1933 characters\) sed "s/^X//" >'mail.icon' <<'END_OF_FILE' X/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 X */ X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, X 0x0000,0x0000,0x0008,0x0000,0x0000,0x0000,0x000C,0x0000, X 0x0000,0x0000,0x000E,0x0000,0x0000,0x0000,0x000F,0x0000, X 0x0000,0x0000,0x000F,0x8000,0x0000,0x0000,0x000F,0xC000, X 0x0000,0x0000,0x000F,0xE000,0x0000,0x0000,0x000F,0xF000, X 0x0000,0x0000,0x000F,0xF800,0x0000,0x0000,0x000F,0xFC00, X 0x0000,0x0000,0x000F,0xFE00,0x0000,0x0000,0x000F,0xFF00, X 0x7FFF,0xFFFF,0xFFFF,0xFF80,0x7FFF,0xFFFF,0xFFFF,0xFFC0, X 0x7FFF,0xFFFF,0xFFFF,0xFFE0,0x7E7C,0xF1E6,0x7FFF,0xFFF0, X 0x7E38,0xE4E6,0x7FFF,0xFFF8,0x7E10,0xCE66,0x7FFF,0xFFFC, X 0x7E44,0xCE66,0x7FFF,0xFFFE,0x7E6C,0xCE66,0x7FFF,0xFFFF, X 0x7E7C,0xC066,0x7FFF,0xFFFF,0x7E7C,0xCE66,0x7FFF,0xFFFE, X 0x7E7C,0xCE66,0x7FFF,0xFFFC,0x7E7C,0xCE66,0x7FFF,0xFFF8, X 0x7E7C,0xCE66,0x03FF,0xFFF0,0x7E7C,0xCE66,0x03FF,0xFFE0, X 0x7FFF,0xFFFF,0xFFFF,0xFFC0,0x7FFF,0xFFFF,0xFFFF,0xFF80, X 0x0000,0x0000,0x000F,0xFF00,0x0000,0x0000,0x000F,0xFE00, X 0x0000,0x0000,0x000F,0xFC00,0x0000,0x0000,0x000F,0xF800, X 0x0000,0x0000,0x000F,0xF000,0x0000,0x0000,0x000F,0xE000, X 0x0000,0x0000,0x000F,0xC000,0x0000,0x0000,0x000F,0x8000, X 0x0000,0x0000,0x000F,0x0000,0x0000,0x0000,0x000E,0x0000, X 0x0000,0x0000,0x000C,0x0000,0x0000,0x0000,0x0008,0x0000, X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 END_OF_FILE if test 1933 -ne `wc -c <'mail.icon'`; then echo shar: \"'mail.icon'\" unpacked with wrong size! fi # end of 'mail.icon' fi if test -f 'nomail.icon' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'nomail.icon'\" else echo shar: Extracting \"'nomail.icon'\" \(1933 characters\) sed "s/^X//" >'nomail.icon' <<'END_OF_FILE' X/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 X */ X 0x0000,0x0000,0x0000,0x0000,0x7FFF,0xFFFF,0xFFFF,0xFFFE, X 0x7FFF,0xFFFF,0xFFFF,0xFFFE,0x7FFF,0xFFFF,0xFFFF,0xFFFE, X 0x7FFF,0xFFFF,0xFFFF,0xFFFE,0x7FFF,0xFFFF,0xFFFF,0xFFFE, X 0x7FFF,0xFFFF,0xFFFF,0xFFFE,0x7FFF,0xFFFF,0xFFFF,0xFFFE, X 0x7FFF,0xFFFF,0xFFFF,0xFFFE,0x7FFF,0xE000,0x0000,0x01FE, X 0x7FFF,0x01FF,0xFFFF,0xFE7E,0x7FF8,0xFE3F,0xFFFF,0xFF9E, X 0x7FE7,0xFFCF,0xFFFF,0xFFEE,0x7FDF,0xFFF7,0xFFFF,0xFFEE, X 0x7F3F,0x8FF9,0xFFFF,0xFFF6,0x7EFF,0x07FE,0xFFFF,0xFFF6, X 0x7EFE,0x03FE,0xFFFF,0xFFFA,0x7DFE,0x03FF,0x7FFF,0xFFFA, X 0x7BFE,0x03FF,0xBFFF,0xFFFA,0x7BFF,0x07FF,0xBFFF,0xFFFA, X 0x77FF,0x8FFF,0xDFFF,0xFFFA,0x77FF,0xFFFF,0xDFFF,0xFFFA, X 0x77FF,0xFFFF,0xCFFF,0xFFFA,0x6FFF,0xFFFF,0xEFFF,0xFFFA, X 0x6FFF,0xFFFF,0xEFFF,0xFFFA,0x6C00,0x0000,0x6FFF,0xFFDA, X 0x5DFF,0xFFFF,0x6FFF,0xFF1A,0x5DFF,0xFFFF,0x6FFF,0xFC5A, X 0x5DFF,0xFFFF,0x6FFF,0xF9DA,0x5C00,0x0000,0x6FFF,0xE3DA, X 0x5FFF,0xFFFF,0xEFFF,0xCBDA,0x5FFF,0xFFFF,0xEFFF,0x3BDA, X 0x5FFF,0xFFFF,0xEFFC,0x7BDA,0x5FFF,0xFFFF,0xEFF9,0xFBDA, X 0x5FFF,0xFFFF,0xEFE3,0xFBDA,0x5FFF,0xFFFF,0xEE0F,0xFBDA, X 0x5FFF,0xFFFF,0xEC1F,0xFBBA,0x5FFF,0xFFFF,0xEC1F,0xFA7A, X 0x5FFF,0xFFFF,0xEC1F,0xF9FA,0x5FFF,0xFFFF,0xEE3F,0xFBFA, X 0x5FFF,0xFFFF,0xEFFF,0xFFF2,0x5BDE,0x7BD8,0x2FFF,0xFFEE, X 0x59DD,0xB9DB,0xEFFF,0xFFDE,0x59DB,0xD9DB,0xEFFF,0xFF3E, X 0x5ADB,0xDADB,0xEFFF,0xFEFE,0x5ADB,0xDADB,0xEFFF,0xF9FE, X 0x5B5B,0xDB58,0x6FFF,0xF7FE,0x5B5B,0xDB5B,0xEFFF,0xC7FE, X 0x5B9B,0xDB9B,0xEFFF,0xB7FE,0x5B9B,0xDB9B,0xEFFF,0x77FE, X 0x5BDD,0xBBDB,0xEFFC,0xF7FE,0x5BDE,0x7BD8,0x2FFB,0xF7FE, X 0x5FFF,0xFFFF,0xEFE3,0xF7FE,0x5FFF,0xFFFF,0xEFDB,0xF7FE, X 0x5FFF,0xFFFF,0xEFBB,0xF7FE,0x5FFF,0xFFFF,0xEE7B,0xF7FE, X 0x5FFF,0xFFFF,0xEDFB,0xF7FE,0x5FFF,0xFFFF,0xEBFB,0xF7FE, X 0x4000,0x0000,0x07FB,0xF7FE,0x7FFF,0xFFF7,0xFFFB,0xF7FE, X 0x7FFF,0xFFF7,0xFFFB,0xF7FE,0x7FFF,0xFFF7,0xFFFB,0xF7FE, X 0x7FFF,0xFFF7,0xFFFB,0xF7FE,0x0000,0x0000,0x0000,0x0000 END_OF_FILE if test 1933 -ne `wc -c <'nomail.icon'`; then echo shar: \"'nomail.icon'\" unpacked with wrong size! fi # end of 'nomail.icon' fi echo shar: End of shell archive. exit 0 {decwrl,hplabs,ucbvax}!sun!warp!rock Bill Petro
tran@versatc.UUCP (Tony Tran x4317) (06/13/89)
In article <108723@sun.Eng.Sun.COM> rock@sun.UUCP (Bill Petro - GSG Marketing) writes: > > >Here is a little tool that I use on my Sun that will tell you not only >when you get new mail, but how many new mail items you have, and how >many unread items you have. It is called "checkmail" and can be run as >a window tool in iconic form. I run it automatically every 120 seconds >as part of my .suntools file with a very large font. > This shar file appears to be improperly packed. It complained about missing control character. Here is the record of the session: $ sh checkmail.shar shar: Extracting "checkmail" (1030 characters) shar: 3 control characters may be missing from "checkmail" shar: "checkmail" unpacked with wrong size! shar: Extracting "cm_shar" (0 characters) shar: Extracting "mail.icon" (1933 characters) shar: Extracting "nomail.icon" (1933 characters) shar: End of shell archive. Does anybody run into the same problem? Tony Tran Versatec Corp. -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- UUCP: {ames,apple,sun,pyramid}!versatc!tran Tony Tran (408) 982-4317 ARPA: tran@arisia.xerox.com " The plotter is the computer " -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-