592 - Marcha atrás a SwayFX con i3status-rust

592 - Marcha atrás a SwayFX con i3status-rust

Vuelvo a #sway #swayfx en Linux con #i3status dejando atrás por el momento #ags por problemas con compatibilidad. Te indico las herramientas y mas

1:25
-3:15

Estaba realmente emocionado con AGS, una herramienta que te permite crear y utilizar tus propios widgets en cualquier escritorio. Esto te lo he contado en distintos episodios del podcast. Sin embargo, he tenido que hacer una marcha atrás. Es lo que tiene intentar estar siempre a la última con un proyecto que no está suficientemente maduro, o mejor dicho, suficientemente estable. Lo cierto es que aunque no había completado la migración, estaba utilizando AGS en mi entorno de trabajo habitual. Hasta la fecha, había conseguido ir actualizando y refrescando los cambios y modificaciones que el desarrollador introducía, pero esta última versión ya ha sido muy rompedor, y he tenido que hacer una marcha atrás a SwayFX con i3status-rust, que no tengo claro que sea simplemente temporal.

Marcha atrás a SwayFX con i3status-rust

AGS

Antes de nada aclararte que es AGS, y por ser breves indicarte que se trata de una librería construida sobre GJS que te permite definir widgets GTK de forma declarativa. Vamos, que de forma sencilla puedes crear tus Widgets utilizando JavaScript o TypeScript para ello. En particular te recomiendo el episodio 543 titulado Widgets con JavaScript en Linux, que seguro te resultará muy interesante.

Con estos Widgets en JavaScript o TypeScript, es posible crear todo tipo de elementos como barras de menú, ventanas, cuadros de dialogo, de forma relativamente sencilla. Lo cual es realmente atractivo para cualquiera que esté acostumbrado al uso de estos lenguajes de programación. Cierto es que le tienes que dedicar un tiempo para conocer el framework, pero con unas bases mínimas puedes hacer cosas realmente interesantes.

En este sentido AGS ha conseguido exportar los Widgets en JavaScript a cualquier entorno de escritorio y no solo a GNOME Shell, lo cual es una auténtica maravilla, porque extiendes esa facilidad a cualquier entorno.

Sin embargo, y como puedes imaginar por el título, es precisamente aquí donde me encontré el primer escollo. El desarrollador está trabajando intensamente en esta herramienta, lo que lleva a que en ocasiones se rompa la compatibilidad con versiones anteriores. Algo, que para mi desgracia sucede muy a menudo, mas a menudo de lo que desearía. Es un problema.

Además, el desarrollador de esta herramienta se apoya principalmente en Hyprland, mientras que actualmente, yo estoy utilizando SwayFX, lo que me obliga a implementar el propio servicio de Hyprland a Sway. Pero, además, hasta la fecha lo estaba haciendo en JavaScript, y ahora además lo tengo que hacer en TypeScript.

Y como ya te puedes imaginar, necesito cambiar el servicio en todas y cada una de sus apariciones a lo largo de la configuración, asegurándome que es totalmente compatible.

En conclusión, que cada cambio que actualmente realiza el desarrollador me implica un esfuerzo importante por mi parte, y que en esta última ocasión ha sido un duro golpe, y me ha hecho realizar esta marcha atrás.

Reflexiones

Actualmente lo que mas me atrae de Sway, SwayFX, Hyprland, bspwm, y todo el resto de tiling window manager que he utilizado y probado, es la productividad que he conseguido alcanzar gracias a este tipo de escritorio.

En este sentido, tener que hacer marcha atrás y dejar un fantástico complemento como es AGS. No es realmente tanto problema, como si lo representaría dejar atrás esta tecnología, que es lo que realmente me da productividad.

Por otro lado, algo que me podría preocupar es el impacto que esta marcha atrás pueda representar, en el sentido de tiempo que podría perder. Sin embargo, gracias a los dotfiles, esto ha sido mínimo. Gran parte de la configuración previa no la había perdido, simplemente se encontraba comentada, y he podido recuperarla fácilmente. Esto de los doftiles es una auténtica ventaja.

Mis problemas con AGS

