A modular status bar for dwm
Find a file
Archie Hilton (thytom) 80fd41115d I can't write bash
2019-11-06 14:56:04 +00:00
modules Updated TODO and changed bc to python in volumebar 2019-11-06 14:25:24 +00:00
res Added example image to README.md 2019-10-22 23:22:24 +01:00
bar.sh I can't write bash 2019-11-06 14:56:04 +00:00
config Internet is off on startup. Cleaned up bar.sh and config 2019-11-04 09:21:40 +00:00
COPYING Moved LICENSE to COPYING in compliance with FSF 2019-10-23 15:22:40 +01:00
dwmbar More changes 2019-11-06 14:53:58 +00:00
install.sh Restructuring 2019-10-24 17:27:20 +01:00
README.md Update README.md 2019-11-06 14:46:06 +00:00
TODO.org Added todo item 2019-11-06 14:38:02 +00:00
uninstall.sh Added copyright and license notice at the top of main files 2019-10-23 15:28:41 +01:00

dwmbar - A Modular Status Bar for dwm

Example image

dwmbar is a very simple status bar written for dwm.

Installation

Prerequisites

While some modules will work without these dependencies, we recommend grabbing the ones you want for specific modules.

Highly Recommended:

  • Any patched Nerd Font for icons.

Optional (By module):

See [module prerequisites][Module Prerequisites]

Arch Linux

There is an AUR package for dwmbar, which can be installed with your favourite aur helper, or manually.

Please see the archwiki page for how to manually install AUR packages.

Manual Installation

$ git clone https://github.com/thytom/dwmbar
$ cd dwmbar
$ sudo ./install.sh

Usage

dwmbar works by setting the root window name, which dwm displays. It does this by calling the dwmbarrc file in your .config/dwmbar folder.

Add the line dwmbar & to your .xinitrc file to run on startup. You can also run dwmbar in terminal for testing purposes.

Customisation

Configuring the Bar

Most non-modular configuration is done in ~/.config/dwmbar/dwmbarrc, a bash script that calls scripts in turn, caching their output and then constructing the bar from that.

To add a module to the bar, simply include its name in the MODULES variable:

MODULES="mpd volumebar wifi battery"

Modules are displayed left-to-right in the order they are written in MODULES. By default, they are delimited by the SEPARATOR variable, which you can change.

We also offer a PADDING variable, which contains a string you can include at the start of your bar, on the very right. This can either be padding spaces, to move the bar away from the right edge, or even text. By default, we set PADDING to $USER@$HOSTNAME. Feel free to change this.

Writing Modules

Default modules are located within ~/.config/dwmbar/modules, and custom modules can be placed in ~/.config/dwmbar/modules/custom. If a default module exists with the same name as a custom module, then the custom module will take precedence.

Default modules will possibly be overwritten during updates, so if you want to modify them be sure to make a copy in the custom folder, which will not be touched, and edit it there.

Modules can be written in any language, so long as they are executable and print their output to stdout.

Currently available default modules are:

  • archupdates - Gets the number of updates available Arch Linux Only
  • backlight - Shows the brightness of the screen
  • battery - Gets battery percentage
  • bluetooth - Shows bluetooth status
  • cpuload - Shows the CPU load in %
  • date - Shows the calendar date
  • daypercentage - Shows how far through the day you are, in %
  • disksize - Shows the disk usage
  • ethernet - Shows ethernet connection
  • fanspeed - Shows the rpm of your main fan
  • hostname - Shows your current user and hostname
  • internet - Shows whether internet is available (TODO)
  • kernel - Shows the kernel version
  • localip - Shows your local IP address
  • mail - Shows how much mail you have
  • mpd - Shows MPD status
  • networkdowntraffic - Gets the download traffic in Kb/s
  • networkuptraffic - Gets the upload traffic in Kb/s
  • publicip - Shows your public IP address
  • ram - Shows RAM usage
  • redshift - Shows current screen temperature from Redshift
  • sunmoon - Displays a sun or moon for time of day
  • temperature - Displays the temperature of the CPU
  • time - Displays time
  • todo - Prints the number of todos for the "t" todo manager
  • tor - Prints if the tor service is enabled
  • voidupdates - Gets the number of updates available Void Linux Only
  • volumebar - Displays a volume bar
  • volume - Prints volume in %
  • weather - Shows weather info
  • wifi - Shows wifi connection

Module Prerequisites

See Module Dependencies

  • archupdates
    • Arch Linux
    • yay
    • pacman-contrib
  • backlight
    • light
  • bluetooth
    • bluez
  • fanspeed
    • lmsensors
  • mail
  • mpd
    • mpd
    • mpc
  • publicip
    • curl
  • redshift
    • redshift
  • sunmoon
    • redshift
  • temperature
    • lm_sensors
  • todo
  • tor
    • tor
  • voidupdates
    • xbps package manager
  • volume
    • pulseaudio
  • volumebar
    • pulseaudio
  • weather
    • curl
    • Internet connection
  • wifi
    • Wifi card

Feature Wishlist

  • Paralellised Modules
    • Some modules are slower than others. Have modules set a DELAY variable; if they don't have one, use a default.
    • Modules are called and bar is updated when a module finishes, but an internal bar clock updates the clock at a specific delay.