-
-
Notifications
You must be signed in to change notification settings - Fork 1
Node Reference Sources
Every source has one output socket (kind below). Properties are usually constants (device names, formats, poll settings), not bindable inputs.
Output kinds: percent · celsius · number · text · category
| Output | percent |
| core | enum — overall, cpu0…cpu7 (default overall) |
| Output | percent |
| Output | percent |
| mount_path | path (default /) |
| Output | percent |
| device | string (default BAT0) |
| Notes | Reports nothing (nil) on machines with no battery instead of a fake 0%/100%. |
| Output | number |
| core | enum — overall, cpu0…cpu7 (default overall) |
| Output |
text (human-formatted, e.g. 3.2GiB) |
| Output |
text (human-formatted, e.g. 16.0GiB) |
| Output | percent |
| Output |
number (KiB/s) |
| interface | string — auto or iface name (e.g., wlan0, eth0) |
| Output |
number (KiB/s) |
| interface | string — auto or iface name |
| Output |
text (cumulative, human-formatted) |
| interface | string — auto or iface name |
| Output |
text (cumulative, human-formatted) |
| interface | string — auto or iface name |
| Output |
text (SSID; empty when not wireless / not associated) |
| interface | string — auto or iface name |
| Output | percent |
| interface | string — auto or iface name |
auto resolves the first “up” interface under /sys/class/net at runtime (same approach as batcomputer.lua).
| Output | text |
| format | enum — short / long (default short) |
| Output | text |
| Output | text |
| Output | number |
| Output | text |
| rank | enum 1…10 (default 1) |
| Output | percent |
| rank | enum 1…10 (default 1) |
| Output | percent |
| rank | enum 1…10 (default 1) |
Conky ranks the top list by CPU regardless of which field you print; pair Name / CPU / RAM at the same rank for a “what’s eating my machine” row.
| Output | text |
| Notes |
Good Morning / Good Afternoon / Good Evening / Good Night from current hour (computed in Lua; no external script). |
| Output | text |
| strftime_format | string (default %A, %B %d %H:%M) |
All of these share Polling props:
| poll_mode | enum — execi (Conky ${execi}) or daemon (background loop + cache; zero-stutter) |
| poll_interval | int seconds |
| Output | celsius |
| script_family |
cpu_sensors → key cpu_temp
|
| chip_pattern | regex for sensors -u chip names (default coretemp/k10temp/cpu_thermal/zenpower) |
| poll_interval | default 3
|
| Output | percent |
| script_family |
gpu_stats → key gpu_util
|
| amd_drm_card | optional AMD DRM card override (blank = auto) |
| poll_interval | default 2
|
| Output | celsius |
| script_family |
gpu_stats → key gpu_temp
|
| amd_drm_card | optional AMD DRM card override |
| poll_interval | default 2
|
| Output | number |
| script_family |
gpu_stats → key gpu_vram_used
|
| amd_drm_card | optional AMD DRM card override |
| poll_interval | default 2
|
| Output | number |
| script_family |
gpu_stats → key gpu_vram_total
|
| amd_drm_card | optional AMD DRM card override |
| poll_interval | default 2
|
NVIDIA via nvidia-smi; AMD via sysfs gpu_busy_percent / hwmon. Nodes in the same script_family share one generated script and one cache file.
| Output | celsius |
| script_family |
disk_sensors → key disk_temp
|
| device | path (default /dev/sda) |
| poll_interval | default 30
|
| Notes | Usually needs permission to query the drive (smartctl). |
| Output | number |
| script_family |
fan_sensors → key fan_rpm
|
| poll_interval | default 3
|
| Notes | First non-zero hwmon*/fan1_input under /sys/class/hwmon. |
| Output | text |
| script_family |
public_ip → key ip
|
| poll_mode | default daemon
|
| poll_interval | default 1800 (30 min; min 60) |
| Notes |
icanhazip.com, fallback ifconfig.me. Requires curl. |
Shared props on all three:
| fallback_location | string — city / airport / City+State if IP geolocation fails |
| poll_mode | default daemon
|
| poll_interval | default 1800 (min 60) |
| script_family | weather |
| Output |
text (e.g. Partly cloudy) |
| key | condition |
| Output | category |
| key | category |
| Notes | Token: clear / cloud / overcast / fog / wind / rain / storm / snow / cold / hot / dust / unknown. Wire into Weather Icon or image threshold swaps. |
| Output |
number (°F) |
| key | temp_f |
| Notes | Convert with Map Range / Scale (or a Temp Convert plugin) for °C displays. |
Shared props:
| player | string (default spotify — whatever playerctl -l lists) |
| poll_mode |
execi / daemon
|
| poll_interval | default 2
|
| script_family | nowplaying |
Empty when nothing is playing (no stale data).
| Output | Controlled by Treat output as (output_kind): text, number, percent, celsius, category — must match what the script prints and what downstream sockets accept |
| script_path | Optional path to an executable; copied into the theme’s scripts/ at Build. Ignored when Inline script is non-empty |
| script_body | Inline script (monospace editor). If non-empty, written to scripts/ at Build and wins over Script path |
| output_kind | enum — how Studio treats the stdout value for binding |
| poll_mode |
execi or daemon
|
| poll_interval | default 5
|
| Notes | Print a single line to stdout (or simple key=value for structured use). Prefer Inline script when fixing a legacy import. Each instance is unique (not family-shared). In daemon mode the builder wraps it with the same flock + atomic cache harness. |
Behaviour: Script stdout is the source value. Daemon mode uses background polling + cache; execi uses Conky-native intervals. Missing/failed scripts yield empty or zero depending on kind.
| Source kind | Typical visual targets |
|---|---|
percent |
Arc gauge, Bar, Segmented Gauge, LED Dot, History Graph, Sparkline |
celsius |
Text (via format), gauges after Map Range / Scale to 0–100 |
text |
Text Label, String Format logic |
category |
Conditional / Pick / image swaps / Weather Icon |
number |
Bars after scaling, text via String Format or Scale |
Native sources need no background script. External sources that share a script_family are deduplicated into one script + one cache file at build time. Daemon-mode families (and every Album Art node) get a polling loop in start.sh.