Código fuente descargado de su repositorio en Github en septiembre de 2017. Los cambios más recientes datan del pasado mes de febrero.
No, por lo visto el autor de Wingo no publica versiones diferenciadas del gestor y prefiere un desarrollo más fluido.
https://github.com/BurntSushi/wingo
Activo, aunque actualmente centrado en su mantenimiento —corrección de errores y fallos de compatibilidad, esas cosas—; no se prevén cambios importantes o características nuevas.
Uno puede encontrar por los amplios campos de Internet algunos artículos dedicados a Wingo, como esta estúpida comparación con Awesome , o comentarios en Reddit
. De modo que parece que existen personas interesadas que lo usan, aunque no hablamos de un gestor de ventanas muy conocido y dudo que sean muchas.
Esc. Virtuales | Menús | Iconos | Temas | Dockapps | At. de teclado | Barra de tareas |
---|---|---|---|---|---|---|
Sí | Parcial 1 | No | No | No | Sí | No |
1 Uno, el menú de tareas que aparece al pulsar [Windows] y [Espacio]. Nada que el usuario pueda personalizar.
Títulos | Flotantes | Barra de estado | Manejo |
---|---|---|---|
No | Sí | No 1 | Dinámico |
1 No se incluye ninguna, pero sí la funcionalidad necesaria para que el usuario emplee paneles de terceros: los mosaicos les dejarán automáticamente el espacio que requieran.
«¡Wiiingoou!». Así es con sus colores por defecto —fondo de escritorio obviamente no incluido—; las ventanas aparecen con los controles clásicos de minimizar, maximizar y cerrar.
Wingo fue creado por Andrew Gallant . Su peculiaridad más notoria es estar escrito en Go, un lenguaje de programación relativamente reciente y más bien atípico para un gestor de ventanas. Como el X Window System no contempla tal cosa e implementa casi toda su funcionalidad en C, Gallant tuvo que replicar además algunos de sus componentes en Go.
Otra faceta llamativa de Wingo es que puede funcionar a la vez como gestor de pila o de mosaico. El usuario decide sobre la marcha cómo quiere desenvolverse. De hecho resulta posible utilizar ventanas flotantes en un escritorio virtual determinado y encajar las del siguiente en un mosaico. Aunque hay otros proyectos que también intentan facilitar ambos modos de trabajo —Enlightenment, probablemente Sawfish—, no son muchos.
De concepto minimalista. No encontraréis aquí paneles, barras de tareas o paginadores —pese a la existencia de escritorios virtuales—; nada, a excepción de un menú de tareas y algunos diálogos simples, Wingo no incluye accesorio alguno. Sin embargo, al ser mayormente compatible con [los estándares] ICCCM y EWMH
, puede combinarse fácilmente con herramientas de terceros.
Lo que sí existe es un versátil sistema de comandos internos que permite al usuario darle órdenes directas al gestor. Bien mediante un cuadro de diálogo reservado para ello —en la configuración por defecto aparece al pulsar [Windows], [Mayúsc] y R—, o desde wingo-cmd , una utilidad para la terminal que preparó Gallant. Esta segunda opción resulta más práctica, y permitiría por ejemplo automatizar algunas operaciones con scripts de Bash.
En el modo de pila, y si no se ha configurado otro comportamiento, las ventanas se dibujan con una sencilla decoración, un título con iconitos a la derecha para minimizar, maximizar o cerrar. Las minimizadas pueden recuperarse luego desde el diálogo de alternar entre aplicaciones; en principio, y como en tantas interfaces gráficas, se invoca con [Alt] y [Tab].
Los mosaicos prescinden de la decoración —sólo se conserva el borde para indicar dónde se encuentra el foco— y se basan en una división horizontal o vertical de la pantalla en dos mitades. El área principal o master área
, a la izquierda o arriba, se reserva para aquellas ventanas que en un momento dado requieran más atención y convenga mostrar a mayor tamaño; las demás compartirán la parte restante, denominada normalmente zona de pila. El manejo de estos mosaicos es dinámico —las dimensiones concretas de cada celda se determinan automáticamente— y se basa en combinaciones de teclas.
La configuración de Wingo se guarda en una serie de archivos de texto situados en el directorio ~/.config/wingo —respetando así uno de los estándares modernos de Freedesktop —. Bien comentados y relativamente sencillos, emplean una sintaxis semejante a la de los ficheros INI que antaño eran habituales en el mundo de Windows. Son en total cinco, cada uno dedicado a una faceta diferente del gestor.
El requisito imprescindible es, lógicamente, el compilador de Go y las bibliotecas y herramientas que lo acompañan. Debería figurar en cualquier repositorio de paquetes digno de llamarse así; al menos las diferentes variantes de BSD y distribuciones mayoritarias de Linux sí lo ofrecen de esta forma. No recomiendo instalarlo a mano, aunque a mí no me quedó más remedio —el duro reto de mantener un sistema obsoleto—.
Luego, el asunto se reduce a teclear en una terminal:
$ go get -v github.com/BurntSushi/wingo
Y esto descarga el código fuente de Wingo y sus dependencias —ya he dicho que Gallant reescribió en Go algunas piezas del X Window System—, y lo compila. El ejecutable resultante se encontrará en el subdirectorio bin dentro del lugar especificado en la variable de entorno $GO_PATH
. Podéis copiarlo a /usr/local/bin si eso os va a hacer la vida más cómoda.
Por último algunas personas querrán obtener también wingo-cmd
:
$ go get -v github.com/BurntSushi/wingo/wingo-cmd
Вперед, товарищи! На Берлин! El reloj de la esquina inferior izquierda es Xonclock , que cuenta con muchos diseños diferentes. En la terminal, un reproductor de música llamado Nplay
.
Antes de empezar a usar Wingo tuve que crearme una configuración. Algo que quizás cabría anticipar como un trámite largo y tedioso: ¿examinar textos de ayuda, preparar a mano los ficheros correspondientes? Por suerte Andrew Gallant pensó en todo, y resulta posible escribir en una terminal «wingo —write-config
» para disponer de una configuración inicial con la que trabajar.
«¡Wiingoou!». Eh, cuando comencé mi primera sesión salió por los altavoces esa voz entusiasta, y suena exactamente así. Ya, no aporta nada pero me pareció una ocurrencia graciosa. Por eso la he conservado: durante este mes mi ordenador ha estado exclamando «¡Wiingoou!» de forma cotidiana, cada vez que me presentaba mi escritorio.
Los ajustes por defecto establecen una interfaz con colores chillones, en concreto un gradiente naranja de tonos vivos para la decoración de las ventanas. Seguramente un poco agresiva a la vista. Me recuerda al aspecto predeterminado de Pekwm, que tampoco me gusta mucho.
Desde luego Wingo parece poca cosa: no hay menús, no hay pager, no hay nada... No obstante se trata de un minimalismo sofisticado, como los de Openbox o Metacity: existe un cuadro con iconos para alternar entre ventanas —[Alt] y [Tab]—, y al pasar de un escritorio virtual a otro un cartelito informa de en cuál te encuentras ahora. Me entretuve un rato trasteando, sin perder de vista la documentación que escribió el autor. Y leyéndola me fui convenciendo de que este gestor ofrece más de lo que transmite a primera vista.
La mayoría de usuarios probablemente se conformará con manejar sus sesiones mediante los elementos de la interfaz y los atajos de teclado necesarios. En su configuración por defecto Wingo incluye algunos métodos de control compartidos por muchos otros gestores, cosa que facilita ligeramente el aprendizaje a los recién llegados: algunas de sus costumbres previas pueden seguir siendo útiles aquí. Por ejemplo, mantener presionada [Alt] mientras se arrastra con el botón izquierdo del ratón mueve la ventana en cuyo interior se sitúe el puntero, sin que haya que apuntar a un lugar concreto de su decoración.
Ahora, como he dicho antes, cada posible operación de Wingo cuenta con el correspondiente comando interno; al conjunto de ellos el autor lo denominó lenguaje Gribble. De modo que para mover una ventanita de Xcalc a la esquina superior izquierda de la pantalla, podría escribirse en una terminal:
$ wingo-cmd 'Move "Calculator" 0 0'
Colores diferentes, la ventana enfocada aparece destacada en verde. Y como estoy pulsando [Alt] y [Tab] para saltar de una a otra, en primer plano aparece el diálogo de selección. El panel del borde superior es Xmobar.
Se trata de un ejemplo tonto porque nadie en su sano juicio va a ponerse a trabajar así: mucho más fácil arrastrar la dichosa calculadora con el ratón. Pero se entiende la idea, ¿no? Alguien imaginativo podría aprovecharla en scripts que faciliten acciones complejas, si bien el propio Wingo ya contempla este tipo de automatismos —sobre todo en el fichero ~/.config/wingo/hooks.ini—. En ocasiones vienen bien: así, cuando arranco el navegador Opera, éste siempre aparece en mi segundo escritorio virtual y con unas dimensiones determinadas.
La posibilidad de alternar entre mosaicos o ventanas flotantes —pulsando [Alt] + A, y [Alt] + U— tiene su interés. Aunque yo recurro a los primeros sólo cuando utilizo terminales o aplicaciones basadas en texto, y normalmente prefiero la segunda modalidad. Ya de paso diré que me gusta que el cambio de un estilo de trabajo al otro afecte únicamente al escritorio virtual activo.
Wingo resulta por lo demás sobrio. Recomendable mantener abierta una terminal porque carece de menús de aplicaciones; mas también cabe configurar un atajo de teclado para invocar un lanzador o línea de comandos —Dmenu me gusta mucho, Gallant por su parte eligió Gmrun , antiguo pero cómodo—.
En realidad no hay mucho que destacar, Wingo no hace nada extraordinario en esta faceta. Como ya he comentado antes me recuerda bastante a Metacity sin ningún añadido, ambos se manejan de un modo similar.
Para recuperar ventanas minimizadas empleé habitualmente el cuadro con iconos que aparece al presionar [Alt] y [Tab], como hacía también en Metacity: algo engorroso cuando hay muchas cosas abiertas en un mismo escritorio virtual. Sin embargo, semanas más tarde —mientras escribo esto, de hecho— descubrí el menú de tareas, que lista además todas las ventanas activas en la sesión, y ordenadas por escritorios. Se controla con el teclado y para mi gusto de un modo poco natural, pero cumple su cometido.
Un paginador no sería estrictamente necesario, mas yo encuentro que me hace más agradable la interacción con los escritorios virtuales. Me decanté por Ipager , aunque Netwmpager
se me antoja asimismo una buena opción. Probé algunos paneles —el de Xfce, Bmpanel, Fbpanel— sólo para confirmar que, en efecto, funcionan correctamente.
Varias terminales dispuestas en mosaico, y sobre ellas Xmame como ventana flotante emulando Battle Zone. El reloj que destaca en la esquina es Nixieclock . Obviamente el aire nostálgico de la imagen es deliberado.
Los mosaicos son dinámicos y vienen en dos variedades: división horizontal o vertical de la pantalla. Una o más ventanas ocuparán el área principal, las demás quedarán amontonadas en la de pila. Existe además un modo de ventanas a pantalla completa.
La compatibilidad con EWMH de Wingo proporciona algunas ventajas. Una de ellas es la posibilidad de utilizar sin problemas paneles que también respeten dicho estándar: el mosaico no los tapará, les dejará el hueco requerido en el extremo inferior o superior del escritorio. Y las ventanas temporales —diálogos de seleccionar archivo, confirmar operación, etc— son tratadas como flotantes para no perturbar a las demás.
Una particularidad de Wingo que me desconcertó un poco al principio es que las ventanas flotantes, al contrario que en gestores como Dwm o Xmonad, no se colocan en una capa sobre el mosaico. Es decir, pueden quedar ocultas debajo de él. En tal caso deberán ser recuperadas desde el menú de tareas o el cuadro de diálogo correspondiente.
Sin embargo. a grandes rasgos el manejo de estos mosaicos es el acostumbrado: la gente que haya probado otros gestores de este tipo —Dwm, Awesome, Ratpoison— no va a encontrar ningún concepto nuevo aquí. Uno mueve ventanas entre las zonas principal y de pila, dependiendo de sus necesidades, y las reparte a su antojo entre ambas. Eso sí, las operaciones se realizan con combinaciones de teclas y el ratón apenas tiene uso, lo cual impone cierto aprendizaje inicial.
Más de las que parece al principio. Pueden configurarse atajos de teclado y funciones del ratón, los colores de la interfaz, y opciones relativas al funcionamiento general de Wingo: cantidad de escritorios virtuales, modelo de enfoque y alguna cosa más. Ah, y se permiten ajustes pormenorizados para ventanas concretas: por ejemplo, asignarle a un reloj la condición de «pegajoso» para que aparezca en todos los escritorios, o darle unas dimensiones determinadas.
El modo de trabajo —pila, mosaico horizontal o mosaico vertical— que ofrecerá el gestor por defecto, al iniciar la sesión, admite también cambios.
Los ficheros que especifican todo esto se hallan en ~/.config/wingo. Poseen una sintaxis sencilla, si bien yo necesité algo de tiempo para comprender todos los detalles.
La suficiente, aunque repartida en varios archivos en el directorio principal del código fuente —probablemente [carpeta raíz de Go]/src/github.com/BurntSushi/wingo—. Casi veo más cómodo informarse en la página oficial del proyecto.
Ah, Wingo incluye cortas explicaciones de ayuda sobre sus comandos internos, accesibles para el usuario en cualquier momento. Muy útiles. Pueden mostrarse en un cuadro de diálogo especial para ellas, o utilizando en una terminal wingo-cmd
.
Wingo me ha gustado: bajo su sencillez se esconde una gran versatilidad, y con un poco de ingenio uno puede prepararse una configuración que se adapte a sus pequeñas manías. Claro que por sus requerimientos —ese pequeño obstáculo de instalar Go—, y la necesidad de conocer sus comandos internos, quizás no resulte una opción muy tentadora para la gente más inexperta.
Como Wingo no es un proyecto muy conocido voy a colocar como propina un puñado más de capturas de pantallas, aunque lo esencial está ya visto:
![]() Un mosaico con terminales de texto ámbar ejecutando cosas diversas —abajo y a la derecha, ASCIIQuarium |
![]() Dije que existe un cuadro de ayuda que informa de la función y argumentos de cada comando interno de Wingo. Y aquí está, en primer plano. |
![]() El menú de tareas clasifica además las ventanas según a qué escritorio virtual pertenezcan. No lo gasté mucho, de todas formas. |
![]() Vinterm |
![]() Xtetris 2.6, enterrado en 1996 y que yo encontré por casualidad en algún rincón de Internet. También dos réplicas de Vinterm con texto ámbar. |
![]() Mosaico con el área principal a la izquierda —en ella estoy editando uno de los ficheros de configuración—, y la de pila a la derecha. La ventana enfocada aparece con el borde de color naranja. |
Mis archivos de configuración, si bien no sé hasta qué punto resultarán de interés... Los ajustes definidos aquí obligan a los navegadores que uso de forma habitual —Opera, Seamonkey— a abrirse siempre en un escritorio virtual concreto, llamado «internet». Hacen mi reloj visible en todos los escritorios y le asignan unas medidas y lugar en la pantalla determinados. Por lo demás no se alejan mucho de los ajustes predeterminados del gestor.