Skip to content

Node Reference

Bobby Comet edited this page Aug 2, 2026 · 4 revisions

Node Reference

Conky Studio nodes are the building blocks of a project graph.

Source  →  (Logic)  →  Visual
  • Sources produce a value each refresh (one output socket).
  • Logic transforms values (inputs → one output).
  • Visuals draw on the Conky surface (optional bindable inputs; no data output).
  • Canvas is a special settings node (not drawn by Conky).
Page Contents
Sources System, sensors, weather, media, custom script
Logic Built-in math, gates, format
Visuals Text, gauges, shapes, effects, Custom Lua
Plugins Official plugin pack (threshold, smooth, units, …)
Custom Plugins How to make plugins

Data kinds (socket types)

Wires are kind-aware. Compatible kinds can connect; mismatches are rejected in the editor.

Kind Typical meaning
percent 0–100 scale (CPU, RAM, battery, progress)
celsius Temperature in °C
number Generic numeric (rates, MB, mapped values, 0/1 gates)
text String
category Discrete label (weather category, playback state)
boolean Truthy signal (often 0/1 as number in practice)

Sources advertise an output_kind. Logic nodes also have an output_kind. Visual bindable properties declare accepts: […] (which kinds may wire in).

If nothing is wired to a bindable property, the constant in the property panel is used.


Reading a node entry

Each node lists:

Field Meaning
Type id Registry key stored in project JSON (e.g. source.cpu_percent)
Output Kind of the single output socket (sources/logic only)
Properties Panel fields; bindable = input socket on the left of that row
Range Min/max when the editor enforces them
Notes Behaviour, dependencies, codegen quirks

Unused sources are not polled in the generated theme.


Canvas (canvas.root)

Not a data node. Select it to edit the HUD window:

Property Role
width / height Workable resolution (drawable area)
alignment, gap_x, gap_y Placement on the desktop
fps Draw / update interval driver
stats_hz How often native/cached sources are re-read
window_type auto / normal / desktop / dock; auto uses session defaults (see Hardware & Session)
transparent, window_class ARGB / class hints

Changing size does not auto-rescale existing visuals.


Tips

  1. Prefer percent sources → gauges/bars that expect 0–100.
  2. Use Logic → Map Range / Scale when units differ.
  3. Smooth (plugin) or Lerp for jittery sensors.
  4. Custom Script when no built-in source exists; set output_kind to match downstream.
  5. Custom Lua when no visual is enough; full Cairo escape hatch.

Clone this wiki locally