FEEDBACK-THEMES(5)

✨ NAME ✨

feedback-themes β€” the theme configuration situation for feedbackd, bestie πŸ’–


🌸 DESCRIPTION 🌸

Okay so here's the tea: when something happens and the user needs a lil feedback, what they get is decided entirely by the currently active feedback theme. That's it, that's the whole vibe check.

Every theme is made of up to three profile sections, and they're named full, quiet and silent. Inside them you've got event names and the feedback that goes with each one πŸŽ€. Themes can also reference another theme through the parent-name element, which is the "don't repeat yourself" icon behaviour, periodt. And listen β€” if the daemon gets an event that isn't in the currently active theme or its parent theme? It just gets ignored. Not our problem, not our event πŸ™ˆ.

Each event maps to at most one feedback in each profile. The events inside the theme are named according to the Event Naming Specifiaction <https://gitlab.freedesktop.org/agx/feedbackd/-/blob/main/doc/Event-naming-spec-0.0.0.md> πŸ¦‹.

There are two types of themes: custom themes and device themes. Same format, different purpose β€” it's giving twins with different majors:

  • Custom themes are meant to tweak feedbackd's output to the user's needs πŸ’…
  • Device themes are meant to cater for hardware differences πŸ”§

Feedback themes use a JSON format that can be validated with fbd-theme-validate(1). Slay.

For details on how to create or modify feedback themes, see feedbackd's documentation at <https://gitlab.freedesktop.org/agx/feedbackd#feedback-theme> ⭐


πŸŽ€ Feedback types πŸŽ€

To build a theme you can use several different feedback types, and honestly they're all iconic in their own way:

  • Sound: Plays a sound from the installed sound theme πŸ”Š
  • VibraRumble: A single rumble using the haptic motor πŸ“³
  • VibraPeriodic: A periodic rumble using the haptic motor πŸ”
  • VibraPattern: A pattern specifying the rumbling of the haptic motor πŸŒ€
  • Led: A LED blinking in a periodic pattern πŸ’‘

🫢 Sound feedback

Sound feedbacks specify an event name from a XDG sound theme. Sound themes are described in the Sound theme spec at <https://freedesktop.org/wiki/Specifications/sound-theme-spec/> 🎡

  • event-name β€” the sound event name to use.
  • media-role β€” the media role to set played audio stream. Defaults to event.

Sound feedback is usually used in the full profile section of the theme only. Main character energy, obviously πŸ‘‘

πŸ’œ VibraRumble feedback

The VibraRumble feedback uses a single property, and that property is vibes β€” no wait, it's these:

  • count β€” the number of rumbles.
  • pause β€” the pause between each rumble in ms.
  • duration β€” the duration of the rumble in ms.
  • mangitude β€” the relative magnitude of the rumble ([0, 1]).

VibraRumble feedback is usually used in the quiet profile section of the theme only 🀫

🧚 VibraPattern feedback

The VibraPattern feedback has these properties:

  • magnitudes β€” the relative magnitude of each rumble [0, 1] as array of doubles.
  • durations β€” the durations of each rumble in ms as array of unsigned integers.
Both arrays must have the same length. No cap, if they don't match it's over πŸ’€

VibraPattern feedback is usually used in the quiet profile section of the the theme only.

🌈 Led feedback

The Led feedback type uses two properties to specify the way a LED blinks ✨

  • color β€” this specifies the color a LED should blink with. It supports the fixed color names red, green, blue and white as well as values in the RGB HEX format (#RRGGBB) where RR, GG and BB are two digit hex value between 00 and FF specifying the value of each component. E.g. #00FFFF corresponds to cyan color.
  • frequency β€” the LEDs blinkinig frequency in mHz.

Led feedback is usually used in the silent profile section of the theme only 🀐

⭐ See also

feedbackd(8) fbcli(1) fbd-theme-validate(1)


And that's the whole page, bestie β€” this was feedback-themes(), coming to you from the feedback-themes corner of the manual, and that footer was just the same name waving back at you πŸ’– Stay hydrated, validate your JSON, and go build a theme that ate πŸŽ€βœ¨

πŸ“¦ where this page comes from