Skip to content

Legacy Import

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

Legacy Import

Project → Import Legacy Theme… points at a theme folder (you can see normal and hidden files in the browser while choosing it). 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 (path + Inline script preloaded when the file is small enough to edit in Properties)
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. Nodes expose Input 1–6 so you can wire Studio sources/logic instead of broken shell/conky_parse paths
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; small files open as Inline script for in-panel editing

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. Studio then Build & Installs into the Manager install root so you can Start from Manager.

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 (browse shows files + hidden entries; selecting a file uses its parent folder).
  2. Skim the warning list; fix Canvas size, alignment, and any missing wires.
  3. For Custom Lua: wire CPU / sensors / Math (or other sources) into Input 1–6 and use in1in6 in the Lua instead of dead paths.
  4. For Custom Script: edit Inline script in Properties when the import preloaded a body, or point Script path at a fixed file.
  5. 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.
  6. Use Live Preview (same pipeline as export).
  7. Confirm 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 (via Input 1–6), but the last mile is manual.

Clone this wiki locally