From 59ea46306cb11fe27e10ba827501ec21e52f7de3 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sun, 18 Oct 2026 13:45:23 +0200 Subject: feat(accent): play the border gradient on a Tuya LED strip udt-ledstrip sends the window border's three hues to every Tuya addressable strip in the tinytuya device list as a flow scene (DP 51, dreamlight_scene_mode), so the strip moves with the wallpaper accent. Fully local: it speaks protocol 3.5 itself with cryptography, finds the strip by its UDP discovery broadcast, and reads the local key from ~/.config/udt/tuya/devices.json, written once by tinytuya's wizard. DP 51's layout is undocumented and missing from the cloud spec; it was read off the strip's status pushes while the app set scenes. Saturation is floored at full because LEDs render pastel accents as white. udt-accent starts it detached next to udt-keyboard; install.sh links it. Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'AGENTS.md') diff --git a/AGENTS.md b/AGENTS.md index a6a9f62..52c4754 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -216,6 +216,16 @@ it). The keyboard only listens over its USB cable, so `udt-keyboard --watch`, started from hypr-theme's autostart, reapplies the accent on every plug-in. Its firmware ignores a mode change unless the lights go off first and settle for a few seconds, hence the off, sleep 3, mode sequence; one second was not enough. +It also starts `udt-ledstrip`, which plays the window border's three hues as a +moving gradient on a Tuya addressable LED strip, over the LAN only. The strip's +local key comes from `~/.config/udt/tuya/devices.json`, written once by +`tinytuya wizard` against a Tuya IoT cloud project; re-pairing the strip in the +app changes the key, so the wizard has to run again. No devices file, no-op. +The script speaks protocol 3.5 itself with `cryptography` and finds the strip +by its UDP 6667 broadcast rather than a stored address. The effect is DP 51, +`dreamlight_scene_mode`, whose layout Tuya does not document and the cloud spec +omits: it was read off the strip's status pushes while the app set scenes. LEDs +render pastel accents as white, so saturation is floored at full. **Sublime's, GRUB's and the homepage's accents are replaced, not substituted into a placeholder.** GRUB and the homepage are generated by udt-palette with @@ -280,7 +290,7 @@ profile, and the new tab stays blank. Not everything tracks the wallpaper. rofi, quickshell, Hyprland borders, hyprlock's border (through `~/.cache/udt/hyprlock-border.conf`), Sublime's -colour scheme, Firefox, GRUB, the homepage and the AK820 Pro keyboard do; conky, Qt, GTK, waybar, hyprlock's panel palette +colour scheme, Firefox, GRUB, the homepage, the AK820 Pro keyboard and the LED strip do; conky, Qt, GTK, waybar, hyprlock's panel palette (from `templates/hyprlock/hyprlock-palette.conf`) and Sublime's UI chrome sit on the scheme's accent, lavender by default, which is also the fallback when a wallpaper is too grey to snap. Qt and GTK apps only reread a theme on restart, -- cgit v1.2.3