Howto: Usar apple remote de los macbooks en Ubuntu (entre otros) para múltiples aplicaciones sin necesidad de LIRC

Publicado el 27 de Junio a las 16:14 por magarto

Actualización: El tutorial se va actualizando en el wiki, así que recomiendo su realización desde aquí.

Este tutorial que, tras varios días, he terminado está pensado para Ubuntu y para Macbooks (al menos los C2D), aunque puede ser funcional para cualquier otra distribución de GNU/Linux como Debian, Gentoo, … cambiando varios códigos en el archivo que adjunto en función de las teclas de vuestro mando a distancia.

Para los que no conozcan LIRC (Linux InfraRed Controller), esta utilidad consisten en un demonio que monitoriza un evento de /dev/input/eventX, cierra el acceso a él y ejecuta una serie de utilidades en función de lo que hayamos configurado y del programa que estemos ejecutando.
El grave problema de LIRC es que se consigue con muy pocos mandos a distancia en muy pocas capturadoras, y siempre surgen múltiples problemas, de hecho yo nunca lo he conseguido hacer funcionar.

Por estas razones, decidí hacer el tutorial partiendo de otra utilidad que no necesita de los ficheros de configuración de lircd.conf que se las traen, si no simplemente del fichero lircrc donde pones la configuración, ya que monitorea todos los eventos y no necesita un uso exclusivo.

En el caso de los macbooks, macmini… tenemos el grave problema de sólo disponer de 6 botones, no siendo funcional el botón de menú, al estar mapeado su código a la función KEY_BACK, y al no ser esta funcional.

  • Lo primero es instalar el demonio inputlirc, lirc (lo necesitamos aunque no lo usemos).
  • sudo apt-get install inputlirc lirc lirc-x
  • A continuación añadimos este demonio al arranque. Para ello editamos el fichero /etc/rc.local (como superusuario) y añadimos al principio, la entrada:
  • /etc/init.d/inputlirc start
  • Ya que aún no hemos reiniciado, haremos que esta función se ejecute ahora. Así que ejecutamos lo anterior en una terminal
  • Ahora copiamos el siguiente fichero en /etc/lircrc

#### Cambiar modo (con 5 teclas no es viable) ####
## Si se consigue que el botón Menu (KEY_BACK) funcione podría usarse para cerrar aplicaciones y poder activar con ello los modos de arranque de programas pero no lo consigo ni mapeando ni modificando el input.h, si alguien lo consigue que lo notifique ##

#begin
#	prog = irexec
#	button = KEY_PLAYPAUSE
#	mode = amarok
#	config = echo "Modo amarok"
#end
#
#begin
#	prog = irexec
#	button = KEY_NEXTSONG
#	mode = kaffeine
#	config = echo "Modo kaffeine"
#end
#begin
#	prog = irexec
#	button = KEY_PREVIOUSSONG
#	mode = mplayer
#	config = echo "Modo mplayer"
#end

#### MPlayer ####
#begin mplayer
begin
        prog = mplayer
        button = KEY_PLAYPAUSE
        config = pause
end

begin
        prog = mplayer
        button = KEY_PREVIOUSSONG
        config = seek -10
        repeat = 1
end

begin
        prog = mplayer
        button = KEY_NEXTSONG
        config = seek +10
        repeat = 1
end
begin
       prog = mplayer
       button = KEY_VOLUMEUP
       config = volume 1
       repeat = 1
end

begin
       prog = mplayer
       button = KEY_VOLUMEDOWN
       config = volume -1
       repeat = 1
end
#end mplayer

#### Kaffeine ####
#begin kaffeine
begin
	prog = irexec
	button =
	config = dcop kaffeine MainApplication-Interface
end

begin
	prog = irexec
	button = KEY_PLAYPAUSE
	config = if `dcop kaffeine KaffeineIface isPlaying`; then dcop kaffeine KaffeineIface pause; dcop kaffeine kaffeine_mainview hide; else dcop kaffeine KaffeineIface play; dcop kaffeine kaffeine_mainview hide; fi
end

begin
	prog = irexec
	button = KEY_NEXTSONG
        repeat = 1
	config = dcop kaffeine KaffeineIface posPlus
end

begin
	prog = irexec
	button = KEY_PREVIOUSSONG
        repeat = 1
	config = dcop kaffeine KaffeineIface posMinus
