377 - Adiós X11, bienvenido Wayland

PodcastPodcast

377 - Adiós X11, bienvenido Wayland

Después de un primer intento por allá por 2017, voy a por un segundo intento. Digo adiós X11, bienvenido Wayland, para utilizarlo por defecto

1:25
-3:15

Como has podido leer en el título de este nuevo episodio del podcast, o quizá no lo has leído, se avecinan nuevos cambios para mi. Y es que por fin me he decidido a dar el salto definitivo a Wayland. Conste, que no soy un recién llegado a Wayland. En su momento acompañé a Canonical utilizando Wayland como sesión por defecto, por allá por 2017, en su versión 17.10, nombre en clave Artful Aardvark. Sin embargo, al igual que Canonical, yo no salí nada satisfecho con ello. De echo, a la primera de cambio aproveché para volver a X11. Sin embargo, creo que ha llegado el momento de dar el salto definitivo y cambiar de servidor de vídeo de forma definitiva. Y en este episodio del podcast te doy mis razones para ello. Así que, Adiós X11, bienvenido Wayland.

Adios X11, bienvenido Wayland

Adiós X11, bienvenido Wayland

En que ando metido

Antes de entrar en el cambio de X11 a Wayland, quiero comentar algunas cuestiones que no quiero que se me escapen.

  • Esta semana no habrá nuevo reto. Tendremos Pyldora Doble. Normalmente participáis de forma activa en el reto siete personas… Sin embargo, esta semana, la cosa es que habeis sido menos, entiendo que por las vacaciones, así que tendremos un doblete de Pyldoras Pythonicas…
  • Estos días en el grupo de Telegram, se han comentado algunos pasos necesarios para la implementación de mis dotfiles en lo referente básicamente a NeoVim. Esto lo documentaré en un artículo ex profeso a lo largo de la semana, para que sea mas fácil la aplicación y se pueda aprovechar toda la potencia de las últimas versiones de NeoVim.
  • Voy a modificar el prompt de mi shell, con una herramienta que se comentó en el grupo de Telegram, hace ya algunos meses. Estoy muy satisfecho con el resultado, con lo que se viene, vídeo al canto.
  • Igualmente en el grupo de Telegram, he comentado que voy a cambiar de gestor de ventanas. Finalmente he decido adoptar sway como mi nuevo gestor de ventanas y esta es una de las razones para este episodio del podcast. No solo esto, sino que en las próximas semanas, encontrarás un nuevo tutorial para configurar y personalizar sway desde cero.

El servidor de visualización, el gestor de ventanas y los protocolos

Si eres de los mas viejunos seguro que conoces estos dos protocolos. Sin embargo, si acabas de llegar o llevas poco tiempo, es posible que te suene poco o nada. Es mas, probablemente, pienses que no te afecta, pero tarde o temprano verás que si.

Antes de nada, y por aclarar,

  • Un servidor de visualización, display server, es la aplicación encargada de dibujar en pantalla. Cualquier aplicación que quiera mostrar algo en pantalla, se lo encargará al servidor de visualización.

Por debajo del servidor de visualización se encuentra directamente el kernel, y en paralelo con él podemos situar el gestor de ventanas.

  • El gestor de ventanas hace exactamente lo que dice, gestionar ventanas. Controlar el tamaño, posición, Así que cuando se abre una ventana, se mueve a lo largo y ancho del escritorio, o cuando la redimensionas, el que interviene es el gestor de ventanas. Algunos gestores de ventana Kwin, Mutter, o los tan conocidos Tiling Window Manager como bspwm, i3, o sway.
  • Por otro lado tienes el login manager, que es la primera aplicación gráfica que te encuentras cuando inicias tu equipo, y entre las cuales cabe citar Gdm, Kdm, y otras.

Por encima de todo esto tienes el interfaz gráfico, entre los que ya conoces, KDE Plasma, GNOME Shell y otros.

Como te decía cualquier aplicación que quiera dibujar algo se comunicará con el display server y para ello utilizará alguno de los protocolos que son protagonistas en este episodio del podcast, X11 y Wayland.

Decirte que Xorg es la implementación libre y de código abierto del servidor de visualización X Window System de la fundación X.Org. Este se encarga de interactuar con las aplicaciones a través del protocolo X11.

Diferencias entre Wayland y X11

Mientras que X11 fue diseñado originalmente para renderizar gráficos a través de la red. Esta es una de las razones por las que es posibles hacer un forward de una sesión de X11 vía SSH.

Sin embargo, el concepto básico detrás de Wayland es que se trata de gestionar un cliente-servidor combinado. Es decir hay una comunicación directa con el compositor.

Wayland aísla las ventanas entre si. Esto aumenta la seguridad, pero tienes algunos desventajas.

Como verás mas adelante, Wayland une cliente y servidor, todo lo gestiona, el compositor. Esto hace que herramientas como picom ya no sean necesarias.

Por que utilizar Wayland en luir de X11

Lo mas obvio es para reducir la latencia entre cliente y servidor. Esto hace que operaciones tan sencillas como el dimensionamiento, el arrastrar y soltar, o cambiar entre ventanas sea mucho mas rápido y suave a la vez.

Por otro lado Wayland está escrito desde cero, mientras que X11 se ha ido modificando y parcheando con el tiempo para que tenga las capacidades actuales.

Inconvenientes fundamentales, las aplicaciones nativas implementadas para X11 no funcionan con Wayland.

Situación actual

No todas las distribuciones han puesto como protocolo por defecto Wayland frente a X11, lo que da una idea de la situación en lo que a adopción nos encontramos. Sin embargo, en esta nueva versión, eso si, ya LTS, de Ubuntu 22.04, Wayland pasa a ser el protocolo por defecto, y por otro lado, hasta donde tengo noticias Fedora 36 también lo adoptará o lo ha adoptado… esto lo digo de oídas.

