Usar iPad o tableta Android como monitor adicional en Linux

En Windows y Mac resulta muy sencillo utilizar un iPad o cualquier tableta Android como monitor adicional: basta con instalar el programa Air Display. Es una forma genial de aprovechar la tableta y permite seguir usándola muchos tiempo después de que se haya quedado obsoleta.

Por desgracia esta aplicación no funciona con Linux, pero podemos conseguir casi lo mismo de otra manera: utilizando VNC. Para ello seguiremos estos pasos:

– Instalamos los paquetes necesarios

sudo apt-get install vnc4server xvnc4viewer x2x

– A continuación arrancamos el servidor VNC, indicando que la pantalla que genere debe ser de 1024×768 píxeles (la resolución de la tableta que tengamos).

vncserver -geometry 1024x768 -alwaysshared :1

Para detenerlo el comando sería este:

vncserver -kill :1

– Acto seguido editamos el fichero xstartup que está en la carpeta .vnc de nuestro usuario. Aquí podremos especificar qué programas se iniciarán al crear el servidor VNC. Un ejemplo puede ser este:

#!/bin/sh

export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

xsetroot -solid grey

gnome-panel &
gnome-settings-daemon &
metacity &

– Una vez hecho esto, y tras haber instalado en la tableta un programa visor de VNC, nos conectamos a la IP local de nuestro ordenador especificando como puerto el 5901 (ya que al crear el servidor VNC le hemos pasado como identificador :1).

Y…¡ya está! Ya tenemos en la tableta una sesión gráfica en nuestro ordenador, en la que podremos abrir programas y hacer lo que queramos.

Bueno, no está del todo. La única forma de controlar esa sesión es tocando la tableta, y lo más cómodo sería poder usar el teclado y el ratón del ordenador. Para eso simplemente ejecutamos este comando:

x2x -east -to :1

El parámetro -east indica que el cursor pasará a la sesión VNC cuando nos salgamos de nuestra pantalla por la derecha (útil si colocamos la tableta a la derecha de nuestro monitor). Si queremos colocarla a la izquierda usaremos el parámetro -west.

Con este sistema podemos abrir tantas sesiones como queramos. Como prueba aquí podéis ver mi ordenador con el monitor principal, el monitor secundario (arriba a la izquierda), un iPad (abajo a la izquierda) y una tableta Samsung (abajo en el centro).

IMG_20150123_173416

 

Hay dos cosas a tener en cuenta:

– No podremos enviar ventanas de nuestro monitor principal a la tableta. Este es el mayor inconveniente, y aunque creo que hay forma de hacerlo utilizando un programa llamado xpra y he estado investigando un rato no he encontrado cómo hacerlo funcionar. Personalmente no me preocupa mucho, mi idea es usar la tableta para hacer debug con Maurina o para tener abiertas ventanas con phpmyadmin o similares, por lo que no necesito andar moviendo ventanas de un monitor a otro.

– Hay un bug que hace que al pulsar las teclas s y d en la sesión de VNC se abra el menú de aplicaciones o se muestre el escritorio. Para corregir esto basta con ejecutar el programa dconf-editor,  abrir la clave org\gnome\desktop\wm\keybindings y hacer estos cambios:

  • En la entrada panel-main-menu eliminar <Super>S.
  • En la entrada show-desktop eliminar <Super>D.
  • En la entrada switch-applications eliminar <Super>Tab.

Si la siguiente vez que accedamos a la sesión de VNC no se han conservado estos cambios, editamos el fichero .gconf/apps/metacity/global_keybindings/%gconf.xml y le ponemos este contenido:

<?xml version="1.0"?>
<gconf>
	<entry name="show-desktop" mtime="1422027140" type="string">
		<stringvalue></stringvalue>
	</entry>
	<entry name="panel-main-menu" mtime="1422027140" type="string">
		<stringvalue></stringvalue>
	</entry>
</gconf>

Actualización para Linux Mint 17 con Cinnamon: para conseguir el entorno en Linux Mint 17 con Cinnamon este es el fichero xstartup que uso:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
sh /etc/X11/xinit/xinitrc

