LIRC is very nice package that lets any Linux box be controlled by almost any IR remote control.
Unfortunatly LIRC is a large package with many different parts, so there is a huge amount of documentation to read to get started, this is a ultra quick guide to get you started.
The /etc/lircd.conf is what maps the IR signal timings returned by the hardware into remote control keys, it is generated using irrecord or fetched from the /usr/share/lirc/remotes/ tree if the remote is well known.
There are a number of utilities to act on lirc events (irxevent and irexec) but I've found that configuring them is much harder than simply writing a perl application to what is needed when events come in:
use IO::Select;
use IO::Socket;
my $lirc = IO::Socket->new(Domain => &AF_UNIX,
Type => SOCK_STREAM,
Peer => '/dev/lircd' )
or croak "couldn't connect to /dev/lircd: $!";
my $select = IO::Select->new();
$select->add($lirc);
while (1) {
while ($select->can_read(0)) {
my $line = <$lirc>;
my ($hex, $repeat, $button, $remote) = split /\s+/, $line;
lircHandler($button, $repeat);
}
}