Guía de sowm, un gestor de ventanas minimalista: introducción, instalación y uso

sowm - st (simple terminal) - pfetch - feh

—1— PRESENTACIÓN DE sowm

Además de los populares entornos de escritorio (Gnome, KDE Plasma, Xfce, Mate, etc.), en el mundo GNU/Linux existe la posibilidad de utilizar gestores de ventanas de manera independiente. Existen, literalmente, una miriada, y suelen ser bastante ligeros (lo cual les convierte generalmente en buenas alternativas frente al uso de entornos de escritorio completos si lo que se busca es la frugalidad en el consumo de recursos). Ahora bien, seguramente pocos son tan ligeros como sowm, un gestor de ventanas muy minimalista, escrito con alrededor de 220 líneas de código. Su autor es Dylan Araps, un talentoso hacker -en el sentido “clásico” del término, esto es, “experto en computadoras que usa su conocimiento técnico para alcanzar un objetivo determinado, o superar cierto obstáculo, dentro de un sistema computerizado” (Wikipedia)-. A él le debemos aplicaciones tan conocidas como neofetch, pfetch o pywal, y es también el creador de la distribución indepediente Kiss. Si te pasas por la página de dicha distribución entenderás pronto qué tipo de ideario es el que guía la labor de Araps, quien apuesta por el minimalismo KISS (keep it simple stupid, “mantenlo estúpidamente simple”), y su gestor de ventanas es un buen ejemplo de esto. Así, no esperéis que sowm permita demasiados fuegos artificiales. Básicamente y por defecto es capaz de permitir lanzar unas pocas aplicaciones mediante atajos de teclado, mover y cambiar el tamaño de las ventanas, cambiar el foco de las mismas, cerrarlas, cambiar de escritorio virtual y poco más. Todo ello combinando teclado y ratón o touchpad, y hay que tener en cuenta que las ventanas no tienen decoración, con lo que deberemos aprender, por ejemplo, el modo para maximizar, cambiar de tamaño y cerrar propio de este gestor. Eso sí, permite los escritorios virtuales, algo siempre a agradecer. Por defecto no hay menús, ni barra de tareas, ni iconos en el escritorio; cualquier cosa que queramos implementar, como poner un fondo de pantalla o incluir un lanzador de aplicaciones, deberemos idearlo e integrarlo nosotros mismos. Otra cosa a tener en cuenta es que, a diferencia de otros conocidos gestores de ventanas como Openbox, Fluxbox, icewm, i3, etc., no permite que hagamos modificaciones en un archivo de configuración con posterioridad a la instalación. Al modo de las aplicaciones de suckless, si queremos modificar algún aspecto del gestor de ventanas, como cambiar los atajos de teclado, deberemos hacerlo antes de compilarlo. Si queremos realizar algún cambio tras haberlo instalado, deberemos volver al archivo de configuración adecuado, alterarlo a demanda y volver a compilar e instalar.

Vemos entonces que sowm está en consonancia, no sólo con el minimalismo tras la “filosofía” KISS, sino con otro aspecto tradicional de los sistemas UNIX-like (como los GNU/Linux y *BSD): una aplicación debe hacer una sola cosa, y hacerla bien. Así pues, sowm nos permite iniciar una sesión gráfica en la que podemos tener diferentes aplicaciones lanzadas en ventanas, las cuales podremos manipular de forma básica y mover a diferentes escritorios virtuales. También dispondremos de atajos de teclado para lanzar aplicaciones, cambiar el volumen o el brillo, y/o aquellos que configuremos por nuestra cuenta. Y esto es prácticamente todo lo que hace; para cualquier otra cosa (como poner un fondo de pantalla o incluir un lanzador de aplicaciones o una barra de herramientas/tareas o un dock, etc.), deberemos recurrir a aplicaciones externas.

—2— INSTALACIÓN

