Skip to main content

blstatus

A status monitor for DWM (or any window manager that uses WM_NAME to fill a status bar). Compared to slstatus, blstatus is capable of displaying more information, and it also updates network, audio volume, and battery information asynchronously, rather than using polling.

Example status_bar

Installation

blstatus has the following dependencies:

  • python3-dev
  • libcairo2-dev
  • libgirepository2.0-dev

And the following dependencies available on PyPI:

  • apscheduler
  • asyncio-glib
  • pulsectl-asyncio
  • pydbus
  • xlib

The package can be installed using pipx, e.g.:

sudo apt install pipx python3-dev libcairo2-dev libgirepository1.0-dev
pipx install blstatus

Configuration

blstatus can be configured with a file located at ~/.config/blstatus/config.ini, e.g.

[general]
# Text to use between components
# Needs to be quoted if spaces (or a quote character) are used
spacer = ' | '

# Enable if using statuscmd (https://dwm.suckless.org/patches/statuscmd/)
enable_signal_text = false

[date_time]
# Format string for the date command
# Must be quoted and % must be doubled
format = '+"%%Y-%%m-%%d %%A %%-I:%%M %%P"'

[memory]
# Interval in seconds between updating memory status
interval = 2.0

# Enable using nvidia-smi to get GPU memory usage
enable_gpu = false

[volume]
# Dictionary to map a PulseAudio sink/source name to an abbreviation
# If the end of a PulseAudio device name matches a key the value will be used
# If a PulseAudio device name doesn't match anything in the dictionary, source_sink_unknown_abbreviation is used
# Must be a single line
source_sink_abbreviations = { 'analog-stereo': 'A', 'hdmi-stereo': 'H', 'a2dp_sink': 'B', 'handsfree_head_unit': 'B' }

# Abbreviation to use if a sink/source name isn't known
source_sink_unknown_abbreviation = 'U'

To determine the key part of source_sink_abbreviations, PulseAudio sink/source names can be printed with:

import pulsectl

pulse = pulsectl.Pulse()
print([sink.name for sink in pulse.sink_list()])
print([source.name for source in pulse.source_list()])

Starting with systemd

A systemd service file is included in this repository which can be enabled and started like so:

# Copy the service file
cp blstatus.service ~/.local/share/systemd/user/

# Enable the service
systemctl --user enable blstatus

# Start the service
systemctl --user start blstatus

Metadata

Release files for blstatus 0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for blstatus 0.4
File Size Uploaded
blstatus-0.4.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for blstatus 0.4
File Interpreter ABI Platform
blstatus-0.4-py3-none-any.whl Python 3 none any Details

Total release size: 25.0 kB

Release files / blstatus-0.4.tar.gz

Download URL blstatus-0.4.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3c3b86715f23ed34eefaf6dca08d051138140a45ff05565693e4c29f35621dc6
BLAKE2b-256 checksum
How to use checksums
8b47de13bdbb73e47a1d35900b1cd5959e8ad70a5b10a69848f42eec3dd85101
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / blstatus-0.4-py3-none-any.whl

Download URL blstatus-0.4-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
73e3f4d9d198c053f92db6451f81e607e55b3264a27ece81ba9066a67d5ab53b
BLAKE2b-256 checksum
How to use checksums
6d1bef632c1de0960814cc64b4a362c42b59a7f82ef1fd2a8bc15d99f87b5f55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.4 This release

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page