Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!unmvax!pprg.unm.edu!hc!ames!amdcad!sun!warp!rock From: rock%warp@Sun.COM (Bill Petro - GSG Marketing) Newsgroups: comp.mail.mush Subject: Re: instant notification of new mail in curses mode (LONG) Message-ID: <108723@sun.Eng.Sun.COM> Date: 7 Jun 89 22:57:20 GMT Sender: news@sun.Eng.Sun.COM Reply-To: rock@sun.UUCP (Bill Petro - GSG Marketing) Organization: Sun Microsystems, Mountain View Lines: 222 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 '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