Aplicación para extender la pantalla de nuestro PC Linux inalámbricamente

Hola comunidad, a continuación les presento un programa de mi propia cosecha el cual he llamado Extend2VNC, permite exportar por VNC lo que seria una pantalla virtual extendida de nuestro PC. Algunos le verán utilidad, otros no, pero bueno aquí la comparto para quien la desee.

No es necesario tener un tarjeta de video con 2 salidas o 2 tarjetas de video, con la tarjeta que tenemos actualmente basta, pues el programa crea una interfaz de video virtual. Lo que si necesitaremos en otro PC o cualquier dispositivo que tenga cliente VNC como un tablet o un celular (smartphone).

Extend2VNC_6

A continuación coloco un par de escenarios en los que puede ser utilizada:

  • Estoy en el cuarto trabajando en el laptop y quiero expandir mi pantalla hacia el TV el cual tiene conectada la pc de sobremesa, para que? pues para trabajar mas cómodo y visualizar mas información a la vez, solo que lo quiero hacer inalámbricamente.
  • Estoy en mi trabajo y mi computador no tiene una segunda salida de video en la cual pudiera colocar otro monitor para así trabajar mas cómodamente y aumentar mi productividad (por ahí he leído artículos donde se ha calculado que al trabajar con 2 monitores la productividad aumenta mucho), pero … hay un computador viejito que nadie usa … le pudiera instalar un Lubuntu y en conjunto con el Extend2VNC me podría brindar la tan añorada pantalla extendida.

Extend2VNC_8

Extend2VNC esta programado en Python(2.7) para la interfaz gráfica utiliza Qt a travéz de PyQt(4.10.4) y tiene como dependencia el programa x11vnc que puede ser instalado desde distros basadas en Debian con un simple sudo apt-get install x11vnc.

El programa lo que hace es explotar las posibilidades que nos brinda el gestor de pantallas de de X11 llamado Xrandr con él se crea una interfaz de video virtual y luego transmite dicha interfaz utilizando el x11vnc.

Para configurar la pantalla secundaria la aplicación trae por defecto le puse por defecto varias resoluciones para varios dispositivos incluidos celulares y tablet, si la resolución que deseas no esta también puedes usarla seleccionando Custom y llenándola manualmente.

Para utilizar Extend2VNC selecciona la resolución adecuada para mostrar en su dispositivo, si no aparece entonces seleccione Custom y especifícala. Después de hacer clic en Start, abajo en la barra de estado aparecerá que ya esta listo y saldrá el numero IP al que nos tenemos que conectar desde el cliente VNC, para parar dar clic en Stop.

Los clientes VNC recomendados para el uso en conjunto con esta herramienta son (con otros el puntero del mouse no aparece):

  • Para Linux tightvnc para instalarlo si su sistema es basado en Debian o Ubuntu poner en un terminal sudo apt-get install xtightvncviewer.
    Luego en un terminal poner vncviewer numero_ip
  • Para Windows y MacOS tightvnc descargar del sitio oficial http://www.tightvnc.com
  • Para Android descargar VNC Client Free del Play Store

VNC Client Free


La aplicación tiene licencia GPL v2 y esta disponible en

Github

La  versión para descarga nacional esta

Disponible aqui

Cualquier duda o sugerencia por favor no duden en comentar o ponerse en contacto a través de mi email que aparece en la aplicación.

Aquí les muestro algunas fotos de la pantalla extendida hacia un Tablet de 7″ una de ellas con el audacious en el medio de las 2 pantallas.

Extend2VNC_3Pantalla extendida hacia un Tablet 7″

Extend2VNC_2Audacious en el centro de las 2 pantallas

¿Te resultó interesante? Compártelo ...



bosito7

Publicado por bosito7

http://gutl.jovenclub.cu » Forma parte de GUTL desde el 19 diciembre, 2012. Soy un investigador apasionado de Machine Learning / Deep Learning. Me encanta aplicar Inteligencia Artificial en áreas que mejoran significativamente la calidad de vida del ser humano, como la salud y la agricultura. Amante de GNU/Linux y el Software Libre en general.