xrdb $HOME/.Xresources
export XKL_XMODMAP_DISABLE=1
exec startxfce

Otra cosa interesante es que si intentamos ejecutar Google Chrome en la pantalla del iPad la ventana se abre en la ventana principal. Para eso la solución es crear un fichero de arranque con permisos ejecutables (por ejemplo /usr/bin/xchrome) con este contenido:

#!/bin/sh
exec /opt/google/chrome/chrome --disable-webgl --enable-greasemonkey --enable-user-scripts --enable-extensions --user-data-dir=~/.config/google-chrome/1 "$@"

Si ejecutamos este comando en la pantalla del iPad Chrome se nos abre allí, aunque tarda bastante en arrancar.

Linux Mint: arreglar llamada a Kupfer

He actualizado el ordenador a Linux Mint 17.1 Rebecca, y estoy en el proceso de reinstalar todos los programas que tenía.

Uno de ellos es Kupfer, un programa para invocar programas. Pulsando Super + Space (o la combinación de teclas que queramos) aparece el interfaz, escribimos la primera o dos primeras letras del programa que queremos abrir, pulsamos enter y a correr.

El problema es que al empezar a usarlo me he dado cuenta de que tenía pulsar dos veces espacio para que saliera, así que rebuscando he encontrado este hilo donde explican cómo solucionarlo. El problema es que la tecla Super está asociada a abrir el menú de aplicaciones y por eso interfiere.

Para arreglarlo vamos a System settings -> Keyboard -> Keyboard layouts -> Options y en Alt / Win key behaviour seleccionamos Hyper is mapped to Win-keys.

Descargar videos de YouTube desde línea de comandos en Ubuntu

He encontrado en YouTube un video con seis horas de música de Vivaldi que está genial para escuchar mientras trabajas. El único problema es que ocupa una pestaña del navegador si lo escuchamos desde YouTube; lo ideal sería tenerlo como MP3 en el disco duro.

La extensión de Google Chrome que uso habitualmente para descargar vídeos (FVD Downloader) no funciona con YouTube. Entonces me acordé de que había visto una entrada en javierin.com que trataba precisamente sobre esto y explicaba cómo hacerlo usando un programa llamado clive, pero a mí no me funcionó.

Rebuscando un poco más encontré uno llamado youtube-dl; este tiene la ventaja de que según Google va poniendo trabas para descargar los vídeos de YouTube ellos van actualizando el programa. Con este fue muy sencillo:

koas@koas-desktop:~$ ./youtube-dl "http://www.youtube.com/watch?v=E2uOGOqIyC4"
[youtube] Setting language
[youtube] Confirming age
[youtube] E2uOGOqIyC4: Downloading webpage
[youtube] E2uOGOqIyC4: Downloading video info webpage
[youtube] E2uOGOqIyC4: Extracting video information
[youtube] E2uOGOqIyC4: Encrypted signatures detected.
[youtube] E2uOGOqIyC4: Downloading js player vflx8EenD
[youtube] E2uOGOqIyC4: Downloading js player vflx8EenD
[download] Destination: Antonio Vivaldi - I Solisti Veneti-E2uOGOqIyC4.mp4
[download] 100% of 641.05MiB in 00:52

Una vez con el fichero .mp4 descargado simplemente hay que extraer el audio. Para ello primero nos aseguramos de tener las librerías y programas necesarios:

sudo apt-get install ffmpeg libavcodec-extra-53 libav-tools

Y hacemos la conversión:

avconv -i "Antonio Vivaldi - I Solisti Veneti-E2uOGOqIyC4.mp4" Vivaldi_6_horas.mp3

La conversión tarda un rato (al fin y al cabo son seis horas de música) pero finalmente obtenemos un MP3 de 528 MB.

Todo este proceso es bastante interesante para aplicaciones web: nos permite descargar vídeos y hacer cosas con ellos como extraer fotogramas para vistas previas y cosas parecidas.

