Skip to content

Legacy Import

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

Legacy Import

Project → Import Legacy Theme… points at a folder that contains a Conky configuration and related files. Import is semantic: it builds an editable Studio graph, not a guaranteed pixel-perfect clone of every theme ever written.

It targets both older and current Conky syntax, with known limits.

What it converts

Input Result in Studio
*.conf / conkyrc Canvas size, alignment, gaps, timing; default_color / color0color9 / font when present; lua_load and draw hooks (where recognized)
conky.text / TEXT block ${goto} / offset / align layout (best-effort), fonts, palette colours, text / bars / lines
Common ${cpu}, ${memperc}, ${time}, ${battery}, ${downspeed}, … Shared native source nodes (deduplicated), wired into visuals when possible
${cpubar}, ${membar}, ${fs_bar}, ${cpugraph}, … Bar or History Graph + wired source
${hr} / ${stippled_hr} Horizontal line nodes
${execi} / ${exec} / ${execbar} Known scripts → family sources; otherwise Custom Script nodes
Cairo .lua from lua_load Custom Lua node(s): helpers + draw body; surface boilerplate adjusted toward Studio’s cr / W / H; asset paths rewritten when basenames match
Click regions in Lua Clickable markers with commands when detected
Shell scripts in the tree Custom Script nodes (or known mappings), including scripts only referenced from Lua

After import, sources are laid out in a left column and visuals sit near their draw coordinates so the graph is readable instead of one overlapping pile.

Important limitations

Limitation Detail
Not a Cairo decompiler Arbitrary drawing is not turned into Arc / Bar / Star nodes. Heavy custom Lua stays Custom Lua
Images & media ${image} and theme assets are best-effort. Missing files get a node + warning; pure-Lua themes keep images inside Custom Lua (bundled on Build), not as separate Image nodes you can wire into that Lua
${if_…} conditionals Stripped: content is kept, branching is not reconstructed
TEXT-only layout Positioning is approximate (cursor model, not full typesetting)
Pixel parity Expect ~70–90% of a typical theme’s structure in a useful graph; polish in Studio, then Build
Exotic vars (${top}, swap bars, …) Summarized in warnings or placeholder text — not full native nodes

Warnings after import are deduplicated and summarized. Read them; they call out approximations instead of flooding the dialog with one line per unknown token.

Recommended workflow

  1. Import the theme folder.
  2. Skim the warning list; fix Canvas size, alignment, and any missing wires.
  3. Re-add images / icons / album art as first-class visual nodes if you need Studio features (rotation, glow, threshold swap) on top of Custom Lua.
  4. Use Live Preview (same pipeline as export).
  5. Build & Install and test from Manager with start.sh.

After import, the project is a normal Studio graph: edit, preview, and export like anything created from scratch.

When not to expect miracles

  • Themes that are almost entirely one large hand-written Cairo file
  • Themes that depend on external binaries and absolute paths not present on your machine
  • Compositor-specific hacks that only worked on the author’s setup

Those still benefit from landing in Custom Lua + sources you can rewire, but the last mile is manual.

Clone this wiki locally