2021-11-09 i3status 2.14 • switch to meson build system • battery: OpenBSD: If acpibat watts value is not available, try current • make pulseaudio an optional dependency • print_cpu_usage: use buffered file API • fix memory leak in slurp() • NetBSD: native audio support • wireless: Linux: update %signal and %quality based on station info • memory: introduce unit and decimals options • battery: introduce format_percentage option • memory: fix overflow on 32-bit systems • use format_placeholder • wireless: introduce format_bitrate, format_noise and format_signal • cpu: fix out of bounds read after invalid %cpu conversion • file system: use f_frsize for correct block size • wireless: FreeBSD: support connection bitrate • volume: fix memory leak • print_file_contents: resolve tilde • add build option to disable manual pages • pulseaudio: use port name instead of sink name • battery: add support for POWER_SUPPLY_TIME_TO_EMPTY (e.g. pinebook pro) • tztime: allow selective pango markup • wireless: fix memory corruption 2019-06-30 i3status 2.13 • add memory module • add read_file module • drop CAP_NET_ADMIN (not needed on Linux ≥ 2.6.37) • switch to autotools • battery: hide seconds by default • wireless: add format_quality • doc: clarify min_width not being supported with dzen2/xmobar • battery: read multiple batteries on DragonFlyBSD • make: don’t use pulseaudio on DragonFlyBSD • wireless: detect interface type on DragonFlyBSD • cpu usage: fix: correctly print usage for cpu 10 • cpu usage: fix: correctly print for invalid %cpu placeholder • cpu usage: support non-consecutive CPUs • time: add only_when_tz_different option • ethernet: add %interface • ethernet: fix speed display for 100 Gbit/s cards • battery: handle POWER_SUPPLY_STATUS=Not charging • volume: provide more natural volume percentage with ALSA • volume: fix ALSA capture device monitoring • volume: implement %devicename for PulseAudio and ALSA • config: re-arrange disk after network interfaces • fix: include sys/socket.h on macOS • fix: strip network interface labels • fix glob(3) error handling • various testsuite improvements • switch to clang-format-3.8 2018-05-11 i3status 2.12 • fix NULL value on OpenBSD when there is no acpitz0 • show IP address when address has a label • man: explicitly use format_up/format_down in ethernet, wireless conf • man: remove SLOC comment • treat zero battery capacity as "not available" • add IPv6 address when IPv4 isn't available • call tzset at each time print to pick up time zone changes • doc: fixed minor typos • be more cautious about handling invalid battery measurements. • Makefile: make PKG_CONFIG overridable • fix CPU unit tests • use local timezone for battery %emptytime • fix memory leak/use BEGINS_WITH macro • _first_: add check for virtual ethernet devices • add battery capacity parsing • multiple CPU support for cpu_usage • remove useless checks (we use char, not unsigned char) to fix compilation warnings • disk: sanitize trailing slashes • plug an fd leak in the OpenBSD-specific code for • suppress printing :00 seconds of remaining battery lifetime, as apm(4)'s estimate only has a granularity of minutes. • fix the deciKelvin to Celsius conversion on FreeBSD • make first_eth_interface() work on OpenBSD • include sys/select.h on OpenBSD 2017-01-21 i3status 2.11 • re-add forgotten wakeup call from SIGUSR1 handler • disk_info: bugfix: check format_not_mounted is not NULL before using it • revert back to using nanosleep • man: give more descriptive symbols to battery format • battery: removes the 'remaining' time when the battery is full • add separator and separator_block_width as universal module options • man: fix link to contrib • cpu_temperature: add glob check • battery: add status_unk • reconnect to PluseAudio when connection is lost • wireless: add ifdef to compile on macOS • order default configuration paths the same as in i3 • add version files for release tarball • man: make tztime example config match the context • cpu_usage: add color thresholds • battery: support multiple batteries • disk: use empty string for not mounted disks • default config: remove DHCP, VPN • wireless: fix FTBFS on hurd and kFreeBSD • parse uevent file to detect network device type • allow pulse device to be specified by name • battery: find batteries using glob • tztime: support locales • wireless: use blank padding for quality • add unit tests • fix compilation with -fno-common 2016-01-01 i3status 2.10 • man: fix typo in battery example • Pass the "instance" JSON property key for tztime blocks • Fix build (and build warnings) on FreeBSD • Fix build on OpenBSD • path_exists, run_watch: add format_down • volume: add PulseAudio support. This significantly reduces battery consumption on systems that use PulseAudio, which is the default on any modern Linux desktop. • wireless/OpenBSD: use the maximum rssi, not the scaled percentage for the signal level. • make: Add support for differing PREFIX and MANPREFIX. • battery: make output HH:MM across all platforms. • battery: clamp the percentage at 100% when last_full_capacity is enabled. • Use format_not_mounted if the directory for a disk_info block does not exist. • disk_info/OS X: Fix build. • volume/OpenBSD: use SndIO. • eth, wireless: Use "color_degraded" when interface has no IP. • eth, wireless/FreeBSD: Fix for recent FreeBSD versions. • wireless/Linux: switch from libiw to libnl. This allows you to run i3status on kernels which don’t have the wext compatibility module enabled. • battery/FreeBSD: properly detect charging status • eth: first_eth_interface: ignore MAC addresses, look for IPv4/IPv6 addresses • Implement support for Pango markup. • format detection: recognise swaybar 2015-03-22 i3status 2.9 • meta: i3status is now on GitHub and uses clang-format • allow customization of the module separator • add “align” and “min_width” options for each module • fix CFLAGS and LDFLAGS for DragonFly and FreeBSD • add contrib/net-speed, a more light-weight reimplementation of contrib/measure-net-speed.bash • battery: add hide_seconds option • battery: fix for systems without POWER_SUPPLY_VOLTAGE_NOW • battery: for %percentage, drop leading 0 for values < 10 • battery: add NetBSD support • battery: use absolute values for (dis)charging rates • battery: introduce status_{chr,bat,full} • cpu_temperature: fix displaying multiple sensors • cpu_temperature: fix NetBSD support • cpu_temperature: fix DragonFly support • disk: introduce threshold_type and low_threshold • disk: add format_not_mounted for unmounted paths • ethernet, wireless: support special interface name _first_ • run_watch: check all matching pid files until first valid one • volume: fix wrong color tags with xmobar • wireless: support %frequency (2.4 vs. 5 GHz) 2014-01-05 i3status 2.8 • Fix build on GNU/Hurd • Add format_down for battery if no battery is available • Use degraded color in case volume is muted with OSS • Support mixer_idx with OSS • Enable colored output for battery on FreeBSD • print_volume: don’t return, complete the buffer first • Support colored output for CPU temperature on FreeBSD • manpage: mention i3bar in the description • manpage: be more explicit about the path option • battery: use path as i3bar JSON “instance” • print_volume(linux): Open a new mixer every time • Implement term output format • signal handler: set flag because directly calling fprintf() is unsafe • Makefile: use .SILENT and support V=1 for verbose builds • load: allow max_threshold to be a float • manpage: Add example path for CPU temperature • Fix build on NetBSD • Implement cpu usage, ethernet status, cpu temperature on NetBSD • fix slurp(), it needs to read size-1 for the trailing NUL • format detection: simplify code, handle "sh" processes in the hierarchy • default config: show %avail disk space instead of %free • Added different format string for volume in case it is muted • manpage: document format_muted • add support for path_exists directive • disk: Distinguish between IEC, SI and custom prefixes 2013-02-27 i3status 2.7 • Various battery fixes for OpenBSD • Implement %speed for ethernet on OpenBSD • Implement %essid and %signal for wireless on OpenBSD • Skip a day in the Discordian calendar when St. Tib's Day has passed • colors: Handle down wireless interfaces just like ethernet interfaces • Use acpitz(4) instead of cpu(4) for temperature on OpenBSD • temperature: introduce max_threshold • temperature: allow for abitrary sensors to be selected with 'path' on OpenBSD • battery: colorize output even without discharge rate • ddate: Reduce the season day to 0-9 to properly print ordinal suffixes • add good, degraded and bad colors per module • config: introduce an utf-8 character so that editors are forced to use utf-8 • ddate: Teen ordinal numbers always use a 'th' suffix. • DragonFlyBSD support added • make SIGUSR1 do nothing, so that killall -USR1 i3status will force an update • changing volume color from bad to degraded if muted • make refreshs align with minutes • wifi: properly display ad-hoc networks • Bugfix: output auto detect: properly detect ambiguous situations • Add tztime module to support multiple different timezones • battery: add option to show capacity without decimals • Add colorized output for load avg • ipv6: properly handle colors for output_format == xmobar • contrib: fix premature insetion of status message into JSON 2012-10-03 i3status 2.6 • Error handling: Properly output JSON errors in the battery module • Colorize battery output if remaining time/percentage below threshold • Colorize volume in red if muted • Include a Perl and Python example wrapper script for i3status’s JSON output • Avoid division by zero when calculating CPU usage • Add consumption to battery info • Use correct units for battery calculations • Add percentage values for disk info • Save the DNS lookup for k.root-servers.net in the ipv6 module 2012-05-11 i3status 2.5.1 • Handle %d with non-default CPU temperature path • Improve error message when the cpu temperature cannot be read • Remove cpu_temperature from the default config • Error handling: Never output null as full_text (JSON), prefix messages with i3status 2012-05-02 i3status 2.5 • implement the i3bar JSON protocol • Fix configuration paths in error message • manpage: add a "format" example for run_watch • manpage: add a section explaining why we don’t want RAM usage etc. • manpage: add "exit 1" to example shell script. • manpage: document %emptytime to the battery part • various patches for OpenBSD 2011-12-27 i3status 2.4 • Support wifi, cpu usage, volume, disk usage on FreeBSD • Don’t exit, but display an error when CPU temperature/usage/load is not available • manpage: load format is %1min %5min %15min • Don’t use a default order, so that config files can use += everywhere • Interpret configfiles case-insensitive • battery: implement path option for batteries with non-standard paths 2011-07-21 i3status 2.3 • config search order is now ~/.i3status.conf, ~/.config/i3status/config, /etc/i3status/config, then /etc/xdg/i3status/config • battery: use POWER_NOW if CURRENT_NOW is not available (linux >= 2.6.36) • use kill(0, pid) instead of /proc to check if a process is alive • cache DNS query results also if there is no IPv6 connectivity • implement the 'path' option for cpu_temperature • add cpu_usage module • automatically detect the output format unless configured specifically • Bugfix: get time at the beginning of the loop • Bugfix: respect locale settings (for %c in date format) • debian: use [linux-any] in dependencies (Closes: #634491) 2010-09-22 i3status 2.2 • Implement a discordian date module (like ddate(1)) • Implement ALSA volume support • disk: implement %avail (different from %free with regard to the reserved space of your filesystem) • wireless: display quality relative to the wireless maximum quality. • wireless: display connection speed (bitrate) • wireless: custom colors for link quality • Bugfix: Treat an interface as 'down' when it cannot be found in /proc/net/wireless • Bugfix: Correctly check for interface up/down status 2010-04-10 i3status 2.1 • battery: implement %emptytime, the time of day when your battery is empty • ipv6: cache DNS query lookups (for finding the K root server) • disk: also round when printing TB • wireless: display no IP instead of (null) • instead of a relative sleep(1), sleep until the full second • colorize ethernet output • use cap_net_admin instead of running i3status as root for getting ethernet link speed • ipv6: don't require a title for config option • ipv6: provide format strings for ipv6 up and ipv6 down 2009-10-27 i3status 2.0 • add support for disk info (free/used/ins) • add support for displaying the ESSID of the wireless interface • add support for getting the public IPv6 address of the system • all "modules" now support format strings • switch to libconfuse for parsing the config file • merge support for FreeBSD for many "modules" • drop support for wmii, add support for xmobar 2009-06-21 i3status 1.2 • Handle SIGPIPE to avoid zombie processes 2009-06-17 i3status 1.1 • Implement getting temperature from thermal zones (Thanks atsutane)