end

begin
	prog = irexec
	button = KEY_VOLUMEUP
        repeat = 1
	config = dcop kaffeine KaffeineIface volUp
end

begin
	prog = irexec
	button = KEY_VOLUMEDOWN
        repeat = 1
	config = dcop kaffeine KaffeineIface volDown
end

#end kaffeine

#### Amarok ####
#begin amarok
begin
	prog = irexec
	button = KEY_PLAYPAUSE
	config = dcop amarok player playPause
end

begin
	prog = irexec
	button = KEY_BACK
	config = dcop amarok player stop
end

begin
	prog = irexec
	button = KEY_NEXTSONG
	config = dcop amarok player next
end

begin
	prog = irexec
	button = KEY_PREVIOUSSONG
	config = dcop amarok player prev
end

begin
	prog = irexec
	button = KEY_VOLUMEUP
        repeat = 1
	config = dcop amarok player volumeUp
end

begin
	prog = irexec
	button = KEY_VOLUMEDOWN
        repeat = 1
	config = dcop amarok player volumeDown
end

#end amarok

#### TVTime ####
#begin tvtime
#begin
#    prog = irexec
#    button = source
#    config = tvtime-command TOGGLE_INPUT
#end
#begin
#    prog = irexec
#    button = Info
#    config = tvtime-command DISPLAY_INFO
#    repeat = 1
#end
#begin
#    prog = irexec
#    button = Fullscreen
#    config = tvtime-command TOGGLE_FULLSCREEN
#end
#begin
#    prog = irexec
#    button = CC
#    config = tvtime-command TOGGLE_CC
#end
#
#begin
#    prog = irexec
#    button = Mute
#    config = tvtime-command TOGGLE_MUTE
#end
#
### Menu navigation.
begin
    prog = irexec
    button = KEY_NEXTSONG
    repeat = 1
    config = tvtime-command UP
    repeat = 1
end
begin
    prog = irexec
    button = KEY_PREVIOUSSONG
    repeat = 1
    config = tvtime-command DOWN
    repeat = 1
end
begin
    prog = irexec
    button = KEY_VOLUMEUP
    repeat = 1
    config = tvtime-command RIGHT
    repeat = 2
end
begin
    prog = irexec
    button = KEY_VOLUMEDOWN
    repeat = 1
    config = tvtime-command LEFT
    repeat = 2
end

#begin
#    prog = irexec
#    button = middle
#    config = tvtime-command CHANNEL_JUMP
#    repeat = 1
#end

begin
    prog = irexec
    button = KEY_PLAYPAUSE
    config = tvtime-command ENTER
end
#end tvtime

#### Subir y bajar el volumen con el mando (Activado por defecto en Feisty) ####
#begin
#prog = irexec
#button = KEY_VOLUMEUP
#config = amixer set PCM 9+ &      #amixer set PCM 3%+ &
#repeat = 2
#end
#begin
#prog = irexec
#button = KEY_VOLUMEDOWN
#config = amixer set PCM 9- &      #amixer set PCM 3%- &
#repeat = 2
#end
  • Ahora ejecutamos el demonio irexec que es el que se encargará de que se ejecuten las anteriores acciones. Abridlo en otra terminal, ya que la de inputlirc sigue en uso.
  • Es importante que añadáis irexec a las opciones de inicio de GNOME o de KDE. En GNOME es en Sistema/Preferencias/Sesiones

NOTAS IMPORTANTES:- Sólo he añadido soporte para kaffeine, amarok, mplayer y tvtime. Si queréis otros, es cuestión de tocar el archivo /etc/lircrc añadiendo el código de vuestro programa.
- Leed el archivo /etc/lircrc para más información.
- Todos los comandos se ejecutan a la vez, es decir, que si tenéis varias programas soportados abiertos simultáneamente, todos realizarán la función que ejecutemos. Para solucionar esto, habría que descomentar ciertas cosas que os he dejado preparado en el archivo, y necesitáis también reservar varios botones para elegir las aplicaciones que sólo funcionarán para eso. Y si ya tenemos sólo 6 botones y uno inservible… no os lo recomiendo.

