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