Sonido en Lubuntu 14.04 ACER Aspire E15

He instalado Lubuntu en un portátil Acer Aspire E15 (E5-521-29Q4) y de primeras el sonido no funcionaba. Rebuscando un poco por Internet he visto un mensaje en el que recomendaban instalar PulseAudio:

sudo apt-get install pulseaudio pavucontrol

Una vez hecho esto, y tras reiniciar, el sonido funcionaba correctamente pero no las teclas de función para subir y bajar el volumen. Para que funcionen hay que editar el fichero ~/.config/openbox/lubuntu-rc.xml y dejar estos tres nodos así:

<keybind key="XF86AudioRaiseVolume">
    <action name="Execute">
        <command>amixer -q -D pulse sset Master 3%+ unmute</command>
    </action>
</keybind>
<keybind key="XF86AudioLowerVolume">
    <action name="Execute">
        <command>amixer -q -D pulse sset Master 3%- unmute</command>
    </action>
</keybind>
<keybind key="XF86AudioMute">
    <action name="Execute">
        <command>amixer -q -D pulse sset Master toggle</command>
    </action>
</keybind>

Después de hacer esto ejecutamos el comando

openbox --reconfigure

y ya funcionarán las teclas de volumen.

Backup de datos de Amazon S3 a tu disco duro

Amazon S3 funciona estupendamente para descargar de tráfico cualquier página web moviendo los ficheros estáticos (sobre todo imágenes y/o vídeos) a su espacio de almacenamiento. Por precaución siempre es conveniente mantener una copia de seguridad de esos archivos, y buscando información en Google casi todo lo que he encontrado era para hacerlo al revés: hacer copia de seguridad de nuestro disco duro en Amazon S3.

Rebuscando un poco más he encontrado un programa que hace las dos cosas, y bastante más. Se llama DragonDisk y no solamente permite gestionar los buckets de Amazon S3 sino que también permite sincronizar de S3 a nuestro disco duro o viceversa.

Lo he probado con un bucket y funciona perfectamente. Además es multiplataforma (Windows / Mac / GNU Linux).

Instalar Hauppauge MiniStick-HD en Linux

Hace tiempo me compré este cacharrito que permite ver la tele en el ordenador, y aquí dejo copiadas las instrucciones para instalarlo en Ubuntu:

– Lo primero es instalar el paquete linux-firmware-nonfree. A continuación instalamos MeTV y reiniciamos el ordenador.

– Una vez hecho esto al arrancar MeTV nos habrá detectado el sintonizador y podremos buscar canales. En el desplegable de países nos aparece España, pero al escanear usando esa zona solamente nos aparecen unos pocos canales.

– Nos descargamos entonces el paquete w-scan, que contiene la utilidad para escanear canales, y (asegurándonos de haber cerrado del todo MeTV) ejecutamos

sudo w_scan -ft -X -c ES >> channels.conf

– Después de un rato escaneando nos habrá generado un fichero channels.conf que podremos cargar en MeTV. Antes de hacerlo lo abrimos con un editor de textos y eliminamos los acentos, eñes, etc… para que no haya errores al hacer la importación en MeTV.

Máquinas virtuales para Internet Explorer

En cualquier desarrollo web hay que comprobar que se ve correctamente en todos los navegadores. Si usamos GNU Linux no tenemos el Internet Explorer, así que debemos ingeniárnoslas para hacer las pruebas.

La misma gente de Microsoft nos lo pone muy fácil: han creado una página desde donde se pueden descargar ficheros para máquinas virtuales que tienen las versiones de Internet Explorer desde la 6 a la 11. Basta con instalarse  VirtualBox y descargar estas máquinas virtuales para poder hacer pruebas con todas las versiones de Internet Explorer que queramos.

Este es el enlace para la descarga: https://modern.ie/en-us/virtualization-tools#downloads

Usar la tecla Alt en Photoshop con Linux

El único programa para el que no he encontrado un equivalente en GNU Linux es Adobe Photoshop. Sé que GIMP es un excelente programa pero yo no consigo hacerme con él y por eso uso Adobe Photoshop a través de WINE.

