Conky v1.25.0
Conky v1.25.0 reworks output backend selection around a new output_backend setting with display-session detection, restores desktop-widget behavior on Wayland, extends the NVML NVIDIA backend with encoder/decoder and PCIe throughput metrics, and adds a systemd-logind fallback for ${user_names} and ${user_terms} on systems without utmp.
No breaking configuration changes are expected for existing Conky configs: the old out_to_* settings are honored as hints, and the own_window_colour to own_window_color and xftalpha/fontalpha to font_alpha renames are handled with backwards compatibility.
Full Changelog: v1.24.2...v1.25.0
Highlights Since v1.24.2
Output Backend Selection
- Added an
output_backendsetting that replaces the oldout_to_*settings. The old settings are kept as hints:out_to_xis ignored when running on Wayland unlessoutput_backend = "x11"explicitly opts into XWayland. When no backend is selected, Conky picks the most appropriate one from the display session instead of relying on compile-time flags. This fixes #2295 and #2240, and may also address #2340 (#2414). - Unified
xftalphaandfontalphaunder a singlefont_alphasetting, and renamedown_window_colourtoown_window_color, both with backwards-compatible handling of the old names (#2414). - Removed state mutation from the
out_to_x,out_to_ncurses, andout_to_httpLua settings as groundwork for the backend heuristic, and improved session detection by inferring X11/Wayland sessions fromDISPLAY/WAYLAND_DISPLAYwhenXDG_SESSION_TYPEis unset (#2407). - Fixed missing
x11.hincludes that were previously pulled in transitively and broke some builds (#2408, #2409).
Wayland
- Made
own_window_hintsavailable on Wayland builds and used the hints to guide the shell role:below/abovewindows mount aswlr-layer-shellsurfaces instead of toplevels, restoring the pre-1.24.2 desktop-widget behavior while keeping layer choice configurable (#2404, #2405). - Added an
own_window_namespacesetting (default"conky", unchanged behavior for existing configs) for the layer-shell namespace, so KDE Plasma users can set e.g.own_window_namespace = 'desktop'to stay visible during Show Desktop (Meta+D) (#2432, #2435). - Fixed Conky blocking forever in
wl_display_dispatchwhile waiting for buffer-release events by moving Wayland communication into the SHM surface destructor chain (#2411, #2412). - Guarded SHM surface creation against invalid buffer dimensions (negative stride, non-positive length, nil Cairo surfaces) instead of segfaulting on resize (#2431, #2434).
- Added fallback to
ftruncate()whenposix_fallocatefails withEOPNOTSUPP/ENOSYS/ENOTSUP(e.g. FreeBSD/ZFS); other errors keep the existing hard-fail behavior (#2430, #2455).
X11
- Stopped selecting XI2 button press/release events on desktop-type windows unless
lua_mouse_hookis configured, so clicks pass through to the windows below instead of being misrouted through Conky's manual event replay (#2451, #2454). - Documented the alpha-first
#AARRGGBB8-digit form ofown_window_colorwith an example (#2449, #2456).
NVIDIA (NVML Backend)
- Added
videodecutilandvideoencutilquery attributes exposing separate NVDEC/NVENC utilization counters (#2410). - Added
pciethroughputtxandpciethroughputrxquery attributes for PCIe transmit/receive throughput (#2416).
Users and Sessions
- Added a systemd-logind fallback for
${user_names}and${user_terms}on systems where utmp is unavailable (e.g. Ubuntu 25.04+, which dropped utmp for the Y2K38 problem) (#2252, #2425).
Text Objects and Hardware Monitoring
- Made
percent_printpad to at least 3 columns whenuse_spacerisleft/right, so${cpu}and other percentage values align like other spaced sensors, and corrected thepad_percentsdocs (field width, not decimal precision) (#2078, #2444). - Handled power entries now exposed under
/sys/class/hwmonon newer kernels: microwatt values are converted to watts and always printed as integers (#2445).
Toolchain and Build
- Moved the codebase to C++20 and enabled
-Wpedanticin maintainer mode, fixing the stricter-check issues this surfaced (#2403). - Removed the
BUILD_HSV_GRADIENT,BUILD_LIBXML2, andBUILD_MIXER_ALSAflags, which could not affect the build (five deletions, no additions) (#2440).
Pull Requests by Category
Features
- feat(wayland): honor own_window_hints via layer-shell (#2405)
- nvidia_nvml: add video encoder and decoder utilization metrics (#2410)
- feat: display output backend heuristic (#2414)
- nvidia_nvml: add PCIe throughput monitoring (#2416)
- feat: add own_window_namespace config setting for wlr-layer-shell (#2435)
Bug Fixes
- fix: add missing x11.h imports (#2409)
- fix(wayland): blocking forever in wl_display_dispatch (#2412)
- Fix utmp issue 2252 (#2425)
- fix: wayland: guard shm surfaces against invalid buffer dimensions (#2434)
- fix(text): honor use_spacer for percentage values (#2078)
- hwmon/i2c/platform: properly handle power entries (#2445)
- fix(x11): skip XI2 button grab on desktop windows without mouse hook (#2454)
- fix(wayland): fall back to ftruncate when posix_fallocate unsupported (#2455)
Misc
- chore: bump version to v1.24.3 (#2400)
- build(deps): bump the actions group with 2 updates (#2402)
- chore: switch to C++20; enable -Wpedantic (#2403)
- refactor: remove init code from Lua backend settings (#2407)
- build(deps): bump actions/cache from 5 to 6 in the actions group (#2417)
- build(deps): bump the actions group across 1 directory with 3 updates (#2428)
- build: remove BUILD_HSV_GRADIENT, BUILD_LIBXML2 and BUILD_MIXER_ALSA, which have no effect (#2440)
- chore: relax mise config (#2453)
- docs: document #AARRGGBB 8-digit form for own_window_color (#2456)
New Contributors
- @evgeniy-harchenko made their first contribution in #2410.
- @Strykar made their first contribution in #2440.
- @sniper1720 made their first contribution in #2434.
- @rwinkelman made their first contribution in #2444.
- @Komal-ai417 made their first contribution in #2425.