Before this, vacant tags would show with `hide-vacant` set on initial
startup, because we receive initial tag events from River before we show
the bar. In that case, we won't call `set_visible(false)` on the
respective buttons because they're not shown yet. This registers the
output status listener after we show the bar so we won't miss any
events.
The `hyprland/workspaces` module has the CSS class
`active` rather than `focused` for the current workspace.
Update the default CSS selector for the current workspace
to match both `button.focused` and `button.active`.
In rare circumstances, we may fork(), e.g., as part of a custom module,
and the child process may fail to exec() and exit. In those cases, the
IPC destructor will be called in the child process.
Prior to this commit, this call would then result in the shared socket
being closed. Prevent this by only closing the socket from the original
process.
Fixes#3975 and #4152.
Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
Previously Waybar only displayed icons for applications which were
installed systemwide. Icons were resolved via `.desktop` files in
directories specified by the environment variable `XDG_DATA_DIRS`.
However the [XDG specification](https://specifications.freedesktop.org/basedir-spec/0.8/#variables)
notes that this variable should only consulted **in addition** to
`XDG_DATA_HOME`:
> `$XDG_DATA_DIRS` defines the preference-ordered set of base
> directories to search for data files in addition to the
> `$XDG_DATA_HOME` base directory.
This because `XDG_DATA_DIRS` contains only systemwide directories,
whereas `XDG_DATA_HOME` contains the userwide directory. Also
including the latter when looking up `.desktop` files allows Waybar to
display icons for applications which where installed userwide.
meson will skip building, if not needed, but we want to make sure we're
actually testing what we expect.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>