Breaking changes
- Building with UTF-8 support is now mandatory (the with_utf8 flag is gone).
New features
- New monitor
Load
providing load averages (stolen from Finn Lawler, with FreeBSD support thanks to Michał Zielonka). - New argument
scale
forMemory
monitor to scale size units. - New dbus signal:
SetAlpha
(see issue #499). CpuFreq
: new template parametersmax
,min
andavg
.
Bug fixes
- MultiCoreTemp: allow temperature directory names with more than one digit.
- Batt (linux): correct computation of power consumption based on actual voltage (Patrick Günther).
New features
- New text mode (thanks to Pavel Kagulin, see issue #601), with output formats compatible with color terminals and pango.
- New text mode with format following swaybar-protocol, supporting colors, faces, boxes and actions.
Bug fixes
- Fix for bottom placement (#608)
- Fix for memory leak during X drawing (#609)
New features
- Disk monitors for FreeBSD (Michał Zielonka).
- Improvements to signal handling when using xmobar as a library (John Soo).
New features
- New plugin:
QueueReader
(Guy Gastineau). - Greatly improved FreeBSD support: Mem, Network and Swap monitors fixes, and CI build for FreeBSD (Michał Zielonka).
- New template markup:
<hspace>
(tulthix)
New features
- New constructors for only controlling bar height: TopH and BottomH for Top and Bottom respectively
- New monitor: k10temp (Sam Kirby)
- Better handling of command line arguments for Haskell-based configuration keys (see #553 and #554)
- New monitor: Kraken (Amid Saeid)
Bug fixes
- NotmuchMail usable in text configurations (#547)
- Fix for off-by-one in padding (#560)
- Fixes for Kbd (#561)
Bug fixes
- Fix off-by-one in strut calculation for
Static
position which reserved space for the panel than necessary and caused issues in some multi-head setups (fixes #530). - Revert the double-UTF-8 encoding workarounds of 0.36 (#482), as they're no longer necessary with xmonad-contrib master, and aren't needed with any released version of xmonad-contrib either.
- Fix slow reactions to SIGUSR1/2 signals (reposition, change screen).
New features
- New command line option
--add-font
(Ivan Brennan) - New monitor
MPDX
that extendsMPD
with the ability of having a custom alias. Useful for connecting with multiple servers. - New plugin
NotmuchMail
to monitor mail indexed bynotmuch
.
Bug fixes
- Fix date plugin not picking up DST and timezone changes (refresh timezone once a minute to preserve the optimized performace of 0.34).
New features
- Monitor progress bars: a value of 0 for
-W
denotes an index in the-f
string, similar to icon patterns but using characters. - New tag
<box>
to add borders around text (Unoqwy). fc
color background now accepts an offset (Unoqwy).
Bug fixes
- Documentation fixes (Tomáš Janoušek)
- Don't get confused by empty configuration dirs (fixes #412)
- Xft rendering: Avoid encoding to UTF8 on all scenarios. This causes issue to StdinReader monitor when the handle wasn't binary.
- Dropped support for GHC < 8.4 (see issue #461)
New features
MultiCoreTemp
now works with Ryzen processors. New option--hwmon-path
for better performance.- CPU Monitor optimizations.
- Version bumps for some dependencies, including timezone-olson.
New features
- New plugin
HandleReader
for reading data from a HaskellHandle
. This is useful if you are running xmobar from within a Haskell program. - Build with ghc 8.10 allowed.
- Optimize date plugin by avoiding calling getTimeZone for each of the time the date has to be updated. Instead, it's computed once at the start and re-used for each invocation.
- Optimize Weather and UVMeter plugin by using global Manager instead of creating for each http request when useManager is explicitly configured as False.
New features
- New template parameter
<weather>
for theWeather
plugin, potentially displaying specific weather conditions that are occurring near the station (thanks to slotThe). - New option
--weathers
, forWeather
to display a default string in case theweather
field is not reported (thanks to slotThe). - New template parameter
<volumestatus>
for theVolume
plugin, combining the effects of<volume>
and<status>
. This will show the volume (possibly prefixed byonString
or a percentage-based string) if and only if the volume is not muted. Otherwise it will show theoffString
(thanks to slotThe). Battery
andBatteryN
now support FreeBSD (thanks to Dhananjay Balan).- New option
--useManager
forWeather
andUVMeter
to decide whether to use one single manager per monitor for managing network connections or create a new one every time a connection is made. - New more efficient time coalescing strategy for monitor updates,
available with the threaded runtime: use the
with_threaded
flag to enable it (see #410; thanks to Tomáš Janoušek). Wireless
supports current nl80211 API on Linux now, old Wext ioctls still available as compile-time option (thanks to Paul Fertser).
New features
- New options
--host
and--port
forMPD
monitor. - New plugin
MailX
extendingMail
with colors and prefix/suffix. - New options
--lows
,--mediums
, and--highs
forBattery
to display an additional string depending on battery level (thanks to slotThe). - New options
-L
and-H
forVolume
to set low and high volume levels, as well as-l
,-m
, and-h
to display an additional string depending on current volume level (thanks to slotThe). - New option
-P
inBattery
to add a%
symbol to<left>
. - New option
--devices
inDynNetwork
to select what interfaces to monitor (thanks to vindex10). - DateZone plugin now also checks TZDIR (thanks to Emmanuel Rosa).
Bug fixes
Kbd
plugin: ignore "terminate" layout token (thanks to Greg Steuck).- Fixed compilation with GHC 8.8.x (thanks to Vanessa McHale).
- Avoid creating
~/.xmobar
(issue #405).
New features
- New option
--contiguous-icons
forMultiCpu
to draw icons without padding (see issue #388). - New version of libmpd (0.9.0.10), thanks to John Tyree
New features
- New monitor
MultiCoreTemp
, thanks to Felix Springer. DiskIO
: Additional template variables for absolute number of bytes rather than speeds (see issue #390).WeatherX
: An extension to theWeather
monitor allowing the spefication of custom strings or icons for sky conditions.- The battery monitors accept the new arguments
-a
and-A
to specify a system command executed if battery left goes beyond a given threshold.
Bug fixes
- Honour command line flags when starting xmobar without any configuration file (issue #375).
Alsa
plugin: restartalsactl
if it quits, e.g. because of a sleep/awake cycle (issue #376).Weather
using the new HTTPS URL, which requires http-conduit as a dependency (issue #378).MarqueePipeReader
exported at the API level (issue #381).
Upgrade to alsa-mixer 0.3.0. See issues #372 and #373.
Bug fixes
- Upper bound for alsa_mixer (see issue #372)
Bug fixes
- Work as usual with .xmobarrc (see issue #371).
Bug fixes
- Honour command line flags (fixes issue #370).
- Expose Cmd and CmdX in Xmobar interface.
New features
- New
Alsa
monitor for volume display that doesn't use polling, by Daniel Schüssler. ThermalZone
retries reading missing files, thanks to Reed Koser.TopProc
ignores kernel threads (see also issue #369).Wireless
simple autodetection of wirless interface name (if set to "").- Experimental support for using xmobar as a library, so that configurations are in fact Haskell programs a la Xmonad (beta stage, with help from Pavan Rikhi). Traditional config files are still (and will continue to be) supported.
Bug fixes
- Correctly parsing configuration options
mwClass
andwmName
.
Dependencies updated to work with GHC 8.6, avoiding issue #354.
New features
- New
ComX
, which runs a command with custom exit error message.
Bug fixes
- hinotify version upgraded (issue #356)
New features
- Dropped support for GHC 7.x. See issue #352.
- New configuration option,
textOffsets
to specify separate vertical offsets for each of the fonts inadditionalFonts
. See issue #311.
Bug fixes
- Use the maximum width options
-T
and-E
correctly when a monitor subtemplate contains font and color tags.
New features
- New options to specify the ellipsis string for fields (
-e
) and total width (-E
), thanks to Olivier Schneider. MultiCpu
: New option to specify fallback icon paths (--fallback-icon-pattern
), thanks to Reed Koser.
Bug fixes
CpuFreq
monitors honours-d
(number of digits) if no suffix is given (cf. issue #335).- Race condition in network monitor fixed (issue #347).
- Limiting dbus supported version (see issue #346).
New features
- The X11 properties
WM_NAME
andWM_CLASS
for xmobar windows can be setup in either the configuration file (wmName
andwmClass
) or using the new flags-n
adn-w
(see issue #323). - New flag
with_weather
, to build sansWeather
monitor.
Bug fixes
- Honouring -x in MPris monitor (issue #325)
Bug fixes
- Fix for vertical bars (issue #303)
Infrastructure
- Whe have now an active Travis CI setup.
Bug fixes
- Reduce wakeups rate via rtsopts V0 (with new flag with_rtsopts to disable it) (see issue #89).
- Fix Net monitor for lage uptimes and bytecounts (Tomas Janoušek).
- Fix MultiCpu monitor for large uptimes (Zev Weiss).
- Fix compilation when XMP is disabled (Sergi Trofimovich).
- Better fatal error messages (Michael Bishop).
- More paths to read from in CoreTemp (see issue #291).
Bug fixes
- Battery monitor: fixes for cases where status is not consistently reported by the kernel (see issue #271).
Bug fixes
- New Weather plugin URL (see issue #270).
Bug fixes
- Restoring compatibility with GHC 7.6, (see issue #269).
New features
- Use the new compilation flag
with_conduit
to compile an implemetation of theWeather
plugin that will work behind proxies, by Dragos Boca. - New command line argument (
-p
) to specify xmobar's position, by Valentin Shirokov. - Wind speed in Km/h and m/s for the
Weather
plugin, by Michael Knabe. UVMeter
, a new optional plugin showing UV data for Australian users, by Roman Joost.- New template parameter
<date>
for theMPD
plugin (by Bruno Heridet) - New monitor argument
-T
to specify the maximum total width of the monitor text. - New $VAR parameter syntax for using env vars in pipe monitors, by Will Song (see issue #268).
Bug fixes
- The
Volume
plugin now supports capture devices (Antoine Eiche). - The
MPD
plugin will now automatically update on options changes (Ben Boeckel). - The
Battery
plugin does now a better job at tracking AC status and times (see issue #231). PipeReader
was polling too often (thanks to zlbruce).- The
MPris
monitor now honours field width and padding optons (-M, -w, etc.). Batt
: sensible thresholds for high/low power consumption (see issue #265).
Bug fixes
- Vertical alignment for icons, issue #216
- Improvements to vertical text alignment, with many thanks to Jan Palus (see ongoing discussion in issue #221).
- Better error handling in
Volume
monitor, issue #215 - Compilation with ghc 7.8 and 7.10 (thanks to Edward Tjörnhammar, see issue #225).
New features
- Xmobar can now use a (semi)transparent background: set it with the
new configuration option
alpha
(thanks to Edward Z. Yang, see issue #114). - Multiple fonts available by means of the new configuration
parameter
additionalFonts
and the template markers<fn=1>...</fn>
, by Markus Scherer. - New variables in
Mem
monitor for available memory as reported by Linux 3.14 and newer, by Samuli Thomasson. - New configuration parameters
textOffset
andiconOffset
(see discussion in issue #171 and issue #201). - New template variable
flags
inMPD
monitor, by Duncan Burke.
Bug fixes
- We honour the
-S
(show suffix) monitor flag inCpuFreq
. - Better
Weather
parsing of wind direction, by Dino Morelli (see pull #212).
Bug fixes
- Fix compilation in systems that don't need mtl newer than the one shipped with GHC.
New features
- New
MarqueePipeReader
plugin by Reto Hablützel. Network
monitor has now adaptive units (-S
is used now to switch them on), by Axel Angel.Weather
now offersdewPointC
anddewPointF
instead ofdewPoint
, and the newwindCardinal
,windAzimuth
,windMph
andwindKnots
variables, by Tony Morris.- Strings in the configuration file can now span multiple lines using Haskell-style multiline script, thanks to dunric
- Icons can now be also xpm files (if xmobar is compiled with
with_xpm
), thanks to Alexander Shabalin. - New
borderWidth
option to set xmobar's boder width, thanks to Travis Staton. - Support for multiple Xft fonts, thanks to Phil Xiaojun Hu and Cedric staub (see pull request #196).
- Icon patterns for several monitors, that allow you to specify a collection of icons to use for successive integer variable values, thanks to Alexander Shabalin (see pull request #192 and the documentation for details).
- Upgrade to libmpd 0.9.
Bug fixes
- Much more efficient implementation of the
Locks
plugin, thanks to Anton Vorontsov (see pull request #195). - Not colorizing total disk size in
DiskU
(issue #189). - Avoiding zombies on click actions, thanks to Phil Xiaojun Hu (issue #181).
New features
- Vertical bar indicators using unicode available for most monitors, by Eric Mrak.
CoreTemp
: support for linux 3.15, by Tomáš Janoušek.- New
CatInt
monitor, displaying integer values read from a file, by Nathaniel Wesley Filardo. - New
<raw>
tag for safer input parsing, also by Nathaniel. - New
UnsafeXMonadLog
monitor (by Eric Mrak) and their xproperty counterparts,UnsafeXPropertyLog
andUnsafeNamedXPropertyLog
.
Bug fixes
Network
now reports status for ppp connections (see issue #89).- Fix for very long running
Cpu
monitors, by Robert J Macomber.
New features
- Back to picking by default the first available screen, with a new
configuration option,
pickBroadest
, for choosing the broadest (see issue #158).
New features
- Mouse actions now support multiple buttons, by Marcin Mikołajczyk.
- Non supported monitors are ignored in configuration files (see issue #139), by Adam Vogt.
Bug fixes
Disk
monitor now ignores non-existent devices (Reto Hablützel).Weather
is now non-blocking and doesn't use curl (Ben Boeckel).- Fix for
Memory
monitor in 3.14 kernels (Ben Boeckel). - Fix for infinite loops in
AutoMPD
(issue #76, issue #111). - More robust AC readings in
BatteryP
. - Fix for
Top
monitor's readings for processes whose name contains blanks. - Fixes for geometry computation on multihead (Dmitry Malikov).
- Fixes for missing XDG configuration (Thiago Negri and James McCoy, see issue #133).
- Compatibility with latest
directory
(1.2.0.2).
As of this release, the old bug tracker at Google code is deprecated. Please use Github's tracker for new bugs.
New features
- New monitor
BatteryN
, a variant ofBatteryP
that lets you specify the name of the monitor in the template. - Support for configuration file living in
XDG_CONFIG_HOME
(see github #99). Com
uses saferrunInteractiveProcess
instead of spawning a shell (David McLean). If you're using shell expansion in yourCom
(e.g. "~/bin/script") here's a workaround:Run Com "/bin/bash" ["-c", "~/bin/script"]
(cf. github #127).- New plugin
UnsafeStdinReader
that allows actions from stdin. Now it's possible to have clickable workspaces! (Thiago Negri, see github #125). - New monitor configuration option (
-x
or--nastring
) that allows specifying what string to display when a monitor is not available (defaulting to "N/A"). Cf. github #119.
Bug fixes
- Using the width options
-w
,-m
and-M
in battery monitors watts display (github #118). - Using the
-d
option inCoreTemp
(github #115) - Fix for systems not supporting PCRE regular expressions: we use now BCEs, so regex-compat should be enough everywhere (see github #117).
- Weather monitor: support for stations without name (Sergei Trofimovich, issue #65).
New features
-
All extra argument monitors taking a string (e.g.
-O
forBatteryP
) accept now template variables (see github #109 and #110). Thanks to Todd Lunter. -
New battery monitor extra argument,
-i
, for the idle status.
Bug fixes
- Safer standard input parsing, avoiding injections.
New features
- Icons support: it's now possible to insert bitmaps in the template (Edward O'Callaghan, Alexander Polakov and Tomáš Janoušek).
- Initial support for reacting to mouse clicks (Alexander Polakov).
- New
TopP
andBottomP
alignments, taking left and right paddings (thanks to Dmitry Malikov). - New
<freeratio>
field for memory monitor (Peter Simons). - New
allDesktops
andoverrideRedirect
configuration options, providing dock behaviour in tiling WMs (when set to True and False respectively). Cf. discussion at github #105. - Experimental
-d
(start as a dock) option, may address github #67 in some window managers.
Bug fixes
- Partial (as reports go) fix for github #77.
- Safer volume plugin (Dmitry Malikov).
- Battery percentage capped at 100% (RJ Regenold).
New features
- New monitor
AutoMPD
, which uses asynchronous events to display MPD status (thanks to Ben Boeckel). - New monitor
BufferedPipeReader
displaying data from multiple pipes (thanks to Jochen Keil). - New monitor
DynNetwork
, which detects the active interface automatically, by Reto Hablützel - New monitor,
Locks
, displaying the status of lock keys, by Patrick Chilton. - Extension for DBUS signal handling (Jochen Keil)
- Hide/Reveal: one can send signals to xmobar and make it (un)hide itself (Jochen again).
PipeReader
's default text is now configurable, by Reto Hablützel.- Dependencies updated to latest mtl and libmpd (thanks to Sergei Trofimovich).
- Dependencies on the deprecated dbus-core removed in favour of dbus 0.10 (thanks to Jochen Keil).
- MPris2 now includes genre and composer among its fields.
Bug fixes
DiskIO
now can report overall activity in all partitions of a device which is not mounted itself (e.g., sda when sda1, sda3, etc. are the mounted partitions). Thanks to John Soros. See github #73.DiskU
, the disk usage monitor, works again correctly on Linux, instead of randomly crashing every now and then, and reporting wrong used size.- When using antialiased fonts, we were causing a memory leak in the X server by repeatedly allocating colors that, apparently, the server doesn't know how to get rid of (even when told so!). We're caching them now and X server memory doesn't grow.
- Compilation errors and warnings with GHC 7.6 removed (thanks to Raghavendra D Prabhu for his reports in github #71).
Known problems
Some users have reported problems with xmobar compiled with GHC 7.6 in ArchLinux: see github #78 and pointers therein. Please, send reports of any problems or successes in that regard so that we can fix any remaining issues. Thanks!
Incompatible changes
Batt
monitor no longer uses-c
to specify the charge file: it should figure things out by itself (cf. issue 69).
New features
- New command line option,
-C
, that allows adding commands to those specified in the configuration file (Ben Boeckel). - Dependency on GHC's threaded runtime has been eliminated.
- New MPRIS (versions 1 and 2) monitor, by Artem Tarasov.
- New monitor option
-d
to specify the number of decimal places to display for float numbers. Defaults to 0. See issue 58. - New compilation option
--with_threaded
, to use GHC's threaded runtime to compile xmobar. Disabled by default (cf. discussion in github #36).
Bug fixes
- Stricter build dependencies versioning in cabal file.
- issue 56 vertical alignment of text improved.
- issue 64 display of
watts
inBatt
monitor fixed. - issue 69 miscellaneous battery reporting issues.
- issue 67 compilation in DragonFly.
- DiskIO works also when device path in mtab are symbolic links to the real device file.
- Wireless monitor honours padding settings for ESSID names.
- CoreTemp monitor fixed for newer kernels (github #38).
New features
- New brightness monitor, courtesy of Martin Perner.
- New DateZone plugin, for configurable timezone and localized datetimes, also by Martin.
- New keyboard layout monitor (Kbd). Yes, by Martin.
- Rewrite of the event handling (issue 53, issue 57), you guessed it.
- Cpu monitor now also reports
iowait
field (issue 55). - Battery monitor: the full charge file is now settable in the
monitor arguments (olpc systems use
charge_full_design
; see issue 62).
Bug fixes
- issue 45 Fix for crashes with AC status changes in battery monitor.
- issue 48 The field of Wireless behaves like a percentage.
- issue 50/issue 61:
MPD
monitor now works with libmpd 0.6. - issue 60 Fixes for crashes on power resume for battery monitor.
- Template sections without fields are now correctly displayed.
- Catch errors when reading battery status (Ben Boeckel).
- Compilation issues with ghc 7.x (Sergei Trofimovich).
- Fixes for CoreTemp monitor in new kernels (Norbert Zeh).
- Fix for pulseaudio problems in volume monitor (Martin Perner).
- Fix for parsing errors when a
Run
entry ended in an array (Martin). - Fixed compilation in OpenBSD (Ivo van der Sangen).
New features
- New
Volume
monitor displaying ALSA soundcards information, by Thomas Tuegel. - New
ThermalZone
plugin substitutingThermal
and using linux's sysfs interface (you need this one if you're using a kernel version equal to or above 2.6.37). See issue 44. - xmobar app new has WM_CLASS, WM_NAME and _NET_WM_PID xprops (issue 38).
Incompatible changes
- In the process of solving issue 14, we've broken those
configurations that rely on including alignment separators in the
input fed to
StdinReader
. - The MPD plugin does not accept host and port options anymore: use the environment variables MPD_HOST and MPD_PORT instead.
- The
Mail
plugin now takes a second parameter (a string) specifying its alias. As a side-effect, this solves issue 30.
Bug fixes
- issue 14
StdinReader
and other plugins accepting external input don't get confused anymore when characters fromalignSep
appear in their input. - issue 27
BottomSize
placement now respects its width argument. - issue 28 Compilation in Mac OS X fixed.
- issue 30
Mail
plugin can be specified anywhere in commands list. - issue 36 Battery monitor now supports non-standard locations of
the
/sys/class/power_supply/AC/online
file. - issue 40 Battery monitor now supports the new power_now, that replaces current_now in linux kernels for v. 2.36 and above.
- issue 42 More accurate net monitor rates.
- DiskIO, Cpu and MultiCpu monitors are also more accurate now.
- Text is now correctly centered vertically.
FullBM
border spec fixed.
xmobar has a new maintainer, a new website, a new mailing list and uses a new source code repository.
Many thanks to Andrea Rossato, xmobar's author and maintainer so far, for creating xmobar in the first place, and for giving me the chance to become its maintainer. And a big thanks to Ben Boeckel, Petr Rockai and Norbert Zeh for their patches.
New features
- Window borders: configuration options
border
andborderColor
allow drawing borders around xmobar's window. - New monitor,
Uptime
, showing the system uptime. - New monitor argument (
-S
) to enable displaying the%
symbol in percentages or other suffixes (e.g., units in Uptime and Network); the symbol is now never included by default. - New 'run once' commands, by specifying a 0 refresh rate in
Run Com
(issue 26). - MPD monitor: updated to libmpd 1.5. New fields
ppos
(playlist position) andremaining
(remaining time). New configuration options to specify MPD's host, user name and password. - Battery monitor: new
watts
andtimeleft
fields (Petr Rockai), and specific arguments to control coloring and thresholds of the former. - MultiCPU monitor: new
auto*
fields that automatically detect all present CPUs (Ben Boeckel). - CpuFreq monitor uses just one decimal digit for GHz values (Petr Rockai).
- Mail plugin expands paths starting with "~/" (Ben Boeckel). Ditto MBox.
- Weather monitor now skips not retrieved fields, instead of displaying a long error message.
- New compilation flag,
all_extensions
. - Documentation and website updates.
Bug fixes
- issue 23 Wireless monitor is now compatible with iwlib 29.
- issue 24 Swap monitor's used ratio display fixed.
- issue 25 Percentages only include
%
if requested using-P
. - issue 31 MPD monitor now respects
-W
argument. - Fixes in CPU frequency formatting, string alignment and colour boxes in monitors (Norbert Zeh).
- TopMem and TopProc now use the
-L
and-H
options correctly for memory template fields. - MBox skips non-existent mbox paths instead of hanging.