Skip to content
Release 1.9.0

Added
-----

* Support for specifying number of decimals when printing a float tag
  ([#200][200]).
* Support for custom font fallbacks ([#153][153]).
* overline: new decoration ([#153][153]).
* i3/sway: boolean option `strip-workspace-numbers`.
* font-shaping: new inheritable configuration option, allowing you to
  configure whether strings should be _shaped_ using HarfBuzz, or not
  ([#159][159]).
* river: support for the new “mode” event present in version 3 of the
  river status manager protocol, in the form of a new tag, _”mode”_,
  in the `title` particle.
* network: request link stats and expose under tags `dl-speed` and
  `ul-speed` when `poll-interval` is set.
* new module: disk-io.
* new module: pulse ([#223][223]).
* alsa: `dB` tag ([#202][202]).
* mpd: `file` tag ([#219][219]).
* pipewire: add a new module for pipewire ([#224][224])
* on-click: support `next`/`previous` mouse buttons ([#228][228]).
* dwl: add a new module for DWL ([#218][218])
* sway: support for workspace ‘rename’ and ‘move’ events
  ([#216][216]).

[153]: https://codeberg.org/dnkl/yambar/issues/153
[159]: https://codeberg.org/dnkl/yambar/issues/159
[200]: https://codeberg.org/dnkl/yambar/issues/200
[202]: https://codeberg.org/dnkl/yambar/issues/202
[218]: https://codeberg.org/dnkl/yambar/pulls/218
[219]: https://codeberg.org/dnkl/yambar/pulls/219
[223]: https://codeberg.org/dnkl/yambar/pulls/223
[224]: https://codeberg.org/dnkl/yambar/pulls/224
[228]: https://codeberg.org/dnkl/yambar/pulls/228
[216]: https://codeberg.org/dnkl/yambar/issues/216

Changed
-------

* All modules are now compile-time optional.
* Minimum required meson version is now 0.59.
* Float tags are now treated as floats instead of integers when
  formatted with the `kb`/`kib`/`mb`/`mib`/`gb`/`gib` string particle
  formatters.
* network: `tx-bitrate` and `rx-bitrate` are now in bits/s instead of
  Mb/s. Use the `mb` string formatter to render these tags as before
  (e.g. `string: {text: "{tx-bitrate:mb}"}`).
* i3: newly created, and **unfocused** workspaces are now considered
  non-empty ([#191][191])
* alsa: use dB instead of raw volume values, if possible, when
  calculating the `percent` tag ([#202][202])
* cpu: `content` particle is now a template instantiated once for each
  core, and once for the total CPU usage. See
  **yambar-modules-cpu**(5) for more information ([#207][207]).
* **BREAKING CHANGE**: overhaul of the `map` particle. Instead of
  specifying a `tag` and then an array of `values`, you must now
  simply use an array of `conditions`, that consist of:

  `<tag> <operation> <value>`

  where `<operation>` is one of:

  `== != < <= > >=`

  Note that boolean tags must be used as is:

  `online`

  `~online # use '~' to match for their falsehood`

  As an example, if you previously had something like:

  ```
  map:
    tag: State
    values:
      unrecognized:
        ...
  ```

  You would now write it as:

  ```
  map:
    conditions:
      State == unrecognized:
        ...
  ```

  Note that if `<value>` contains any non-alphanumerical characters,
  it **must** be surrounded by `""`:

  `State == "very confused!!!"`

  Finally, you can mix and match conditions using the boolean
  operators `&&` and `||`:

  ```
  <condition1> && <condition2>
  <condition1> && (<condition2> || <condition3>) # parenthesis work
  ~(<condition1> && <condition2>) # '~' can be applied to any condition
  ```

  For a more thorough explanation, see the updated map section in the
  man page for yambar-particles([#137][137], [#175][175] and [#][182]).

[137]: https://codeberg.org/dnkl/yambar/issues/137
[175]: https://codeberg.org/dnkl/yambar/issues/172
[182]: https://codeberg.org/dnkl/yambar/issues/182
[191]: https://codeberg.org/dnkl/yambar/issues/191
[202]: https://codeberg.org/dnkl/yambar/issues/202
[207]: https://codeberg.org/dnkl/yambar/issues/207

Fixed
-----

* i3: fixed “missing workspace indicator” (_err: modules/i3.c:94:
  workspace reply/event without 'name' and/or 'output', and/or 'focus'
  properties_).
* Slow/laggy behavior when quickly spawning many `on-click` handlers,
  e.g. when handling mouse wheel events ([#169][169]).
* cpu: don’t error out on systems where SMT has been disabled
  ([#172][172]).
* examples/dwl-tags: updated parsing of `output` name ([#178][178]).
* sway-xkb: don’t crash when Sway sends an _”added”_ event for a
  device yambar is already tracking ([#177][177]).
* Crash when a particle is “too wide”, and tries to render outside the
  bar ([#198][198]).
* string: crash when failing to convert string to UTF-32.
* script: only first transaction processed when receiving multiple
  transactions in a single batch ([#221][221]).
* network: missing SSID (recent kernels, or possibly wireless drivers,
  no longer provide the SSID in the `NL80211_CMD_NEW_STATION`
  response) ([#226][226]).
* sway-xkb: crash when compositor presents multiple inputs with
  identical IDs ([#229][229]).

[169]: https://codeberg.org/dnkl/yambar/issues/169
[172]: https://codeberg.org/dnkl/yambar/issues/172
[178]: https://codeberg.org/dnkl/yambar/issues/178
[177]: https://codeberg.org/dnkl/yambar/issues/177
[198]: https://codeberg.org/dnkl/yambar/issues/198
[221]: https://codeberg.org/dnkl/yambar/issues/221
[226]: https://codeberg.org/dnkl/yambar/issues/226
[229]: https://codeberg.org/dnkl/yambar/issues/229

Contributors
------------

* Baptiste Daroussin
* Horus
* Johannes
* Leonardo Gibrowski Faé
* Leonardo Neumann
* Midgard
* Ogromny
* Peter Rice
* Timur Celik
* Willem van de Krol
* hiog