yambar/CHANGELOG.md

20 KiB
Raw Permalink Blame History

Changelog

Unreleased

Added

  • environment variable substitution in config files (#96).
  • Log output now respects the NO_COLOR environment variable.
  • network: type tag (#380).
  • network: type and kind tags (#380).
  • tags: /<N> tag formatter: divides the tag's decimal value with N (#392).
  • i3/sway: output tag, reflecting the output (monitor) a workspace is on.
  • Added "string like" ~~ operator to Map particle. Allows glob-style matching on strings using * and ? characters (#400).
  • Added "single" mode flag to the mpd module (#428).
  • niri: add a new module for niri-workspaces and niri-language (#404).

Changed

  • river: expand to an empty list of particles when river is not running (#384).

Deprecated

Removed

Fixed

  • network: fix missing break in switch statement (#377).
  • i3/sway: crash when output is turned off an on (#300).
  • mpd: yambar never attempting to reconnect after MPD closed the connection (for example, when MPD is restarted).
  • Bar positioning on multi-monitor setups, when location=bottom.
  • pipewire: Improve handling of node switching (#424).

Security

Contributors

1.11.0

Added

  • battery: current smoothing, for improved discharge estimates.
  • battery: scale option, for batteries that report 'charge' at a different scale than 'current'.
  • network: new quality tag (Wi-Fi only).
  • Read alternative config from pipes and FIFOs (e.g. --config /dev/stdin) (#340).
  • Added overlay and background as possible layer values (#372).

Changed

  • log-level: default to warning
  • network: use dynlist instead of fixed name (#355)

Fixed

  • Compiler error fmt may be used uninitialized (#311).
  • map: conditions failing to match when they contain multiple, quoted tag values (#302).
  • Crash when hidden by an opaque window.
  • Bar not resizing itself when the screen resolution is changed (#330).
  • i3/sway: incorrect empty/title state of workspaces (#343).
  • mem: state updated on each bar redraw (#352).
  • script: buffer overflow when reading large amounts of data.
  • i3/sway: module fails when reloading config file (#361).
  • Worked around bug in gcc causing a compilation error (#350).
  • Miscalculation of list width in presence of empty particles (#369).
  • Log-level not respected by syslog.

Contributors

  • Delgan
  • Haden Collins
  • Jordan Isaacs
  • kotyk
  • Leonardo Hernández Hernández
  • oob
  • rdbo
  • Sertonix
  • steovd
  • Väinö Mäkelä
  • Yiyu Zhou

1.10.0

Added

  • Field width tag format option (#246)
  • river: support for layout events.
  • dwl: support for specifying name of tags (#256)
  • i3/sway: extend option sort; use native to sort numbered workspaces only.
  • modules/dwl: handle the appid status (#284)
  • battery: also show estimation for time to full ([#303][303]).
  • on-click: tilde expansion (#307)
  • script: tilde expansion of path (#307).

Changed

  • disk-io: interval renamed to poll-interval
  • mem: interval renamed to poll-interval
  • battery/network/script: poll-interval unit changed from seconds to milliseconds (#244).
  • all modules: minimum poll interval changed from 500ms to 250ms.
  • network: do not use IPv6 link-local (#281)

Fixed

  • Build failures for certain combinations of enabled and disabled plugins (#239).
  • Documentation for the cpu module; interval has been renamed to poll-interval (#241).
  • battery: module was not thread safe.
  • dwl module reporting only the last part of the title (#251)
  • i3/sway: regression; persistent workspaces shown twice (#253).
  • pipewire: use roundf() instead of ceilf() for more accuracy (#262)
  • Crash when a yaml anchor has a value that already exists in the target yaml node (#286).
  • battery: Fix time conversion in battery estimation ([#303][303]).
  • battery: poll timeout being reset when receiving irrelevant udev notification (leading to battery status never updating, in worst case) (#305).

Contributors

  • Leonardo Gibrowski Faé (Horus)
  • Armin Fisslthaler
  • Ben Brown
  • David Bimmler
  • Leonardo Hernández Hernández
  • Ogromny
  • Oleg Hahm
  • Stanislav Ochotnický
  • tiosgz
  • Yutaro Ohno

1.9.0

Added

  • Support for specifying number of decimals when printing a float tag (#200).
  • Support for custom font fallbacks (#153).
  • overline: new decoration (#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).
  • 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).
  • alsa: dB tag (#202).
  • mpd: file tag (#219).
  • pipewire: add a new module for pipewire (#224)
  • on-click: support next/previous mouse buttons (#228).
  • dwl: add a new module for DWL (#218)
  • sway: support for workspace rename and move events (#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)

  • alsa: use dB instead of raw volume values, if possible, when calculating the percent tag (#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).

  • 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, #175 and #).

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).
  • cpu: dont error out on systems where SMT has been disabled (#172).
  • examples/dwl-tags: updated parsing of output name (#178).
  • sway-xkb: dont crash when Sway sends an ”added” event for a device yambar is already tracking (#177).
  • Crash when a particle is “too wide”, and tries to render outside the bar (#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).
  • network: missing SSID (recent kernels, or possibly wireless drivers, no longer provide the SSID in the NL80211_CMD_NEW_STATION response) (#226).
  • sway-xkb: crash when compositor presents multiple inputs with identical IDs (#229).

Contributors

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

1.8.0

Added

  • ramp: can now have custom min and max values (#103).
  • border: new decoration.
  • i3/sway: new boolean tag: empty (#139).
  • mem: a module handling system memory monitoring
  • cpu: a module offering cpu usage monitoring
  • removables: support for audio CDs (#146).
  • removables: new boolean tag: audio.

Changed

  • fcft >= 3.0 is now required.
  • Made libmpdclient an optional dependency
  • battery: unknown battery states are now mapped to unknown, instead of discharging.
  • Wayland: the bar no longer exits when the monitor is disabled/unplugged (#106).

Fixed

  • left-margin and right-margin from being rejected as invalid options.
  • Crash when udev_monitor_receive_device() returned NULL. This affected the “backlight”, “battery” and “removables” modules (#109).
  • foreign-toplevel: update bar when a top-level is closed.
  • Bar not being mapped on an output before at least one module has “refreshed” it (#116).
  • network: failure to retrieve wireless attributes (SSID, RX/TX bitrate, signal strength etc).
  • Integer options that were supposed to be >= 0 were incorrectly allowed, leading to various bad things; including yambar crashing, or worse, the compositor crashing (#129).
  • kib/kb, mib/mb and gib/gb formatters were inverted.

Contributors

  • sochotnicky
  • Alexandre Acebedo
  • anb
  • Baptiste Daroussin
  • Catterwocky
  • horus645
  • Jan Beich
  • mz
  • natemaia
  • nogerine
  • Soc Virnyl S. Estela
  • Vincent Fischer

1.7.0

Added

  • i3: persistent attribute, allowing persistent workspaces (#72).
  • bar: border.{left,right,top,bottom}-width, allowing the width of each side of the border to be configured individually. border.width is now a short-hand for setting all four borders to the same value (#77).
  • bar: layer: top|bottom, allowing the layer which the bar is rendered on to be changed. Wayland only - ignored on X11.
  • river: all-monitors: false|true.
  • -d,--log-level=info|warning|error|none command line option (#84).
  • river: support for the river-status protocol, version 2 (urgent views).
  • online tag to the alsa module.
  • alsa: volume and muted options, allowing you to configure which channels to use as source for the volume level and muted state.
  • foreign-toplevel: Wayland module that provides information about currently opened windows.
  • alsa: support for capture devices.
  • network: ssid, signal, rx-bitrate and rx-bitrate tags.
  • network: poll-interval option (for the new signal and *-bitrate tags).
  • tags: percentage tag formatter, for range tags: {tag_name:%}.
  • tags: kb/mb/gb, and kib/mib/gib tag formatters.
  • clock: add a config option to show UTC time.

Changed

  • bar: do not add spacing around empty (zero-width) modules.
  • alsa: do not error out if we fail to connect to the ALSA device, or if we get disconnected. Instead, keep retrying until we succeed (#86).

Fixed

  • yambar --backend=wayland always erroring out with ”yambar was compiled without the Wayland backend”.
  • Regression: {where} tag not being expanded in progress-bar on-click handlers.
  • alsa module causing yambar to use 100% CPU if the ALSA device is disconnected (#61).

Contributors

1.6.2

Added

  • Text shaping support.
  • Support for middle and right mouse buttons, mouse wheel and trackpad scrolling (#39).
  • script: polling mode. See the new poll-interval option (#67).

Changed

  • doc: split up yambar-modules(5) into multiple man pages, one for each module (#15).
  • fcft >= 2.4.0 is now required.
  • sway-xkb: non-keyboard inputs are now ignored (#51).
  • battery: dont terminate (causing last status to “freeze”) when failing to update; retry again later (#44).
  • battery: differentiate "Not Charging" and "Discharging" in state tag of battery module. (#57).
  • string: use HORIZONTAL ELLIPSIS instead of three regular periods when truncating a string (#73).

Fixed

  • Crash when merging non-dictionary anchors in the YAML configuration (#32).
  • Crash in the ramp particle when the tags value was out-of-bounds (#45).
  • Crash when a string particle contained {} (#48).
  • script module rejecting range tag end values containing the digit 9 (#60).

Contributors

1.6.1

Changed

  • i3: workspaces with numerical names are sorted separately from non-numerically named workspaces (#30).

Fixed

  • mpd: elapsed tag not working (regression, introduced in 1.6.0).
  • Wrong background color for (semi-) transparent backgrounds.
  • battery: stats sometimes getting stuck at 0, or impossibly large values (#25).

1.6.0

Added

  • alsa: percent tag. This is an integer tag that represents the current volume as a percentage value (#10).
  • river: added documentation (#9).
  • script: new module, adds support for custom user scripts (#11).
  • mpd: volume tag. This is a range tag that represents MPD's current volume in percentage (0-100)
  • i3: sort configuration option, that controls how the workspace list is sorted. Can be set to one of none, ascending or descending. Default is none (#17).
  • i3: mode tag: the name of the currently active mode

Fixed

  • YAML parsing error messages being replaced with a generic “unknown error”.
  • Memory leak when a YAML parsing error was encountered.
  • clock: update every second when necessary (#12).
  • mpd: fix compilation with clang (#16).
  • Crash when the alpha component in a color value was 0.
  • XCB: Fallback to non-primary monitor when the primary monitor is disconnected (#20)

Contributors

1.5.0

Added

  • battery: support for drivers that use charge_* (instead of energy_*) sys files.
  • removables: SD card support.
  • removables: new ignore property.
  • Wayland: multi-seat support.
  • Experimental: 'river': new module for the river Wayland compositor.

Changed

  • Requires fcft-2.2.x.
  • battery: a poll value of 0 disables polling.

Fixed

  • mpd: check of return value from thrd_create.
  • battery: handle 'manufacturer' and 'model_name' not being present.
  • Wayland: handle runtime scaling changes.