Como utilizar un Android como una pantalla para Linux
Desde que la segunda pantalla llegó a mi vida las cosas han cambiado soberanamente. Creo, que mi productividad se ha visto incrementada considerablemente. Como lo estás leyendo ahora mismo. Esto de poder trabajar en una pantalla, mientras que en la segunda pantalla tienes la documentación sobre la que está basando tu trabajo es una auténtica maravilla. El problema es cuando sales de tu cueva, y tienes que ir a algún sitio donde no tienes esta opción. O incluso en el traslado desde un punto a otro. O porque no, cuando tienes una tablet Android, que no utilizas, ¿porque no darle una segunda vida?. En este episodio del podcast te cuento varias opciones y posibilidades para utilizar un móvil Android como una pantalla para Linux.
Si, como lo has leído. En lugar de utilizar una pantalla convencional, con alguno de las opciones que te explico en este podcast, podrás utilizar un dispositivo Android, o cualquier tipo de dispositivo, como una pantalla para Linux.
En lo que se refiere a cualquier tipo de dispositivo hay algunas excepciones o salvedades. Dependiendo de lo que elijas tendrás mas o menos opciones para utilizar con otros dispositivos.
Como utilizar un Android como una pantalla para Linux
Deskreen
La primera de las herramientas sobre la que te quiero hablar es Deskreen. Se trata de una herramienta sencilla, práctica, pero sobre todo fácil de utilizar, que te permitirá compartir la pantalla completa o solo una ventana, dependiendo de lo que elijas, con cualquier dispositivo que tenga un navegador web. Aquí da lo mismo, con lo que lo quieras compartir. Lo puedes compartir, con un dispositivo Android, iOS, Linux… vamos, con lo que tu quieras, solo necesitas ese navegador Web.
Deskreen es una herramienta liberada bajo licencia AGPL-3.0, y que convierte cualquier dispositivo que tenga un navegador web, en una patalla secundaria para tu equipo.
Se trata de una aplicación implementada con electron.js
y utilizando WebRTC
para compartir en streaming el contenido de tu escritorio con cualquier dispositivo. Por seguridad, se ha implementado la comunicación con cifrado punto a punto.
Características
¿Que características tiene Deskreen para utilizar Android como una pantalla para Linux? Entre las características que te ofrece Deskreen, puedes encontrar las siguientes,
- te permite utilizar cualquier dispositivo con navegador como segunda pantalla para Linux, o en general para cualquier plataforma. No solo esto, sino que además puedes extender la pantalla, para lo que necesitarás crear una pantalla virtual, mediante software o con un adaptador.
- Puedes compartir toda la pantalla o simplemente compartir una aplicación. Y esto lo puedes hacer con cualquier dispositivo.
- Es posible utilizarlo vía WiFi, no necesitas conectividad por cable. Sin embargo, si quieres asegurar una buena respuesta, es posible que necesites cablear la conexión. Todo depende del uso y de las necesidades.
- Por supuesto, puedes utilizar esta segunda pantalla como un teleprompter dado que Deskreen tiene la opción de pantalla giratoria.
- Te permite conectar tantos dispositivos como quieras y todos al mismo tiempo. Aquí me remito a la información facilitada por los desarrolladores. Yo no he tenido oportunidad de probarlo con mas dispositivos, con lo que tampoco te puedo decir el desempeño. Solo lo he utilizado con un dispositivo de forma simultánea. Es interesante, porque puedes añadir tantos usuarios como quieras, y todo de forma dinámica, no es necesario que reinicies la conexión para incorporar nuevos usuarios.
- Podrás modificar la calidad de imagen mientras compartes la pantalla. Esto tampoco lo encontré en la aplicación que tengo instalada.
- Se trata de un sistema seguro, porque te permite conectarte dentro de una misma red,y utilizando el cifrado punto a punto.
- Se trata de un sistema rápido, aunque de nuevo, dependerá del número de conexiones, y de la red que estés utilizando.
- Es muy sencillo de utilizar.
Instalación y uso
Para instalar la aplicación simplemente tienes que descargar el paquete .deb
o el paquete AppImage, depende de tus gustos e instalar. En mi caso, me decanté por este segundo por aquello de que no requiere ni de dependencias, ni deja restos en la desinstalación.
Y el uso es tan sencillo como la instalación. Se trata de un asistente que te guiará por tres sencillos pasos que tienes que dar. Tan fácil como eso. Una vez completados los pasos, ya estarás utilizando el dispositivo Android como una pantalla extra. Así de fácil.
Es tan sencillo como simplemente escanear un código QR que te ofrece la aplicación que estás ejecutando en el dispositivo anfitrión, en el dispositivo al que le quieres añadir una pantalla extra. Y ya lo tienes, esto es todo amigos.
Inconvenientes
Lo que me he encontrado es que esta solución tiene cierta latencia. Entiendo que dependerá de la red. Sin embargo, con la otra solución que te comentaré mas adelante, este problema no lo tienes, con lo que depende del uso que le vas a dar. En mi caso, esta latencia no debería existir, porque aunque la utilizo vía WiFi, no hay nada de tráfico cuando lo hago.
Así, por ejemplo si lo utilizas como pantalla secundaria donde tienes un libro para documentarte, o incluso para realizar una presentación, esta solución es ideal. Para mostrar el funcionamiento de un juego, no lo termino de ver. Y no lo veo, por el hecho de ese pequeño retraso que se produce.
Todo un clásico VNC
Tengo que decirte, que la primera intención fue utilizar vino
, sin embargo, en la versión de desarrollo que estoy utilizando Ubuntu 21.10
, esta herramienta se renombró a gnome-remote-desktop
. Lo cierto es que gnome-remote-desktop
reemplazó a vino
hace ya algunas versiones, pero, tampoco he tenido la ocasión de probarlo, hasta el momento, en que quería compartir mi pantalla o mejor dicho extenderla.
Por supuesto que la instalé y la estuve probando, pero con un resultado nada satisfactorio, con lo que finalmente me olvidé de ella. Para centrarme en todo un clásico como es x11vnc
. La instalación de x11vnc
, es tremendamente sencilla, porque se encuentra en los repositorios oficiales de Ubuntu, cono lo que solo tengo que abrir un terminal y ejecutar,
sudo apt install x11vnc
El siguiente paso es crear una contraseña para utilizar esta herramienta con un poco masa de seguridad. Para ello ejecuta este comando,
x11vnc -storepasswd
Indicarte que VNC no es un protocolo cifrado punto a punto, con lo que cualquiera que este en tu misma red y esté viendo que es lo que pasa en ella, puede leerlo todo. Así, que en caso de que utilices esta herramienta, fuera de tu red local, es recomendable que lo hagas o bien a través de un túnel ssh o bien utilizando una VPN. Cualquiera de las dos soluciones es aceptable y totalmente obligatoria, si quieres hacer las cosas de forma segura.
A partir de aquí tienes varias opciones para hacer funcionar esto. La primera de las opciones es crear un sencillo script, como el que te muestro a continuación, que puedes dejar en ~/.local/bin/x11vnc.sh
#!/usr/bin/bash
x11vnc -display :0 -forever -shared -rfbauth ~/.vnc/passwd
Le tendrás que dar permisos de ejecución, utilizando la siguiente instrucción,
chmod 755 ~/.local/bin/x11vnc.sh
Y por último puedes crear un lanzador para poner en marcha esta herramienta. Algo tan sencillo como ~/.local/share/applications/x11vnc.desktop
con el siguiente contenido,
[Desktop Entry]
Version=1.0
Type=Application
Name=x11vnc
Comment=share yor desktop
Exec=/home/lorenzo/.local/bin/x11vnc.sh
Icon=preferences-desktop-keyboard-shortcuts
Categories=Utility;
Este comando lo único que hace es ponerlo en marcha. Si quisieras detenerlo, necesitas otro que haga lo siguiente,
#!/bin/bash
kill -9 $(pgrep x11vnc)
O incluso combinarlo, de forma que la primera vez que lo ejecutes lo ponga en marcha y la segunda lo mate, por ejemplo
#!/bin/bash
pid=$(grep x11vnc)
if [ $? -eq 0 ]
then
kill -9 ${pid}
exit 0
fi
x11vnc -display :0 -forever -shared -rfbauth ~/.vnc/passwd
También sería interesante disponer de un indicador en el área de indicadores para resolver este problemilla y saber cuando está x11vnc en marca y en su caso iniciarlo. Si te interesa me lo comentas, y lo hago en un plin.
Algunos detallitos
Tal y como te he indicado la instrucción anterior, vas a compartir toda tu pantalla, pero, ciertamente, no se trata de esto, sino que lo interesante sería compartir parte de la pantalla, o incluso esa pantalla virtual. Para hacer esto, tienes que utilizar xrandr
. Así en mi caso, este comando me devuelve lo siguiente,
Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 16384 x 16384
HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 480mm x 270mm
1920x1080 60.00*+
1680x1050 59.88
...
HDMI-2 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 480mm x 270mm
1920x1080 60.00*+ 74.97 50.00 59.94
1680x1050 59.88
...
Así podría extender utilizando la segunda de las pantallas, con la siguiente instrucción,
x11vnc -display :0 -forever -shared -clip 1920x1080+1920+0 -rfbauth ~/.vnc/passwd
Monitores virtuales
La gracia de todo esto es poder extender tu pantalla. Pero, para extender tu pantalla, necesitas que tu equipo tenga la opción de una segunda o tercera o … mas pantalla. En cualquiera de los casos, si tu equipo tiene salida para un par de pantallas, pero solo tienes una, la opción para esa pantalla virtual es sencilla.
Puedes utilizar un dispositivo hardware que le haga pensar a tu equipo que tiene esa segunda pantalla conectada o bien, simularlo por software. Para hacerlo por hardware, lo puede comprar, por ejemplo en Amazon. En este caso, que te indico, yo compré un pack de tres unidades por un precio de 16 €. Pero es tontería en tu caso, hay lo mismo por 5 € y seguro que lo puedes encontrar en otras tiendas por mucho menos.
La gran ventaja de este dispositivo, frente a hacerlo por software es que no te tienes que preocupar ni calentar nada la cabeza. Simplemente es ponerlo o quitarlo a voluntad.
Si lo quieres hacer por software,
- Genera la línea en función de la resolución del dispositivo donde lo utilizarás. Por ejemplo
gtf 1920 1280 60
. - Crea un nuevo modo
xrandr --newmode "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
- Añade un nuevo modo por ejemplo
xrandr --admmode HDMI-2 1920x1080_60.00
. En el caso de que lo quieras poner a la derecha deHDMI-1
añade--right-of HDMI-1
.
Ya tienes creado tu monitor virtual. No es nada complejo, pero no me negarás que es mas complicado que poner un conector falso.
Ahora ya puedes iniciar el sevidor x11vnc
utilizando las opciones indicadas en el punto anterior. Indicarte, por último, que cuando hayas terminado de utilizar el servidor VNC
, tienes que deshabilitar ese monitor virtual con,
xrandr --output HDMI-2 --off
Una observación. Yo le puse el nombre HDMI-2
, pero en tu caso será el que salga de ejecutar xrandr
. Si lo quisieras quitar,
xrandr --delmode HDMI-2 "1920x1080_60.00"
xrandr --rmmode "1920x1080_60.00"
Android
Para utilizar un Android como una pantalla para Linux, puedes utilizar diferentes aplicaciones. En mi caso estoy utilizando bVNC pro
, aunque también tienes la versión gratuita, que entiendo tendrá anuncios o algún tipo de limitación, tampoco te se decir.
La configuración es muy sencilla, solo tienes que indicar la dirección IP a la que conectarte y los credenciales, y ya puedes extender la pantalla utilizando ese monitor virtual.
Más información,
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.
Imagen de portada de XPS
La entrada Como utilizar un Android como una pantalla para Linux aparece primero en Atareao.