- cross-posted to:
- unixporn@lemmy.ml
- cross-posted to:
- unixporn@lemmy.ml
lambdock is a lightweight, hyper-hackable desktop dock for Wayland compositors that bridges a high-performance C graphics engine with an embedded GNU Guile Scheme runtime.
Repository: https://codeberg.org/jjba23/lambdock
License: GPLv3+
Whether you are looking for a smooth macOS-style dock, a minimal launcher, or a Lisp-powered desktop widget bar, lambdock was built to offer extreme flexibility without bloating system resources and remaining flexible but easy to use, with good defaults.
Why would you consider lambdock? Modern Stack & Ultra-Low Footprint: Built on GTK4 and gtk4-layer-shell in C for minimal resource usage, rich graphics and animations (opt-in) with smooth cubic-eased auto-hiding.
Embedded Guile Scheme Engine: Declarative Lisp configuration (~/.config/lambdock/settings*.scm). Easily construct custom app launchers, separators, or dynamic polling widgets (RAM, CPU load/temp, Battery, Clock) using standard Scheme procedures and macros.
Live Interactive REPL & Hot-Reloading: Connect straight into the running dock over a Unix domain socket (/tmp/lambdock-repl.sock) via Emacs/Geiser or socat or whatever you like. Hot-reload configuration files and GTK CSS overrides on the fly via GFileMonitor or the (reload-dock!) REPL hook without dropping Wayland frames or UI thread freezes.
Dynamic Wayland Window Tracking: Uses zwlr_foreign_toplevel_manager_v1 for running app indicators, active window titles, and interactive popover HUDs to focus or close specific instances.
Opt-In Fisheye Magnification: Includes a native, fluid cosine-bell curve hover magnification effect (macOS-style) that can be toggled on or off per item or globally.
Multi-Dock & Multi-Monitor Support: Run independent dock instances across screen edges or monitors simply by dropping additional settings-*.scm files into your config directory.
Built-in Themes & CSS Overrides: Ships with presets (Vanilla, Snow Leopard, Solarized, Unity, Nature) and supports full user CSS customization via ~/.config/lambdock/styles.css.
lambdock works seamlessly across all wlr-layer-shell and foreign-toplevel compliant compositors: Sway, Hyprland, Niri, River, Wayfire, COSMIC, and KDE Plasma (Wayland).
(Note: GNOME/Mutter is currently not supported as GNOME does not implement the layer-shell protocol).
Installation & Packaging (a bit WIP)
lambdock provides multiple ways to build and install across distros:
GNU Guix: Packaged via guix.scm and available in channels.
openSUSE: Packaged as an RPM on openSUSE OBS.
Nix / NixOS: Ships with flake.nix / package.nix (and a PR has been submitted upstream to nixpkgs).
Debian / Ubuntu: Debian packaging helpers included (debuild).
Podman / Docker: Containers are available and also pre-built ones on DockerHub
Build System: Builds cleanly with Meson (meson setup build && ninja -C build).
Since this is my first GTK4 project, all feedback, suggestions, bug reports, and contributions are very welcome!

