diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9d1f28a99..8efbedf8b 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 pipewire-dev wireplumber-dev libdbusmenu-glib-dev alsa-lib-dev yyjson-dev linux-pam-dev util-linux-login openssl-dev + - run: apk --no-cache add git g++ binutils pkgconf meson ninja musl-dev gtkmm4-dev vala gobject-introspection gobject-introspection-dev ddcutil pulseaudio-dev pipewire-dev wireplumber-dev libdbusmenu-glib-dev alsa-lib-dev yyjson-dev linux-pam-dev util-linux-login openssl-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 69aaf8f26..93f5bc56d 100644 --- a/meson.build +++ b/meson.build @@ -28,6 +28,8 @@ libpulse = dependency('libpulse', required: get_option('volume-widget')) libgvc = subproject('gvc', default_options: ['static=true'], required: get_option('volume-widget')) pipewire = dependency('libpipewire-0.3', required: get_option('wp-mixer-widget')) wireplumber = dependency('wireplumber-0.5', required: get_option('wp-mixer-widget')) +ddcutil = dependency('libddcutil-5', required: get_option('ddcutil')) +ddcutil = dependency('ddcutil', required: get_option('ddcutil')) dbusmenu_gtk = dependency('dbusmenu-glib-0.4') xkbregistry = dependency('xkbregistry') json = subproject('wf-json').get_variable('wfjson') @@ -51,6 +53,10 @@ if wireplumber.found() add_project_arguments('-DHAVE_WIREPLUMBER=1', language: 'cpp') endif +if ddcutil.found() + add_project_arguments('-DHAVE_DDCUTIL=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 745694fa0..1b028271b 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -10,6 +10,12 @@ option( value: 'auto', description: 'Build wireplumber mixer widget', ) +option( + 'ddcutil', + type: 'feature', + value: 'auto', + description: 'Build external monitor support for backlight widget' +) option( 'wayland-logout', type: 'boolean', diff --git a/metadata/panel.xml b/metadata/panel.xml index 9da3261b9..133adad9b 100644 --- a/metadata/panel.xml +++ b/metadata/panel.xml @@ -371,6 +371,39 @@ + + <_short>Backlight + + + + + + + <_short>Notifications