20 KiB
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
andkind
tags (#380). - tags:
/<N>
tag formatter: divides the tag's decimal value withN
(#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
andbackground
as possiblelayer
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
; usenative
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 topoll-interval
- mem:
interval
renamed topoll-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 topoll-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 ofceilf()
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
andul-speed
whenpoll-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
andrx-bitrate
are now in bits/s instead of Mb/s. Use themb
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 atag
and then an array ofvalues
, you must now simply use an array ofconditions
, 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: don’t error out on systems where SMT has been disabled (#172).
- examples/dwl-tags: updated parsing of
output
name (#178). - sway-xkb: don’t 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
andright-margin
from being rejected as invalid options.- Crash when
udev_monitor_receive_device()
returnedNULL
. 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 thealsa
module.- alsa:
volume
andmuted
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
andrx-bitrate
tags. - network:
poll-interval
option (for the newsignal
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-baron-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: don’t 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 tag’s value was out-of-bounds (#45). - Crash when a string particle contained
{}
(#48). script
module rejecting range tag end values containing the digit9
(#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 ofnone
,ascending
ordescending
. Default isnone
(#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 ofenergy_*
) 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.