lambdock v0.6.2: A Wayland-native desktop dock written in C & GNU Guile Scheme (GTK4) - with REPL, hot-reload, multi-instance and flexible config - now on Guix, Nix, openSUSE, Debian

Josep Bigorra <[email protected]>
Newsgroups gmane.lisp.guile.user
Message-ID <CAM_04A2wUhAKmOjKE3xrQ0qCKw39rUfWrxQTqWjJmwryT74XEg@mail.gmail.com>
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.

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.

Repository: https://codeberg.org/jjba23/lambdock

License: GPLv3+

--------------
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).

Build System: Builds cleanly with Meson (meson setup build && ninja -C
build).


Since this is my first GTK4 project, and certainly the first time I
integrate C + Guile, all feedback, suggestions, bug reports, and
contributions are very welcome!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.