1
 
 

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!

2
submitted 2 months ago* by [M] to c/lisp@lemmy.ml
3
submitted 2 months ago by [M] to c/lisp@lemmy.ml
4
submitted 2 months ago by [M] to c/lisp@lemmy.ml
 
 

Two years since the last version (eight since the last mayor release) one of the community’s most beloved dialects is undergoing significant changes.

5
submitted 2 months ago by [M] to c/lisp@lemmy.ml
6
Jolt — Clojure on Chez Scheme (jolt-lang.github.io)
submitted 3 months ago by [M] to c/lisp@lemmy.ml
 
 

A Clojure implementation on Chez Scheme. Self-hosted compiler, Clojure-compatible standard library, no JVM.

by @yogthos@lemmygrad.ml

(yooo Awesome project!!!)

7
submitted 3 months ago by [M] to c/lisp@lemmy.ml
8
9
submitted 3 months ago by [M] to c/lisp@lemmy.ml
10
11
Lambda Ring (libl.in)
submitted 3 months ago by to c/lisp@lemmy.ml
12
 
 

In honor of the contributions made by Church and McCarthy, I wrote this project and the accompanying article to show how anyone can write a tiny Lisp interpreter in a few lines of C or in any "C-like" programming language for that matter. I attempted to preserve the original meaning and flavor of Lisp as much as possible. As a result, the C code in this project is strongly Lisp-like in compact form. Despite being small, these tiny Lisp interpreters in C include 21 built-in Lisp primitives, simple garbage collection and REPL, which makes them a bit more practical than a toy example. If desired, more Lisp features can be easily added with a few more lines of C as explained in my article with examples that are ready for you to try.

There is more: two sequels to tinylisp

In addition to tinylisp, I've written two other small classic Lisp implementations that share similarities with tinylisp, but expanded to include over 40 built-in Lisp primitives, strings, macros, exceptions, execution tracing, file loading, and a REPL:

  • Lisp in 1k lines of C with garbage collector, explained uses mark-sweep/compacting garbage collection. Unlike tinylisp however, a separate pool of free cons pair cells is used to construct lists. The garbage collector frees up space in the pool using mark-sweep. Space is freed up in the atom/string heap by compacting the heap after mark-sweep using pointer reversal.
  • Lisp in 1k lines of C with Cheney's copying garbage collector, explained uses Cheney's copying garbage collector. Like tinylisp, a stack is used to efficiently construct lists, i.e. by pushing two cells at a time on the stack to allocate cons pairs. Heap allocation simply pushes atom/string space up from the bottom of the heap (towards the stack). The garbage collector frees up stack and heap space by copying the active cons pair cells, atoms and strings to a new stack/heap.
13
Why Janet? (ianthehenry.com)
submitted 4 months ago by [M] to c/lisp@lemmy.ml
14
Racket v9.2 released (blog.racket-lang.org)
submitted 4 months ago by [M] to c/lisp@lemmy.ml
15
Chat server (Matrix) for Lispers (web.matrix-for-lispers.net)
submitted 5 months ago* by to c/lisp@lemmy.ml
 
 

Hello, I'm trying to host a Matrix server (tuwunel) for Lispers. The goal is to provide a space for chatting about different lisp topics with support for persistency, markdown, screenshots.

Currently, there are six rooms (These can be accessed from https://web.matrix-for-lispers.net/explore/featured/):

  • lisp
  • commonlisp
  • coalton
  • ciel
  • racket
  • clojure

Registration token can be obtained by evaluating (reverse (symbol-name '|stob-on-psil-esacllams|)) without the quotes.

Feel free to try it out and report any issues! If you want some another room, feel free to suggest!

16
Lisp in Vim (susam.net)
submitted 5 months ago by [M] to c/lisp@lemmy.ml
17
submitted 5 months ago by [M] to c/lisp@lemmy.ml
18
19
20
21
submitted 5 months ago by [M] to c/lisp@lemmy.ml
22
submitted 6 months ago by [M] to c/lisp@lemmy.ml
23
Announcing Guile Knots (www.cbaines.net)
submitted 7 months ago by [M] to c/lisp@lemmy.ml
24
 
 

a federated video service

25
view more: next ›