- Si vuestro mando no está soportado o no funciona todo lo descrito, podéis comprobar cual es vuestro código para cada botón, haciendo uso de:
a) El comando xev
b) De la aplicación de GNOME /Sistema/Preferencias/Combinaciones de teclas y ahí buscad algún atajo de teclado que no esté soportado y grabar ese botón del mando a distancia. Una vez tengáis el código de ese botónUna vez tengáis el código HEXADECIMAL de ese botón (y no el del mapeo para xmodmap porque lirc e inputlirc trabajan en una capa por encima de xmodmap) váis al archivo /usr/include/linux/input.h y ahí buscáis ese código. Cuando le tengáis, el nombre que os aparecerá será vuestro código que es con el que manejaréis el evento en el archivo /etc/lircrcCon todo esto, ya tenéis todo lo necesario, ahora sólo queda que alguien consiga hacer funcionar el botón menu del apple remote (y no como tecla dentro de xmodmap que eso es sencillo pero no muy útil).

  • En magarto tenemos anuncios, usted también puede.
  • Aumente el tráfico de su web.
  • Utilice un gran software libre.

2 Trackbacks/Pingbacks

  1. Pingback: University Update - Linux - Howto: Usar apple remote de los macbooks en Ubuntu (entre otros) para múltiples aplicaciones sin necesidad de LIRC UNITED STATES el 27 Junio 2007 a las 17:52
  2. Pingback: Meme: ¿Cuáles son los 10 mejores posts que has escrito? | Magarto UNITED STATES el 1 Diciembre 2007 a las 19:13

