Commit Graph
100 Commits
Author SHA1 Message Date
Guido Günther 42bd525d3c media-roles: Add Phone role
E.g. calls and wys already tag streams with this

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-10-26 08:23:53 +01:00
Guido Günther 7307a4db6f Merge branch 'pw-roles' into 'main'
Set media-roles and add example wireplumber config

See merge request agx/feedbackd!170
2025-10-25 12:58:35 +00:00
Guido Günther f38eb4bb28 data: Add preferred output targets for alarms and alerts
We usually want them to go to the speaker by default.

This needs https://gitlab.freedesktop.org/pipewire/wireplumber/-/merge_requests/754

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-10-25 14:12:16 +02:00
Guido Günther 8090ccb0a9 dev-sound: Only set media role when role based routing is enabled
This allows to already update the theme without breaking existing installations.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-10-24 13:43:39 +02:00
Guido Günther 96b00b6c61 dev-sound: Fix format
Gbp-Dch: Ignore
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-10-24 13:43:39 +02:00
Guido Günther 6296c4fe77 build: Allow to install media roles
Install role based config if set.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-10-24 13:43:39 +02:00
Guido Günther d58b7cf517 data: Add media roles configuration
This ensures we properly duck any "multimedia" streams when playing
event sounds. We also introduce an alert group for e.g. cell broadcasts.

For testing copy to

  ~/.config/wireplumber/wireplumber.conf.d/media-role-nodes.conf

and

  systemctl --user restart wireplumber

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-10-24 13:43:39 +02:00
Guido Günther 5de4519710 data: Set suitable media roles for events
Mark alarms, alerts and ring tones.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-10-24 13:43:39 +02:00
Guido Günther 283f2ee1dc run: Simplify running
We usually want the daemon so default to that when nothing
else is passed in.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-10-24 13:43:39 +02:00
Guido Günther f501e909ab Merge branch 'meson' into 'main'
build: Rename options file

See merge request agx/feedbackd!193
2025-10-23 11:53:45 +00:00
Guido Günther a680ad1139 build: Rename options file
Bump needed meson version for that

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-10-23 13:40:50 +02:00
Guido Günther f0befe1221 Merge branch 'udev' into 'main'
data: Move udev rule to 72 and release 0.8.6

See merge request agx/feedbackd!192
2025-10-05 11:43:15 +00:00
Guido Günther 85021ab0bc treewide: Document changes and release 0.8.6
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-10-05 13:41:11 +02:00
Guido Günther 96023e5201 packaging: Trigger change event for input subsystem too
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-10-05 13:41:02 +02:00
Guido Günther 01c2aad1e8 data: Move udev rule to 72
systemd as of 258 requires uaccess tag processing to be < 73.

See https://github.com/systemd/systemd/issues/39206#issuecomment-3368532706

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-10-05 13:40:57 +02:00
Guido Günther fce1b00540 Merge branch 'docs' into 'main'
Publush API docs

See merge request agx/feedbackd!191
2025-09-30 20:43:42 +00:00
Guido Günther a3af128148 doc: Use gitlab page URL
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-09-30 22:40:39 +02:00
Guido Günther c4b71f89b0 ci: Publish docs
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-09-30 22:40:39 +02:00
Guido Günther ea9c6d556f doc: Clarify NEWS entry
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-09-30 22:22:26 +02:00
Guido Günther eb02a73594 Merge branch 'rel-0.8.5' into 'main'
Release 0.8.5

See merge request agx/feedbackd!190
2025-09-30 17:45:18 +00:00
Guido Günther 1654f00f56 treewide: Document changes and release 0.8.5
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-09-30 14:21:20 +02:00
Guido Günther ef2fb508f2 doc: Update matrix room URL
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-09-30 10:20:09 +02:00
Guido Günther 0f36d3c8d7 Merge branch 'important-vs-app-level' into 'main'
feedback-manager: Let app level cap important level

