1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-11-16 18:15:17 +00:00
Commit Graph

2796 Commits

Author SHA1 Message Date
bi4k8
dab87c5246
Fix memory leaks in X11 display backend (#1483)
* display-x11: fix memory leaks

FcFini() was never being called, which meant FontConfig did not clean up its internal storage.

furthermore, restore a commented-out call to XftFontClose()

9acf0bb4c commented this call out, but it does not seem to cause any problems now on reload now

* feat: Move docs to website, rearrange bits (#1475)

* build(deps): bump actions/stale from 7 to 8 (#1472)

Bumps [actions/stale](https://github.com/actions/stale) from 7 to 8.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add fontconfig platform checks

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: bi4k8 <bi4k8@github>
Co-authored-by: Brenden Matthews <brenden@brndn.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Brenden Matthews <github@brenden.brndn.io>
2023-03-31 12:54:20 -04:00
bi4k8
3b1c9a7cc1
ncurses color fixes (#1482)
* specials: avoid duplicating color specials when both ncurses and a graphical output are enabled

* ncurses: fix black

we previously used the ncurses color as the id for its color pair, but this scheme needs to be shifted by one to avoid using the invalid 0 color-pair id for black (color id 0)

---------

Co-authored-by: bi4k8 <bi4k8@github>
2023-03-31 12:52:59 -04:00
bi4k8
4a40eef51a
display-output: allow no outputs (#1481)
some users rely on this behavior, which quietly changed in 281097a2a5

Co-authored-by: bi4k8 <bi4k8@github>
2023-03-31 12:52:48 -04:00
bi4k8
30eda7e5d0
colours: parse 3-digit colour specifications again (#1480)
Co-authored-by: bi4k8 <bi4k8@github>
2023-03-31 12:52:37 -04:00
bi4k8
2fb7d47039
gradients: fix saturation/luma calculations for 32-bit systems (#1470)
* gradients: fix saturation calculation for 32-bit systems

this multiplication has two 512 scale factors as well as 360 and a color difference of up to 255. as such, it can overflow 32 bits, which results in an incorrect saturation value being computed

cast to uint64_t so we have enough bits to multiply without overflow

* gradients: fix luma calculation for 32-bit systems

this multiplication has 0-255 colors at 512 scale factor being multiplied by 10000 (summed across components), then multiplied by 360

this multiplication (360 * 10000 * 255 * 512) overflows a long on 32-bit systems, computing the wrong luma value

cast to uint64_t so we have enough bits to multiply without overflow

---------

Co-authored-by: bi4k8 <bi4k8@github>
2023-03-25 08:28:10 -04:00
bi4k8
566fbe7187
Fix and test graph parsing (#1447)
* specials: comment all parser cases

* specials: scan_graph: early-return if args is null

* specials: fix logic in scan_graph

* tests: add scan_graph parsing test

* specials: separate command parsing from graph parsing

this simplifies the implementation of graph parsing and makes it less ambiguous to parse graphs in contexts where commands are not expected

* specials: tweak comments in scan_graph

* tests: update for scan_command separation

---------

Co-authored-by: bi4k8 <bi4k8@github>
2023-03-05 19:25:56 -05:00
bi4k8
8f0a21bcc0 colours: cache X11 pixel values
now that we allocate these as-needed when converting colours to the X11 representation, we need to avoid reallocating the same colour over and over; cache them so we only allocate each colour once
2023-03-04 11:00:35 -05:00
Brenden Matthews
55947d0182 Don't prefix mouse hook with conky_ twice.
This fixes #1438.
2023-02-28 22:37:31 -05:00
Brenden Matthews
de3bd0c2eb Add some colour tests. 2023-02-24 19:41:02 -05:00
Brenden Matthews
a39015b7bd
Apply clang-format. 2023-02-24 08:43:15 -05:00
Brenden Matthews
a21a8f7d26 Build fixes for strict checks.
This fixes #1419.
2023-02-24 08:35:13 -05:00
bi4k8
4a7bec5ba6
Premultiply background colors for X11 (#1421)
* initialize XColor/XftColor

this does not change behavior, but avoids passing uninitialized data to X/Xft functions

* gui, x11: move have_argb_visual to x11 files

this variable only has meaning with respect to X11

* x11: clear have_argb_visual if the setting changes to false

otherwise, we may try to use colors with alpha when we no longer requested a 32-bit visual

* x11: premultiply alpha of background colors

* x11: clean up set_foreground_color a bit

---------

Co-authored-by: bi4k8 <bi4k8@github>
2023-02-24 08:13:48 -05:00
bi4k8
5e98c49c4c
use new Colour type for specials and gradients (#1418)
* gradient, colours: use 24-bit colour depth internally on Wayland

our Colour type assumes this anyway; lower colour depth should be handled by display backends

* core: restore gradient color computation

this was mistakenly disabled when moving to a unified Colour representation

* core, gradient: use Colour type

* tests: gradient: always test hsv/hcl

colour computations no longer depend on the display backends we compile with, so these can be tested unconditionally now

* gradients, specials: use Color type

this makes specials now accept color names as well as hex codes, and removes all notions of color depth from gradient calculations

---------

Co-authored-by: bi4k8 <bi4k8@github>
2023-02-24 08:13:19 -05:00
Brenden Matthews
f3b7b1f189
Unbreak Xinerama config loading. (#1408)
This resolves #1364 and #1372.
2023-02-18 09:34:53 -05:00
Brenden Matthews
06f000d9da
Enable GCC 12 in actions, fix warning. (#1407)
* Enable GCC 12 in actions, fix warning.

This resolves #1406.
2023-02-18 08:33:11 -05:00
tranquillity-codes
4b8d5eb34a
Add an above-all overlay mode for own_window_type, utility (#1402)
* Add libXdamage to flake.nix

* Add TYPE_UTILITY as above-all alternative to TYPE_OVERRIDE

* Click-through for TYPE_UTILITY

* Added libxfixes to MacOS CI workflow

* Disable building of XFIXES on MacOS

* Fix build for xinerama/xfixes on macos.

* Update Lua version check.

* Tidy this up.

* Fix BUILD_XFIXES on Linux

* Sigh, fix this.

---------

Co-authored-by: tranquillity-codes <dev@itycodes.org>
Co-authored-by: Brenden Matthews <brenden@brndn.io>
2023-02-16 22:03:14 -05:00
Brenden Matthews
4807d3c68d Fix a couple security nits from codeql
See:
- https://github.com/brndnmtthws/conky/security/code-scanning/1
- https://github.com/brndnmtthws/conky/security/code-scanning/2
- https://github.com/brndnmtthws/conky/security/code-scanning/3
2023-02-14 21:43:45 -05:00
bi4k8
fe27753929 move color settings to their own file
these settings are used for GUI builds as well as ncurses builds, and if we support colors in console and HTTP output, will be used there too

colors really are essential to what Conky does, even if some outputs don't support them, so it makes sense to build support for them unconditionally
2023-02-06 10:15:34 -05:00
bi4k8
9b2706fc49 build x11-color.cc for any GUI, not just wayland
we should actually build this for ncurses and html backends too, not just GUI ones
2023-02-06 10:15:34 -05:00
bi4k8
9ab51edf9f ncurses: allocate custom colors
color0-9 will now use their configured RGB values exactly
2023-02-06 10:15:34 -05:00
bi4k8
d51bf688ba ncurses: call init_pair immediately before using colors
this allows using color0, etc. in ncurses; the nearest available ncurses color will be used
2023-02-06 10:15:34 -05:00
bi4k8
9cc4b083fc core: avoid argb32 roundtrips when calling set_current_text_color 2023-02-06 10:15:34 -05:00
bi4k8
ec24079a3a remove x11 dependency for color parsing
this means we can use the same, portable color-parsing code
everywhere, including ncurses
2023-02-06 10:15:34 -05:00
bi4k8
a72902fa35 add Colour type and use it pervasively 2023-02-06 10:15:34 -05:00
bi4k8
d3e9bcbe71 wayland: use arithmetic instead of wrong-endian memcpy
this fixes corruption of parsed colors in Wayland-only builds
2023-01-04 07:59:33 -05:00
bi4k8
31b4c27abc use ARGB, not RGBA, for Wayland color values
this impacts only colors from which we compute Cairo colors, not the
rendered pixel buffers themselves, which were already and remain
ARGB32.

this makes Wayland and (24-bit) X11 use the same representation of
colors, fixing bugs when both backends were enabled.

we should still eventually switch to a backend-independent color
representation, because there are no guarantees of which pixel format
X11 will use (it isn't alway ARGB32) and backends like ncurses have
their own color representation; in most code we just hope the
unsigned long will be interpreted by the same backend as wrote it.
2023-01-03 08:35:23 -05:00
bi4k8
1c95c6d577 wayland: trigger window resize when scale changes
scale changes are applied by window_resize, so we need to make
sure it gets called when the scale has changed.
2023-01-03 08:34:35 -05:00
Tin Švagelj
7fbdfbd4d4
Added mouse events to conky (#955)
* Add mouse events.

Signed-off-by: Tin Svagelj <tin.svagelj@live.com>

* Rename MOUSE_EVENTS flag to BUILD_MOUSE_EVENTS.

Signed-off-by: Tin Svagelj <tin.svagelj@live.com>

* Update NORM_ERR func argument from std::string to char*

Because func was previously char* I forgot to update NORM_ERR function
argument to `func.c_str()` not that it's std::string.

Previously func was pointing to std::string memory that was freed at
assignment.

Signed-off-by: Tin Svagelj <tin.svagelj@live.com>

Signed-off-by: Tin Svagelj <tin.svagelj@live.com>
2023-01-01 12:39:57 -05:00
Brenden Matthews
0e61013ac9 Fix these warns. 2022-12-27 09:15:29 -05:00
Brenden Matthews
3e827ba82f Fix this def. 2022-12-27 09:15:29 -05:00
Brenden Matthews
00a16a776c Adjust these buffer sizes. 2022-12-27 09:15:29 -05:00
Brenden Matthews
61e8550615 Fix string dest length. 2022-12-27 09:15:29 -05:00
Brenden Matthews
9bf55cfbfd Drop this message. 2022-12-26 13:21:40 -05:00
Brenden Matthews
ffd34a4fc0 Fix missing settings fail. 2022-12-26 13:21:40 -05:00
Brenden Matthews
c28ad36c4c This is superfluous. 2022-12-26 13:21:40 -05:00
Brenden Matthews
59513b4c65 Add this back. 2022-12-26 13:21:40 -05:00
Brenden Matthews
c48df06359 Fix (some) wayland/x11 init ordering issues. 2022-12-26 13:21:40 -05:00
Brenden Matthews
15aa99836b Add missing unistd include. 2022-12-25 07:52:05 -05:00
Brenden Matthews
dd07a838c4 Build fixes for newly introduced Wayland support. 2022-12-24 11:29:19 -05:00
Brenden Matthews
7247a4c1e6 Fix some include ordering/build stuff. 2022-12-24 10:36:31 -05:00
Brenden Matthews
76b0f049bc
Apply clang-format. 2022-12-24 09:44:03 -05:00
bi4k8
a585e36d93
wayland: permit unused parameters
the Wayland callbacks have many params that we don't use; it isn't worthwhile to individually annotate these
2022-12-24 09:42:04 -05:00
bi4k8
a6c52ee73f
wayland: clamp text width 2022-12-24 09:42:03 -05:00
bi4k8
6b0c194515
x11: do not treat init failure as fatal with Wayland 2022-12-24 09:42:03 -05:00
bi4k8
b556f17648
x11: early-return from use_xdbe_setting::set_up if X11 not initialized 2022-12-24 09:42:03 -05:00
bi4k8
1eb88aeb43
x11, imlib2: early-exit in some X functions if X is not available at runtime 2022-12-24 09:42:03 -05:00
bi4k8
a30cc64a98
x11: update x11.cc for functionality moved into gui.cc 2022-12-24 09:42:03 -05:00
bi4k8
8973b58299
gui: remove background_color from gui.cc and window_type/window_hints from gui.h 2022-12-24 09:42:03 -05:00
bi4k8
2a4f5216c1
x11, gui: update display-x11.cc to account for some code moved into gui.h/gui.cc 2022-12-24 09:42:03 -05:00
bi4k8
5859d76741
core: fix misbehavior in specials handling that fails badly with Wayland backend 2022-12-24 09:42:03 -05:00
bi4k8
d183ad3f6f
core: fix segfault when no display outputs are enabled 2022-12-24 09:42:02 -05:00
bi4k8
d856e397d7
core: fix right-alignment with wayland
I'm not sure why this is necessary (or what it might break), but it seems to work
2022-12-24 09:42:02 -05:00
bi4k8
343f4545cd
wayland: rework window destruction/resizing 2022-12-24 09:42:02 -05:00
bi4k8
0b00ff487f
wayland: respond to xdg_wm_base.ping 2022-12-24 09:42:02 -05:00
bi4k8
03d9c25491
wayland: fix crash after 5 minutes 2022-12-24 09:42:02 -05:00
bi4k8
65f4d4f7eb
colours: define manually_get_x11_color for usage outside X11 2022-12-24 09:42:02 -05:00
bi4k8
e914128c32
colours: parse X11 colors under Wayland 2022-12-24 09:42:02 -05:00
bi4k8
35b874de65
wayland: switch to zwlr_layer_shell_v1 and implement proper window placement
this vendors the wlr-layer-shell-unstable-v1 protocol XML file
2022-12-24 09:42:02 -05:00
bi4k8
4c71e4527b
wayland: implement buffer scaling 2022-12-24 09:42:01 -05:00
bi4k8
9ce6ffbb87
wl: declare desktop/monitor info functions as weak symbols
these are implemented on both Wayland and X11, as stubs on the former. we need
to properly dispatch these based on the backend, but for now this resolves the
conflict
2022-12-24 09:42:01 -05:00
bi4k8
d11742ae18
build, colours, core, gui, wayland, wl, x11: implement wayland display backend 2022-12-24 09:42:01 -05:00
Brenden Matthews
4622c0e336 Change assert in set_font to check w/ debug.
This resolves #1292.
2022-12-24 09:35:30 -05:00
Gene Carlson
4e45224c9e src/common.cc: Fix accidental whitespace change 2022-12-24 08:55:20 -05:00
Gene Carlson
14bae13f81 FreeBSD: Additional memory reporting variables. 2022-12-24 08:55:20 -05:00
bi4k8
f3ffd17007 linux: remove nonsensical ip_addr loop break cond
This checks if a pointer offset from a heap-allocated buffer is NULL,
which is only true if the buffer is NULL and the offset is zero.

It appears to be attempting to check if an entry in an array of
pointers is zero before dereferencing that entry, but the SIOCGIFCONF
ioctl actually writes `struct ifreq` entries (not pointers to them)
into the `ifc_buf` buffer.

Furthermore, because `ifc_buf` is in a union with `struct ifreq
*ifc_req`, we can simply access `ifc_req` instead of casting `ifc_buf`
each time.
2022-12-12 14:39:49 -05:00
François Revol
990c8277a5 X11 cleanup: Some more obvious BUILD_X11 -> BUILD_GUI 2022-12-09 11:23:23 -05:00
François Revol
7bbf948fc3 X11 cleanup: out_to_x -> display_output()->graphical() 2022-12-09 11:23:23 -05:00
Johannes Halaoui
de298f0d80 Add an option to disable storing graph data explicitly
This option (store_graph_data_explicitly) can be disabled to use graphs
indirectly via execpi or lua_parse. Otherwise the graph stays empty. The
default value is true to keep avoiding resets while using conditional
colors.
2022-12-07 11:28:00 -05:00
Rafał Lalik
63f3f8a526 Fix releasing of nv displays 2022-10-14 09:03:57 -04:00
Rafał Lalik
268906b957 Fix ternary operator bug with implicit true value assignment 2022-10-14 09:03:57 -04:00
Rafał Lalik
fbedabba87 Detect that nvidia display exists in each refresh 2022-10-14 09:03:57 -04:00
Brenden Matthews
b06f658ebf
Run clang-format. 2022-10-13 14:44:26 -05:00
Guido Falsi
1f661d2432 Implement get_battery_power_draw() for FreeBSD.
I'm using the acpi_battery(4) interface, via sysctl.

It should report battery draw in mW (for milli Watts), so I'm
dividing by 1000 before printing in the buffer.
2022-10-13 15:41:43 -04:00
Caio Freitas de Oliveira
8a64e4134e add special case for X11 tests 2022-10-12 21:35:35 -04:00
Caio Freitas de Oliveira
48b7271c0d use shift for masks; fix tests for 16-bit color depth 2022-10-12 21:35:35 -04:00
Caio Freitas de Oliveira
ca56109dc9 fix undeclared identifier 2022-10-12 21:35:35 -04:00
Caio Freitas de Oliveira
7833cf519b fix unused parameter 2022-10-12 21:35:35 -04:00
Caio Freitas de Oliveira
2cd895e54d fix delete abstract with non-virtual dtor 2022-10-12 21:35:35 -04:00
Caio Freitas de Oliveira
e7ac782a3c PR changes; fix saturation calculation (scale before dividing) 2022-10-12 21:35:35 -04:00
Caio Freitas de Oliveira
21dcdb0e17 remove hsv_gradient 2022-10-12 21:35:35 -04:00
Caio Freitas de Oliveira
ac7887ad09 refactor gradients to use config value instead of hard-coded option 2022-10-12 21:35:35 -04:00
Caio Freitas de Oliveira
938526755c restore tests 2022-10-12 21:35:35 -04:00
Caio Freitas de Oliveira
250739a41c restore hsv_gradient 2022-10-12 21:35:35 -04:00
Caio Freitas de Oliveira
3400324fab fix decimal conversions 2022-10-12 21:35:35 -04:00
Caio Freitas de Oliveira
033508a93e use clang-format 2022-10-12 21:35:35 -04:00
Caio Freitas de Oliveira
02ec45dc03 explicit L 2022-10-12 21:35:35 -04:00
Caio Freitas de Oliveira
3261ec4a69 use LCh color space (Rec.2020 for luma) 2022-10-12 21:35:35 -04:00
missing-semi-colon
c834e91a77 Fix diskio graph scale being 3 orders of magnitude too small 2022-10-12 13:16:34 -04:00
Brenden Matthews
1954893eaf Need to enable curl for RSS. 2022-10-12 12:57:48 -04:00
Brenden Matthews
25e6598c90 Drop unimplemented weather code.
The weather code is just stubs at the moment, so I'm dropping it as it
adds no value.
2022-10-12 12:57:48 -04:00
brightkill
731f3b41db fix bug when conky displays zero values after time 2022-10-08 14:42:54 -04:00
brightkill
3bf4f74fdd added get_battery_power_draw() stub for darwin 2022-10-08 13:21:29 -04:00
brightkill
817b7acb64 added option battery_power_draw to get power draw in watts 2022-10-08 13:21:29 -04:00
François Revol
e992f83a1d Reset selected_font after drawing shades/outline
Fixes #828.

The font wasn't reset after drawing the shades, so the text was drawn
with the last selected font as default font.
2022-10-01 23:49:52 +02:00
Gene Carlson
fc8d778435 Replace atoi and atol with strtol (most files). 2022-09-25 18:24:03 -04:00
Gene Carlson
37c68318db core.cc: Remove a redundant condition for cpugovernor. 2022-09-24 12:05:09 -04:00
Gene Carlson
9eb075d8dc Use strtol in preference to atoi for cpugovernor. 2022-09-24 12:05:09 -04:00
Gene Carlson
bebf3f2bef Linux: show the scaling governor with $cpugovernor. 2022-09-24 12:05:09 -04:00
Gene Carlson
5467287613 Linux: add a variable free_bufcache for reporting buffers+cache as reported by free. 2022-09-23 09:32:02 -04:00
Gene Carlson
be82b6f14d Linux: enable displaying shmem and memavail as variables. 2022-09-23 09:32:02 -04:00