Next: , Previous: , Up: API  


1.11 (heks-linux lambdock)

Renders ~/.config/lambdock/settings.scm and styles.css, the two files read by [[https://github.com/jjba23/lambdock][lambdock]], the Wayland-native GTK4 dock used as the macOS-style application dock.

Unlike the other modules, lambdock’s configuration format is itself Scheme: a sequence of top-level (define …) forms. The module therefore keeps that textually and pretty-prints it with pretty-print rather than serializing an association list - this is the one place where the generated artefact is code, not data.

The dock theme is the OS X Mavericks material by default – the dock is deliberately dressed as the 10.9 dock, shelf and all – and can be pointed back at the palette with lambdock-theme. The dock item list is built from lambdock’s own preset-launchers-for vocabulary, so adding an icon means adding a symbol to dock-items below.

lambdock-styles is a parameter holding free-form CSS appended to the generated styles.css; it defaults to the empty string and is the intended hook for per-machine look-and-feel tweaks.

1.11.1 Parameters

Parameter: lambdock-config

Default value:

"(define dock-auto-hide? #t)\n\n(define dock-show-when-clear? #t)\n\n(define dock-position 'bottom)\n\n(define dock-icon-size 48)\n\n(define dock-theme 'macos-mavericks)\n\n(define dock-shelf-margin -18)\n\n(define dock-shelf-front 14)\n\n(define dock-capsule-padding 8)\n\n(define dock-reflection 0.3)\n\n(define dock-reflection-intensity 0.7)\n\n(define dock-reflection-blur 0.03)\n\n(define dock-shelf-flare 24)\n\n(define dock-shelf-tilt 0)\n\n(define dock-monitor 'all)\n\n(define dock-exclude-apps '(\"warp-taskbar\"))\n\n(define dock-enable-repl? #t)\n\n(define dock-hover-animate? #t)\n\n(define dock-track-windows? #t)\n\n(define dock-item-spacing 6)\n\n(define dock-launchpad-blur? #t)\n\n(define dock-items\n  (append\n    (preset-launchers-for 'nautilus)\n    (list (launchpad-item))\n    (list (app-item\n            #:name\n            \"WezTerm\"\n            #:exec\n            \"wezterm\"\n            #:icon\n            \"org.gnome.Terminal\"))\n    (preset-launchers-for\n      'google-chrome\n      'firefox\n      'gnome-calendar\n      'gnome-calculator)\n    (list (app-item\n            #:name\n            \"Signal\"\n            #:exec\n            \"flatpak run org.signal.Signal\"\n            #:icon\n            \"org.signal.Signal\"))\n    (list (separator-item))\n    (preset-launchers-for\n      'emacs\n      'intellij\n      'bruno-flatpak)\n    (list (separator-item))\n    (preset-launchers-for\n      'spotify-flatpak\n      'gimp\n      'obs\n      'vlc)\n    (list (separator-item))\n    (list (stack-item\n            #:name\n            \"Screenshots\"\n            #:icon\n            \"folder-pictures\"\n            #:path\n            \"~/Afbeeldingen/Schermafdrukken\"\n            #:view-mode\n            'list)\n          (stack-item\n            #:name\n            \"Hacking\"\n            #:icon\n            \"folder\"\n            #:path\n            \"~/Hacking\"\n            #:view-mode\n            'list)\n          (stack-item\n            #:name\n            \"Downloads\"\n            #:icon\n            \"folder-download\"\n            #:path\n            \"/root/Downloads\"\n            #:view-mode\n            'list))\n    (list (separator-item))\n    (preset-launchers-for\n      'btop\n      'pavucontrol\n      'onepassword)\n    (preset-launchers-for 'ram)\n    (list (trash-item))))\n\n"
Parameter: lambdock-config-dir

Default value:

"/root/.config/lambdock"
Parameter: lambdock-downloads-dir

Default value:

"/root/Downloads"
Parameter: lambdock-hacking-dir

Default value:

"~/Hacking"
Parameter: lambdock-screenshots-dir

Default value:

"~/Afbeeldingen/Schermafdrukken"
Parameter: lambdock-settings-filename

Default value:

"settings.scm"
Parameter: lambdock-styles

Default value:

""
Parameter: lambdock-styles-filename

Default value:

"styles.css"
Parameter: lambdock-theme

Default value:

macos-mavericks

1.11.2 Procedures

Procedure: install-lambdock-config

Write settings.scm and styles.css to lambdock-config-dir.

The folders behind the dock’s stacks are created first: a stack whose directory does not exist opens an empty popover, and an empty popover reads as a broken dock rather than as an empty folder. Creating them is the difference between a macOS Downloads stack and a dock item that does nothing.

Local overrides are read from $XDG_CONFIG_HOME/heks-linux/lambdock-settings.scm first, which is how you replace the dock item list or point lambdock-styles at your own CSS.


Next: (heks-linux mako), Previous: (heks-linux image), Up: API