Closes #93

See merge request agx/feedbackd!188
2025-08-24 09:31:20 +00:00
Guido Günther bd7701220d treewide: Clarify that important affects the global level
The DBus spec had it right but the other places weren't clear
on that.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-08-24 09:28:17 +00:00
Guido Günther ef1e299047 feedback-manager: Let app level cap important level
As per DBus spec the `important` hint is meant to override
the global feedback level not any per app level the user
might have configured as otherwise there's no way to override
this.

Closes: https://gitlab.freedesktop.org/agx/feedbackd/-/issues/93
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-08-24 09:28:17 +00:00
Guido Günther 546fb205ea treewide: Fix feedack typo
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-08-24 09:28:17 +00:00
Guido Günther 284a4eb37d Merge branch 'udev-aw86927' into 'main'
udev: Add rule for AW86927

See merge request agx/feedbackd!189
2025-08-24 09:27:09 +00:00
Guido Günther 69a4ee2538 Merge branch 'rel-0.8.4' into 'main'
treewide: Document changes and release 0.8.4

See merge request agx/feedbackd!187
2025-08-07 07:00:41 +00:00
Guido Günther 2f0b8381a1 treewide: Document changes and release 0.8.4
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-08-06 08:37:56 +02:00
Guido Günther 4f7cc77172 Merge branch 'allow-osk' into 'main'
schema: Allow all OSK to use important hint

See merge request agx/feedbackd!186
2025-07-18 12:31:59 +00:00
Guido Günther 56059b367c schema: Allow all OSK to use important hint
OSK use the common OSK app-id so allow that too.

Fixes: 4ba029d ("schema: Allow Stevia OSK to override the globla feedback level")
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-07-18 14:28:17 +02:00
Guido Günther 0222bc6738 Merge branch 'key-pressed' into 'main'
Add key press/release events

Closes #85

See merge request agx/feedbackd!90
2025-07-16 19:54:36 +00:00
Guido Günther 4ba029df17 schema: Allow Stevia OSK to override the globla feedback level
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-07-16 19:52:45 +00:00
Guido Günther ed523e8755 data: Add key press/release events
While we have "button-{pressed,released}" events there's often the
desire to control sound for key presses of e.g. on screen keyboards too.
Add separate events for that.

This allows us to e.g. add a particular sound for OSK key presses and
OSKs can send this with an `important` hint so they're also usable
in silent mode.

Closes: https://gitlab.freedesktop.org/agx/feedbackd/-/issues/85
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-07-16 19:52:45 +00:00
Guido Günther 46790e9efb doc: Sort events alphabetically
While we have "button-{pressed,released}" events there's often the
desire to control sound for key presses of e.g. on screen keyboards too.
Add a separate event for that.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-07-16 19:52:45 +00:00
Guido Günther a37ce16eab Merge branch 'legacy' into 'main'
fbd-dev-led: support leds with legacy naming scheme

See merge request agx/feedbackd!185
2025-07-16 19:39:31 +00:00
Guido Günther d155b2e305 Merge branch 'rel-0.8.3' into 'main'
Release 0.8.3

See merge request agx/feedbackd!184
2025-06-28 07:29:44 +00:00
Guido Günther 62b43a4a88 treewide: Document changes and release 0.8.3
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-06-25 19:44:55 +02:00
Guido Günther 6244a1203e libfeedback: Indicate that the library is cross desktop
The only non generic thing is that we pick up the sound
scheme from GNOME when available but we'd happily extend
that to other DEs.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-06-25 19:43:08 +02:00
Guido Günther 86f3c39aee Merge branch 'udev-gpio-vibra' into 'main'
udev: Align rule for gpio-vibrator

See merge request agx/feedbackd!183
2025-06-25 08:16:08 +00:00
Guido Günther 43d4380271 Merge branch 'udev-more-haptics' into 'main'
udev: Add more haptic driver rules

