Armaan Bhojwani

Living Without a Bar

Last modified on Changelog.

Most desktop Linux users use a bar of some kind to display various system information, whether it be the one built into your desktop environment/window manager, tint2, polybar, lemonbar, et cetera. I haven’t had a bar installed for the last few months, and I have really enjoyed the reduction in visual clutter and increased usable screen area. Looking through some screenshots on r/unixporn, some of the most frequently displayed pieces of information in a bar are:

Go through this list and see which of these you actually need to be productive, for me, its just time/date, volume, and battery. Everything else is simply a distraction. I don’t need to know my CPU temperature to do my work, I don’t need to know the number of updates available. When I need to know these things, it takes me a single keystroke to get into my terminal to get more detailed information about it, like firing up htop or running my system update function.

Contrary to popular belief, the system tray does not need to be on the bar. Spectrwm handles this with minimization, and thus doesn’t need the bar to keep programs running in the background. Although, as you start to use more and more minimal software, the amount of junk that runs in the system tray will be reduced. The only thing that ever populates mine is Zoom, which I am obligated to use.

So for me, I only need to know three pieces of information: time/date, volume level, and battery status. How do I get this info when I need it? Notifications. On my machines with dbus, I use a script that calls dunst. Every time I hit a media key, my window manager calls this script, and in addition to doing the action I want it to do, it also displays a notification via the dunstify utility packaged with dunst. I don’t use notify-send, the more popular option for sending notifications, because dunstify lets you use many of dunst’s special features that are not otherwise available, like having a bar visually show me the percent brightness or volume, and naming the notification such that they do not stack when pressing the media keys multiple times, but rather replace notifications of the same name. I can also hit s-n, which will display a notification with the date/time (in ISO8601 format of course1), as well as the current battery level/time remaining/charging status, and the volume/mute status. In addition, I use batsignal to notify me when my battery is running low.

Here is what that status notification might look like:

|    Tuesday 2021-04-13, 10:39:38 AM   |
| Discharging, 26%, 01:07:14 remaining |
|              [45%] [on]              |

With this notification system, I feel entirely comfortable without a bar, and I think that you can too.

  1. Yes, I know that technically this isn’t true ISO8601 format, but the year-month-day is what really matters. ↩︎