diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index a1b316df..878be36d 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -9,7 +9,7 @@ jobs:
steps:
- run: echo 'http://dl-cdn.alpinelinux.org/alpine/v3.22/community' > /etc/apk/repositories
- run: echo 'http://dl-cdn.alpinelinux.org/alpine/v3.22/main' >> /etc/apk/repositories
- - run: apk --no-cache add git g++ binutils pkgconf meson ninja musl-dev gtkmm4-dev vala gobject-introspection gobject-introspection-dev pulseaudio-dev libdbusmenu-glib-dev alsa-lib-dev yyjson-dev
+ - run: apk --no-cache add git g++ binutils pkgconf meson ninja musl-dev gtkmm4-dev vala gobject-introspection gobject-introspection-dev pulseaudio-dev wireplumber-dev libdbusmenu-glib-dev alsa-lib-dev yyjson-dev
- run: echo 'http://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories
- run: echo 'http://dl-cdn.alpinelinux.org/alpine/edge/main' >> /etc/apk/repositories
- run: apk --no-cache add wayland-protocols wayfire-dev gtk4-layer-shell-dev gtk4-layer-shell
diff --git a/meson.build b/meson.build
index f50bcee9..50d6dc66 100644
--- a/meson.build
+++ b/meson.build
@@ -21,6 +21,7 @@ wfconfig = dependency('wf-config', version: '>=0.7.0') #TODO fallback submodule
epoxy = dependency('epoxy')
gtklayershell = dependency('gtk4-layer-shell-0', fallback: ['gtk4-layer-shell'])
libpulse = dependency('libpulse', required: get_option('pulse'))
+wireplumber = dependency('wireplumber-0.5', required: get_option('wireplumber'))
dbusmenu_gtk = dependency('dbusmenu-glib-0.4')
libgvc = subproject('gvc', default_options: ['static=true'], required: get_option('pulse'))
xkbregistry = dependency('xkbregistry')
@@ -35,6 +36,10 @@ if libpulse.found()
add_project_arguments('-DHAVE_PULSE=1', language: 'cpp')
endif
+if wireplumber.found()
+ add_project_arguments('-DHAVE_WIREPLUMBER=1', language: 'cpp')
+endif
+
needs_libinotify = ['freebsd', 'dragonfly'].contains(host_machine.system())
libinotify = dependency('libinotify', required: needs_libinotify)
diff --git a/meson_options.txt b/meson_options.txt
index aca93f47..8ecd76c0 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -4,9 +4,15 @@ option(
value: 'auto',
description: 'Build pulseaudio volume widget',
)
+option(
+ 'wireplumber',
+ type: 'feature',
+ value: 'auto',
+ description: 'Build wireplumber and mixer widget',
+)
option(
'wayland-logout',
type: 'boolean',
value: true,
description: 'Install wayland-logout',
-)
\ No newline at end of file
+)
diff --git a/metadata/panel.xml b/metadata/panel.xml
index bfe391f0..23388b68 100644
--- a/metadata/panel.xml
+++ b/metadata/panel.xml
@@ -249,6 +249,105 @@
+ <_short>Audio mixer (wireplumber)
+
+
+
+
+
+
+
+
+
+
+
+
+
<_short>Notifications