See merge request agx/feedbackd!182
2025-06-22 17:42:22 +00:00
Guido Günther d643716186 Merge branch 'lib/build_target_library' into 'main'
build: Use library() instead of build_target() for libfeedback

See merge request agx/feedbackd!181
2025-06-13 16:19:10 +00:00
Guido Günther a8b2fd40a0 Merge branch 'fbcli-manpage' into 'main'
doc: Update fbcli manpage

See merge request agx/feedbackd!179
2025-05-20 14:08:11 +00:00
Guido Günther 2819e94e8a doc: Update fbcli manpage
There's some more options nowadays

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-20 14:05:56 +00:00
Guido Günther 3a978016cb Merge branch 'compile-schema' into 'main'
build: Use gnome.post_install

See merge request agx/feedbackd!180
2025-05-20 14:05:08 +00:00
Guido Günther c05f9c41c0 build: Use gnome.post_install
Allows us to drop a custom script

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-11 21:58:38 +02:00
Guido Günther d7d39d18df Merge branch 'rel-0.8.2' into 'main'
treewide: Document changes and release 0.8.2

See merge request agx/feedbackd!178
2025-05-10 08:27:15 +00:00
Guido Günther 4016f35643 treewide: Document changes and release 0.8.2
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-09 21:46:59 +02:00
Guido Günther 55559c33b8 Merge branch 'virbra-fix' into 'main'
vibra-pattern: Don't overwrite magnitudes

See merge request agx/feedbackd!177
2025-05-09 19:40:02 +00:00
Guido Günther ee8a9dd553 vibra-pattern: Don't overwrite magnitudes
When determining the value for the rumble we assigned the result to the
value in the array thus potentially overwriting the value from the theme.

This goes unnoticed as long as we don't lower the global `max_strength`
below the magnitude. But when we e.g. set the `max_strength` to
zero the device will fail to rumble when we increase `max_strength`
later on again.

Steps to reproduce:

  - Use an event that used `VibraRumble`, e.g. `button-press`
    in the oneplus,fajita device theme
  - `fbcli -E button-pressed` -> works
  - set haptic feedback to 0%:
    `gsettings set org.sigxcpu.feedbackd max-haptic-strength 0.0`
  - set it back to 100%:
    `gsettings set org.sigxcpu.feedbackd max-haptic-strength 1.0`
  - `fbcli -E button-pressed` -> no feedback

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-09 19:37:41 +00:00
Guido Günther 32cf0758d2 vibra: Some style and comment fixes
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-09 19:37:41 +00:00
Guido Günther 5cbd5a2893 Merge branch 'led-prio' into 'main'
dev-led: Sort leds by priority

See merge request agx/feedbackd!173
2025-05-06 15:03:42 +00:00
Guido Günther f9f248ef23 fbd-dev-led: Sort leds by priority
This makes sure we e.g. prefer multicolor leds over single color ones
and those that can be on insuspend (qcom) over those that can't.

We can extend this to allow to set the priority via udev/hwdb in the
future.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-06 14:54:52 +00:00
Guido Günther 651c4f9fac fbd-dev-led: Ignore leds that can't handle patterns
While in theory we could have themes with only freq = 0 values we
currently assume there can be patterns.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-06 14:54:52 +00:00
Guido Günther a2cbcc624f Merge branch 'media-roles' into 'main'
sound: Allow to set media roles

See merge request agx/feedbackd!174
2025-04-30 08:56:30 +00:00
Guido Günther 1e057eaa0c doc: Document media-role property
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-30 10:52:57 +02:00
Guido Günther e23c3401f9 fbd-dev-sound: Set special media role when present
We default to "event".

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-30 10:52:57 +02:00
Guido Günther 9054862071 feedback-sound: Allow to set media role
This will allow us to specify the role when playing the sound.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-30 10:52:57 +02:00
Guido Günther 0f031521e7 feedback-sound: Modernize prop definitions
Gbp-Dch: Ignore
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-30 10:52:57 +02:00
Guido Günther aa23c8f91d tests: Test sound feedback
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-30 10:52:57 +02:00
Guido Günther a5c7adbf1b Merge branch 'rgb-multicolor' into 'main'
fbd-dev-led-multicolor: Ignore LEDs that don't have three values

