Copia descargada del repositorio de código en marzo de 2020; sus cambios más recientes datan de mayo de 2019. Se trata de la versión 0.11.3224, pero esto quizás no resulte muy informativo porque el número no se ha movido desde 2012.
https://subtle.de/projects/subtle/
En el momento de escribir esto el proyecto sigue vivo, aunque con poca actividad: va a cumplirse un año desde la última vez que alguien tocó el código.
Subtle no alcanza la popularidad de Awesome o I3, pero mantiene un modesto público. Prueba de ello es que varias distribuciones de Linux ofrecen paquetes del gestor en sus repositorios —Arch Linux, Debian, Ubuntu, Gentoo—, así como FreeBSD.
Esc. Virt. | Menús | Temas | Flotantes | Títulos | B. de estado | Manejo |
---|---|---|---|---|---|---|
Sí | No | No | Sí | No | Sí | Manual |
Subtle con su aspecto de fábrica, el día en que lo conocí. Hay una barra de estado en el borde superior. Estoy ojeando el archivo de configuración e instalando algún «sublet».
Hoy hablamos de un trabajo creado por Christoph Kappel, con alguna ayuda ocasional. Según comenta la página oficial —traduzco yo, respetando el énfasis del texto original—:
«Subtle es un gestor de ventanas de mosaico, manual, con un enfoque poco común a la hora de componer mosaicos: en lugar de basarse en pautas predefinidas, Subtle divide la pantalla en una cuadrícula con casillas personalizables (llamadas "gravedades"). Para ilustrarlo mejor, la configuración por defecto usa una cuadrícula de 3x3 y asocia cada "gravedad" a una de las teclas del teclado numérico. Con esas teclas las ventanas pueden colocarse directamente en la "gravedad" deseada».
No sé si el párrafo citado resulta muy claro... No temáis, a lo largo del artículo intentaré dar explicaciones mejores.
Lo primero que hay que entender es lo que ya he expuesto en muchos otros textos, y que repito aquí per si de cas. En un gestor de mosaico las ventanas no flotan libremente por el escritorio, o al menos no es ésa la forma principal de manejarlas. Se pretende, en cambio, aprovechar al máximo el espacio de la pantalla haciéndolas encajar en una cuadrícula, de forma que no se superpongan ni —normalmente— queden huecos libres. Aunque en principio no lo parezca, existen muchos métodos diferentes para hacer esto. A grandes rasgos podemos distinguir entre los gestores dinámicos —ordenan las ventanas siguiendo esquemas determinados, de forma semiautomática— y los manuales —dejan toda la labor en manos del usuario, que a cambio suele disponer de total libertad para crear divisiones y subdivisiones en el mosaico—.
Subtle, como ya se ha dicho, cae en el segundo grupo. Sigue sin embargo una estrategia peculiar, muy diferente a la de otros gestores manuales como Ratpoison o Ion; sí, las famosas «gravedades» que menciona el autor. En el archivo de configuración se definen una serie de espacios dentro del escritorio, y después se asocian a combinaciones de teclas. De modo que durante la sesión el usuario va repartiendo sus ventanas entre esos espacios o «gravedades».
Pero va más allá. Pensando en esas aplicaciones que quizás no resulten muy cómodas confinadas en un mosaico —siempre suelo mencionar GIMP, mas Subtle incluye ajustes específicos para él—, permite manejar también ventanas flotantes. Sí, esto lo hacen también muchos otros gestores de mosaico, pero no todos.
Ahora el mosaico ocupa la pantalla completa. En la barra de estado, a la derecha, se ve información sobre diferentes aspectos del sistema: se trata de los famosos «sublets».
¿Más cosas destacables?
sur
que permite mostrar información sobre ellos y descargar e instalar los deseados.subtler
. Indicada para automatizar alguna operación en un script de Bash, por ejemplo.No, esperad... ¡Me dejaba algo importante en el tintero!
Subtle está escrito mayormente en C, pero resulta personalizable y extensible en un lenguaje de programación denominado Ruby . El archivo de configuración, ~/.config/subtle/subtle.rb, está escrito en Ruby. Los famosos sublets están escritos en Ruby. Y los accesorios del gestor —
subtler
y sur
— también.
No debería ser muy complicada, aunque la mayoría de la gente querrá acudir a los repositorios de paquetes de sus respectivos sistemas. Si Subtle está en ellos, un dolor de cabeza menos.
De lo contrario no quedará otro remedio que recurrir al código fuente. La última versión considerada estable —la 0.11.3224 «original»— data de 2012, y ha transcurrido una eternidad desde entonces. Puede obtenerse una copia mucho más moderna de Subtle descargando el código de desarrollo desde su repositorio. Para eso se requiere Mercurial , y puede hacerse tal que así:
$ hg clone http://hg.unexist.dev/subtle
Antes que nada, para procesar este código hacen falta Ruby y algunos componentes que dependen de él —como mínimo, la herramienta de compilación Rake, y Archive-tar-minitar—. Estos pueden instalarse con facilidad mediante Gem, el gestor de paquetes que utiliza Ruby. Ejecútese con permisos de administrador:
#gem install rake
[...] #gem install archive-tar-minitar
Hay más detalles sobre esto en la sección correspondiente de la wiki de Subtle .
Luego, con las dependencias ya instaladas, hay que compilar el código fuente del gestor. Esto, si todo va bien, es muy simple. Desde el directorio base del árbol de código, basta con escribir:
$ rake
Y aunque en teoría es opcional, para instalarlo luego en el sistema accedemos a la cuenta del administrador, y:
# rake install
Y ya sólo quedaría copiar el archivo de configuración de muestra —en el árbol de código fuente, data/subtle.rb— dentro del directorio oculto ~/.config/subtle, para que el gestor resulte usable desde el principio. Y a partir de aquí, a funcionar...
Una semana después ya me siento cómodo con una configuración a mi medida. Nótese que el mosaico no cubre toda la pantalla. Y también el panel inferior, que muestra información meteorológica mediante un «sublet» que escribí yo —más detalles al final del texto—.
Una pantalla vacía, con sólo un panel en el borde superior; en él figura una lista de los escritorios virtuales —tienen nombres: «terms», «www», etc—, y también el título de la ventana activa cuando exista alguna. Puedo abrir terminales pulsando [Windows] y [Return], que aparecen maximizadas hasta que yo las ubique de otro modo... Vamos, en principio nada atípico en un gestor de mosaico.
Pero en el momento en que uno se pone a trajinar con las ventanas descubre que, en efecto, Subtle es peculiar. Hay cierto número de «gravedades», posiciones y medidas predefinidos en el archivo de configuración, y con [Windows] y el teclado numérico uno puede mover una ventana a cualquiera de ellas. Por ejemplo, para colocar a mi editor de textos en la mitad izquierda de la pantalla basta con presionar [Windows] y 4; y sucesivas repeticiones de esta acción permiten elegir entre varios tamaños. Se me antoja un arreglo algo extraño, mas al mismo tiempo cómodo y ágil. En cuanto me acostumbre creo que me va a gustar.
Vaya, los mosaicos no tienen por qué cubrir todo el escritorio, pueden dejar espacios libres. Y compruebo, ligeramente sorprendido, que en Subtle es posible que las ventanas se tapen unas a otras. Pensándolo bien, ambas cosas se derivan de forma natural de su modo de funcionar; sólo que yo no me lo esperaba, quizás por tratarse de rasgos poco habituales en los gestores de mosaico.
Paso mis primeras tardes con dos, tres o cuatro ventanas repartiéndose el área del monitor. ¡De verdad, es muy fácil! Tener asociadas las diferentes «gravedades» al teclado numérico se me antoja todo un acierto. Porque así no hay que memorizar nada, el lugar de cada tecla en él concuerda aproximadamente con la ubicación a la que se enviará la ventana. Controlar el orden de la sesión resulta pues sencillo y natural.
Bueno, no estamos hablando de Stumpwm y sus diez millones de atajos de teclado: para ser un gestor de mosaico Subtle resulta bastante accesible. Uno puede habituarse a su funcionamiento en un par de tardes, al menos en un ordenador de escritorio; en los portátiles que carezcan de teclado numérico, el manejo de las ventanas imagino que resultará menos intuitivo. Vamos, no hay muchas combinaciones de teclas que aprender.
Nueve ventanas en un mismo mosaico. Aunque casi nadie necesitaría hacer esto, se trata más de una anécdota que de un caso de uso real.
Al principio temí que este invento de las posiciones predefinidas para las ventanas —las «gravedades»— iba a ser demasiado inflexible. Y empleando la configuración por defecto, sí, quizás: mantener más de cuatro ventanas abiertas en un mismo escritorio virtual se me antojaba incómodo. Sin embargo, mi experiencia mejoró mucho cuando abrí mi archivo subtle.rb y modifiqué un poco las «gravedades», para adaptarlas más a mis costumbres. Realmente Subtle da mucha libertad en esta faceta, le permite al usuario ordenar sus aplicaciones en una gran variedad de mosaicos; sólo hace falta un mínimo de ingenio. De todas formas, en mi experiencia las distribuciones más útiles constan de tres o cuatro ventanas, o cinco para alguna tarea muy concreta.
Ya he dicho que los atajos de teclado son —relativamente— pocos y fáciles de dominar. Pero además Subtle también le da cierta relevancia al ratón. Es posible mover ventanas presionando [Windows] y arrastrando con el botón izquierdo, o cambiar sus dimensiones con [Windows] y el botón derecho; en cualquiera de los dos casos quedan libres del mosaico y se convierten en flotantes.
Hablando de ventanas flotantes: el programa que normalmente requiere ser controlado así es GIMP , al menos en sus versiones antiguas. Porque divide su interfaz en varias partes independientes, que encima necesitan tamaños determinados para garantizar un trabajo cómodo. En gestores de mosaico que no implementen ventanas flotantes, GIMP puede resultar tan agradable como una visita al dentista. Los autores de Subtle también repararon en ello, y por eso en la configuración por defecto se incluye un escritorio virtual preparado especialmente para esta aplicación: reserva la mayor parte de la pantalla para la edición de imágenes, y deja una estrecha franja vertical a ambos lados para sus cajas de herramientas. El arreglo se podría mejorar, pero es lo bastante acertado para resultar usable.
Los escritorios virtuales de Subtle no funcionan exactamente como los de otros gestores similares. Veamos, para empezar las ventanas se clasifican por etiquetas definidas en el fichero subtle.rb; por ejemplo, alguien querría asignar la etiqueta «musica» a reproductores como Audacious o XMMS. Y cada escritorio virtual mostrará las ventanas que contengan etiquetas determinadas. Y sólo ésas, la correspondencia entre etiquetas y escritorios se obedece de forma estricta. La idea que hay detrás de esto es la de dedicar un escritorio virtual para cada tarea —operaciones con terminales, leer en Internet, hojas de cálculo, etc—. Pero hace al gestor un tanto rígido. Porque, ¿quieres mover una ventana de un escritorio virtual a otro? Pues debes añadirle la etiqueta correspondiente a ese escritorio y eliminar la antigua. Y Subtle no ofrece ningún elemento de su interfaz para hacer esto: hay que invocar para ello a subtler
desde una línea de comandos, un método más bien engorroso. Resulta posible, por lo demás, definir ventanas pegajosas , o hacer que se muestren en varios escritorios a la vez sumando varias etiquetas.
He mencionado antes los paneles; y los «sublets», los accesorios informativos que pueden aparecer en ellos. Uno puede construirse barras de estado muy completas así: fecha y hora, indicadores sobre diversos aspectos del sistema —carga de la CPU, memoria ocupada, etc—, red wifi activa, y muchas cosas más. La verdad, a mí me gustan esta clase de inventos. Subtle resulta especialmente versátil aquí porque a falta de un panel incluye dos, porque los «sublets» suman un repertorio muy amplio, y porque el usuario tiene total libertad de ordenar a su gusto toda la información mostrada —véase la sección adecuada del fichero ~/.config/subtle/subtle.rb—. En la instalación básica del gestor no se adjunta ningún «sublet», pero para descargarlos de Internet e instalarlos basta una simple orden en una terminal. Pongamos, como muestra, un reloj con calendario:
$ sur install clock_with_calendar
En algún caso tal vez no sea tan fácil porque se necesite algún paquete de Ruby adicional, que deberá instalarse con Gem.
Por otra parte, para obtener la lista de «sublets» disponibles en el repositorio del gestor y leerla cómodamente en una terminal:
$ sur list -r | less -r
Y la configuración... El fichero dedicado a ello, ~/.config/subtle/subtle.rb, está escrito en Ruby. Para una persona sin conocimientos previos resultará bastante accesible por su simplicidad y por hallarse bien comentado, pero sigue tratándose de un lenguaje de programación con una sintaxis que hay comprender. No temáis, tampoco se trata de Stumpwm, CLFSWM o algún otro monstruo escrito en Lisp.
Son numerosas: número de paneles —uno, dos o ninguno— y qué información mostrarán, modelo de enfoque, atajos de teclado —incluyendo secuencias—, funciones del ratón, tamaño y lugares de los diferentes espacios o «gravedades» que ocuparán las ventanas... Y en cuestiones estéticas, los colores de la interfaz y el tipo de letra empleado.
Con unos conocimientos básicos de programación, además, resulta bastante sencillo ampliar la funcionalidad del gestor; sobre todo escribir nuevos accesorios para los paneles.
Subtle sólo trae unas cuantas páginas de manual, dedicadas al gestor en sí y a sus herramientas auxiliares —subtler
y sur
—; explican sólo lo más imprescindible. Así que tal vez sea necesario acudir a la página del proyecto para ir aclarando las dudas que se presenten.
subtler
en una línea de comandos o modificar el archivo subtle.rb y reiniciar el gestor.En general me ha gustado. Creo que Subtle está entre los gestores de mosaico más amigables he probado aquí: no hay muchas combinaciones de teclas que memorizar, y el concepto de las «gravedades» es práctico y fácil de asimilar. Y es más versátil de lo que parece en un primer momento, al contrario que otros gestores de su clase puede adaptarse bien a gran variedad de usos diferentes.
Vaya, lo recomiendo. Aunque en mi sistema no haya sido todo lo estable que yo hubiera querido. Y aunque el empleo de Ruby en la configuración suponga una pequeña complicación adicional para los usuarios inexpertos.
¡Más imágenes de Subtle en acción!
![]() Decidí que podría sacarme de una vez el graduado escolar, y bueno, este trabajo a medio completar sobre El guardián entre el centeno formaba parte de aquello. Para presentar textos largos me encanta LaTeX |
![]() GIMP no suele adaptarse bien a los gestores de mosaico, pero Subtle le hace sitio y cuenta con ajustes concebidos expresamente para él. |
![]() Esta imagen no muestra nada nuevo sobre el gestor, ¡pero hay un gatito! ¡Miau! |
![]() Marlon Brando en Salvaje, una entretenida apología del gamberrismo juvenil estrenada en 1954. |
![]() Este diálogo sirve para administrar las etiquetas de las ventanas, y controlar así en qué escritorios virtuales aparecen. No forma parte de Subtle; me llena de orgullo y satisfacción anunciar que fue un invento mío. |
![]() Subtle, allá por 2010; un mosaico con tres terminales. (La captura no es mía: fuente |
He pasado más de un mes con Subtle, y eso incluye casi treinta días —y los que quedan aún— encerrado en casa por orden gubernamental a causa del coronavirus . Así que he tenido tiempo para trastear y conocer un poco más a fondo este gestor de ventanas —y ya de paso para lecturas diversas y obras de albañilería—. Dejo pues los resultados de mis experimentos:
subtler -c xterm -T browser
» para mover una terminal al escritorio de los navegadores. ¿No sería más cómodo un pequeño diálogo gráfico que permitiera seleccionar entre las etiquetas existentes con el ratón? Pues bien, tras un buen puñado de horas peleando con Tcl/Tk