Este artículo tiene 17 comentarios

  1. Me lanza estos errores cuando le doy a ‘Start’ y no me pone nada en ‘Status’ Traceback (most recent call last):
    File «Extend2VNC/Extend2VNC.py», line 44, in startfunc
    self.popen = utils.vncStart(resolution)
    File «Extend2VNC/Extend2VNC.py», line 163, in vncStart
    popen = subprocess.Popen(command,stdout=sp.PIPE, stderr=sp.STDOUT)
    File «/usr/lib/python2.7/subprocess.py», line 710, in __init__
    errread, errwrite)
    File «/usr/lib/python2.7/subprocess.py», line 1327, in _execute_child
    raise child_exception
    OSError: [Errno 2] No existe el archivo o el directorio
    por lo demás: tremenda idea, lástima que el protocolo vnc se tan lento…

    • @Sam
      Recuerda instalar el x11vnc
      sudo apt-get install x11vnc

      Eso debe ser lo que te esta pasando, por favor para tener un retorno dime que distribución de GNU/Linux estas usando y la versión, yo lo teste en Ubuntu 14.04 con KDE.

      Por favor comenta si pudiste correr el programa

      @Todos
      Aprovecho para aclarar otra cosa … algo que no dije explícitamente en el post pero se sobre entiene, este programa funciona solo en Linux, los clientes son los que pueden funcionar en otros SO.

      Salu2 bosito7

    • En efecto, x11vnc no estaba instalado. Estoy usando exactamente lo mismo que tu (Ubuntu 14.04 + KDE) y aún no me funciona, esta vez creo que es problema de xrandr, puesto que Extend2VNC funciona como debería pero aún así el cliente no se conecta. entonces me puse a ejecutar paso por paso cada comando que Extend2VNC ejecuta y en el siguiente xrandr dice:
      $ xrandr --newmode "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 -HSync +Vsync
      X Error of failed request: BadName (named color or font does not exist)
      Major opcode of failed request: 140 (RANDR)
      Minor opcode of failed request: 16 (RRCreateMode)
      Serial number of failed request: 25
      Current serial number in output stream: 25

      Para la próxima versión te sugiero que le agregues alguna forma de cambiar el puerto por defecto (5900) o usar la opción -autoport para que x11vnc encuentre el primero disponible y lo muestre, porque en mi caso tengo krfb configurado para obtener control remoto de mi PC y este está funcionando por el 5900, por lo que x11vnc detectaría esto y funcionaría por el 5901 (por ejemplo). Además también pudieras agregar algunos «checkboxes» para habilitar/deshabilitar el modo viewonly (…entre otras opciones que tiene x11vnc), lo que permitiría además de extender el escritorio, compartirlo (me refiero al extendido) y así pudieras… por ejemplo: mientras ves una peli en tu escritorio (normal) otra persona puede ir tecleando un documento en el escritorio extendido.

  2. tengo una duda, segun lo que lei este software sirve para que cuando me conecte por vnc a mi maquina con linux, desde donde me conecte se use como una segunda pantalla(es asi no?)

    ahora la cosa es que lo pruebo desde una PC con win2 el TightVNC y lo que sale en este es lo mismo que estoy haciendo en mi PC con linux, o sea que no sale como si fuese otro monitor, que pudiese haber mal en mi debian??

    Sin más aldrock

    • Hola @aldrock
      Gracias por comentar y por postear tu feedback.
      He estado haciendo pruebas en Debian 8 con LXDE tienes toda la razón, no funciona 🙁 , el motivo es que xrandr no deja crear pantallas virtuales, no se si con otras versiones de Debian pasará lo mismo o si también pasa con otras distribuciones Linux. Con Ubuntu 14.04 lo he testado con KDE y con Unity en varios PC y al quilo
      Salu2

  3. Hola, instale aparentemente todo, pero siento que falta algo. Ya instale x11vnc, y el VNC FREE CLIENT en mi celular. Pero no se como ejecutar el Extend2VNC. Ejecute el x11vnc en la terminal de Ubuntu 15.04. y me salio #@ ** WARNING ** WARNING ** WARNING ** WARNING ** @#
    #@ @#
    #@ YOU ARE RUNNING X11VNC WITHOUT A PASSWORD!! @#
    Pero después puse mi contraseña.
    Y en la app del celular Nickname:»¿que pongo?»
    Password: «puse la que había establecido»
    Adress: «puse mi IP»
    Port: 5901
    Username: «¿que pongo?»
    Perdone mi ignorancia pero me gustaria mucho poder extender mi pantalla.
    Gracias por tu aporte me motiva a seguir estudiando.

    • Hola @Christopher para ejecutar el Extend2VNC necesitas tener instalado python 2.7 que generalmente viene preinstalado con casi todas los sabores de GNU/Linux (inclido el que tienes Ubuntu 15.04) y necesitas PyQt 4 que esta en el repositorio. Para la funcion de extender pantalla nececitas el Extend2VNC si solo quieres un mirror(que en el celular se vea lo mismo que monitor) entonces simplemente corres el x11vnc, si estan en una red local de casa si deseas no necesitas password y asi la aplicacion entra automatico
      Salu2

      • Gracias para empezar ya tenia instalado python 3.5 y pyQt4 versión 4.11.4. Sólo que me había equivocado en el IP jajaja pero corrió perfectamente me gusta mucho gracias. Observaciones la app tiene un anuncio en la parte superior de en medio (incómoda pero es comprensible ya que es gratis). Mi celular se calienta un poco (Samsung Note 3) al parecer, aunque la transferencia de información es a tiempo real celular-laptop. Aun me falta por configurar la pantalla pero con unas cuantas manejadas iré agarrando experiencia. En conclusión funciona muy bien y es una experiencia novedosa. Seria bueno que hicieras un video tutorial sobre esto para YouTube ya que cuesta un poco entender el manejo de la pantalla virtual y el x11vnc. Gran aporte un saludo!!

  4. me da error en debian 8 kde.
    Traceback (most recent call last):
    File «Extend2VNC.py», line 45, in startfunc
    nIP = utils.obtainIP()
    File «Extend2VNC.py», line 175, in obtainIP
    nIP = commandOut[1].split(‘inet:’)[1].split(‘ ‘)[0]
    IndexError: list index out of range

    • Hola Sigfrid, en Debian otros me han comentado que da error, prueba a ejecutarlo con sudo, o sea sudo python Extend2VNC.py el problema que esta dando es en la funcion que accede al ifconfig para extraer el nuemero IP. Otra solucion rapida pero chapusera es comentar la linea de codigo que llama a la funcion (o sea esta nIP = utils.obtainIP()) y poner nIP a un caracter vacio «». Espero que puedas hecharlo a andar, Salu2 bosito7

      • fijate que si me fuciona, pero es como ver la pantalla de mi ordenador no extiende la pantalla lastimosamente

    • Hola synapsevzla, El software funciona con Linux y quizas se le pueda hacer un port para Mac (o sea Unix like systems). La verdad es que no tengo idea si al menos eso es posible hacerlo en Windows. Me imagino que quizas creando algun driver especial que trabaje como framebuffer y se redireccione la memoria de video para ahi. Tambien se pudiera intentar instalar XWindow y ver si el comando xrandr funbciona. Si te animas a hacerlo o encuentras alguna solucion que pueda ser compatible por favor dejame un comentario al respecto, me encantaria aumentar la compatibilidad del software.

    • Hola Alan, esta version del software fue probada en Ubuntu 14.04. El problema que comentas es debido a los parametros del commando xrandr usado apra extender la pantalla. En Github un colega hizo un fork que si la memoria no me falla funciona con Ubuntu 16.04. Espero que eso solucione tu problema

      • pero mi versión de ubuntu es 14.04 Lts y estoy intentando extender un windows 10 el comando que mencionas desde donde puedo editarlo de antemano muchas gracias

Los comentarios están cerrados.