Instalando y configurando sway

En lo que va de año, me la he pasado bastante cómodo utilizando el compositor de Wayland llamado Sway, un projecto de código libre que busca transferir la experiencia del manejador de ventanas i3 a Wayland, el nuevo protocolo de comunicaciones para servidores gráficos que se ha implementado en Linux con el propósito de expandir las capacidades de X11 y corregir varios de los errores cometidos en su implementación, para luego retirar al servidor gráfico X.Org en favor de esta nueva solución.

Hasta ahora he quedado encantado con sway y las ventajas que ofrece incluso sobre el mismo i3. Entre las más destacadas mencionaré:

  • El uso de las teclas hjkl, en conformidad con el modo vi, viene activado por defacto y es uno de los mejores cambios que se le ha hecho a i3; siempre me encontré incómodo que las teclas de navegación estuviesen corridas sin ninguna razón particular.
  • Mucho mejor manejo de múltiples monitores. Esto es esencial para mí, puesto que siempre utilizo dos monitores para mi computadora de escritorio.
  • Viene integrado con la capacidad de separar las ventanas mediante espacios; cabe destacar que esta funcionalidad ya también ha sido incorporada en i3.
  • Mantiene la fluidez y sencillez de su contraparte para xorg, pero con los beneficios de correr en una sesión con el protocolo más moderno y las ventajas que ello conlleva.
  • La configuración es sencilla y perfecta para un principiante que busca experimentar con compositores para Wayland.
  • Es sumamente estable; durante los ocho meses que lo utilizado, no me ha fallado con errores irrecuperables; ha sido perfectamente manejable en cada situación.

Dicho todo esto, a Wayland aún le queda un poco de camino por recorrer; si utilizas tu computadora para tareas comunes como navegar por internet, revisar tu correo, ver videos y cosas por el estilo, entonces será perfectamente usable para ti. Sin embargo, algunas cosas todavía no han sido implementadas en su totalidad, o hay que configurarlas manualmente para que trabajen correctamente; como protocolo, esta tecnología está siendo adoptada con mayor intensidad en los últimos meses, pero sigue siendo en algunos casos una tarea en proceso.

Por mi parte, me he encontrado la experiencia con Wayland perfectamente utilizable, especialmente bajo el compositor sway, pero tu caso podría ser distinto atento a tus necesidades. Ya advertidos, entonces paso a detallar cómo instalar y configurar sway: lo hago para Arch Linux, pues es la distribución que utilizo a diario. Otras implementaciones de Linux podrían variar en este proceso.

Paso 1: Instala Sway

Lo primero que debemos hacer es instalar el paquete de sway que para mí se encuentra en los repositorios de Arch:

sudo pacman -Syu sway

Las instruciones de -Syu en lugar de -S serían para actualizar el sistema antes de instalarlo, y así evitar cualquier problema relacionado a sus dependencias.

Paso 2 (opcional): Instala algunos programas complementarios

Existen otras aplicaciones que ayudan a extender la funcionalidad de sway y que resultan bastante útiles. Si lo deseas, puedes instalarlas también; recomiendo las siguientes, también en los repositorios oficiales de Arch:

sudo pacman -S swaylock swayidle swaybg

Más adelante cuando pases a configurar sway resultarán de gran uso.

Paso 3: Inicia Sway

Antes de poder correr el programa es necesario que éste tenga acceso a dispositivos como el mouse y teclado; existen varias formas de lograrlo, pero para esta guía utilizaremos polkit. Puedes instalarlo en Arch ejecutando:

sudo pacman -S polkit

