#dwm #dwm-status

bin+lib dwm-status

Displays system information for dwm status bar

13 releases (4 stable)

1.1.2 Aug 7, 2018
1.1.1 Jun 27, 2018
0.5.1 Jun 16, 2018
0.4.0 Jun 8, 2018
0.1.0 Mar 23, 2018
Download history 22/week @ 2018-05-23 30/week @ 2018-05-30 2/week @ 2018-06-06 25/week @ 2018-06-13 43/week @ 2018-06-20 153/week @ 2018-06-27 54/week @ 2018-07-04 14/week @ 2018-07-11 42/week @ 2018-07-18 1/week @ 2018-07-25 50/week @ 2018-08-01 57/week @ 2018-08-08

164 downloads per month

MIT license

1.5K SLoC

dwm-status Travis CI Crates.io The MIT License

DWM status service which dynamically updates when needed. Heavily inspired by i3status-rust.

Example status bar:

L 30% / MUTE /25% (01:05) / 2018-03-16 21:25

If an error occurs, notifications are sent via libnotify.


cargo, rustc and lib{dbus,gdk-pixbuf,glib,notify,x11}-dev are required to build the binary.

Build and run

$ # dev mode
$ cargo run -- <config-file>
$ # release mode
$ cargo build --release
$ ./target/release/dwm-status <config-file>

Or install globally to ~/.cargo/bin:

$ cargo install dwm-status

Nix support


$ nix-build

And run:

$ ./result/bin/dwm_status <config-file>


The config-file can be a HJSON, JSON, TOML or YAML file. See in examples/settings for how examples filled with the default values. The type of file is determined by its suffix.

General options

name default description
debug false Whether to print to stdout when the bar updates.
order [] List of enabled features in order.
separator " / " Separator string between each feature.

Feature: Audio

Note: alsa-utils are required.

Shows status of configured alsa control device. Listens on alsactl monitor for changes.

Configuration options

name default description
control "Master" Alsa control device to listen for.
mute "MUTE" Text representation if muted.
template "S {VOL}%" Text representation if unmuted. ({VOL} gets replaced with the current volume)

Feature: Backlight

Shows status of backlight value and watches /sys/class/backlight for changes.

Configuration options

name default description
device "intel_backlight" Backlight device in /sys/class/backlight.
template "L {BL}%" Text representation. ({BL} gets replaced with the current backlight value)

Feature: Battery

Note: The upower daemon has to be running for receiving DBus messages.

Watches UPower DBus signals for added or removed batteries and changes of battery states.

If notifier is enabled, currently discharging and the capacity of the fullest battery is under the configured values value, warning notifications with urgency normal or critical (depending on the configured critical value) are sent.

Shows following information per battery:

status example notes
charging 10% (01:23) In parentheses time to full
discharging 50% (02:03) In parentheses time to empty

Shows following information as feature block:

battery count example notes
1 50% (02:03)
2 50% (02:03) · 50% Batteries ordered alphabetically by name

Configuration options

name default description
charging "" Text representation for status charging.
discharging "" Text representation for status discharging.
enable_notifier true Whether to enable the notifier.
no_battery "NO BATT" Text representation if no battery present.
notifier_critical 10 Maximum battery value to notify via critical notification.
notifier_levels [2, 5, 10, 15, 20] Battery values to notify.
separator " · " Separator string between mutliple battery infos.

Feature: CPU Load

Shows CPU load taken from /proc/loadavg in configured format and refreshes every n seconds.

Configuration options

name default description
template "{CL1} {CL5} {CL15}" Text representation. ({CLx} gets replaced with the load
of last x minutes for x in {1, 5, 15})
update_interval 20 Update interval in seconds.

Feature: Time

Shows time in configured format and refreshes every second or minute.

Configuration options

name default description
format "%Y-%m-%d %H:%M" Time format of chrono crate.
update_seconds false Whether to update time feature every second or minute.


~126K SLoC