A wrapper for osd_cat

Few months ago, we discussed about a mail notification method for fetchmail/procmail and mutt combo. As you can see in that post, the script we wrote to handle notification was dependent on ratpoison. Well it makes life bit tough for my non-ratpoison X sessions. I thought it would be a good idea to make the script window manager independent. Enter osd.sh

The script uses osd_cat. It comes in the XOSD package for most of the unices. It is similar to the cat command for the console. It can read a file, string or the stdin and output the text onto X display. It has a bunch of config options which let you choose font, location etc. for the text. I’d recommend a RTM (man osd_cat).

Here is the code:

#!/bin/bash
# Displays a string on the screen
# Last Modified: Mon 22 Jun 2009 02:59:55 AM IST

# let osd know, we have a X running. there will be problems if this script is
# called from different user. disable acl in X in that case(use xhost +).
export DISPLAY=":0.0"

color="red"
font="-*-dina-medium-r-normal-*-16-*-*-*-*-*-*-*"
age="6"
align="center"
delay="4"
indent="0"
lines="5"
offset="0"
shadow="1"
pos="middle"

# read from stdin if no args are present
if [ $# -ne 1 ]
then
text=$(line)
else
text=$1
fi

echo $text | osd_cat --color=$color --delay=$delay --age=$age --font=$font --offset=$offset --shadow=\
$shadow --lines=$lines --align=$align --pos=$pos

This script can be used for any notification purpose. For using this with procmail, replace use the following construct in procmailrc:

:0 h
| grep "From:" | /home/arun/bin/osd.sh

This will display alerts as “From: Foo Bar ” when a new mail is received.

Enjoy!

About these ads

One thought on “A wrapper for osd_cat

  1. do you know how to add an input box to OSD_Cat? i’ll be reading up on the documentation soon enough. i set this to notify me by email with follow-up comments… so if you’ve got time, let me know ;)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s