Si nos decidimos a probar este gestor de ventanas, el modo recomendado, por lo que ya se ha mencionado, es hacerlo instalándolo directamente desde fuentes. Es posible, aun así, encontrarlo en los repositorios de alguna distribución; en Void Linux, cuando menos, está presente en forma de binario en sus repositorios oficiales. Podríamos, pues, instalar directamente dicho binario y ahorrarnos el compilarlo por nosotros/as mismos/as. Esto podría ser un modo de probarlo de forma rápida, y, de hecho, si lo haces así, puedes saltarte la siguiente sección y pasar directamente a la de uso. Ahora bien, hay que tener en cuenta que si instalamos el binario, por lo ya dicho, no podremos realizar ningún cambio en su archivo de configuración, con lo que, por ejemplo, los atajos de teclado que están preconfigurados “de serie” serán inamovibles. Por otro lado, existen unos pocos parches disponibles que añaden algunas modificaciones, como bordes redondeados o decoración de ventanas, y estos tampoco serán accesibles.

Así pues, lo primero será asegurarnos de que tenemos instalados los paquetes necesarios para realizar la compilación e instalación en condiciones. Dependiendo de la distribución, lo normal es encontrar algún metapaquete que contiene las utilidades necesarias para compilar desde fuentes de forma general: build-essentials en sistemas Debian/Ubuntu, base-devel en Arch Linux o Void Linux, etc. Infórmate de cuál es el propio de tu distribución e instálalo. Cuando menos, make y gcc debieran estar presentes, patch si vas a aplicar parches, git si quieres utilizar ese método, y probablemente otros que el metapaquete debería cubrir (en caso de que fallara la instalación por falta de dependencias, el output de la línea de comandos debería darnos la pista de qué nos falta). Existen, por lo demás, otras alternativas para compilar, que dejamos a cuenta del usuario/a. Como dependencia propia de sowm, deberemos también instalar un paquete que nos entregue xlib (como libX11-devel). Con esto, ya deberíamos ser capaces de instalar sowm.

El siguiente paso es descargar los archivos para instalarlo. Para ello, acudimos al GitHub del autor. Hay al menos dos métodos para hacernos con ellos: descargar directamente el archivo comprimido que los contiene, o clonar el repositorio de manera local. Si utilizamos el segundo método, tendremos la ventaja de que, por ejemplo, podremos hacer git pull para comprobar la existencia de actualizaciones, o bien aplicar parches de manera automática. Si optamos por el primero, estos son los pasos:

Descargamos el archivo zip de la página del autor. Puede resultar conveniente crear un directorio donde vayamos a realizar la compilación y descargarlo ahí, por ejemplo, desde nuestro /home/<usuario>:

$ mkdir builds

Con lo que lo descargaremos en nuestro directorio ~/builds. Lo descomprimimos, para lo cual podemos utilizar tanto alguna aplicación con GUI que tengamos instalada, por ejemplo Xarchiver, File Roller, etc., como la línea de comandos. Como mínimo necesitamos tener instalado el paquete unzip. Así:

$ cd builds ## Entramos en el directorio donde hemos realizado la descarga.

$ ls ## Comprobamos que el zip se haya descargado, y su nombre.

$ unzip sowm-master.zip ## Descomprimimos el archivo .zip. Comprueba que el nombre del .zip coincida.

$ ls ## Comprobamos que se ha creado un nuevo directorio con los archivos que acabamos de extraer.

$ rm sowm-master.zip ## Si se ha extraido correctamente, ya podemos eliminar el archivo comprimido.

$ cd sowm-master ## Entramos dentro del directorio donde están los archivos para compilar sowm.

$ ls ## Listamos los archivos que contiene.

Si queremos usar el método git (recuerda que el paquete git debe estar instalado) para la descarga, tan solo tenemos que clonar el repositorio del autor dentro del directorio que hemos creado:

$ git clone https://github.com/dylanaraps/sowm.git

Y ya no será necesario descomprimir ningún archivo. Repite los pasos anteriores que correspondan, teniendo eso en cuenta.

Antes de continuar, resultaría conveniente leer atentamente el archivo README.md:

$ cat README.md

