Skip to content

Node Reference Plugins

Bobby Comet edited this page Jul 31, 2026 · 5 revisions

Node Reference — Conky Studio Plugins

Official-style plugin pack (api_version 1.1). Install via Tools → Plugins… or drop the manifest under ~/.config/conky-studio/plugins/.

Plugins are data only (JSON + Lua templates). Lua runs inside Conky — only load packs you trust.

Type ids below are exact registry keys. Slot properties: use a unique integer per instance when two nodes of the same type must not share state.


Logic plugins

Threshold — logic.threshold

Richer than built-in Threshold Gate.

Prop Kind Default Bindable Notes
value float 50 yes accepts number, percent, celsius
threshold float 80 yes same accepts
mode enum above above ≥ · below ≤ · equal ±ε
output_mode enum binary binary 0/1 · gate pass value or 0 · invert_binary
epsilon float 0.01 only for equal mode

Output: number


Deadzone — logic.deadzone

Abs-magnitude deadzone (not centre+radius built-in).

Prop Kind Default Bindable Notes
value float 0 yes
zone float 1 yes |value| ≤ zone → 0
soft bool false if on, subtract zone and keep sign

Output: number


Smooth (EMA) — logic.smooth

Exponential moving average.

Prop Kind Default Bindable Notes
value float 0 yes
alpha float 0.2 yes 0.01–1; lower = heavier lag
slot int 1 unique per node

Output: number · Uses helper table _cs_plugin_smooth


Temp Convert — logic.temp_convert

Prop Kind Default Notes
value float 72 bindable
direction enum f_to_c f_to_c / c_to_f
decimals enum 1 none / 0 / 1 / 2

Output: celsius (kind tag; value is converted number)


Threshold Chain (10-Stage) — logic.threshold_chain_10

Maps one number to a stage index 1…N (or none_value).

Prop Kind Default Notes
value float 0 bindable
steps_count int 4 1–10 active steps
mode enum progressive progressive / highest / exact_band
none_value float 0 when below all thresholds
t1…t10 float 10…140 bindable thresholds

Output: number (stage index)
Use: image chains, picker indices, multi-LED logic


Round — logic.round (plugin)

Richer than built-in nearest-only Round.

Prop Kind Default Notes
value float 0 bindable
mode enum nearest nearest / floor / ceil
decimals int 0 0–6

Output: number


AND (0/1) — logic.boolean_and

| a, b | bindable floats | truthy if ≥ threshold (default 0.5) → output 1 else 0 |

OR (0/1) — logic.boolean_or

Same shape as AND with OR semantics.

NOT (0/1) — logic.boolean_not

| value | bindable | inverted vs threshold |

Output: number (0/1)


Pick (A/B) — logic.pick

| selector ≥ threshold → a, else b (all bindable as listed in pack) |

Output: number


Percent of — logic.percent_of

value / total * 100; 0 if total is 0.

Output: percent


Unit Format — logic.unit_format

Formats number as text with prefix, suffix, decimals (e.g. 42.5 °C).

Output: text


Rate Limit — logic.rate_limit

Max change per refresh (max_step); state in slot.

Output: number · helper _cs_plugin_ratelimit


Hold Peak — logic.hold_peak

Remembers peak with optional decay per tick; slot for state.

Output: number · helper _cs_plugin_peak


Modulo — logic.modulo

value % divisor (0 if divisor is 0).

Output: number


Visual plugins

Dot — visual.plugin.dot

Always-on filled circle (status LED without threshold).

Prop Kind Default Notes
x, y float 40 position
radius float 6 1–200
color color #4fd1c5 → r,g,b in Lua
opacity float 1 0–1

No data output. Unlike LED Dot, colour is fixed (no on/off threshold).


Install reminder

Tools → Plugins…  → fetch / load manifest
# or
~/.config/conky-studio/plugins/your-pack.json

Validate:

from conkystudio.plugins.loader import load_manifest_file, validate_only
print(validate_only(load_manifest_file("pack.json")))

Authoring rules: see wiki Plugins and repo PLUGIN_AUTHORING.md.

Clone this wiki locally