Skip to content

Features

Bobby Comet edited this page Aug 23, 2026 · 8 revisions

Features

Everything Conky Studio is built to do, grouped by area.


Product promise

Feature What it means
Visual system design Build HUDs as a node graph (sources → logic → visuals), not only by hand-editing conf/Lua
1:1 live preview Preview runs a real Conky process on the same generation pipeline as Build — not a mock canvas
Production export Output is a normal theme folder: start.sh, conky.conf, render.lua, scripts, assets
Portable projects Save as .cstudio packages (project.json + assets + manifest); relative paths travel with the graph
No root required for Studio AppImage-style use; no sudo/pkexec required to run the editor (Conky itself is still your system’s package)
Session-aware Detects X11/Wayland, compositor, Conky build, sensors, GPU, monitors; preflights Live Preview/Start

Application shell

Feature Detail
Manager tab Lists themes under ~/.config/conky / ~/.conky; Start/Stop via each theme’s start.sh; open folder; edit README + theme.json; install/export zip; uninstall
Studio tab Full editor: palette, canvas, properties, layers, windows, live preview, position stage
Store tab Theme Vault (browse/link-out catalog) + OpenDesktop/Pling (OCS search + install into ~/.config/conky/)
Project menu New HUD (wizard), New Blank HUD, Open/Save (.cstudio or legacy JSON), Build to Folder, Build & Install, Import Legacy Theme
Tools menu Hardware & Session report, Install Font, Plugins
Help menu Getting Started, Learn Studio, Learn Theme Wizard, Take the Full Tour (Wizard → Studio → Manager → Store), Support
Theme Wizard on launch Optional first-run / every-launch wizard; “Do not show again” preference
Undockable panels Nodes, Layers, Properties, Windows, Live Preview, Position Stage as docks

Studio editor

Canvas & graph

Feature Detail
Node graph Drag nodes, connect sockets, delete selection
Pan/zoom Drag empty space to pan; Ctrl+scroll to zoom
Multi-select Shift + rubber-band
Socket wiring Output (sources/logic) → bindable inputs; kind-aware socket colours
Data-flow highlight Selecting a node emphasizes related wires
Groups Multi-select → group; collapse/expand; rename; members move with frame; editor-only
Free-form labels Canvas annotations; double-click to edit; editor-only
Context menu Delete, group, ungroup, collapse, labels
Canvas node Window size, alignment, gaps, FPS, stats Hz, transparency, window type

Palette, properties, layers, windows

Feature Detail
Categorized palette Data Sources/Logic/Visuals/Canvas Extensions; collapsible sections; Simple vs Complex; search; drag or double-click to add
Property panel Typed editors (float, int, bool, color, string, enum, font, path, code); groups; help text
Bindable properties Constants or live wires; unbind when connected
Layers dock Visuals only: drag-reorder (top = drawn last); eye (hide → skipped in codegen); lock (no canvas move)
Windows/Monitors dock Multi-window projects; pin each window to a monitor output; per-window size/alignment
Position Stage Drag visual proxies on a plane the size of the Conky window; fine-tune X/Y in Properties
HUD/project name Must be space-free (hyphens); becomes install folder name on Build & Install

Preview & iteration

Feature Detail
Live Preview Start/Stop Real Conky on a scratch build of the current graph
Debounced rebuild Graph changes schedule a restart (~350 ms); graceful SIGTERM before SIGKILL to avoid BadWindow races
Window selector When the project has multiple windows, choose which conf Live Preview runs
Session preflight Blocks or warns (GNOME Mutter Wayland, missing Conky, X11-only binary, etc.) with concrete guidance
Log + hints Conky stderr/stdout in the panel; known errors annotated with [hint] lines
Daemon cache priming One synchronous run of daemon-mode scripts so preview shows real values immediately

Theme Wizard