Sin embargo, para mi, lo que es un hecho diferencial respecto a la situación de la versión 17.10 de Ubuntu, es que esta es una Long Term Support, con lo que se entiende que se trata de algo serio.

¿Y yo porque cambio?

Como sabes estos últimos tiempos han sido bastante convulsos en mi entorno de escritorio y en mi terminal.

  • bspwm
  • neovim
  • zsh
  • manjaro

Manjaro y sobre todo el acceso a los repositorios AUR me han permitido abrir la mente y ver todas las opciones de herramientas y aplicaciones que tengo. Pero no solo verlo, sino también probarlo, y probar muchas herramientas.

La gran ventaja es que ahora realizar pruebas directamente, en mi equipo en producción es algo relativamente sencillo… y si, lo has leído bien, las pruebo directamente en mi equipo en producción. No utilizo una máquina virtual, al menos de momento.

Esto lo hago así, porque de esta manera me permite probar durante meses el funcionamiento de una determinada aplicación, entorno, o herramienta, y probarlo en profundidad, no de forma superficial.

La decisión de Canonical

La decisión de Canonical de adoptar Wayland me llevó a probar Wayland con GNOME Shell, y comprobar que el desempeño era muy bueno.

Sin embargo, esto me representaba un problema. Desde hace un par de años utilizo un Tiling Window Manager que me ha permitido mejorar sensiblemente mi productividad, y quería continuar así. Pero, y aquí es donde me encontré el primer escollo, bspwm no está disponible para este protocolo…

i3 y sway

Inicialmente había probado i3 recomendado por Ángel de uGeek y la verdad es que por alguna razón que desconozco me decanté por bspwm. Eso a pesar que, como regla general, tengo establecido, preferiblemente utilizar lo que utiliza la mayoría, siguiendo aquello de ¿Donde va Vicente? Donde va la gente. Se que no es lo mas adecuado, sin embargo en el mundo de la tecnología tiene una razón de ser, cuanta mas gente utiliza una aplicación, dispositivo, etc, mas soporte hay.

Llegados a este punto, en las últimas semanas he estado probando sway y me ha gustado lo suficiente, como para dar el salto, con lo que el salto es tanto en GNOME Shell como con sway.

Como bien sabes utilizo dotfiles para gestionar toda mi configuración. Algunas aplicaciones, depende de si son para X11 o para Wayland. Incluso algunos scripts dependen de si son para uno o para otro… Necesitaba adoptar un único protocolo, y después encontrar que sway puede convertirse en mi bspwm en Waylando, tengo el problema resuelto.

Problemas que me estoy encontrando

No todas las aplicaciones que funcionan con X11 funcionan con Wayland. Otras sin embargo, se han ido adaptando y supongo que se adaptarán en un futuro.

Esto me lleva a que algunos de mis scritps no funcionen con X11. Por ejemplo los que tienen que ver con las capturas de pantalla o con el portapapeles. Otros si.

  • rofi se manitene
  • dunst se mantiene
  • polybar cae. Por el momento lo reemplazo por swaybar pero aquí se vienen novedades.
  • simplescreenrecorder lo reemplazo por wf-recorder
  • scrot lo reemplazo por grim y slurp
  • xclip se cambiar por dos wl-copy y wl-paste

Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.

Imagen de portada de Tomas Eidsvold

6 comentarios en “Adiós X11, bienvenido Wayland

  1. Miguel Mayol-Tur hace 1 mes

    Sería muy agradable disponer en el futuro de una spin no oficial de Manjaro «ATAREADA» con todas tus «hazañas».
    Hubo una con fluxbox en su día que fue muy exitosa en netbooks. Acabo de leer que por 55 € venden tabletas de 7″ con Atoms del 2014, lo malo es que son con solo 1 Gb de RAM y 16Gb de almacenamiento físico, pero, por lo que escribes, tu configuración probablemente «volaría» también en ellas.

    1. atareao hace 4 semanas

      No se que decirte, la mera idea de crear una distribución me da mucho respeto.
      Un saludo.

  2. Dr. Hax hace 4 semanas

    Tal vez valdría la pena que le des una oportunidad a Qtile, al ser programada en python, podría venir bastante bien al reto python; además de que tiene soporte para wayland.

    1. atareao hace 4 semanas

      Muchas gracias Dr.Hax por tu sugerencia. La verdad es que probé hace ya algún tiempo Qtile, justo antes de decantarme por bspwmc y por delante de i3, pero, por alguna razón que ahora no recuerdo no fue la elegida. Quizá, como bien dices, sea cuestión de darle otra oportunidad. Tomo nota.
      Muchas gracias y un saludo.

  3. Luis Manuel Ruiz hace 7 días

    Hola a todos.
    Pues lo siento, pero yo creo que Wayland todavía tiene que recorrer camino para llegar a la estabilidad de X11.

    Por ejemplo mi tableta digitalizadora Huion Canvas Pro 13 funciona bien con X11, pero con Wayland no hay manera. El caso de OBS es parecido, las capturas de vídeo RTMP no se visualizan ni emiten.

    No se….

    1. atareao hace 2 días

      Es posible, pero es necesario adoptarlo y reportar errores, mejoras y lo que sea necesario para colaborar en el proyecto.

      Cuanto antes se produzca la adopción mayoritaria mas posibilidades hay de que acelere el desarrollo.

      Si todos esperamos a que no tenga ni el más mínimo bug, es posible que nunca lo veamos terminado.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.