Show HN: Lambdock – Wayland-native GTK4 dock with a live Lisp REPL

jjba231 pts0 comments

jjba23/lambdock: Modern, hyper-hackable, Wayland-native desktop dock application (C and Guile Scheme + GTK4) w/ REPL - Codeberg.org

Codeberg has changed its Terms of Use. View complete changes.

LLM-generated content is being restricted. View change or read the blog post

Cryptocurrency projects are no longer allowed. View change

Dismiss

This website requires JavaScript.

jjba23/lambdock

Watch

Star

Fork

Code

Issues

Pull requests

Activity

Modern, hyper-hackable, Wayland-native desktop dock application (C and Guile Scheme + GTK4) w/ REPL

desktop

dock

gnu

gnu-linux

gtk

guile

linux

wayland

widget

243 commits

1 branch

23 tags

3.2 MiB

59.1%

Scheme

24.8%

CSS

11.4%

Meson

3.6%

Nix

0.7%

Other

0.4%

trunk

Find a file

HTTPS

Download ZIP<br>Download TAR.GZ<br>Download BUNDLE

Open with VS Code

Open with VSCodium

Open with Intellij IDEA

Repository files (latest commit first)

Filename<br>Latest commit message<br>Latest commit date

Josep Bigorra

6af95419ca

docs: 📝 NEWS

2026-08-11 18:19:07 +02:00

debian

feat: ✨ Implement GResource loading

2026-08-05 10:39:51 +02:00

protocols

feat: ✨ Add debian build

2026-08-04 08:54:07 +02:00

resources

feat: ✨ Improve CSS

2026-08-11 18:00:38 +02:00

scheme/lambdock

feat: ✨ State checks

2026-08-11 17:54:53 +02:00

src

feat: ✨ State checks

2026-08-11 17:54:53 +02:00

.envrc

feat: ✨ CCLS

2026-07-30 10:58:55 +02:00

.gitattributes

feat: ✨ Finding icons

2026-07-30 15:40:45 +02:00

.gitignore

feat: ✨ Add debian build

2026-08-04 08:54:07 +02:00

channels.scm

feat: ✨ Improve GTK

2026-07-30 14:59:58 +02:00

COPYING

feat: ✨ Lambdock project

2026-07-30 10:52:05 +02:00

flake.lock

feat: ✨ Add Nix package

2026-08-06 15:51:33 +02:00

flake.nix

feat: ✨ Add Nix package

2026-08-06 15:51:33 +02:00

guix.scm

feat: ✨ Improve package definition

2026-08-10 11:39:13 +02:00

lambdock.spec

feat: ✨ Implement GResource loading

2026-08-05 10:41:04 +02:00

maak.scm

feat: ✨ Improve maak

2026-08-10 16:53:53 +02:00

manifest.scm

feat: ✨ State checks

2026-08-11 16:24:03 +02:00

meson.build

feat: ✨ Constants with meaning

2026-08-07 16:34:20 +02:00

NEWS.org

docs: 📝 NEWS

2026-08-11 18:19:07 +02:00

package.nix

feat: ✨ Constants with meaning

2026-08-07 16:34:20 +02:00

PKGBUILD

feat: ✨ Implement GResource loading

2026-08-05 10:41:04 +02:00

README.org

docs: 📝 README

2026-08-11 18:08:25 +02:00

README.org

lambdock

What systems does lambdock support?

Configuring lambdock

Why lambdock? A comparison table

Styling & Theming 🎨

Finding icon names

Etymology

Interactive lambdock REPL

Wayland Toplevel Tracking & Popovers

Bi-Directionality of C and Guile Scheme 🔄

Development & Building

Environment Setup with GNU Guix

Building with Meson

Building for Debian

Building for Fedora/openSUSE

Building for Arch

Building with Nix

Hacking with maak & CCLS

Animations

Licensing

AI Policy

Code of conduct

Why Lisp (GNU Guile Scheme) ? 🔮

On Reproducibility, and Why GNU Guix? 🐂️

Backlog and Ideas

The dock for Wayland (GNU/Linux) that you didn't know you needed (C and Guile Scheme + GTK4)

lambdock is a modern, hyper-hackable, Wayland-native desktop dock application (as made popular by CairoDock, macOS, Plank) engineered for GNU/Linux users, people that like docks, macOS refugees, ricers, free software and Lisp enthusiasts, Wayland minimalists…

It's built in the C programming language and using GTK4 libraries and toolkit, gtk4-layer-shell, Lisp ( GNU Guile Scheme) with fullruntime inspectability and configurability, hot-reload of config and of the GTK-CSS.

Whether you are running Niri, Sway, Hyprland, River, or any wlroots / Layer Shell compliant compositor, lambdock brings clean application launching, dynamic Wayland foreign-toplevel window tracking, and smooth cubic-eased auto-hiding directly to your setup.

lambdock is a lightweight, Wayland-native desktop dock built with a high-performance C core, GTK4 Layer-Shell , and dynamic configuration powered by GNU Guile Scheme .

Wayland Native : Built on GTK4 and gtk4-layer-shell for smooth edge anchoring, cubic-eased slide animations, and compositor integration.

Dynamic Window Tracking : Uses zwlr_foreign_toplevel_manager_v1 to display active app indicators, window titles, and popover HUDs for focusing or closing instances.

Multi-Monitor Flexibility 🖥️: Span docks across all connected screens (#:monitor 'all) or lock them to specific output connectors (e.g., "DP-1").

Smooth Auto-Hide : Keeps the dock out of your way with configurable reveal thresholds and fluid sliding animations.

Declarative Lisp Configurations 🔮: Harness the power of GNU Guile Scheme for declarative dock setups, custom app launchers, separators, and options. Multiple config files and multiple docks are supported.

Smart and Safe Hot-Reloading : Automatic file watcher (GFileMonitor) and REPL hook (reload-dock!) safely re-evaluate Scheme settings and GTK CSS without blocking the UI thread.

Live Interactive Socket REPL...

feat lambdock wayland scheme dock gtk4

Related Articles