Feature Detail
Categories Minimal, Gaming, RPG, Sci-Fi, Cyberpunk, Terminal, Fantasy, Arkhamos (and similar)
Resolution presets 1920×1080, 2560×1440, 3440×1440, 3840×2160, etc
Panels Weather, CPU, GPU, RAM, Disk, Battery, Network, Clock, Calendar, Music, Moon, System, …
Complexity tiers Simple (signature element only), Full (chrome + real Source → Logic → Visual demo chain), Showcase (orbits, per-core strip, top table, footer ticker, signature flourish, etc)
Extras toggles Chrome, brackets, LEDs, graphs, glow, gradient fills, secondary gauges, smooth motion, signature effect, orbit, core strip, top table, footer ticker
Learning-tool default Sensor nodes default to execi so you can see stutter; tour teaches switching to Background daemon for zero-stutter HUDs
Starter graph Full editable project; not a locked template; rename with hyphens before Build & Install
In-dialog tour “Take the tour” after picking a category; full-app guided tour pre-selects Minimal + Showcase

Data sources

Feature Detail
Native system sources CPU, RAM, disk, network, uptime, hostname, kernel, processes, battery, date/time, etc
GPU/sensors GPU util/temp/VRAM, CPU/board temp, fan RPM, disk temp (lm-sensors/nvidia-smi/smartctl where available)
Weather Category, condition, temp; daemon-friendly poll defaults
Music/now playing playerctl-oriented path
Custom Script Any executable; poll interval; execi or daemon (background + cache)
Source plugins Community JSON packs that add new polled sources (same harness as Custom Script)
Unused sources omitted Codegen skips sources not wired into the graph

Logic

Built-ins sit between sources and visuals (dependency order each refresh). Examples:

Area Examples
Math Math ops, scale/offset, invert percent, absolute, round, etc
Rules Conditional, threshold, hysteresis, AND/OR, pick A/B, etc
Range / smooth Map range, clamp, lerp, deadzone, EMA smooth
Format String format, string join, enum map

Plugins can add more without core changes.


Visuals

Area Examples
Text Text label, text list, wall calendar
Gauges & bars Arc/ring gauge, bar variants, reactor gauge, ring track, LED, segmented, etc
Graphs History, sparkline, multi-series, radar, top table
Effects Glow/pulse, spiral, matrix rain, orbit field, equalizer, fan, vinyl, signature flourishes
Shapes Rectangle, lines, brackets, crosshair, stars, triangle, circle/arc/pie, etc
Media & icons Image/Icon (PNG/SVG + threshold swaps), weather icon, album art
Advanced Custom Lua — full Cairo in the shared draw path (cr, W, H)
Feature Detail
Colour Colour picker for visuals
Gradients Linear/radial fills when enabled
Click actions Explicit regions → shell command on click
Draw order Layers dock (and node z)
Visibility/lock Hide (skipped in codegen) or lock (no canvas move)

Multi-window & multi-monitor

Feature Detail
Multiple Conky windows One project can emit several own_windows (primary + extras)
Monitor pin auto / primary / concrete output (DP-1, HDMI-A-1, etc) from xrandr / wlr-randr
Per-window geometry Size, alignment, gaps, FPS, window type
Optional per-window node lists Limit which visuals appear on a given window
Live Preview window combo Pick which window conf the preview process runs
theme.json monitor Manager can inject xinerama_head at Start when pinned

Code generation & runtime output

Feature Detail
conky.conf Window and update settings from Canvas/windows
render.lua Framework + per-node draw/logic emission
start.sh Single-instance lock, optional background pollers, then conky -c …
scripts/ Generated or copied helpers for daemon/execi sources
images/ · fonts/ Assets as required by the graph
theme.json Metadata for Manager/Store (name, author, resolution, requires, tags, monitor, etc)
README.md Human notes; editable from Manager
Independent processes Themes keep running after Studio quits
Minimal start.sh for third-party themes Archive install writes a launcher when the theme had none

Build to Folder vs Build & Install; same generator. Install targets the tree Manager scans.


Theme Manager