Funciona muy bien, esta gente de WINE son unos cracks, pero hay una pequeña cosa que me estaba irritando, una pequeña china en el zapato. En Photoshop se utiliza la tecla Alt como modificador de algunas herramientas; por ejemplo si tenemos seleccionada la lupa haciendo clic en la imagen la agrandamos y haciendo Alt – clic la reducimos. Sin embargo en Gnome la tecla Alt también se utiliza para mover una ventana pinchando sobre cualquier parte de ella, y esto es una gozada porque no hace falta mover el ratón hasta colocarlo exactamente en la barra de título, podemos mover la ventana pulsando Alt y moviéndola desde cualquier punto de la ventana.

Esto hace que si en Photoshop intentamos pulsar Alt y pinchar en una imagen esta no se reduce, el sistema operativo da preferencia a la acción de mover la ventana, y esto es un fastidio. Podría modificar las preferencias de GNOME y desasignar la tecla Alt del movimiento de la ventana, pero también llevo mucho tiempo usándola y no quiero cambiarla.

¿La solución? Pulsar primero la tecla de Windows y luego Alt. No estoy muy seguro de por qué funciona, pero es así. Aunque es un poco más engorroso porque nos obliga a pulsar una tecla más como las dos están pegadas realmente no es muy complicado de hacer, y recuperamos el modificador Alt para las herramientas de Photoshop.

Nota adicional: para incluir fuentes en Photoshop deberemos copiarlas a la carpeta .wine/drive_c/windows/Fonts de nuestro usuario y luego asegurarnos de reiniciar WINE mediante el comando

wineserver -k

Extensión Google Chrome para videos de YouTube que se cuelgan esperando a clickberry.tv

Antes de cambiar de ordenador utilizaba Ubuntu 12.10 32 bits y me pasaba una cosa muy extraña: en muchas páginas había incrustados videos de YouTube que no podía ver; el navegador Google Chrome se quedaba mostrando el mensaje “Esperando a clickberry.tv” durante un buen rato y finalmente mostraba un mensaje de error en el vídeo.

Al cambiar el ordenador e instalar Ubuntu 13.10 64 bits pensaba que el problema se solucionaría pero resulta que no, me sigue pasando lo mismo. Después de mucho buscar en Google no he encontrado ninguna solución, ni siquiera he podido encontrar referencias de que esto le pase a alguien más.

Como el problema era bastante molesto decidí investigar las extensiones de Chrome para intentar solucionar el asunto. Resulta que las extensiones son simplemente HTML, CSS y JS, así que resulta muy sencillo hacer una. Este es el código JS que soluciona el problema:

$(document).find("iframe").each(function()
{
	var src = $(this).attr("src");

	if (src.indexOf("youtube.com/embed") > -1)
	{
		var code = src.split("/embed/")[1].split("?")[0];
		var button = $(document.createElement("div"));
		button.addClass("button");
		button.html(chrome.i18n.getMessage("button_caption"));
		button.click(function()
		{
			window.open("http://www.youtube.com/watch?v=" + code);
		});
		button.insertBefore($(this));
	}
});

Realmente no soluciona el problema, el video incrustado sigue esperando a clickberry.tv, pero la extensión añade un botón encima que abre el video en la página de YouTube, donde se ve sin problemas.

La extensión está disponible de forma gratuita en la Chrome Web Store.

Cargar un programa al inicio con retardo

Es posible que alguna vez necesitemos que un programa se inicie al arrancar Ubuntu pero con cierto retardo, por ejemplo pasados dos minutos. Para eso tenemos que añadir el programa en la aplicación “Startup Applications”, pero en lugar de poner simplemente el nombre del ejecutable del programa pondremos esto:

bash -c "sleep 2m && /ruta/del/ejecutable"

Con el código del ejemplo (sleep 2m) retrasaremos dos minutos la ejecución del programa, si quisiéramos que fueran treinta segundos pondríamos sleep 30 (por defecto el argumento de sleep es en segundos).