Next: (heks-linux mako), Previous: (heks-linux image), Up: API
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.
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"
Default value:
"/root/.config/lambdock"
Default value:
"/root/Downloads"
Default value:
"~/Hacking"
Default value:
"~/Afbeeldingen/Schermafdrukken"
Default value:
"settings.scm"
Default value:
""
Default value:
"styles.css"
Default value:
macos-mavericks
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