-
-
Notifications
You must be signed in to change notification settings - Fork 1
Scale Percent
Scale % is a property on visual nodes (built-in and plugin). It uniformly scales the entire drawn element—geometry, text, strokes, and images—around the node’s position or center.
It does not replace Width, Height, Radius, Size, and similar fields. Those set the base size; Scale % is an extra multiplier applied on top (100% = no change).
In the Properties panel, under the Shape group (with dimensional controls), on nodes that support drawing:
- Bars, arcs, gauges, needles
- Text, shapes, images, icons
- Effects (glow, spiral, orbit, equalizer, matrix rain, etc.)
- Custom Lua visuals
Default: 100. Range: 1–500, step 1.
| Scale % | Result |
|---|---|
| 100 | Normal size (no extra transform) |
| 50 | Half size, paths, text, line widths, and images stay in proportion |
| 200 | Double size, same proportions |
| 1 | Near-minimum (still drawn, very small) |
| 500 | Maximum allowed in the UI |
Everything inside that node’s draw call is scaled together:
- Paths and fills
- Stroke widths
- Text and font rendering
- Loaded images/icons
So a bar, its label, and its stroke all grow or shrink as one unit.
Scaling is done around a pivot:
-
cx/cyif the node has them (arc gauge, needle, fan, orbit, etc.) → center stays put - Otherwise
x/y→ that corner/origin stays put - If neither is usable →
(0, 0)
So a centered ring stays centered when you change Scale %; a bar anchored at top-left keeps that corner fixed and expands outward.
At Build / Live Preview, codegen wraps the node’s draw body in a Cairo transform:
cairo_save- Translate to the pivot
-
cairo_scale(s, s)wheres = Scale% / 100 - Translate back
- Run the normal draw code (in a protected call)
cairo_restore
If Scale % is missing or exactly 100, no wrap is emitted (no extra cost).
That runs after the node’s own size props are used in the generator, so Scale % multiplies the finished drawing rather than rewriting every size field.
| Control | Role |
|---|---|
| Width/Height/Radius/Size/etc. | Define the base geometry in the generator |
| Scale % | Uniform multiplier on the whole result |
| Position Stage/X·Y/Cx·Cy | Where the element sits; pivot for scale |
Example: Arc Gauge with Radius 70 and Scale 150% draws as if the radius (and thickness, value text, etc.) were scaled by 1.5 around (cx, cy).
- Use Scale % to shrink or enlarge a finished element without retuning every size slider.
- For layout on the Position Stage, scale does not change the proxy’s estimated size in the stage UI the same way live Conky does—check Live Preview for the true look.
- Very large values (near 500%) can push content outside the window; combine with position or window size.
- Custom Lua: scale still wraps the generated
draw_node_*function, so your code is scaled with the node unless you opt out of the normal pipeline.