Conky v1.23.0
Conky 1.23.0 improves graphical output behavior, Lua drawing support, X11 mouse handling, logging, and several security-sensitive network paths. This release also modernizes the website toolchain and includes memory-safety fixes around text objects and graph history.
Full Changelog: v1.22.3...v1.23.0
Upgrade Notes
conky_surface()is now the preferred Lua API for obtaining the current Cairo drawing surface. It works across graphical backends, including Wayland, and the older X11-specific Cairo surface API now emits deprecation warnings.own_window_colournow carries background opacity through its alpha channel. The olderown_window_argb_visual,own_window_argb_value, andown_window_transparentsettings are deprecated but remain backward-compatible, aside from corrected opacity resolution behavior.BUILD_ARGBwas removed; ARGB support is treated as part of the X11 path.BUILD_XINPUTwas removed; XInput2 is now used directly for X11 mouse input, and the legacy non-XInput2 fallback was removed.
Highlights Since v1.22.3
Lua and Graphical Output
- Added
conky_surface()for backend-neutral Cairo drawing from Lua, including Wayland support, and updatedconky_window.width/conky_window.heightfrom Wayland output (#2342). - Added
conky_window.pixel_size.x,conky_window.pixel_size.y, andconky_window.scalefor Lua scripts that need pixel-aware drawing (#2342). - Simplified window background alpha handling around
own_window_colourand fixed several compositor and opacity edge cases (#2344). - Fixed stale window width and height updates (#2345).
- Fixed graph gradient rendering (#2336).
X11 Mouse Input
- Corrected scroll direction handling by reading XInput2 valuator metadata instead of assuming fixed indices and signs (#2337).
- Fixed hit testing near moved or reparented windows by keeping root-relative geometry in sync (#2337).
- Reduced X11 mouse event overhead for multi-instance setups by avoiding unnecessary X server round trips when events fall outside the Conky window (#2337).
- Added an example mouse event configuration in
data/conky_mouse_events.conf(#2337).
Reliability and Diagnostics
- Replaced legacy stderr/debug macros with structured spdlog-based logging, runtime log levels, source locations, span context, and cleaner termination handling (#1899).
- Improved parser error recovery so invalid variables can be rendered literally instead of crashing in more cases (#1899).
- Fixed a double-free/use-after-free regression and moved more text object cleanup to standard ownership mechanisms (#2356).
- Fixed graph history leaks and replaced manual graph data storage with vector-backed ownership and stable data source keys (#2356).
- Made
execpcaching hash-based so scroll state persists across command output changes (#2348).
Security and Platform Fixes
- Hardened RSS, HTTP output, GitHub notification, and shared curl paths against unsafe buffer handling, unescaped browser output, token exposure, and overly permissive redirects (#2327).
- Tightened Darwin and Nix feature detection for curl, gettext, libmicrohttpd, and Objective-C++ build paths (#2327).
- Fixed Lua 5.5 GC API build compatibility (#2335).
- Parsed
XDG_CURRENT_DESKTOPas a colon-separated list, matching the desktop environment spec (#2360).
Journal and Website
- Fixed long-standing
journalobject issues, relaxed line-count argument handling, and modernized the implementation to reduce future parser bugs (#2355). - Migrated the website from npm/package-lock workflow to Bun and refreshed the related frontend tooling (#2328).
Pull Requests by Category
Features
- feat(lua): add
conky_surface()for creating Cairo surface on Wayland; updateconky_window.width/heightfrom Wayland (#2342) - Improve logging and termination (#1899)
Bug Fixes
- Harden network inputs and fix Darwin feature detection (#2327)
- fix(lua): fix build error caused by Lua 5.5 GC API changes (#2335)
- fix: Fixed rendering of gradients in graphs (#2336)
- fix(x11): mouse event handling - scroll direction, hit testing, XInput2 performance (#2337)
- fix(settings): simplify background alpha settings (#2109) (#2344)
- Update stale width and height values (#2345)
- Fix #2333: implement hash-based caching for execp to persist scroll state (#2348)
- fix: various tiny followups (#2351)
- Fix journal.cc issues (#2355)
- Fix double free; coalesce free(obj/free_at_crash) into core.cc; fix graph leak (#2356)
- fix(conky): parse XDG_CURRENT_DESKTOP as colon-separated list (#2360)
Build, Dependencies, and Maintenance
- refactor(web): migrate website to bun and modernize the stack (#2328)
- chore: bump version (#2325)
- fix: delete web dependabot (#2352)
- build(deps): bump the actions group across 1 directory with 11 updates (#2353)
- chore: bump version (#2361)