After upgrading to the latest release of Waybar the bar will crash
whenever I close the laptop lid. After some debugging I believe it is
because the watching added by watch_name is not being correctly canceled
using unwatch_name. After the Tray object and Host object are destroyed,
additional callbacks will become use-after-free.
Looks like commit 3af1853260 removed the
unwatch_name. I'm not sure why it did that, but it seemed dangerous.
Additionally, bus_name_id_ is created by own_name. According to that
function's documentation, the correct inverse operation is unown_name.
This commit allows better handling of ordering and exclusion of the tags in Dynamics tags.
It also becomes possible to choose the separator between the tags.
The option is generally useful when scrolling is used, when configuring
input devices to use "natural scroll direction".
Both backlight and pulseaudio were using different implementations, this
unifies and documents them.
Signed-off-by: Robert Günzler <r@gnzler.io>
In waybar::modules::Battery::~Battery(), store a copy of the batteries_
iterator before calling erase(), as erase() invalidates the iterator.
Prior to this change, disconnecting outputs resulted in a SEGFAULT when
using the battery module; e.g.,
[debug] Received SIGCHLD in signalThread
[debug] Cmd exited with code 0
[debug] Received SIGCHLD in signalThread
[debug] Cmd exited with code 0
[debug] Received SIGCHLD in signalThread
[debug] Cmd exited with code 0
[debug] Output removed: AU Optronics 0x2336
[info] Bar configured (width: 1280, height: 25) for output: eDP-1
[info] Bar configured (width: 1280, height: 25) for output: eDP-1
zsh: segmentation fault (core dumped) ./build/waybar -l trace
Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>