QUE ASCO !! EWW
Eww: El arte de sufrir con paréntesis QUE ASCO!!
Si estás leyendo esto es porque, como yo, tienes esa necesidad incurable de personalizar Linux hasta que sea irreconocible. Prepárate un café o mate, ponte cómodo y déjame contarte la odisea de cómo terminé diseñando mi barra de estado usando Eww (Elkowar’s Wacky Widgets) lenguaje que no conocía.
Seguramente te estarás preguntando: “¿Por qué no usar Waybar como una persona normal?”. La respuesta es simple: porque soy un masoquista tecnológico y quería algo que tuviera ese toque único… algo que quedara realmente impecable.
El origen del caos
Todo empezó una tarde mirando mi Waybar (si, tenia waybar). Estaba mirando mi escritorio en Hyprland sobre Debian 13, y sentí que le faltaba alma. Tenía esa barra por defecto que es funcional, pero bastante aburrida. Así que me puse a investigar y me crucé con Eww.
Lo primero que notas es que el lenguaje de configuración se llama Yuck. Y ahí es donde deberías sospechar. En inglés, yuck es lo que dices cuando algo te da asco o rechazo. El autor conocido como elkowar, que debe tener un sentido del humor bastante ácido para ponerle ese nombre sinceramente, configurar esto es un desafío importante por no decir estresante.
¿Qué es Yuck? (Y por qué te hará doler la cabeza)
El archivo .yuck es básicamente Lisp. Sí, ese lenguaje lleno de paréntesis y que no conocía que parece que un gato caminó sobre el teclado mientras presionaba las teclas de apertura y cierre.
(defwidget bar []
(box :class "bar" :orientation "h" :space-evenly false :spacing 0
(box :class "left" :orientation "h" :halign "start" :spacing 0
(workspace_widget))
...
Veo eso y pienso: “¿En qué me metí?”. Cada paréntesis que abres tienes que cerrarlo con precisión milimétrica; bueno no tan así, pero si lo rompí varias veces mas de las que me gustaría admitir, Eww simplemente no arranca. Es como armar un mueble complejo con instrucciones en un idioma antiguo y piezas que parecen no encajar.
Pero el nombre es honesto. Es Yuck. Es un ”#@$*&%!”. Sin embargo, una vez que le entiendes la lógica, tiene su encanto. Es como ese proceso difícil que, al final, te da una satisfacción enorme (tambien tenia a Gemini CLI dándome consejos y haciendo parte del trabajo, las cosas como son).
Para que esta barra funcione no bastó con un par de líneas de código. Tuve que organizar un pequeño ejército de scripts en Bash e incluso un poco de Python para darle vida:
- Workspaces a medida: Quería que los indicadores de los escritorios se iluminaran dinámicamente. Creé un script que escucha el socket de Hyprland en tiempo real para detectar cada cambio de espacio de trabajo que en vez de tener un numero yo quería que estuviese en icono como si fuese en favicom.
- Hora y Fecha: El clásico de siempre, pero con estilo. Implementé un calendario que se despliega al hacer clic, ideal para mantener el orden visual.
- Control de Audio: En lugar de abrir un panel externo, quería manejar el volumen con el scroll del ratón sobre la barra. Así nacieron un par de scripts de control que incluso cambian el icono automáticamente si detectan auriculares o altavoces.
- Bluetooth y Wi-Fi: Esto fue una batalla constante. El Bluetooth en Linux a veces es caprichoso, así que el script debe verificar conexiones y estados sin generar errores que rompan la estética general. Con el Wifi estoy usando Adw-network que lo desxargue de un repo de GutHub y me gusto.
No les voy a mentir, hubo momentos de tensión. El mayor desafío fue el SCSS. Aquí Gemini CLI fue mi mayor amiga, me ayudo con los colores los tonos y de paso pude hacer una pequeña galería de temas de las mas conocidos que se puedes cambiar solo cambiando el nombre del tema en el archivo.
El CSS de Eww tiene sus particularidades. Por ejemplo, los eventbox. Si no configuras bien el comportamiento al pasar el ratón (onhover), la barra se vuelve inestable y estira TODOS los modulos. Pasé horas peleando porque el menú de apagado se cerraba antes de que pudiera hacer clic en “Reiniciar” aquí tuve que pedir ayuda a mi amigo Gemini CLI que tampoco la tenia muy clara hasta que endendi que hay varios “boxes” y que veces se cruzan unos con otros.
Y ni hablemos de las fuentes. Si no tienes instalada una “Nerd Font” no contento con eso también esta “Awesome Font Free 6” y “Helvética” por las dudas, los iconos aparecen como cuadrados vacíos.pero fue fácil solucionar ese inconveniente.
Si vas a entrar en este mundo, apréndete este comando:
eww kill && eww open bar que tuve que agregar un shorcut en el config de hyprlar bind = $mainMod SHIFT, B, exec, pkill eww || true; eww daemon && eww open bar para acelerar el flujo de trabajo.
Lo habré ejecutado miles de veces. Un cambio mínimo en el color, Un paréntesis nuevo en el código, Es el ciclo sin fin del desarrollador de widgets.
Pero el resultado final vale la pena. Aunque solo emule lo que ya tenia en Waybar hahaha..:
Pero ahora tengo 2 barras , y puedo decidir cual usar y tengo:
- Un Power Menu con animaciones fluidas (
revealer). Al pasar el ratón por el botón de apagado, se deslizan las opciones para reiniciar o bloquear la sesión. - Indicador de actualizaciones de APT. Fundamental en Debian para saber cuándo hay parches pendientes.
- Brillo y Volumen controlables con el scroll. Es uno de esos detalles que, una vez que los pruebas, no puedes volver atrás.
- Y Demas chiches, ya tengo una base usable y que se ve decente y cada tanto la estoy editando.
¿Vale la pena tanto esfuerzo?
Podría haber descargado una configuración ya hecha de algún repositorio en GitHub y listo. Pero no sería mí barra. No tendría ese proceso de aprendizaje y esos scripts que tanto me costó depurar.
Configurar Eww es casi un rito de iniciación. Es aceptar que el nombre .yuck es una advertencia. Es pelear con scripts y renegar con las capas de las ventanas.
Pero cuando terminas, miras ese escritorio limpio, funcional y con los colores perfectos, sientes que realmente tienes el control total de tu sistema.
Así que ya sabes, si tienes ganas de un buen reto técnico y quieres un escritorio digno de presumir en r/unixporn, dale una oportunidad a Eww. Eso sí, ten paciencia con los paréntesis.
A decir verdad sigo puliendo detalles cosas que a medida que voy haciendo me voy dando cuenta de las cosas que me faltan y/o quero hacerle, me falta pulir los bordes de los boxes separarlos, tal vez una fuente mejor, y agregar otras características como que vea cierto programas abiertos en segundo plano como Steam, Telegram o Spotify.
Les dejo el repo por si lo quieren chismear