Aquí tenemos instrucciones para compilar, los atajos de teclado por defecto, etc. Está en inglés, con lo que, si no dominas el idioma, quizá podrías probar a cortar y pegar el texto en un traductor online. De todos modos, en su mayoría quedará explicado en los pasos siguientes.

El archivo que debemos editar si queremos alterar algún aspecto de lo que una vez compilado será el comportamiento de nuestro gestor de ventanas, es config.def.h. Esto es muy importante porque, por ejemplo, por defecto tiene definido un atajo de teclado para abrir el emulador de terminal st. Si queremos que, en cambio, nos abra otro programa similar que tengamos instalado (por ejemplo, urxvt), deberemos cambiar “st” por lo que corresponda. En este ejemplo, abrimos config.def.h con un editor de texto y modificamos la línea:

const char* term[] = {"st", 0};

y sustituimos st por la orden que corresponda a nuestra aplicación.
Una vez revisado el archivo y hechos los cambios que correspondan, todavía podemos añadir algún parche. Revisa los disponibles en el repositorio de GitHub, descarga los que necesites en el directorio <ruta>/sowm-master y aplícalos con patch, por ejemplo:

$ patch --merge -i <nombre del parche>

Si has utilizado el método git, puedes aplicar un solo parche con:

$ git apply patches <nombre del parche>

Si son más de uno, debes aplicarlos manualmente de la forma anteriormente descrita.

Y ya puedes proceder a compilar e instalar:

$ make ## Esta orden no requiere permisos de superusuario, y es la que nos generará el archivo binario.

# make install ## Opcional, esta orden moverá el binario a nuestro $PATH de ejecutables, con lo que estará disponible para ser ejecutado al inicio. Esta orden sí requiere que lo hagamos con permisos de superusuario, por ejemplo sudo o cualquier otra implementación que utilicemos, como doas.

Ahora vamos a preparar el inicio para que arranque la sesión gráfica con sowm. Si utilizas gdm (el gestor de pantalla de Gnome), habrás visto que en el archivo README.md hay instrucciones para crear un archivo .desktop para que dicho gestor reconozca a sowm entre las opciones de inicio de sesión. Si no utilizas un gestor de sesiones, que es lo que el propio Araps recomienda para sowm en dicho archivo, tendrás que modificar tu archivo .xinitrc añadiendo la siguiente línea al final:

exec sowm

Antes de esta línea puedes situar órdenes para que la sesión se inicie con aplicaciones adicionales. Por ejemplo, si tienes instalado feh y quieres utilizarlo para que imprima un fondo de pantalla, puedes añadir (siempre antes de exec sowm):

~/.fehbg &

Ahora toca salir de la sesión gráfica, en caso de que la hubieras iniciado y, desde tty, ya puedes arrancar sowm con la orden:

$ startx

—3— GUÍA DE USO

Al iniciar sowm, no veremos gran cosa. Si no hemos hecho uso de un gestor de fondos de pantalla para que se ejecute al inicio, tan solo una pantalla en negro y el cursor del ratón, que podemos probar a mover. Como hemos dicho, por defecto hay un atajo de teclado para lanzar un emulador de terminal, que es st o, si hemos modificado correctamente la entrada correspondiente, el que hayamos definido. En la guía de atajos de teclado del archivo README.md veremos que dicho atajo es ‘MOD4 + Return’, que corresponde a la tecla ‘Super’ (suele ser la que tiene, en muchos equipos, el logo de Windows) y ‘Enter’. Al pulsarlas (primero ‘Super’ y, sin soltarla, ‘Enter’), veremos cómo se abre una ventana en el centro de nuestra pantalla con la aplicación definida en el atajo. Si las volvemos a pulsar, lanzará una nueva instancia, pero ojo, exactamente en la misma posición y con las mismas dimensiones, con lo que quedarán superpuestas y una cubriendo a la otra. Así pues, conviene desplazar las ventanas a posiciones distintas para poder tener ambas a la vista. El desplazamiento lo realizaremos manteniendo pulsada la tecla ‘Super’ y pinchando la ventana con el botón izquierdo del ratón. Al desplazar el ratón, desplazaremos con él a la ventana. Notaremos que, al entrar con el puntero del ratón dentro de una ventana, llevaremos el foco a la misma.

