best counter
GNU/Linux. MuyLinux

Xephyr: X dentro de X

Cada cierto tiempo suelo toparme por accidente con aplicaciones que desconocía completamente su existencia, lo que despierta mi curiosidad por saber qué es lo que hace y para qué sirve.

 xXephyr: X dentro de X

Hace un tiempo atrás me encontré con Xephyr, una herramienta parte de X.Org Server del estilo de Xnest con la diferencia, como lo reporta su manual, que el último se veía limitado por las capacidades del servidor X huésped, mientras que el primero es un servidor X real sobre el huésped. En pocas palabras, podríamos decir que Xephyr funciona como un contenedor para lanzar aplicaciones X en paralelo a nuestro servidor X en ejecución.

Podríamos decir, también, que sería como una segunda pantalla, independiente, dentro de una ventana de nuestro escritorio. De esta manera, se podría deducir su importancia para los desarrolladores, por ejemplo, diseñar sobre un entorno de escritorio sin tener que salir o reiniciar a cada rato su espacio de trabajo.

Sin embargo, podríamos encontrarle un uso más casero. Personalmente, soy indeciso a la hora de organizar mi escritorio, tiendo a cambiar todo de tanto en tanto. El problema está en tener que dedicar buena parte del tiempo iniciando y cerrando sesión. Aquí es donde Xephyr viene muy a mano: podremos ejecutar dentro de su ventana el entorno a probar con tan sólo indicar de antemano el valor de DISPLAY (lo cual veremos en unos instantes). Tomando el ejemplo que acabo de describir, voy a explicar cómo ejecutar fvwm (razón que me hizo recordar a la aplicación en cuestión) dentro de Xephyr:

En primer lugar, debemos instalarlo. En la mayoría de los casos bastaría con un apt-get install, aptitude install, yum install, pacman -S y demás. El paquete en cuestión contiene la palabra Xephyr; por lo tanto, no sería muy complicado encontrarlo. Sin embargo, quiero hacer la salvedad para Gentoo ya que no está tan a mano. Para instalarlo es necesario agregar para x11-base/xorg-server la etiqueta USE kdrive y recompilar.

Una vez instalado, nos resta iniciar Xephyr. Básicamente, toma un par de parámetros para lograrlo funcionar. Por ejemplo:

Xephyr :1 -screen 1024x768

Donde:

  • :1 corresponde al valor que se debería usar para la variable DISPLAY a la hora de querer mostrar la aplicación dentro de Xephyr
  • -screen indicará la resolución que tendrá nuestra nueva pantalla

Nótese que la X de Xephyr va en mayúscula y que hay más posibilidades de parámetros, aunque con lo dado me parece suficiente.

 xephyr vacio 500x247Xephyr: X dentro de X

Xephyr en ejecución junto a la terminal

Ahora nos encargaremos de enviar nuestro programa. Para esto hay diferentes maneras aunque muy similares. Supongamos querer enviar fvwm desde nuestra terminal a Xephyr. Tendríamos que primero darle el valor a DISPLAY, de lo contrario recibiríamos un error pues tenemos otro gestor de ventanas en ejecución. Por lo tanto, lo ejecutamos de la siguiente manera:

DISPLAY=:1 fvwm

También podríamos haberle dado el valor a DISPLAY previamente; sin embargo, esto produciría que, para la terminal en uso, todas las aplicaciones sean dirigidas a :1 en vez de nuestra sesión de X. Del otro modo, sólo afectará a esa línea y volverá a su valor anterior. Ante cualquier duda, se puede ejecutar echo $DISPLAY para saber cual es su valor actual.

 xephyr fvwm 500x241Xephyr: X dentro de X

Por supuesto, podríamos ir más lejos e iniciar una sesión de XFCE o KDE por ejemplo, la mecánica es la misma. Sin embargo podría volverse más pesada la ejecución dependiendo del ordenador. Simplemente hay que cambiar fvwm por startxfce4 o startkde. Sin embargo, en el caso de KDE, requerirá algún rebusque más pues, en mi caso, se inicia dentro de Xephyr y sus aplicaciones se ejecutan fuera.

 xephyr xfce 500x245Xephyr: X dentro de X

Por último quedaría usarlo junto con ssh. Debido a que no tengo a mano otra computadora con la cual probarlo, les dejo el comando sacado del foro de Ubuntu (y dicho sea de paso, allí hacen uso de algunos parámetros más para quien esté interesado).

DISPLAY=:1 ssh -XfC -c blowfish usuario@servidor

Conclusión:

Xephyr es una herramienta de gran utilidad que nos permite tener dos entornos de escritorios corriendo en paralelo de manera bastante rápida y sencilla. Es muy conveniente para evitar entrar y salir de la sesión que, además de gastar tiempo, también incomoda tener que alternar con un entorno que no es de nuestro día a día. Por otro lado, nos puede servir para enviar allí aplicaciones por medio de ssh y evitar confusiones con aplicaciones locales. Fuera de todo eso, es una herramienta curiosa e interesante que puede resultar útil en cualquier momento.

