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!

Reply via email to