Commit graph

114 commits

Author SHA1 Message Date
ltadeu6
85726b8c41
Add beat-synced bounce effect to character
Detects bass beats from CAVA data using a fast/slow EMA ratio.
On each beat, applies a CSS scale+translateY animation to .beat-wrap
without interfering with the APNG playback or positioning.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 09:49:17 -03:00
ltadeu6
d0f72716c2
Fix duplicate CAVA instances via lockfile
pkill pattern was wrong (path has dancingcharacter not skeledance).
Now uses a lockfile to prevent QML from spawning multiple instances.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 09:43:40 -03:00
ltadeu6
39e7c07309
Replace QML CAVA polling with SSE server for smooth bars
DataSource fork+exec was limited to ~1fps. Now cava pipes into a Python
SSE server (port 5555) and the HTML connects directly via EventSource,
getting updates at up to 60fps without QML overhead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 09:37:58 -03:00
ltadeu6
5876701a64
Add real-time CAVA audio visualizer for VU bars
CAVA runs in background via cava-start.sh, writing bar values to
/tmp/skeledance_bars. A new QML DataSource polls that file at 80ms
and calls updateBars() in JS. Falls back to rest state when not playing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 09:35:35 -03:00
ltadeu6
b2df95ed10
Hide music ticker when nothing is playing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 09:30:38 -03:00
ltadeu6
2ee2470089
Tie animations to playback state
- Paused/stopped playerctl treated as no music (QML change)
- Character and notes only appear when Playing
- VU meter always visible but in rest state (3px, faint) when idle

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 09:28:36 -03:00
ltadeu6
b6eb089c2c
Show character and VU bars only when music is playing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 09:23:17 -03:00
ltadeu6
cfbc8ef5e1
Switch skeleton only on track change, not on timer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 09:17:35 -03:00
ltadeu6
d13d6e5e53
Move music ticker to top of screen
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 09:14:49 -03:00
ltadeu6
6b8eb21086
Fix JS error and add skeleton preloading
Remove dead EQ bar code referencing elements removed with the CSS robot.
Preload all APNG files on startup so skeleton switches are instant.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 09:13:33 -03:00
ltadeu6
9fbfb0592d
Replace CSS robot with animated character switcher
Swaps DANCEBOT-9000 CSS robot for a pool of APNG characters that cycle
randomly every 8s and on track change: 4 skeleton GIFs, a dancing baby
(YouTube clip), and Pepe. Background removal done with ffmpeg colorkey.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 08:59:29 -03:00
ltadeu6
5378772d8a
Replace CSS floor with canvas perspective grid
Draws vertical lines radiating from a true central vanishing point
and horizontal lines with perspective-correct spacing — giving the
classic retrowave convergence effect instead of parallel lines viewed
from above. Horizon glow line restored above the canvas layer.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 08:10:22 -03:00
ltadeu6
22d9f9672b
Improve floor grid and add dev tooling
- Scale floor perspective with viewport height so grid reaches horizon
  on full-screen KDE (was broken with fixed 700px perspective value)
- Increase grid line thickness 1px → 2px to reduce sub-pixel flickering
- Remove DANCEBOT-9000 title text
- Add viewport meta tag for correct layout in WebEngineView
- Add dev-server.sh (port 3000) with in-browser music ticker shim

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 07:42:19 -03:00
ltadeu6
c5668b8d62
Initial commit — DANCEBOT-9000 KDE Plasma wallpaper plugin
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 07:11:26 -03:00