How to build a simple but cool IR (Infra Red) receiver.

[-] You can now configure the application level of the lirc system. Basically with lirc you can do the following things: The first approach is the simplest. It allows you to run a program when a button of the remote is pressed. The configuration is done with the ~/.lircrc file:
begin
	remote = <your remote>
	button = <your button>
	prog   = irexec
	repeat = 0
	config = /usr/local/bin/mozilla -mail
end
This example shows how to start the mozilla mail program when you press a button on your remote. The second approach, the use of lirc clients, is an extension of this methodology; in the latter example we can see the line "prog = irexec". "irexec" is a particular lirc client that is used to run programs or commands. There are many other lirc clients: for example, MPlayer or VDR. The first uses the traditional ~/.lircrc setup, the second uses an interactive configuration. Let's talk about MPlayer; we can set several entries in the ~/.lirrc file each for every command we want to give to MPlayer. Take a look at the next example:
begin
     button = VOLUME_PLUS
     prog = mplayer
     config = volume 1
     repeat = 1
end

begin
    button = VOLUME_MINUS
    prog = mplayer
    config = volume -1
    repeat = 1
end

begin
    button = RIGHT_ARROW
    prog = mplayer
    config = seek 30 0
    repeat = 1
end

begin
    button = LEFT_ARROW
    prog = mplayer
    config = seek -30 0
    repeat = 1
end

begin
    button = PAUSE
    prog = mplayer
    config = pause
    repeat = 0
end
The first section controls the volume: the "prog" line is set to mplayer; the "config" line is the message that is sent to the mplayer program. In this case we tell mplayer to increase the volume by 1 unit. The "repeat" line is set to 1, so the message will be sent multiple times if the button is kept pressed. The following sections are similar, decrease the volume ("volume -1"), seek by 30 seconds, and the pause functrion. Note the pause function has "repeat" set to 0, because it doesn't make sense to continuosly switch between pause and play mode when we keep that button pressed! For a complete list of the commands, see the mplayer documentation.
The third approach is very interesting and you will be able to set a new pointer in your X11 or gpm configuration; lirc mouse emulation supports even the mouse wheel used to scroll documents! Follow the lircmd instructions for a detailed setup.
The fourth mode is quite technical and I redirect you to the relevant section of the lirc documentation: irpty allows you to feed programs with keystrokes depending on which button you pressed on the remote. irxevent sends mouse clicks and key presses (in other words, X11 events) to X applications.