Lambdock: un dock nativo para Wayland configurable en Scheme

Fuentes: Lambdock: a hackable Wayland-native dock in C and Guile Scheme

Lambdock es una aplicación de dock para el escritorio diseñada específicamente para entornos Wayland en GNU/Linux, escrita en C con la biblioteca gráfica GTK4 y configurable mediante GNU Guile Scheme. Su objetivo es ofrecer una barra de lanzadores ligera, anclada al borde de la pantalla, similar a las propuestas clásicas de CairoDock, Plank o el dock de macOS, pero aprovechando las capacidades modernas de los compositores Wayland compatibles con el protocolo wlr-layer-shell-unstable-v1, como Sway, Hyprland, Niri, River o KDE Plasma en sesión Wayland. Entre sus funciones destaca el seguimiento dinámico de ventanas mediante zwlr_foreign_toplevel_manager_v1, lo que permite mostrar indicadores de aplicaciones activas y HUD emergentes para enfocar o cerrar instancias. El dock se puede extender a varios monitores, fijarse a una salida concreta o distribuirse por todas ellas, y dispone de un sistema de auto-ocultado con animaciones de deslizamiento suavizadas con curvas cúbicas.

La configuración se realiza en Scheme, lo que convierte al programa en una herramienta "hyper-hackable": admite múltiples archivos de ajustes, presets, recarga en caliente de los cambios mediante GFileMonitor y un REPL accesible por un socket Unix (/tmp/lambdock-repl.scm) que permite inspeccionar y modificar el estado en vivo desde Emacs, socat o nc. El tematizado se hace con CSS de GTK4 y soporta temas integrados como vanilla, snow-leopard o solarized-light, además de overrides del usuario. Otros rasgos incluyen resolución flexible de iconos con cadena de fallback, lanzamiento asíncrono de binarios y Flatpaks sin bloquear la interfaz, listas de exclusión de aplicaciones, efecto fish-eye opcional al pasar el ratón, scroll sobre los elementos cuando el dock excede el tamaño de pantalla y builds reproducibles gracias a Meson y GNU Guix. GNOME (Mutter) no es compatible por no implementar el protocolo de layer-shell.