Looking Back

Wow, it has already been half a year since 3.3.0 was released!

In exactly 100 commits 19 different people have contributed to this new release. We had 126 changed files with 1441 added and 1087 deleted lines. In total 8 bugs were fixed and we added 8 new config options.

There have not been too many big changes, the biggest one probably is the new customizability of the xkeyboard module which we showcase below. We changed a lot of the internals of our build process to make it more reliable though. Until now we had the problem that when compilers introduced new flags to detect possibly wrong code and emit warnings for it, polybar would fail to build even with those compiler versions. This no longer happens, when compilers are updated it will no longer break your polybar builds.

You can read the full changelog on github.

Migration Guide

When updating from 3.3.X to 3.4.0 your configs should still work the same as before.

We have deprecated the label-indicator key in the xkeyboard module in favor of label-indicator-on , they both do the same thing though and polybar will warn you that label-indicator is deprecated.

New xkeyboard options

In 3.4.0 you can now heavily customize how layouts and indicators are displayed in the xkeyboard module. For example if you have the following in your config:

layout-icon-default = ¯ \_ (ツ)_/¯ layout-icon-0 = us;U indicator-icon-default = "" indicator-icon-0 = caps lock;;CL label-layout = %icon% label-indicator-on = %name% %icon% label-indicator-off = %icon%

The module will display U if you use the us layout and ¯\_(ツ)_/¯ otherwise. If you have caps lock on, it will show Caps Lock CL and for other indicators it will only display the name. You can even completely control what to display for certain indicators, so if you add label-capslock-on-numlock = %icon% , it would only display CL when caps lock is enabled and ignores label-indicator-on . This by the way works for all indicators.

You can find the full specifications of these new features wiki.

Next Steps

We have big plans for 3.5.0. We want to change our release workflow because our current one cannot really be considered “best practice”.

With the help of a new co-maintainer @Lomadriel we want to make polybar more easily packagable which should help polybar get packaged for more distros.

We also want modules be more customizable and behave more uniformly when it comes to click-* actions.

If we have time we might even add new capabilities to the config syntax.

Now go ahead and update your polybar! You can find the new source tarball here.

— The Polybar Team