Hay 26 comentarios

  1. 1
  2. 2
    Paco Jones dice:

    Muy interesante, cierto. La cara “oculta” de Linux, esa que cada vez es menos visible gracias a la popularidad de Ubuntu y distros similares donde se le da todo machacadito al usuario, no deja de sorprender (ojo, que no tengo nada contra Ubuntu, sólo manifiesto el hecho de que a medida que Linux se populariza sus funcionalidades más peculiares van quedando como más reservadas a especialistas)

    • 3
      russo dice:

      Por eso, por medio de este espacio, intento incentivar la curiosidad. Es un sistema lleno de cosas muy interesantes y no necesariamente hay que ser experto para comprenderlo. De hecho, ¡así se aprende!

    • 7
      Francisco Verdeja dice:

      La linea e comandos es la cara oculta de cualquier sistema operativo, a menos que uses Gentoo y Arch

      • 17
        pasante dice:

        O Slackware, Arch es para bebés.

        • 18
          Sergio dice:

          Siento decirte pero Slackware no va a vivir mucho mas, ya han dicho que tienen fecha de fin, que ya no pueden seguir manteniendo un sistema tan viejo, que tendrian que reescribir todo, fue la primera distro que salio creo que en el 93, solo 2 años despues de la salida del kernel, pero ya tiene que dejar paso para generaciones venideras.

          • 19
            pasante dice:

            Se dicen muchas cosas sobre Slackware, no es la primera vez que se dice que la distro está en muere, si quieres busca en Google para que veas, pero lo cierto es que la distro sigue adelante, la ultima version es del año pasado.
            Slackware esta mas vivo nunca, con proyectos como AUSTRUMI, BACKTRACK, VECTOR LINUX, ZENWALK, entre muchas otras, se lo que te digo que llevo años usando esta gran distro, de seguro ni siquiera nacias cuando ya la usaba. =)

  3. 5
    Offtopic-man dice:

    Una pregunta off-topic pero que no encuentro ni en google. Existe algun programa como el Everest para Linux? Necesito saber info de mi BIOS, motherboard, etc. Pero no encuentro ni en google ni en el centro de software.
    Lamento tener que escribir en un post que no tiene nada que ver con el tema.
    Desde ya, muchas gracias.

  4. 6
    jefer94 dice:

    miren, como se actualiza una distro usando preupgrade?, es que intento actualizar a fedora 17 y me encuentro con la sorpresa que cuando me dice que reinicie lo hago y queda igual, en las paginas que hablan de el dicen que el pograma es practicamente autosuficiente, lo unico que noto es que me actualizo e nucleo linux y ahora me falla menos

    • 24
      mulder dice:

      ¿porque no usas otra distro -cualquier otra es mucho mas estable-? fedora es de los mas inestable que existe en el mundo linux, solo sirve para sus experimentos de red hat y cuando una version ya comienza a alcanzar cierto grado de estabilidad para hacerla siquiera usable al toque queda descontinuada debido al corto tiempo de soporte de un año y eso que dicho soporte en realidad es un seudo-soporte diria yo, ya que mucho antes de ese tiempo ya deja de actualizarse con frecuencia, ademas de muchos de los errores jamas son parchados teniendo que lidiar dia a dia con ellos, natural en parte al ser una distro que sirve solo de experimento.

      • 25
        jefer94 dice:

        me pase a opensuse porque actualizar por preupgrade a cada rato borrandoce la cache cuando tengo que apagar la pc es molesto, el unico porblema que tiene es el gestor de red de gnome que me dice “Los servicios de red del sistema no son compatibles con esta versión.” pero no me preocupo porque tengo internt por cable de red y que el que instale gnome modo live cd tiene que instalar el paquete de idioma el mismo

  5. 8
    shaggy dice:

    vaya es verdad lo que algunos dicen.. y ya estoy entendiendo las razones del porque los linuxeros mas antiguos tienden a fastidiarse con unity.. es como pasarse por alto su alma mater… yo lo veo pues de esta forma.. win2 esta tendiendo al lo que esta de moda ese win8 esta dedicado mas a las masas de lo portatil, redes sociales, botones grandes y demas, para entonces no hay quien le haga frente sino MAC y como le compite linux? Ubuntu.. aunque andrioid lo ha hecho muy bien.. me ha gustado mucho el mundo Linux, y por lo que mas me ha gustado es por tener un SO para cada necesidad, dejen de quejarse y migren a otra distro si les molesta ubuntu, al fin y alcabo solo lo hace para que mas gente se una al mundo Linux.. y vaya forma de hacerlo traicionando un poco de sus raices…

  6. 9
    helena dice:

    hola, una pregunta, donde esta la variable DISPLAY, como hago, por ejemplo, que xephyr corra jwm?

    • 13
      russo dice:

      La variable DISPLAY la usa X para saber a donde dirigir las aplicaciones. Entonces, siguiendo el ejemplo que está en el artículo bastaría con cambiar fvwm por jwm. Luego, manejar la variable DISPLAY es cuestión de asignarle el valor necesario, cosa que dentro de la terminal se logra anteponiendo el nombre de la variable a un signo igual y el valor.

  7. 10
    selairi dice:

    Otro uso de Xephyr es conectar varias pantallas, ratones y teclados a un ordenador, y hacer que cada pantalla se comporte como un ordenador independiente. A esto se le llama multiseat. En el siguiente vídeo podéis ver un ejemplo:

    http://www.youtube.com/watch?v=aop39a6ob7s

    Existe una forma fácil de hacer de hacer multiseat en Linux:

    http://code.google.com/p/multiseat-wizard-bicefalo/

    Y tiene hasta manual:

    http://code.google.com/p/multiseat-wizard-bicefalo/wiki/Manual

    Espero que os sea útil.

  8. 15
    Creeping_death dice:

    Excelente tutorial,se ve muy interesante.

  9. 16
  10. 21
    Mr P dice:

    Esto no es lo mismo (pero más rudimentario) que las activities de KDE ?

  11. 22
    Nekmo dice:

    Genial artículo, ¡así da gusto! ;-)

  12. 23
    monty_oso dice:

    Muy buen articulo. espero ver mas como este.

  13. 26

    [...] un poco con la línea de mi artículo anterior, quería hablar sobre la archiconocida Gentoo cuyo nombre ha funcionado muy bien como [...]

Escribe tu comentario