cava-driven · conky widget · liquid glass

A soundbar
for your desktop

Sixteen bars of real audio, rendered in liquid glass, sitting quietly on your desktop background where a system monitor used to be.

View on GitHub Read the docs

How it moves

Three small pieces, each doing one job. No polling loops, no blocking calls inside Conky's draw cycle.

01

cava listens

Reads your audio output's monitor source and splits it into 16 frequency bands, 30 times a second.

02

feed.sh collapses

Pipes cava's stream through a FIFO and overwrites one tiny file with just the latest frame.

03

widget.lua draws

A cheap, bounded file read every tick — then Cairo paints the glass and the bars.

What's actually in it

Built to sit in a Conky rig without adding a spawn, a poll, or a stutter.

Real audio, not noise

Driven by cava against your actual output monitor — the bars mean something.

Five-layer liquid glass

Base fill, reflections, specular gloss, inner glow, and a gradient border — all hand-tuned in Cairo.

Peak-hold caps

A thin white cap floats above each bar and falls slowly, like the meters on real hardware.

One-number resizing

Resize the Conky window; a single cairo_scale() fits the whole layout to it.

Non-blocking by design

widget.lua never talks to cava directly — just a small, bounded read of a file feed.sh keeps current.

Colour ramp that means something

Mint at rest, amber climbing, coral at the peaks — amplitude is legible at a glance.

Settings

Everything below lives in widget.lua's W.settings table.

show_background
Set to false to drop the glass panel and float the bars directly on the desktop.
x, y, width, height
Panel position and size within the 440×180 design canvas.
num_bars
Must match bars = in cava.conf if you change it.
attack, release
How snappy the bars rise and fall, from 0 to 1.
peak_hold, peak_decay
The floating cap above each bar, and how fast it falls back down.
color_low, color_mid, color_high
The amplitude colour ramp — mint, amber, and coral by default.