See merge request agx/feedbackd!176
2025-04-30 08:52:36 +00:00
Guido Günther bbd45b7f6a examples: Add example udev rule for Framework 13 Laptop
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-30 08:50:14 +00:00
Guido Günther a3fdc4852b fbd-dev-led-multicolor: Ignore LEDs that don't have three values
We assume that multicolor LEDs are RGB so reject those that don't
have three components.

E.g. the Framework Laptop exposes a power button LED as multicolor
that only has a white component. This way it gets treated as single color LED.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-30 08:50:14 +00:00
Guido Günther 3cb34ce43f Merge branch 'breaks' into 'main'
packaging: Fix inverted Breaks

See merge request agx/feedbackd!175
2025-04-30 07:59:15 +00:00
Guido Günther f931b19756 packaging: Fix inverted Breaks
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-27 12:48:36 +02:00
Guido Günther 19e0084133 Merge branch 'doc-updates' into 'main'
doc updates

Closes #89

See merge request agx/feedbackd!172
2025-04-24 14:32:27 +00:00
Guido Günther 84b783cbf7 doc: Clarify theme use
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-24 12:57:24 +02:00
Guido Günther eb2cb76635 doc: Fix parent-name reference
Closes: https://gitlab.freedesktop.org/agx/feedbackd/-/issues/89

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-24 12:57:24 +02:00
Guido Günther a646a34741 doc: Reference manpage
Refer to manpage rather than to the classes in the source code.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-24 12:57:24 +02:00
Guido Günther 155814035d doc: Document Sound properties
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-24 12:57:24 +02:00
Guido Günther 78d82207e5 doc: Document missing VibraRumble properties
Fixes f089ad2 ("vibra-rumble: Add magnitude property")

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-24 12:57:24 +02:00
Guido Günther 047f83c6b3 doc: Fix typo
Gbp-Dch: Ignore
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-24 12:57:24 +02:00
Guido Günther 673d372aa0 Merge branch 'ci-fairy' into 'main'
ci: Add ci-fairy check

See merge request agx/feedbackd!171
2025-04-23 20:25:51 +00:00
Guido Günther 69a5174f5f ci: Add ci-fairy check
This makes sure we have Signed-off-by:

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-23 22:22:02 +02:00
Guido Günther 44e57d78b7 Merge branch 'main' into 'main'
Allow constant lighting of notification LED through the setting of frequency in theme.json to zero.

See merge request agx/feedbackd!169
2025-04-23 20:02:12 +00:00
Guido Günther b181c942ad Merge branch 'repo-url' into 'main'
treewide: Update repo URLs

See merge request agx/feedbackd!168
2025-04-21 12:44:02 +00:00
Guido Günther b62ce975f3 README: Add CoC
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-20 22:59:13 +02:00
Guido Günther 01d909d4f3 treewide: Update repo URLs
We leave changelog and NEWS untouched as they track history.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-20 22:37:25 +02:00
Guido Günther eab27ae67a Merge branch 'ci' into 'main'
ci: Update for fdo

