Go to file
Sasha Moak 4e8ccf36b5 fix(wireplumber): waybar crashes when default node changes
In order to fix the issue, the default node name is cached rather than
the default node id. This is due to ids being unstable. So now when the
object manager is installed (ie ready), the default node name is
retrieved and stored for later.

Now when the mixer changed signal is emitted, the id of the changed node
is used to get the node from the object manager. The nodes name is
grabbed off that node and compared against the default node name, if
they match the volume is updated. Some safeguarding has been added such
that if the node cannot be found off the object manager, it's ignored.

Additionally, the "changed" signal on the default nodes api is now
utilized to update the default node name if it has changed. This way if
the default node changes, the module will be updated with the correct
volume and node.nick.

This adds additional debug logging for helping diagnose wireplumber
issues.

This also adds the wireplumber man page entry to the main waybar
supported section.
2023-01-16 10:29:35 -08:00
.github chore(ci, meson): add inotify dependency for BSD 2022-08-24 02:22:40 +08:00
Dockerfiles Activate ci for mpris module 2023-01-07 01:44:25 +01:00
include fix(wireplumber): waybar crashes when default node changes 2023-01-16 10:29:35 -08:00
man fix(wireplumber): waybar crashes when default node changes 2023-01-16 10:29:35 -08:00
package Add archlinux PKGBUILD 2018-08-09 20:50:11 +02:00
protocol river/mode: new module 2022-06-01 15:35:08 +00:00
resources feat: wireplumber support 2022-11-16 23:23:07 -08:00
src fix(wireplumber): waybar crashes when default node changes 2023-01-16 10:29:35 -08:00
subprojects feat: jsoncpp wrap 2022-11-03 14:08:22 +01:00
test Fix build with catch2>=3.0.0 2022-10-16 19:21:43 +05:30
.clang-format refactor: lint 2022-04-06 08:37:19 +02:00
.editorconfig chore: Add EditorConfig file 2019-04-18 15:55:45 +02:00
.gitignore Fix wrong layout name in hyprland language module when a variant is used 2022-12-27 15:29:10 +01:00
.gitmodules Add archlinux PKGBUILD 2018-08-09 20:50:11 +02:00
LICENSE Initial commit 2018-08-08 23:53:37 +02:00
Makefile fixed wrong dependency for make target 2021-09-18 01:20:16 +02:00
README.md Update README.md 2022-11-24 20:51:54 +01:00
meson.build chore: 0.9.17 2023-01-11 11:39:30 +01:00
meson_options.txt Add mpris module 2023-01-06 20:55:31 +01:00
preview-2.png chore: optimize preview 2018-10-01 18:56:58 +02:00
preview.png chore: optimize preview 2018-10-01 18:56:58 +02:00

README.md

Waybar Licence Paypal Donate
Waybar

Highly customizable Wayland bar for Sway and Wlroots based compositors.
Available in Arch community or AUR, Gentoo, openSUSE, and Alpine Linux.
Waybar examples

Current features

  • Sway (Workspaces, Binding mode, Focused window name)
  • River (Mapping mode, Tags, Focused window name)
  • Hyprland (Focused window name)
  • Tray #21
  • Local time
  • Battery
  • UPower
  • Network
  • Bluetooth
  • Pulseaudio
  • Wireplumber
  • Disk
  • Memory
  • Cpu load average
  • Temperature
  • MPD
  • Custom scripts
  • Custom image
  • Multiple output configuration
  • And many more customizations

Configuration and Styling

See the wiki for more details.

Installation

Waybar is available from a number of Linux distributions:

Packaging status

An Ubuntu PPA with more recent versions is available here.

Building from source

$ git clone https://github.com/Alexays/Waybar
$ cd Waybar
$ meson build
$ ninja -C build
$ ./build/waybar
# If you want to install it
$ ninja -C build install
$ waybar

Dependencies

gtkmm3
jsoncpp
libsigc++
fmt
wayland
chrono-date
spdlog
libgtk-3-dev [gtk-layer-shell]
gobject-introspection [gtk-layer-shell]
libgirepository1.0-dev [gtk-layer-shell]
libpulse [Pulseaudio module]
libnl [Network module]
libappindicator-gtk3 [Tray module]
libdbusmenu-gtk3 [Tray module]
libmpdclient [MPD module]
libsndio [sndio module]
libevdev [KeyboardState module]
xkbregistry
upower [UPower battery module]

Build dependencies

cmake
meson
scdoc
wayland-protocols

On Ubuntu, you can install all the relevant dependencies using this command (tested with 19.10 and 20.04):

sudo apt install \
  clang-tidy \
  gobject-introspection \
  libdbusmenu-gtk3-dev \
  libevdev-dev \
  libfmt-dev \
  libgirepository1.0-dev \
  libgtk-3-dev \
  libgtkmm-3.0-dev \
  libinput-dev \
  libjsoncpp-dev \
  libmpdclient-dev \
  libnl-3-dev \
  libnl-genl-3-dev \
  libpulse-dev \
  libsigc++-2.0-dev \
  libspdlog-dev \
  libwayland-dev \
  scdoc \
  upower \
  libxkbregistry-dev

Contributions welcome!
Have fun :)
The style guidelines are Google's

License

Waybar is licensed under the MIT license. See LICENSE for more information.