15 Comentarios

  1. rubisf SPAIN
    27 Junio 2007 a las 21:12

    Guay Mario, eso estaba esperando…xD, aunque con lo que me dijiste conseguí sacar los códigos de las teclas, y hacerlo funcionar, pero el tutorial está mucho mejor….. Gracias de nuevo.

    Mozilla Firefox Mozilla Firefox 2.0.0.4 bajo Ubuntu Linux Ubuntu Linux
  2. magarto SPAIN
    27 Junio 2007 a las 21:56

    :D Pues sí y ahora sé cómo hacer lo que busco y que lo puedes ver, entendiendo qué código he metido de más en el /etc/lircrc  ya que lo metí para ayudar a si alguien le da por indagar.
    Pero tengo que currarme varios scripts

    Mozilla Firefox Mozilla Firefox 2.0.0.4 bajo Mac OS Mac OS X
  3. Cesarius GUATEMALA
    28 Junio 2007 a las 10:33

    Excelente tutorial, está completísimo.

    Mozilla Firefox Mozilla Firefox 2.0.0.4 bajo Ubuntu Linux Ubuntu Linux
  4. magarto SPAIN
    28 Junio 2007 a las 12:12

    Muchas gracias, bueno lo de completísimo está en cuanto consiga lo que busco y ya sé cómo conseguirlo.
    Por otro lado, todavía la tecla menu no consigo hacerla correr :(

    Mozilla Firefox Mozilla Firefox 2.0.0.4 bajo Ubuntu Linux Ubuntu Linux
  5. jofefu SPAIN
    22 Agosto 2007 a las 01:03

    hola estoy intentando instalar todo esto y como soy muy novat , cuando dices
    * A continuación añadimos este demonio al arranque. Para ello editamos el fichero /etc/rc.local (como superusuario) y añadimos al principio, la entrada:

    a que linea te refieres exactamente
    luego el archivo lircrc no lo encuentro

    espero una ayuda , para poder continuar

    saludos y gracias

    Mozilla Firefox Mozilla Firefox 2.0.0.6 bajo Ubuntu Linux Ubuntu Linux
  6. jofefu SPAIN
    22 Agosto 2007 a las 10:30

    hola , una aclaración a mi pregunta anterior

    en el otro manual pones
    /etc/lirc/lircrc

    este archivo hay que crearlo dentro de ***/lirc ?

    creo que me falta eso que te pongo en los dos posts lo demás parece sencillo ( para mi , claro)

    saludos

    Mozilla Firefox Mozilla Firefox 2.0.0.6 bajo Windows Windows XP
  7. magarto SPAIN
    23 Agosto 2007 a las 00:15

    Hola josefu. SIento el retraso pero estaba fuera.
    Lo de añadir la línea /etc/init.d/inputlirc start dentro del archivo /etc/rc.local se haría en una terminal:

    sudo gedit /etc/rc.local

    Y ahí, al final del todo, pero antes de exit 0 añades:

    /etc/init.d/inputlirc start

    Los dos tutoriales están hecho de modo diferente aunque son similares, El archivo lircrc es mejor colocarle en la carpeta de tu usuario pero llamándole .lircrc
    Quedaría algo como /home/tuusuario/.lircrc
    Algunos programas como VLC buscan el archivo en esa ruta, o en /etc/lirc/lircrc, la que primero encuentren.

    Espero que te sirva

    Mozilla Firefox Mozilla Firefox 2.0.0.6 bajo Ubuntu Linux Ubuntu Linux
  8. jofefu SPAIN
    23 Agosto 2007 a las 01:25

    No te preocupes , que no has tardado mucho y cada uno tiene sus cosas,
    la linea esta la añad{ia al principio , , yo entend{i esto , ahora est{a perfectamente explicado , no estar{ia mal que lo editaras para evitar malentendidos en novatos como yo,

    e cuanto al archivo , como no lo encuentro entiendo que tengo que crearlo , no es asi ????

    saludos y gracias

    ya posteare resultados

    Debian IceWeasel Debian IceWeasel 2.0.0.3 bajo Debian GNU/Linux Debian GNU/Linux
  9. magarto SPAIN
    23 Agosto 2007 a las 01:29

    Exacto. Por cierto, buen navegador ;)

    Mozilla Firefox Mozilla Firefox 2.0.0.6 bajo Ubuntu Linux Ubuntu Linux
  10. jofefu SPAIN
    23 Agosto 2007 a las 09:25

    Por cierto, buen navegador

    jaja, me alegra , yo no lo conozco ,
    estaba escribiendo desde un live cd de una distro argentina " tuquito" para testearla ,
    me la quería instalar en una particion al lado de ubuntu, pero este lo tengo instalado usando todo el disco ( el 2ºhd) y creo que no podré porque no me deja redimensionar..

    saludos

    Mozilla Firefox Mozilla Firefox 2.0.0.6 bajo Windows Windows XP
  11. magarto SPAIN
    23 Agosto 2007 a las 15:50

    Iceweaseal es Firefox pero cambiado el icono y cuatro chorradas para ser completamente libre. Otra rallada de los Debianistas.

    Mozilla Firefox Mozilla Firefox 2.0.0.6 bajo Ubuntu Linux Ubuntu Linux
  12. jofefu SPAIN
    23 Agosto 2007 a las 23:54

    en sesiones , me pide nombre y comando , yo le digo lircrc y le pongo los comandos , pero no se si seguir un manual u otro ya que es distinto

    estoy confuso

    siento ser tan novatillas

    gracias por adelantado

    saludos

    Mozilla Firefox Mozilla Firefox 2.0.0.6 bajo Ubuntu Linux Ubuntu Linux
  13. magarto SPAIN
    24 Agosto 2007 a las 09:16

    El nombre puedes poner el que quieras. Tendrás que poner que ejecute dos cosas:

    Nombre: irxevent
    Comando: irxevent -d

    Nombre: irexec
    COmando: irexec -d

    Te queda claro ahora? El tutorial está claro, pero es normal que a los más novatillos os cuesté, pero poco a poco se aprende :)

    Mozilla Firefox Mozilla Firefox 2.0.0.6 bajo Mac OS Mac OS X
  14. jofefu SPAIN
    24 Agosto 2007 a las 23:55

    te pido mil disculpas

    te he hecho perder el tiempo.. porque resulta que no tengo apple remote , me he dado cuenta ahora , estaba cegado con la idea que era más fácil de instalar el mando así que no instalando lirc . yo tengo un pc con ss2.
    siento verguenza xd,

    saludos ,

    Mozilla Firefox Mozilla Firefox 2.0.0.6 bajo Ubuntu Linux Ubuntu Linux
  15. magarto SPAIN
    25 Agosto 2007 a las 08:50

    Jajajaja, no te preocupes hombre. Esto te ha servido al menos para aprender.
    Si tienes capturadora de televisión también se puede hacer, pero ya la cosa se complica. Yo me he tirado un año hasta conseguirlo :P

    Mozilla Firefox Mozilla Firefox 2.0.0.6 bajo Mac OS Mac OS X

Vista previa

Deja tu granito de arena

Registro de OpenID

Registro clásico

XHTML: Puedes usar las etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Opciones:

Tamaño

Colores

Cerrar
E-mail It