Caller ID Display, alternate, using xyac.

This is based on Caller ID displayed on your LinHES screen but uses xyac to overlay text on the X11 window. The benefit of this is that it will display the caller id information, not just during mythtv playback, but also when viewing menus, mplayer, xine, etc.

Follow the procedure at Caller ID displayed on your LinHES screen, but when it comes to editing /etc/ncid/ncid.conf don't bother. Just leave it alone, as you'll be running ncid with specific options, so there is no need to change the defaults in the config file. When it comes to editing /etc/sv/ncid/run, change it to this instead:

For R6:

#!/bin/sh
exec 2>&1
export TERM=linux
. /etc/rc.conf
. /etc/rc.d/functions

svwaitup -s 3 /var/service/ncidd || exit 1

which ncid 2>/dev/null >/dev/null

if [ $? = 0 ]
then
    if [ -f /var/service/ncidd/run ]
    then
        sv start ncidd
    fi

    stat_runit "Starting callerid client" 

    exec /usr/bin/ncid --no-gui --message --program ncid-yac
fi

For R7 (the service directories have changed):

#!/bin/sh
exec 2>&1
export TERM=linux
. /etc/rc.conf
. /etc/rc.d/functions

svwaitup -s 3 /etc/sv/ncidd || exit 1

which ncid 2>/dev/null >/dev/null

if [ $? = 0 ]
then
    if [ -f /etc/sv/ncidd/run ]
    then
        sv start ncidd
    fi

    stat_runit "Starting callerid client" 

    exec /usr/bin/ncid --no-gui --message --program ncid-yac
fi

This uses ncid-yac along with xyac, instead of using ncid-mythtv.

Continue and follow along with the rest of the procedure. When you're done, come back here.

Now, the additional steps:
ncid-yac needed to be modified slightly, as it wasn't stopping on its own and wasn't sending until it was stopped.

sudo nano /usr/share/ncid/ncid-yac

This line:

echo -n "@CALL${CIDNAME}~${CIDNMBR}" | nc -w1 $YACCLIENT $YACPORT

Needs to change to:

echo -n "@CALL${CIDNAME}~${CIDNMBR}" | nc -c $YACCLIENT $YACPORT

So now, instead of waiting for a timeout, nc just sends and closes. That timeout never happened on my system, so the yac messages were only occurring on shutdown.

ncid-yac depends on netcat. So install netcat:

sudo pacman -S gnu-netcat

This gave me a warning, but it functions.

Now to set up xyac,
modified for R6/R7 from elgordo123's procedure:

xyac depends on xosd, so install that.

sudo pacman -S xosd

pacman doesn't know xyac, so we'll have to compile it.

wget http://www.bah.org/~greg/tivo/xyac/xyac-0.1.tar.gz
tar zxvf xyac-0.1.tar.gz
cd xyac*
sudo make
sudo make install

This installs xyac to /usr/local/bin

To get xyac to run, it'll need an entry in fluxbox apps.

sudo nano /home/mythtv/.fluxbox/apps

Add this line:

[startup] {/usr/local/bin/xyac -p middle -A center -c yellow -s 5 -f lucidasanstypewriter-bold-24 &}

Make sure it is all on ONE line in the apps file or it wont start.

Note: can also use lucidasanstypewriter-bold-18 if 24 is too big.
For other font options, the command xlsfonts will show a list of fonts available to you.

Restart x,

sudo killall xinit

and give yourself a call.

If you'd like to manually test xyac from the same machine, you can fire off one of these:

echo -n "testing testing 123" | nc -c 127.0.0.1 10629

or from a different machine, adjust that 127.0.0.1 to meet your needs.

If you'd like to serve yac information to other machines on your network, set the list of listeners for ncid-yac at the bottom of /etc/ncid/ncidmodules.conf. I've got ncid-yac serving out to my windows box too, with the yac client here.