Commit Graph

3 Commits

Author SHA1 Message Date
625c95f09c Lighting menu in the window for pads that have backlight modes
A backend that lists lighting_modes gets a Lighting button in the footer:
one entry per mode and a colour picker for the custom one. The tick
follows what the pad reported in its last read, since every read of an
ITPROTECH pad carries the lighting along with the keys.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-23 19:37:44 +02:00
021f9f7fa1 Lighting as a macropad subcommand; knobless pads start in the flat view
Running the backend module directly made runpy warn, since the package
had already imported it. The lighting commands now sit with doctor, state
and write. A pad without knobs lies flat on the desk, so it is drawn flat
unless an orientation has been chosen.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-23 19:26:46 +02:00
80c6a5da1c Add the ITPROTECH MK series (8808) as a third pad family
Confirmed on the MK-09 (8808:660a, 9 keys): the vendor's .NET configurator
was decompiled for the wire format and every frame was then written to a
real pad and read back. Keys, media keys and multikey sequences are
supported; lighting from the command line.

The firmware acts on every other output report, so each report is sent
twice (as the vendor software does) and every write is verified by reading
the key back. The app now keeps one state file per pad and starts with a
known layout for a known USB id, and the editor asks the backend whether a
binding fits before offering to write it. The actions listener and the
udev rule cover every supported vendor.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-23 19:24:30 +02:00