Cuando ya tengamos polkit instalado, entonces podemos correr el compositor utilizando el comando sway si deseamos iniciarlo manualmente. En caso de que se esté utilizando una tarjeta de video que no está oficialmente soportada, debemos incluir --unsupported-gpu; esto es más para los que tienen NVIDIA. Sería entonces: ``sway –unsupported-gpu`. Para que inicie cada vez que entremos a la sesión de nuestro usuario desde un TTY, podemos incluir el siguiente archivo de inicialización en el perfil de nuestro shell:

if [ -z "${WAYLAND_DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
  exec sway
fi

Esto varía dependiendo cuál estemos usando; en mi caso yo utilizo zsh, así que sería colocarlo en ~/.zprofile. Si estás en bash, entonces sería ~/.bash_profile. Recuerda incluir --unsupported-gpu si utilizas NVIDIA para tu tarjeta de video. Alternativamente, podrías emplear un manejador de sesiones como ly o sddm; pero ten en cuenta que ninguno de ellos está oficialmente soportado.

Paso 4: Configura Sway

La parte más importante, por supuesto, es la configuración de sway para que puedas colocar cada cosa a tu gusto; desde lo visual hasta lo funcional, todo sucede mediante un archivo de configuración que se guarda en ~/.config/sway/config. Aunque esta sección dependerá de ti y tus necesidades, puedes ver un modelo de cómo debería escribirse en la página de Github del proyecto; esta es la configuración que viene por defacto y es bastante limitada en términos de los ajustes que realiza; lo importante es que es un buen punto de partida desde el cual puedes ir agregando hasta que quede justo como deseas. Si te gustaría ver un ejemplo más detallado, puedes revisar mi archivo de configuración en mi perfil de Gitlab.

Paso 5 (opcional): Agrega y configura Waybar

Aunque sway viene ya con una barra de estado que puedes utilizar de inmediato llamada swaybar, en realidad me parece un poco carente y limitada; si deseas algo más funcional, lo mejor es utilizar otra. Hay varias opciones, pero mi favorita es waybar; encuentro que es la más completa y configurable de las que he probado. Está inspirada en la barra polybar para xorg, aunque su configuración es algo distinta.

Si deseas cambiar tu barra por la antes mencionada, entonces ejecutamos:

sudo pacman -S waybar

Ahora nos toca configurarla como nuestra barra de estado principal, y que se ejecute cada vez que iniciemos sway. Para ello debemos editar el archivo de configuración ubicado en ~/.config/sway/config y cambiar lo siguiente:

...
    #status_command while date +'%Y-%m-%d %X'; do sleep 1; done
    status_command waybar
...

Similar a sway, podemos configurar waybar desde ~/.config/waybar/config. No entraré en mucho detalle, pues para esta barra me gustaría dedicarle un artículo completo en el futuro con instrucciones más detalladas de cómo agregar y modificar algunas cosas esenciales y de manejar otros aspectos más complejos como la posibilidad de poder escribir e integrar tus propios módulos. Puedes ver mi configuración aquí mientras tanto.

Otra cosa es que para alterar la apariencia de esta barra, necesitamos crear un archivo css de estilo en ~/.config/waybar/style.css; desde allí podemos definir todos los aspectos relacionados a lo visual, como los colores que mostrará, el tipo de letra, los módulos que utilizaremos y la manera en que serán colocados. Puedes usar mi archivo como guía e inspiración para crear el tuyo.

Pensamientos finales

Existen ya bastantes opciones en lo que respecta a compositores para Wayland. Ciertas opciones son mucho más llamativas, como es el caso de Hyprland; a mí me queda como anillo al dedo Sway porque es más sencillo y sin tantos bombos y platillos. Animaciones complejas y efectos visuales detallados son cosas que, al menos para mí, luego de un tiempo pierden su atractivo; prefiero la velocidad, estabilidad y simpleza de Sway por encima de cualquier artificio gráfico, por más impresionante que resulte en su primera impresión.

Si estás considerando probar Wayland y te sientes cómodo con un manejador de ventanas (especialmente si se trata de i3), entonces Sway es la mejor opción; me ha gustado bastante y me he encontrado muy a gusto en este entorno. Luego de meses de probarlo y de sentirme como en casa, veo muy difícil que me cambie a otra cosa por un largo tiempo.

Es bastante obvio que Wayland es el futuro de Linux en el escritorio; aunque todavía queda un tanto de camino por recorrer en lo que respecta a su adopción, y muchos programas tendrán que incorporar soporte para este protocolo en los meses (y hasta años) siguientes, son evidentes los beneficios de implementarlo. Ya X.Org va quedando atrás y se nota que no fue desarrollado con el hardware de hoy en día en mente. Wayland enfrenta y supera muchas de estas limitaciones; todo parece indicar que en poco tiempo, este nuevo formato será el que predomine en casi todas las distribuciones de Linux.