Como te decía, mis problemas, actualmente con AGS, o lo que me ha llevado a realizar el cambio y la marcha atrás han sido varios. Algunos de estos problemas son los siguientes,

  • Actualizaciones cada poco tiempo. Esto no sería gran problema si efectivamente se mantuviera la compatibilidad hacia atrás, sobre todo en lo que ser refiere a configuración. Pero no es ni mucho menos así. Cada nueva versión puede y de hecho rompe la compatibilidad, con lo que necesitas reescribir parte de tu configuración. Un verdadero incordio.
  • No existe servicio para Sway. AGS está pensado para Hyprland. De esta forma, en su momento hice un servicio derivado para poder gestionar Sway o SwayFX que utilizo ahora, dado que si bien ambos utilizan un socket para la comunicación, lo cierto es que la API es radicalmente distinta entre ambos.
  • El fondo de pantalla. Esto tampoco es un problema, pero es un detalle mas, para que tengas en cuenta hasta que punto tengo modificado la versión original. Y es que si bien el desarrollador de AGS utiliza en sus dotfiles una herramienta externa para gestionar los fondos de pantalla, lo cierto es que en mi caso lo integré en el propio AGS. De nuevo, con los continuos cambios, esta integración, también se perdió.

Componentes

SwayFX

SwayFX es una fork de Sway, que es el tiling window manager. La diferencia entre uno y otro son los efectos que el primero introduce sobre el segundo. Algunos de estos efectos son los siguientes,

  • Desenfoque
  • Esquinas redondeadas con antialiasing, bordes y barras de título
  • Sombras
  • Atenuar las ventanas sin enfoque
  • Control de saturación por aplicación: Permite al usuario ajustar la saturación (Vibración Digital) para aplicaciones específicas.

En mi caso, el tema de los efectos, inicialmente, no es que me atrajera mucho, pero lo cierto es que tanto i3 como sway son realmente parcos en detalles, con lo que algunos efectos visuales no están de mas, y no sobrecargan en exceso el escritorio.

En este caso, no hice ningún cambio sobre SwayFX. Sigo manteniendo este escritorio, simplemente se trata de una reafirmación de que este tiling window manager es suficientemente estable como para utilizarlo en producción.

Barra de estado i3status-rust

i3status-rs es un reemplazo con una gran variadeda de funciones y que es compatible con los recursos de i3status, y está escrito en Rust puro. Proporciona una forma de mostrar «bloques» de información del sistema (hora, estado de la batería, volumen, etc.) en barras que admiten el protocolo i3bar.

Lo cierto es que funciona muy bien, es muy estable, y no he tenido que hacer ningún cambio respecto de la configuración que tenía inicialmente, antes de migrar a AGS.

Lanzadores

Actualmente estoy utilizando dos lanzadores. Realmente es un único lanzador pero con dos usos diferenciados. Rofi y Rofimoji. El primero para lanzar aplicaciones y el segundo para poner emojis.

Notificaciones

Otro de los aspectos que no vienen integrados en Sway son las notificaciones. Esto es algo que ya tengo muy establecido con Dunst, y que he retomado mientras limo asperezas con AGS. Veremos.

Crear algunos widgets

Todo esto me lleva al pensamiento efectivo de crear mis propios Widgets. Algo que no es extraño para mi, porque ya lo he hecho anteriormente con My-Weather-Indicator. Sin embargo, en este caso, lo haré en Rust, para no perder el impulso que llevo hasta el momento.

Así para empezar voy a crear un sencillo menú de salida, realmente, un cuadro de diálogo que me muestre opciones para salir, reiniciar, etc.

Si esto funciona correctamente y no me lleva y consume excesivo tiempo, continuaré con la barra de tareas. Pero, como te digo, vamos de a pocos, empecemos por un sencillo cuadro de diálogo para salir, y veamos como va.

Volveré a AGS. Seguro

Creo que terminaré por volver a AGS. Creo que es un proyecto muy potente, y que tiene un aspecto realmente espectacular. Pero, en las condiciones actuales se me hace realmente complejo su uso.

Y digo que volveré a AGS, porque tiene mucho potencial y tengo algunas ideas en mente que pueden ser muy interesantes, pero, es necesario esa compatibilidad que hecho de menos.


Más información,

1 comentario en “Marcha atrás a SwayFX con i3status-rust

  1. LO
    Loco hace 7 meses

    Cuanto menos se use JavaScript es mejor, es un infierno para el rendimiento.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *