jonathan warykowskijwarykowski

herdr-zsa-lights

A herdr plugin that shows agent status on a ZSA keyboard's backlight, so you see which agent needs you without looking at the screen.

herdr-zsa-lights lights the keys of a Moonlander or Voyager for the herdr agents that need you:

  • Number key N lights for workspace N: amber while its agent is blocked on you, green when it’s done.
  • The top-right key glows amber while any agent is blocked; bound to next-agent, one press takes you there.
  • The Q to P row is a progress bar for herdr-pomodoro: red through a work round, blue through a break.
  • Music bars: the music action starts keybars on the rows below, with the agent keys staying on top.
  • Party lights: the party action runs a rainbow across the board for a few seconds, made for hooks such as a merged PR.

With nothing to show, the board keeps your Oryx colours.

Install

You need herdr 0.9.3 or later, Keymapp running with its API turned on, kontroll and jq.

herdr plugin install jwarykowski/herdr-zsa-lights

The watcher starts with each herdr session and stops with it.

Actions

ActionWhat it does
next-agentFocus the next blocked agent, else the next done one
partyParty lights for a few seconds
musicMusic bars on or off (needs keybars)
toggleLights off or on
restartPick up a changed config.env

Each is jwarykowski.herdr-zsa-lights.<action>. Bind them in herdr’s config.toml, then point keys at those chords in Oryx:

[[keys.command]]
key = "ctrl+alt+a"
type = "plugin_action"
command = "jwarykowski.herdr-zsa-lights.next-agent"
description = "focus the agent that needs you"

Keyboard maps

The Moonlander and Voyager maps give Keymapp’s index for keys 1 to 9, the top-right key and the Q to P row. A custom layout can override them in config.env: see config.env.example.