Polybar 3.7.0 Release

05 Nov 2023 -- Polybar Team

The Numbers

  • 24 contributors (17 first-time)
  • 120 pull-requests
  • 267 commits
  • 230 files changed
  • 8250 lines added
  • 5067 lines deleted
  • 45 issues closed
  • 27 bugs fixed

What’s New?

The big addition in this release is a new shiny tray module described below.

On top of that we have added a bunch of smaller features and fixes. The full changelog can be found on the release page, but I want to highlight a few here.

Restacking the bar window (defining its position in the window stack with wm-restack) has gotten more powerful with two new possible stacking strategies: bottom, ewmh. The bottom strategy is the same as the old generic strategy and puts polybar below all other windows. ewmh puts the bar above the window set in the _NET_SUPPORTING_WM_CHECK hint (if it is set); this is a window created by the window manager and, in some WMs, appears below other user windows, but above windows created by the WM (e.g. dedicated wallpaper windows). Finally, the generic strategy has been changed to first try the ewmh strategy and fall back to the bottom strategy.

The internal/temperature module now has a zone-type setting where the thermal zone can be selected by name instead of by number (through thermal-zone) or full path (through hwmon-path). This makes it easier to consistenly select the desired thermal sensor because both the number or full path of the sensor may change between reboots (e.g. if the hardware configuration changes).

Tray Module

This new module has the same underlying functionality as the old tray (this is not a StatusNotifier/AppIndicator tray) with the added benefit that it can be positioned just like a module instead of being restricted to the bar edges or center.

In addition, we have almost completely rewritten the handling of tray icons. This effectively fixes any issues regarding the positioning of the tray and it appearing above fullscreen windows (when the bar itself does not).

Read the tracking issue and all the issues it links to (especially #2595 and #2609) for the whole story.

Using the new tray module is as simple as adding a new module with the following contents (this is the entire tray configuration I am using right now):

[module/tray]
type = internal/tray

The old way of adding a tray to the bar is deprecated, will no longer receive any bug fixes, and everyone should migrate to the new tray module.

Migration Guide

Starting with version 3.7, the migration guide now lives in the readthedocs documentation.

Next Steps

As always I have big plans for the future of polybar. However, my life has gotten busier this year and I have found less time to work on polybar. This will likely not change in the foreseeable future and as a result development on polybar will necessarily slow down. In fact it already has; one reason why this release took so long to get out.

Nevertheless, I still want to work on polybar, albeit more slowly. It will on be things I enjoy and not necessarily features that are much requested by the community.

Until next time — Patrick

Comments