Changes in 2.6.0

Added AMD GPU widget type for Linux.

Fixed typos in contrib widgets documentation.

Changes in 2.5.1


  • Escaping of % in helpers.format, which affects mpd widget ${Progress}

  • Possible deadlock of when update widgets

  • [contrib.openweather] New API compatibility, which requires an API key

  • [gmail] Authentication documentation


  • [mpd] Support for sending arbitrary commands

  • [contrib.openweather] Various new return values

Changes in 2.5.0


  • freezing awesome when used with asynchronous widget types


  • vicious.call_async asynchronous analogous to


  • Most of the documentation in READMEs to docs/

  • to CHANGELOG.rst


  • Meta helpers to tools/

Changes in 2.4.2

Feature: [hwmontemp] Bring back sysfs path cache

Changes in 2.4.1


  • [pkg] Fallback the number of lines before packages listing to 0. This fixes crashes on Arch, FreeBSD and Mandriva.

  • [mdir] Remove trailing semicolon at the end of command.

Changes in 2.4.0


volume now uses 🔉 and 🔈 instead of ♫ and ♩ to show mute state. This BREAKS backward compatibility if users substitute custom symbols from these default.


  • notmuch_all, cpu_freebsd widget types.

  • [cmus_all] Promote to widgets/.

  • [wifiiw_linux] Expose BSSID.

  • [wifi_linux] Expose frequency and transmission power.

  • spawn as a fallback for awful.spawn in case Vicious is used as a stand-alone library. This wrapper, however, does NOT provide the facilities to asynchronously spawn new processes. It also lacks a few features such as parsing stderr and returning PID.

  • helpers.setasyncall to avoid writing redundant workers for asynchronous widget types. Note that these workers are only needed in case Vicious is used as a stand-alone library.

  • helpers.setcall for registering functions as widget types.

  • headergen script for automatic generation of copyright notices.

  • templates for the ease of adding new widget types.

  • which guide contributors through the steps of filing an issue or submitting a patch.


  • Deprecate the use of io.popen in following widgets:

    • wifi_linux, wifiiw_linux, hwmontemp_linux, hddtemp_linux

    • bat_freebsd, mem_freebsd, net_freebsd, thermal_freebsd, uptime_freebsd,

    • cpu_freebsd, cpufreq_freebsd, fanspeed_freebsd

    • bat_openbsd

    • volume, gmail, mdir, mpd, fs

  • [mpd] Lua 5.3 compatibility (for real this time); also correct a typo

  • [mbox] Update the deprecated string.gfind to string.gmatch

  • [pkg,weather,contrib/btc] Allow function call without Awesome

  • [pkg] Use more updated front-ends for Debian/Ubuntu (apt) and Fedora (dnf)

  • [os] Splitted os_all into os_linux and os_bsd (and refactored to async)

  • Tweak .luacheckrc to suit functional style and soft-limit text width to 80

  • Update copyright headers for libraries and widget types


  • helpers.sysctl and helpers.sysctl_table were removed in favour of helpers.sysctl_async.

Changes in 2.3.3

Feature: Add battery widget type for OpenBSD


  • [mpd] Lua 5.3 compatibility

  • [bat_freebsd] Update battery state symbols

Changes in 2.3.2


  • Support stacked graphs

  • [hwmontemp_linux] Provide name-based access to hwmon sensors via sysfs

  • [mpd_all] Expose more informations and format time in [hh:]mm:ss


  • Improve defaults and mechanism for data caching

  • Escape XML entities in results by default

  • [weather_all] Update NOAA link and use Awesome asynchronous API

  • [mem_linux] Use MemAvailable to calculate free amount

  • [mem_freebsd] Correct calculation and switch to swapinfo for swap

  • [bat_freebsd] Add critical charging state

  • [fs_all] Fix shell quoting of option arguments

Moreover, .luacheckrc was added and was refomatted for the ease of development.

Changes in 2.3.1


  • widgets can be a function again (regression introduced in 2.3.0)

Changes in 2.3.0


  • add btc widget

  • add cmus widget

  • alsa mixer also accept multiple arguments


  • pkg now uses non-blocking asynchronous api

Changes in 2.2.0

Notable changes:

  • moved development from to

  • official freebsd support

  • escape variables before passing to shell

  • support for gear timers

  • fix weather widget url

  • add method to obtain data outside of widgets

For older versions please see git log.