Configuración para Xbox Media Center

En primer lugar editaremos el fichero advancedsettings.xml:


<advancedsettings>
 <lcd>
 <rows>2</rows> 				<!-- Number of rows to use for the LCD. -->
 <columns>20</columns> 			<!-- Number of columns to use for the LCD. -->
 <scrolldelay>3</scrolldelay> 		<!-- Delay of the scroller widget. Defaults to 1. -->
 <dimonscreensave>true</dimonscreensave> 	<!-- Turns of the LCD/VFD backlight while screensaving. Defaults to false. -->
 </lcd>
</advancedsettings>

	  

Posteriormente editaremos guisettings.xml y pondremos el valor true a la línea <haslcd> de la sección <videoscreen>

Finalmente podemos modificar el fichero LCD.xml para que la información sea más clara que en la versión por defecto. Eliminaremos la visualización de datos referentes a memoria libre y desactivaremos la pantalla durante la visualización de vídeos, entre otras cosas, de modo que el fichero queda así:


<lcd>
   <!-- set this to video,music to disable the LCD on playback of music and video-->
   <disableonplay>video</disableonplay>

   <navigation>
      <line>$INFO[System.CurrentWindow]</line>
      <line>$INFO[System.CurrentControl]</line>
      <line>$INFO[System.ScreenWidth]x$INFO[System.ScreenHeight] $INFO[System.ScreenMode]</line>
   </navigation>
   <music>
      <line>$INFO[LCD.PlayIcon] $INFO[Player.Time]/$INFO[Player.Duration]</line>
      <line>$INFO[MusicPlayer.Title]</line>
      <line>$INFO[MusicPlayer.Artist]</line>
      <line>$INFO[MusicPlayer.Album] ($INFO[MusicPlayer.Year])</line>
   </music>
   <video>
      <line>$INFO[LCD.PlayIcon] $INFO[Player.Time]/$INFO[Player.Duration]</line>
      <line>$INFO[VideoPlayer.Title]</line>
      <line>$INFO[VideoPlayer.Genre]</line>
      <line>$INFO[LCD.ProgressBar]</line>
   </video>
   <general>
      <line>XBMC running...</line>
      <line>$INFO[System.Time] $INFO[LCD.Date]</line>
      <line>$INFO[System.ScreenWidth]x$INFO[System.ScreenHeight] $INFO[System.ScreenMode]</line>
   </general>
   <screensaver>
   <!-- Comment out the next line if backlight is set to off while screensaver active -->
      <line>$INFO[System.Time] $INFO[LCD.Date]</line>
   </screensaver>
   <xbelaunch>
      <line></line>
      <line>Playing</line>
      <line>$INFO[System.LaunchXBE]</line>
   </xbelaunch>
</lcd>

	  

La mayoría de botones del mando a distancia funcionarán perfectamente en XBMC, pero es posible que queramos dar alguna función concreta a botones que no funcionan con la configuración por defecto.

El driver imon del kernel Linux interpreta las pulsaciones del mando a distancia como códigos de teclado (keycodes). Hemos de averiguar los códigos correspondientes a los botones que queremos configurar. Para ello activaremos el registro en advancedsettings.xml:


<loglevel>2</loglevel>
	  

Ahora ejecutaremos XBMC y comprobaremos en otra consola el archivo de registro cuando pulsemos los botones en el mando a distancia

En mi caso, los dos botones que quiero configurar se corresponden con los keycodes 156 y 182 del teclado. Como solo quiero asignar funciones simples a dichos botones, lo más sencillo es remapear con Xmodmap. Para ello editamos el fichero ~/.Xmodmap


keycode 182 = Tab Tab
keycode 156 = Escape
	  

Algunas distribuciones no cargan automáticamente el fichero ~/.Xmodmap al iniciar X-Window. Si éste es nuestro caso, pondremos lo siguiente en el fichero ~/.xsession:


if [ -f $HOME/.Xmodmap ]; then
    /usr/bin/xmodmap $HOME/.Xmodmap
fi