Para redimensionar una ventana, pulsaremos nuevamente la tecla ‘Super’ pero, esta vez, el botón derecho del ratón. Moviendo el puntero redimensionaremos la ventana. Si la queremos poner directamente a pantalla completa, pulsaremos ‘Super’ + ‘f’ (por “full“. Recuerda que el puntero debe estar sobre la ventana para que no pierda el foco). Si la queremos centrar, ‘Super’ + ‘c’ (“center“) y, para cerrarla, ‘Super’ + ‘q’ (“quit“). Para rotar entre ventanas (y así, por ejemplo, llevar de nuevo el foco a una ventana que haya quedado cubierta por otra), podemos usar la combinación ‘Alt’ + ‘Tab’ (la tecla del tabulador).

Como ya habíamos dicho, sowm permite usar algo parecido a escritorios virtuales. Para cambiar de escritorio, pulsaremos ‘Super’ más un número comprendido entre 1 y 9, que es la totalidad de escritorios a nuestra disposición. Si queremos mover una ventana a un escritorio distinto, tras enfocarla pulsaremos alternativamente, y sin soltar las teclas hasta después de pulsada la tercera, ‘Super’ + ‘Shift’ (las teclas con una flecha hacia arriba que se usan para poner mayúsculas) + el número del escritorio, de nuevo, entre 1 y 9.

El uso de escritorios virtuales depende mucho de las preferencias a nivel de flujo de trabajo de cada cual, pero aquí nos permitiremos dar algunas sugerencias. Por ejemplo, podemos utilizar el último escritorio virtual (=9) para abrir aplicaciones que en principio vayan a estar en segundo plano durante la sesión (por ejemplo, un reproductor de audio que vaya a reproducir música), para que no interfieran en los espacios donde estaremos trabajando, pero teniéndolas bien localizadas. Así, reservaremos los primeros espacios de trabajo, según la cantidad de aplicaciones que vayamos a tener en marcha, para las ventanas que vayamos a utilizar profusamente durante la sesión. Un esquema puede ser, por ejemplo, usar el primer espacio de trabajo para lanzar ventanas de emulador de terminal, el segundo para alguna aplicación que vaya a estar a pantalla completa (por ejemplo, un navegador web como Firefox), etc. Ahora bien, como decía, esto depende de cada cual y seguro que se encontrarán los modos de uso que resulten más cómodos y eficientes.

Dado que sowm, como vemos, viene por defecto bastante desnudo, probablemente necesitaremos añadir algunas herramientas adicionales, y aquí tan solo dejaremos caer algunas posibles opciones.

Ya en los atajos de teclado predefinidos nos sugieren indirectamente que utilicemos un lanzador de aplicaciones. Aunque siempre se puede recurrir a la CLI para esto, aplicaciones como dmenu (la predefinida por defecto) o rofi nos facilitarán el lanzar las aplicaciones de un modo rápido y sencillo. Para poner un fondo de escritorio hemos sugerido más arriba feh, ya que hemos comprobado que funciona correctamente, pero nada nos impide probar alternativas como hsetroot, Nitrogen, Variety, etc. Para monitorizar nuestro sistema podemos usar Conky o, desde CLI, htop, gotop, etc. Finalmente, en nuestro sistema no hemos probado a instalar ninguna barra de tareas/herramientas por no considerarlo necesario, pero podrían probarse algunas como tint2, lxpanel, vala-panel, polybar, etc.

Con esto concluimos nuestra introducción a sowm, esperando que os sea útil. Las correcciones, propuestas de ampliación o mejora de los contenidos, etc., son, como siempre bien recibidas.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Crea tu página web en WordPress.com
Empieza ahora
A %d blogueros les gusta esto: