4.15, publicada el 10 de marzo de 2018. Mientras escribo esto ha aparecido otra, la 4.16.
https://i3wm.org
https://github.com/i3 (herramientas relacionadas)
Se trata de un gestor de ventanas relativamente reciente, sus primeras versiones datan de 2009. Cuenta con una activa comunidad de usuarios a su alrededor. Obtenerlo no supone mayor dificultad, figura en los repositorios de paquetes de muchas distribuciones de Linux —Debian, etc— y clones de Unix más exóticos —NetBSD, etc—.
Esc. Virt. | Menús | Temas | Flotantes | Títulos | B. de estado | Manejo |
---|---|---|---|---|---|---|
Sí | No | No | Sí | Sí | Sí | Híbrido |
I3 en acción, un día cualquiera. Tres terminales abiertas: a la izquierda, leyendo en Internet con el navegador Elinks , y a la derecha instalando un programa en el sistema.
I3 es un gestor de mosaico. Lo he explicado muchas veces, pero lo repetiré... En uno de estos gestores el usuario no trabaja con ventanas flotantes, que puede mover libremente por el escritorio; éstas, en cambio, se reparten el área de la pantalla componiendo una cuadrícula, de modo que no quede espacio desaprovechado entre ellas ni se tapen unas a otras. Éste es al menos el plan básico, luego existen muchos modos de llevarlo a la práctica.
Creado por Michael Stapelberg, con ayuda de un buen número de colaboradores ocasionales: el fichero RELEASE-NOTES-4.15 nombra a unas treinta personas. Comenzó a caminar inspirado por otro proyecto más antiguo, Wmii, del que hereda algunos aspectos de su funcionamiento más elemental, si bien actualmente ambos han divergido mucho.
Podríamos enumerar los rasgos básicos de I3, que resumiendo bastante vienen a ser los siguientes:
Además en esta ocasión no hablamos de un enfoque minimalista: I3 intenta ser hospitalario y adaptarse a un amplio abanico de necesidades. Las ventanas se dibujan con un título que las identifica, y se incluyen una barra de estado —i3bar
, ejecutable de forma independiente—, escritorios virtuales, diferentes modelos de enfoque, opciones para el manejo de ventanas flotantes... Y otras características más excepcionales: existe, por ejemplo, una línea de comandos interactiva —i3-input
—, aunque también es posible interactuar con el gestor de un modo más automático —scripts de Bash o cualquier otro intérprete— mediante otra herramienta llamada i3-msg
.
Mencionaré también algunos accesorios que no se incluyen con I3 y se desarrollan por separado, pero están concebidos principalmente para él. I3status sería probablemente el más útil, puesto que sirve para recopilar información sobre el estado del sistema y mostrarla en la barra de estado, y ya de paso listar los escritorios virtuales activos. Por otra parte, I3lock
resulta adecuado para bloquear la pantalla cuando el ordenador no esté en uso.
La configuración del gestor se guarda, como no podía ser de otro modo, en un archivo de texto: en principio ~/.config/i3/config. De sintaxis sencilla, aunque puede complicarse y extenderse considerablemente si el usuario se prepara ajustes muy elaborados.
Un inesperado intento de ayudar al usuario novato: el diálogo de configuración que le recibe en la sesión inicial. Permite elegir una tecla modificadora —[Alt] o [Windows]— para los comandos del teclado.
I3 es bastante más moderno que mi Vector Linux de todos los días. Con el tiempo he ido actualizando a mano muchos, muchos componentes de ese sistema —GCC, GTK, la biblioteca básica de C, etc—; pero en esta ocasión hubiese tenido que enfangarme con Cairo y el X Window System, y..., bueno, ya no estoy de humor para meterme en esos berenjenales. Así que decidí que resultaría más fácil instalar otro Linux más actual; y, aprovechando que en mi disco duro quedaba una diminuta partición libre de 4 GB, metí en ella la edición 7.2 de Knoppix. Y después, trasteando un poco, logré —¡por fin!— compilar y poner en marcha mi copia de I3.
Mis notas dicen tal que así:
«Instalado en Knoppix 7.2, aunque ha habido que actualizar primero medio sistema. Snif, snif... Un compilador funcional, XCB y algunas bibliotecas relacionadas, Cairo, Pango, un intérprete de JSON, etc. La instalación básica de Knoppix no sirve en verdad para mucho, vaya. Y Apt... Apt... Ugh.
»Así que I3 requiere un sistema relativamente reciente. Pero sólo relativamente: al final, mi instalación podría valer por un Linux de 2013 o 2014. Parece por lo demás un gestor de ventanas bastante sofisticado».
(Mis frustraciones con Apt vinieron por lanzarme a improvisar con él sin entenderlo. Respecto a Knoppix, una vez conseguí desactivar algún automatismo molesto y hacer que se comporte como Slackware, quedé satisfecho).
Bien, I3 sale a recibirte con un diálogo de primera configuración
, que entre otras cosas permite escoger en qué tecla modificadora —[Alt] o [Windows]— se basarán los atajos de teclado. Me parece un buen detalle, y demuestra que los autores se preocuparon un poco por hacerle la vida fácil al usuario recién llegado.
La barra de estado no muestra, sin embargo, nada interesante. Sólo el siguiente mensaje de error:
Error: status_command not found or is missing a library dependency (error 127)
Tras indagar un poco encontré el problema: la configuración por defecto se apoya en una utilidad externa, I3status, que recoge datos sobre el sistema. La compilo e instalo a su vez, lo cual me plantea algún pequeño obstáculo —ejem, no utilizo PulseAudio; Padre, aparta de mí este cáliz— que esquivo con un apaño rápido y feo en el código... Y el resultado es una barra de estado que, ahora sí, informa de cosas: espacio libre en el disco duro, carga de trabajo de la CPU, mi dirección IP, fecha y hora, escritorios virtuales activos... ¡Y todo esto además con colorines! Está muy bien, me gusta.
Otro mosaico con una distribución diferente: I3 brinda mucha libertad en esta faceta. Todo lo que empleo aquí son terminales, que se adaptan muy bien a esta clase de gestores.
Ya se ha explicado que en un gestor de mosaico las ventanas se reparten toda el área de la pantalla, sin taparse unas a otras ni dejar espacios vacíos. Alguien sin experiencia previa con ellos tal vez lo considere una idea extraña y poco práctica; aunque yo, tras haber probado ya una docena de ellos, debo decir que tienen sus virtudes. Sobre todo para las personas que trabajan mayormente con texto: programadores que viven felices abriendo terminales, por ejemplo, o alguien que pase casi todo su tiempo de ordenador leyendo. El escritorio se aprovecha al máximo, y uno puede mantener todas las aplicaciones que requieran su atención visibles al mismo tiempo, sin necesidad de maniobras complicadas con el ratón.
En I3, de hecho, éste debe conformarse con un papel muy secundario: resulta posible ajustar con él los tamaños de las celdas del mosaico, y poco más. El control de las ventanas se realiza pues mediante combinaciones de teclas, un método ágil y directo que a cambio impone cierto aprendizaje, porque..., hay que memorizar estos atajos de teclado, claro, al menos los cinco o seis más básicos. Y eso implica leer la documentación que prepararon los autores.
Ésta por suerte es buena. Dentro del árbol del código fuente se encuentra la Guía del Usuario de I3, un texto extenso que explica con detalle cómo funciona, cómo se maneja y cómo se configura el gestor..., y además de un modo bastante accesible, sin convertirse en un ladrillo. Todo programa de ordenador debería contar con un buen manual —una faceta en la que el software libre a menudo flojea—, y en el caso que nos ocupa ahora me satisface anunciar que dicho requisito se cumple.
Porque el funcionamiento de I3 al principio no resulta muy obvio. Y no, aunque quizás lo parezca no hablamos de un gestor dinámico al estilo de Dwm, puesto que otorga mayor libertad al usuario y contempla un control menos automático y una geometría sin restricciones para los mosaicos. No hay pues pautas predefinidas, una zona principal y otra de pila bien diferenciadas: cada persona se organiza como mejor considere. De todas formas yo tampoco lo catalogaría entre los gestores manuales: I3 no obliga a un manejo tan minucioso de las ventanas como, pongamos, Ratpoison, y desde luego necesita menos pulsaciones de teclas. Viene a situarse pues en un punto medio entre ambos extremos.
Veamos, a grandes rasgos la pantalla se divide en «contenedores». Sólo existe uno al comenzar la sesión, que abarcará el escritorio en su totalidad; mas el usuario puede ir creando otros a medida que se le presente la necesidad. Como su nombre indica, en el espacio delimitado por ellos habrá ventanas u otros contenedores anidados. Y cada contenedor organizará las ventanas alojadas en él atendiendo a uno de los siguientes métodos —es posible cambiar instantáneamente de uno a otro con los atajos de teclado apropiados—:
La demo de las ruedas dentadas —Glxgears— está ahí sólo para mostrar algo en la captura que no sea más texto. El resto de ventanas se hallan distribuidas a su alrededor. Ah, ¡ya he configurado mi barra de estado!
Cierto, todo esto parece complicado y confuso... ¡Pero I3 realmente no lo es! Uno domina las combinaciones de teclas imprescindibles y luego, si lo desea, tiene la opción de ir explorando con tranquilidad lo demás. En comparación con otros gestores de mosaico se trata de un proceso gradual y relativamente suave: nada que ver con Ratpoison o Xmonad —bueno, en este último caso la mayor dificultad radicaría en la configuración—.
Sin embargo, si uno se lo propone hay mucho que aprender, porque I3 esconde todo un mundo de posibilidades bajo la superficie. Operaciones con grupos de ventanas —jamás he usado esto—, la ya mencionada línea de comandos, ventanas «pegajosas» —visibles en todos los escritorios virtuales—... ¿Características que me hayan llamado la atención? Bien, se puede etiquetar ventanas, lo cual ayuda a identificarlas cuando existen muchas similares abiertas. Y luego encontramos el llamado scratchpad
, un espacio de trabajo especial indicado para alojar ventanas que requieren sólo un uso esporádico, pero que conviene mantener al alcance inmediato del usuario: un reproductor de música, por citar un caso.
La barra de estado resulta opcional, y aunque forma parte de la instalación básica de I3 se trata de un archivo ejecutable independiente, de nombre i3bar. Muy versátil. Lo más socorrido es probablemente recurrir a I3status para mostrar estadísticas del sistema en ella, pero a alguien imaginativo se le ocurrirán infinidad de alternativas. Cabe la posibilidad de recoger datos a partir de otros programas o scripts, o de descartar I3bar en favor de accesorios de terceros como Dzen o Xmobar —en principio no lo recomiendo porque así se pierden los controles relativos a los escritorios virtuales—. Incluso se permite emplear más de una réplica de I3bar para disponer de varias barras de estado con configuraciones diferentes.
Comentaré que I3 también maneja —de una forma limitada, eso sí— ventanas flotantes. El objetivo de esto es poder usar con comodidad aplicaciones cuyas interfaces no se adapten bien a las celdas de un mosaico. Los editores de imágenes, por ejemplo, suelen resultar problemáticos en este aspecto, y GIMP en concreto una especie de tortura; muchos videojuegos tampoco agradecen aparecer en recuadros de dimensiones arbitrarias. Es asimismo habitual dejar las ventanas temporales —diálogos de seleccionar archivos y similares, que sólo van a existir unos segundos— fuera del mosaico y tratarlas como flotantes: la novedad aquí es que I3 las reconoce con gran efectividad, sospecho que porque cuenta con una buena compatibilidad con el estándar EWMH. Sea como sea, esto le evita al usuario ratos tediosos añadiendo reglas para ventanas díscolas en el fichero ~/.config/i3/config.
¡Muy numerosas! Y prueba de ello es que un archivo de configuración elaborado puede engordar bastante y pesar unos sustanciales 10 KB.
Colores, fuentes que se emplearán en títulos y otros textos, barras de estado y sus contenidos, modelo de enfoque, número de escritorios virtuales —y sus nombres—, ajustes relativos a programas o ventanas específicos... I3 resulta muy flexible y trae opciones para todos los gustos. Más de las que yo he necesitado hasta ahora, vaya. Y la guinda del pastel es que la Guía del Usuario —por su claridad— y la sintaxis del fichero ~/.config/i3/config —por su relativa simplicidad— facilitan considerablemente que uno adapte I3 a sus manías.
Hay páginas de manual para I3 y sus accesorios asociados —I3bar, I3-nagbar, I3-msg, etc—. Pero el texto imprescindible para todo recién llegado es la Guía del Usuario, que explica con detalle el funcionamiento y la configuración del gestor.
Ventana flotante por encima del mosaico, con Reagan y Gorbi discutiendo sus movidas y arreglando el mundo.
scratchpadme parece una característica interesante.
He pasado un mes con este gestor de ventanas. Y me gusta, vaya, me gusta... Tanto es así que a partir de ahora creo que lo consideraré mi favorito entre los de mosaico. Relativamente hospitalario con el recién llegado. Bien documentado. Y muy versátil, pero sin caer por ello en una complejidad difícil de abarcar. Oh, y además sigue en desarrollo y cuenta a su alrededor con una comunidad bastante activa.
En definitiva, muy recomendable.
Un gestor de ventanas no tiene normalmente mucho que enseñar, y uno de mosaico aún menos... Pero aquí van unas pocas capturas más:
![]() Colores diferentes para la interfaz. Nótese que cuando varias ventanas están asignadas a la misma celda —la partida a Sim City 2000—, quedarán accesibles mediante pestañas. |
![]() Uno puede ir dividiendo el mosaico a su aire, con total libertad, como prueban esos cuatro cuadros que muestran demos de Xscreensaver |
![]() La terminal con el reproductor de música —Mp3blaster |
![]() Tomé esta captura para mostrar, una vez más, esa posibilidad de crear celdas de forma arbitraria. Claro que un mosaico como éste no resultaría muy práctico. |
![]() Arriba, a la derecha: ventanas apiladas al estilo de Wmii, una alternativa a las pestañas cuando existen varias compartiendo la misma celda. Ah, y una segunda barra de información en el borde superior del escritorio. |
![]() Un escritorio casi vacío, con sólo un par de ventanas flotantes. Arriba aparece Dmenu |