Después de que Wayland haya irrumpido en una distribución de la grandes, KDE sigue sin poder ofrecer un soporte decente al protocolo gráfico.
Ha pasado más de medio año desde que Gnome diera luz verde a Wayland y unos días desde que la gente de Fedora decidiera usarlo por defecto, pero Plasma sigue ranqueante en su implementación. En estos momentos el desarrollador más activo (y prácticamente el único que le está dedicado tiempo de verdad) sigue siendo Martin Gräßlin, el encargado del compositor de ventanas Kwin.
Kwin es el componente más importante de Plasma en este aspecto ya que se encarga de dar forma a las ventanas. Es por ello que su soporte para Wayland es el indicador del estado de salud de la implementación en KDE. Gräßlin ha explicado que desde ya hay soporte para algo tan nimio como las capturas de pantalla, asegurando que ha sido un gran logro. Pero ¿por qué ha sido tan complicado dar soporte a una función tan elemental? El desarrollador lo explica en una entrada de su blog:
Para explicar por qué es un gran logro, primero tenemos que mirar a X11. En X11, tomar una captura de pantalla de una ventana es fácil. Es parte del protocolo X para leer los datos del PixMap de la ventana root y coger las posición y tamaño de cada ventana. De esa forma, uno puede separar la ventana y tenerla como captura de pantalla. Esa es una de las formas más simples de hacerlo; Spectacle y las versiones previas de Ksnapshot lo hacen de una forma diferente.
Leyendo esto parece que ha habido un gran cambio en Wayland en este aspecto y más teniendo en cuenta que se trata de una función que lleva existiendo prácticamente desde el inicio de la interfaz gráfica. Gräßlin continúa:
Para hacer eso en Wayland nos encontramos con algunos «problemas». Wayland está diseñado de una forma segura tal que esté acorde con los requisitos de 2016 y no con los requisitos de seguridad de los años 80s. Hoy en día es inaceptable que una aplicación pueda tomar una captura de pantalla de otra ventana o del sistema completo. Y no hay nada incluido de serie para tomar una captura de pantalla: ni de toda la pantalla ni de una ventana.
Así que todo gira en torno a la seguridad. Los desarrolladores de Wayland no creen que sea conveniente que otros programas tengan la capacidad de poder tomar capturas de pantalla de una forma demasiado sencilla por esa buena razón. Pero resulta que el tema va más allá del hecho de que Wayland no tenga la función integrada:
E incluso si estuviera [la funcionalidad de tomar una captura de pantalla], no ayudaría demasiado. La información sobre otras ventanas no está disponible. Uno no puede coger la información de cuál es la ventana activa o qué ventana está bajo la posición actual del ratón. Así que una aplicación no sería capaz de coger el ratón y hacer clic en cualquier sitio de la pantalla. El ratón sólo está disponible en la ventana actual.
Según parece, el equipo de desarrollo de Kwin decidió hace tiempo saltarse la funcionalidad incluida en X para tomar capturas de pantalla y hacer su propia implementación con funciones adicionales. Esto lo hicieron así entre otras razones para poder tomar capturas incluyendo efectos como sombras (generadas por el compositor y no por X). Eso ha facilitado el trabajo pero aún así seguía haciendo falta X11 para que funcionara. Finalmente han tenido que hacer algunos cambios al antiguo código de Kwin para adaptarlo a Wayland.
Resulta curioso cómo algo tan elemental supone un quebradero de cabeza y también es interesante observar los mecanismos de seguridad que incluye Wayland, siendo estos una de las principales ventajas (junto al rendimiento) con respecto a X11. A su vez, las ventajas de seguridad pueden suponer un problema de funcionalidad: a partir de ahora, en Linux será necesario confirmar explícitamente que quieres tomar una captura de pantalla y la automatización en este aspecto se complicará. Habrá que ver también de qué forma afecta esto a herramientas como VNC u otros escritorios remotos.