Changelog
Fixes:
* `internal/xworkspaces`:
* Crash when WM doesn't set `_NET_DESKTOP_NAMES` (#1576), see #1462
* Workspace removal not always detected (#1579), see #1491, #248
* `internal/i3`: Crash when `<label-state>` was not added to `format` (#1591), see #975
* `internal/fs`: Incorrect sizes on some machines (#1612, #1699), see #743
* `internal/network`: Buffer overflow with ipv6 addresses (#1514)
* renderer: Show proper error when imagemagick is used to set the background (#1608), see #1582, #1585
* tray:
* Wrong background for transparent trays when using `tray-offset-*` (#1571)
* Build failure on clang8 (#1675), #1674
* Allow negative offset values for `tray-offset-*` (#1669), see #1666
* build: Link failure when configuring with `-DBUILD_SHARED_LIBS=ON` (#1647, jaagr/xpp#15), see #1628
* controller: Crash when reloading via `SIGUSR1` too fast (#1678), #428
Due to google/googletest#1419 [1], we had to add a comma after the last
argument of INSTANTIATE_TEST_CASE_P.
This was "fixed" in a backwards incompatible way in the googletest
project in 7c4164bf404d899b6d4c74beb1070da5647f55a2
[1]: https://github.com/google/googletest/issues/1419
To avoid polybar from being killed by SIGUSR1 during reloading, SIGUSR1 is ignored until the signal is registered in the new polybar process.
As stated in signal(7) man page, the ignored signals are still ignored after a call to a function of the execvX family.
During an execve(2), the dispositions of handled signals are reset to the default;
the dispositions of ignored signals are left unchanged.
Fixes#428
tray_client class contains a reference so copy assignment operator is implicitly deleted.
the dtor unembed the window so copying the class could lead to bug so the copy ctor is also deleted.
Fixes#1674
Polybar had issues when there is no background set or set by a tool like imagemagick which doesn't add the root pixmap to the root window properties.
There's not much we can do about it, but at least polybar doesn't crash anymore.
Fixes#1582Fixes#1585
* fix(tray_manager): only enable transparency if neccessary
Previously, we always enabled transparency
* fix(background_manager): avoid needless fetching
* fix(renderer): move logging message to correct place
* fix(background_manager): handle dummy pixmap (_XSETROOT_ID) right
* fix(background_manager): more initialization + don't free on error
Freeing on error is incorrect, since we could still be called again later in
which case we still need the resources.
* fix(background_manager): add more infos to trace logs
* fix(background): correct typo (XROOTMAP -> XROOTPMAP)
* fix(background_manager): do not report "no background" as error
* style(background_manager): use braces for if
Co-Authored-By: bennofs <benno.fuenfstueck@gmail.com>
* fix(background_manager): better error message for dummy pixmap
Co-Authored-By: bennofs <benno.fuenfstueck@gmail.com>
* style(background): some more style fixes
* fix(connection): initialize pixmap in all cases in root_pixmap()
* style(connection): improve readability using early return
This patch adds support for observing multiple slices of the desktop background.
This is used for the tray so that it doesn't have to rely on the bar's rect to
get the desktop background. In particular, it now handles the case where the
tray is not contained fully within the bar's outer rect (for example, when using tray-offset-{x,y})
Co-Authored-By: bennofs <benno.fuenfstueck@gmail.com>
### Breaking Changes:
None
### Changelog
**New Config Options**
The following config options were added
In the `[settings]` section:
* `pseudo-transparency`
In `internal/cpu`:
* `ramp-coreload-spacing`, spacing between elements in `<ramp-coreload>` elements
* `%percentage-sum%` in `label`. Shows sum of all percentages
In `custom/script`:
* `double-click-left`
* `double-click-middle`
* `double-click-right`
In `internal/pulseaudio`:
* `interval`, volume increase and decrease steps in percentage points
In `internal/memory`:
* `bar-swap-used`
* `bar-swap-free`
* `ramp-swap-used`
* `ramp-swap-free`
**Deprecations**
* `tray-transparent` in the bar section is no longer used. The tray now always uses pseudo-transparency
**Features**
* volume: adjustable volume steps (#1364), see #1361
* memory: Add progress bars and ramps for swap (#1325)
* render: pseudo-transparency (always used in the tray) (#595)
* cpu:
* Configurable spacing in between coreloads (#1472), see #1389
* Non-normalized cpu load (#1517), see #1516
* script: Double click actions (#1442)
* net: Support for bridge interfaces (#1528), see #1522
* token: zero pad tokens when min-width value starts with a `0` (#1341), see #1332
**Fixes**
* config: Use font patterns detected on system in sample config (#1350)
* net: Disconnected module when SSID is only an emoji (#1371), see #1367
* tray: Tray overlapping with bar (#1392), see #591
* build: Several build errors (#1395, #1454, #1470, jaagr/xpp#12, #1493), see #1447, #1469, #750, #1492
* mpd: format-online-prefix not working (#1402), see #1399
* font: Crash for some font-patterns (#1451), see #1435
* script:
* Only `%counter%` or `%pid%` token usable, never both (#1456)
* click actions with colons in them (#1457), see #984
* renderer: Bar locks up when xorg composite extension is disabled (#1430), see #1425
Most PRs change code where no tests have been written so far and where
adding tests is difficult. Codecov fails all those PRs.
These values should be adjusted once we have better integrated testing
into our workflow and have written better testing infrastructure for
modules and very tightly coupled components
The previous approach relied on manually updating the version and date
using a Makefile
This approach dynamically gathers the correct version from git and uses
the date of the latest commit in the branch
* Clean up CMake logic
- removed logic to find CppUnit (no longer used)
- removed "dirs" variable used to pass include directories
- removed add_library function (no longer used)
- removed make_executable function
* only used in 2 places (polybar and polybar-msg)
* it was more general than needed, logic is simpler without it
- split polybar into static library and executable
* this allows linking unit tests to the library
* rename library
* add coverage build
- Added a CMake build type "Coverage" that builds C and C++
code with the "--coverage" flag (recognized by both GCC and Clang)
- removed "-Wno-missing-field-initializers" from test flags,
since it didn't seem to be needed any more
- removed logic from tests/CMakeLists to disable "-Werror" and "-pedantic-errors"
since there didn't seem to be any warnings during the build
* fix whitespace
* update travis
* remove O2 from defalt flags
* allow tests to be built by default make target
* disable Werror for debug builds
If FcNameParse returns NULL FcDefaultSubstitute segfaults
We log and throw an error here because the signal emitter swallows all
exceptions so if that exception was thrown, the bar would stop rendering
without any indication as to why.
Fixes#1435
wireless_tools 29 redefines inline in iwlib.h as:
#define inline inline __attribute__((always_inline))
which conflicts with POLYBAR_NS, which is defined as:
#define POLYBAR_NS \
namespace polybar { \
inline namespace APP_VERSION_NAMESPACE {
In version 30.pre9 this #define is moved into a source file and thus
cannot conflict.
The error only occurs when building with clang, so it seems gcc and
clang handle this differently
Fixes#1492
A message is emitted and there the '--force' is still honored. However,
if people want to reuse the build-directory to reduce recompile-times,
this give them the rope they ask for.
If a tailed command is used polybar would generate two action tags, one
with %counter% replaced and one with %pid% replaced, but never both
This is a bug that was introduced in #934
The idea is that pseudo-transparency should behave like real transparency as
much as possible. To achieve this, we now render the bar the same way in both
cases. The only part where pseudo-transparency differs is at the very end, where
the rendered bar is captured and composited against the desktop background
image. This should ensure that both modes behave the same.