Conky widget · Lua + Cairo
conky-cores detects both logical CPUs and physical cores, groups SMT threads, and shows each core with a rolling graph, the current load, and the current frequency in a translucent liquid-glass style.
01 — What it shows
Each core cell includes a tiny graph, the current workload, and the current clock speed, arranged automatically based on the CPUs detected at startup.
The widget uses nproc and lscpu to detect logical CPUs, physical cores, and thread grouping.
Threads are grouped by physical core and shown as “Core X” or “Core X - Thread Y” instead of treating every CPU as a separate core.
Each cell shows a rolling graph, the current load percentage, and the current frequency in GHz.
Rows, spacing, vertical alignment, and a debug canvas overlay are all configurable from the Lua settings.
02 — Requirements
Conky with Lua and Cairo support is the main requirement, plus the standard Linux tools that expose CPU information.
| Requirement | Why |
|---|---|
| Conky | Runs the widget and renders the window. |
| Lua + Cairo | Draws the glass panels, text, and graphs. |
| nproc | Detects the number of logical CPUs to display. |
| lscpu | Improves physical-core detection and the header readout for “Cores / Threads”. |
| /proc/cpuinfo | Provides the CPU model shown in the header. |
03 — Install
git clone https://github.com/wim66/conky-cores.git
cd conky-cores
./autostart.sh
Or launch it directly with conky -c ./conky.conf.
If needed, adjust the window placement and size in conky.conf so the widget fits your desktop layout.
04 — Configuration
Most tweaks live in the CFG table near the top of widget.lua.
Core layout
| Setting | Default | Purpose |
|---|---|---|
| cores_per_row | 2 | Changes how many core boxes appear next to each other before wrapping to the next row. |
| graph_history_length | 60 | Controls how many samples are kept in the rolling graph history. |
| vertical_align | "top" | Lets you align the content block at the top, middle, or at a fixed pixel value. |
| debug_show_canvas | false | Shows a canvas-size overlay that helps tune the window height. |
Appearance
| Setting | Default | Purpose |
|---|---|---|
| glass_base_color | 0x08081A | Sets the base tint of the glass panels. |
| glass_base_alpha | 0.35 | Adjusts the opacity of the background layer. |
| colors.text | 0xDCE142 | Changes the text color used for the core information. |
| corner_radius | 10 | Tunes how rounded the card corners appear. |