See merge request agx/feedbackd!167
2025-04-20 20:01:01 +00:00
Guido Günther a78941f1d8 ci: Allow coverage collection to fail
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-20 21:51:42 +02:00
Guido Günther 384ec20357 ci: Update for fdo
Drop the now unneeded tags and the arm64 build

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-04-20 21:46:53 +02:00
Guido Günther 867771a25a treewide: Document changes and release 0.8.1
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-29 12:18:10 +01:00
Guido Günther 61e30a7444 packaging: Add Breaks on older device themes
This makes sure they don't throw any criticals

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-29 12:18:10 +01:00
Guido Günther e8ecc3d0c1 libfeedback: Only cancel feedbacks if ever inited
If lfb_init() wasn't called before lfb_uninit() we'd otherwise raise a
critical which isn't nice for a library.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-25 21:55:34 +01:00
Guido Günther 98f2c6a01d treewide: Document changes and release 0.8.0 2025-03-21 19:20:56 +01:00
Guido Günther 3d062c0952 default/theme: Use [0.0, 1.0] for vibra-periodic
We switch `message-new-cellbroadcast` to VibraPeriodic as that is better
recognizable than the periodic pattern.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-21 12:15:57 +01:00
Guido Günther c37bfecbe0 vibra-periodic: Add a fallback for the previous [0, 0xFFFF] range
This keeps old themes working

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-21 12:15:57 +01:00
Guido Günther da93a16cda vibra-periodic: Deserialize magnitude and fade-in-level manually
This allows us to add proper fallbacks

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-21 12:15:56 +01:00
Guido Günther 91c34f4099 vibra-periodic: Use better defaults for fade-in-*
Lets start at zero when not specified otherwise and also set an
arbitrary fade-in-time as setting it to the duration isn't very helpful.

While at that move the defaults to the feedback rather than the device
so we ensure consistency over different device implementations.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-21 12:14:55 +01:00
Guido Günther 89b33dcbab vibra-periodic: Use same range as in rumble and periodic
We use [0.0, 1.0] in the other haptic feedbacks so let's make periodic
do the same.

We adjust dev-vibra to match that.

Closes: https://source.puri.sm/Librem5/feedbackd/-/issues/86
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-21 12:14:55 +01:00
Guido Günther f94de01a85 vibra-periodic: Modernize doc comment and property definitions
Also untabify. No functional change.

Gpb-Dch: Ignore
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-21 12:14:55 +01:00
Guido Günther cf0a420c3f doc: Mention theme reload on SIGHUP
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-21 12:14:55 +01:00
Guido Günther 7b026b40cc dev-vibra: Allow full magnitude in rumble
Lets not artificially cap the magnitude in the device specific
implementation.

Since the default magnitude for the common rumble feedback was set to
0.5 in the previous commit the effective magnitude in existing themes
remains unchanged for that event.

The pattern feedbacks didn't make it into a release yet so there's
nothing that could get broken.

The change doubles the effective when using the Vibra DBus API but as it
seems that libmanette didn't land support yet lets just ignore that
here.

Periodic feedback is unaffected as it uses a different internal API.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-20 07:48:42 +00:00
Guido Günther f089ad2fd0 vibra-rumble: Add magnitude property
We add a magnitude property and set it to 0.5 by default. This ensure
the relative magnitude stays the same when switching from 0xFFFF to
0x7FFF in dev-vibra.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-20 07:48:42 +00:00
Guido Günther 24aafefd0a data: Make button press feedback less intrusive
This way it can be kept enabled in more situations.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-16 09:29:58 +00:00
Guido Günther 5da0e4ff5d data: Add an event for notification-new-generic
We didn't do so until now to not make people go crazy with buzzing
phones. Now that we can fine tune the feedback strength better lets see
how this works.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-16 09:29:58 +00:00
Guido Günther 41c1521790 vibra-periodic: Honor max strength
Since we scale down the magnitude we also scale down the fade in level
to keep the ratio between the two the same.

Closes: https://source.puri.sm/Librem5/feedbackd/-/issues/84

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-09 12:28:08 +01:00
Guido Günther 6d6cd905fc vibra-rumble: Honor max haptic strength
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-09 12:28:08 +01:00
Guido Günther cc02a4d48a vibra-pattern: Honor max haptic strength
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-09 12:28:08 +01:00
Guido Günther bb1b5d0e1f feedback-vibra: Add and track max-haptic-strength gsetting
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-09 12:28:08 +01:00