Feature Detail
Discover themes Scans ~/.config/conky and related roots
Start / Stop Runs each theme’s start.sh (Studio need not stay open)
Archive install Drop .zip / .tar.gz or use Install; auto-adds start.sh when missing
Export / Duplicate / Uninstall Package or remove selected themes
README + theme.json editors In-place metadata for the library list
Refresh Rescan after external changes

Store & community

Feature Detail
Theme Vault Static catalog (official + community manifests); browse, filter by host, open link/README; install when host is GitHub (latest Release) or Pling / openDesktop (OCS)
OpenDesktop/Pling (OCS) Live search, categories, install into ~/.config/conky/
ocs:// / ocss:// handling Parse + install; single-instance forward to a running Studio
GitHub releases Theme Vault prefers release assets; falls back to tag source archive (never a guessed branch)
Trust model Link-out for unknown hosts; scripts run on your machine like any other Conky theme

Plugins

Feature Detail
JSON packs only Metadata + Lua (or bash) templates; no plugin Python
Categories logic, visual, source (polled script), canvas_ext (allowed conky.conf directives only)
Local + remote ~/.config/conky-studio/plugins/; Fetch catalog; explicit Install/Uninstall; installed list survives restart
Validation id shape, kinds, placeholder coverage; validate_only for authors
Icons/media metadata Optional icon (palette); screenshot/gif/video for store sites
Trust model Same privileges as theme scripts inside Conky

Portable packages (.cstudio)

Feature Detail
Self-contained zip project.json + manifest.json + assets/{images,fonts,scripts}/
Relative paths External images/scripts/fonts rewritten into the package on save
Legacy JSON still opens Next Save can upgrade to .cstudio
Work tree cache Extracted under ~/.cache/conky-studio/packages/ for continued editing

Legacy import (beta)

Feature Detail
Folder import Point at a theme with conf/TEXT/Lua/scripts
Native sources from ${…} Common vars → source nodes and wires
exec → Custom Script or known families Best-effort
Lua → Custom Lua node(s) Heavy Cairo stays text, not decompiled into gauges
Click regions When detected

Limitations (by design): not pixel-perfect; images/media not fully turned into image nodes; ${if_…} simplified; finish in Studio, then Build.


Hardware, session, fonts

Feature Detail
Hardware & Session report Display server, desktop, layer-shell likelihood, Conky install/version/Wayland, monitors, GPU, net, disks, sensors
Distro-aware install hints Missing lm-sensors/playerctl → exact apt / dnf / pacman / … commands from /etc/os-release
Monitor enumeration xrandr/wlr-randr → UI choices for window pinning
Log diagnostics Map known Conky/X errors to user guidance
Font installer Tools → Install Font → ~/.local/share/fonts + fc-cache
Adaptive guidance Severity ok / warn / block before Live Preview and Start

Onboarding & docs in-app

Feature Detail
Getting Started dialog Long-form in-app guide
Learn Studio/Learn Theme Wizard Spotlight tours
Take the Full Tour End-to-end: Theme Wizard → Studio (palette, poll modes, naming, canvas, layers, properties, windows, preview, position stage, save vs build) → Manager → Store
Support dialog Discord + developer YouTube
Wiki FAQ, features, sharing, store, plugins, import, troubleshooting, compatibility

Compatibility snapshot

Area Stance
X11 Most predictable for desktop HUDs
Wayland Plasma + wlroots compositors with a Wayland-built Conky; GNOME Mutter Wayland cannot host overlays
Conky builds Some packages are X11-only; Studio detects and warns
Music Needs playerctl + an active player
Plugins/absolute paths Main pitfalls when sharing JSON instead of built folders or .cstudio

What Studio is not

  • Not a screenshot-only toy or locked theme pack
  • Not a full reverse-compiler of arbitrary Cairo into discrete gauge nodes
  • Not a fix for compositors that refuse desktop overlays
  • Not a replacement for reading Hardware & Session when the environment is the bottleneck

It is a way to design real Conky themes faster, preview them truthfully, and export files Conky already understands.

Clone this wiki locally