El futuro los entornos de escritorio Gtk.
A fines del año pasado, el reproductor de medios Celluloid migró a Gtk4 y en su más reciente versión ahora requiere libadwaita, es decir utiliza el tema Adwaita de forma fija y en consecuencia se ha convertido en una aplicación GNOME. Varias aplicaciones Gtk están siguiendo el mismo camino a fin de poder cubrir los requisitos de GNOME 42. Para el usuario final son cambios poco relevantes. Para el ecosistema de aplicaciones para Linux son cambios radicales que algunos ven muy bienvenidos. Para entornos de escritorio como Cinnamon, MATE desktop y Xfce es un hecho que tiene mucha relevancia y implicará comenzar a realizar muchos cambios a fin de mantenerse a flote en el futuro.
Contexto previo.
La transición de MATE Desktop de Gtk2 a Gtk3 demoró algunos años, pero se consiguió con la versión 1.18 en 2017 y se ha mejorado con las versión 1.26 de 2021. Para Xfce fue más complicado, pues demoró algunos años más, comenzando con la versión 4.14 en 2019 y completándose hasta la versión 4.16 a finales de 2020, con múltiples correcciones de goteras de memoria entre 2021 y lo que va de 2022, recuperando su tradicional ligereza tras aplicar los correspondientes parches correctivos. Cinnamon nació siendo Gtk3 y realmente sólo tiene como reto el migrar algún día a Gtk4.
Sin embargo, la transición de Gtk3 a Gtk4 puede ser algo demore muchos años más o bien jamás suceda. ¿Por qué? La respuesta es un tanto compleja y trataré de explicarla de la manera más simple posible: Gtk4 fue diseñado para ser utilizado sólo por GNOME. Es extraño pensar en que durante algunos años Gtk era las siglas de Gimp ToolKit y fuese un desarrollo bastante abierto a las opiniones, participación y sugerencias de la comunidad.
Explicación técnica.
Citando algunos extractos del artículo publicado en Homo Ludditus, podemos comentar que entre los cambios más relevantes entre Gtk3 y Gtk4, destacan la obsolescencia o desaparición de varias funciones de interfaz (Widgets): GtkMenu, GtkMenuBar, GtkMenuItem y GtkToolbar. Es decir, en Gtk4 desaparecen los menús, las barras de menú, elementos de menú y las barras de herramientas, elementos de interfaz que son dependientes de X11. La tendencia en Gtk4 fue crear nuevas funciones de interfaz que fuesen agnósticas de X11 o Wayland, lo cual es algo muy positivo y facilita la vida a los desarrolladores de aplicaciones Gtk.
Los menús pueden ser reemplazadas por GtkPopoverMenu y las barras de menú se pueden reemplazar con GtkPopoverMenuBar. Estos nuevos widgets sólo se pueden construir a partir de modelos de menú, por lo que migrar a Gtk4 implica cambiar a modelos y acciones de menú.
Los menús tabulares rara vez se usaban y complicaban el código del menú, por lo que su funcionalidad fue omitida en GtkPopoverMenu. Si requiere un diseño complejo en ventanas emergentes similares a menús, existen alternativas para usar directamente GtkPopover en su lugar.
Dado…