diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-18 21:38:06 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-18 21:38:06 +0200 |
| commit | 3fae77d2eaad99bb39c8296e201f9845837dbe02 (patch) | |
| tree | 60053db98d905877be1f5192e9be95e7d5f9876a /AGENTS.md | |
| parent | 64270272c4de5e3c2563e2f30ef35e7efaa384ae (diff) | |
| download | unified-desktop-theme-3fae77d2eaad99bb39c8296e201f9845837dbe02.tar.gz unified-desktop-theme-3fae77d2eaad99bb39c8296e201f9845837dbe02.zip | |
feat(accent): light IKEA TRADFRI colour bulbs in the accent
udt-bulb fades every paired colour bulb to the wallpaper accent through
the TRADFRI gateway's local CoAP API, over DTLS-PSK via libcoap's
coap-client. --pair trades the gateway's security code for an identity
of its own and records the colour bulbs in ~/.config/udt/tradfri.json.
Takes udt-ledstrip's on and off. A bare run, as udt-accent starts it,
skips bulbs that are off, since the gateway switches a bulb on for any
colour change. Colour and brightness go in separate requests, colour
first: combined, or with a colour sent during a brightness fade, the
gateway drops part of it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -242,6 +242,20 @@ hypridle's idle timeout, for the same reason as `off`: NetworkManager drops the network on the same sleep signal hypridle's `before_sleep_cmd` answers. That `before_sleep_cmd` sends it too, as a best effort for any other suspend path. +`udt-bulb` does the same for IKEA TRADFRI colour bulbs, called beside every +`udt-ledstrip`, except that suspend switches the bulbs off: the breathing +strip alone says the desktop is asleep. A bulb shows one colour, so it gets +the accent alone. The bulbs are Zigbee, reached through the +TRADFRI gateway's local CoAP API over DTLS-PSK, which Python cannot speak, so +it calls libcoap's `coap-client` (SBo `libcoap`). `udt-bulb --pair HOST CODE` +trades the code on the gateway's label for an identity of its own and writes +`~/.config/udt/tradfri.json` with every colour bulb listed; trimming that list +by hand picks which bulbs follow. Two gateway quirks shape the requests, +both found on the real bulb: any colour change switches a bulb on, so a bare +run reads the state first and skips an off bulb; and a request setting colour +and brightness together, or a colour sent while a brightness fade runs, is +partly dropped, so colour goes first and brightness after, separately. + **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 the scheme's accent, then rewritten in place, before `udt-grub` and @@ -305,7 +319,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, the AK820 Pro keyboard and the LED strip do; conky, Qt, GTK, waybar, hyprlock's panel palette +colour scheme, Firefox, GRUB, the homepage, the AK820 Pro keyboard, the LED strip and the TRADFRI bulbs 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, |
