
Make Applications Trigger On-Screen Alerts #27
Chapter 4, Related to X
|
89
HACK
KMail
If you use the KDE KMail email client, you can have KMail execute a pro-
gram when new mail arrives. Here’s how you can have KMail display the on-
screen new-mail notification “You’ve got mail!” with XOSD.
First, you need to create a script that displays the on-screen alert “You’ve
got mail!”. KMail doesn’t allow you to insert the entire
echo and osd_cat
command line, but it will execute a script that displays the message. Fire up
your favorite editor, and enter this script into a file called ~/youhavemail.
(This script executes from your home directory, so you don’t need any spe-
cial privileges for it to work.)
#!/bin/bash
# figure out which display we're currently using
# then export the DISPLAY environment variable
HOST="$(xrdb -symbols | grep SERVERHOST | cut -d= -f2)"
DISPLAYNUM="$(xrdb -symbols | grep DISPLAY_NUM | cut -d= -f2)"
THISDISPLAY=$HOST:$DISPLAYNUM.0
export DISPLAY=$THISDISPLAY
echo "You've got mail"'!' | osd_cat -s 2 -c yellow -p middle \
-f -adobe-helvetica-bold-r-normal-*-*-240-*-*-p-*-*-* -d 30
The placement of various quotes in the text for the echo
command looks a bit odd, doesn’t it? Here’s why. The bash
shell interpreter will allow you to embed only a single quote
in a string that is enclosed by double quotes. If the string
“You’ve” wasn’t isolated within double quotes, the
echo
command would report ...