Modular status monitor for dwm written in C with features including signaling, clickability, cursor hinting and color.
Refer to config.h. It allows addition/removal of blocks and a few other configurations.
make, the first time you run it, or
make config.hwill create config.h by copying config.def.h.
The provided blocks use siji font for icons.
Colored output and Clickability
patches folder contains two patches for dwm, one for dwm already patched with systray patch and the other for vanilla dwm. One of the patches, whichever appropriate, is essential for dwmblocks to function properly. It will add support for colored text, clickability and cursor hinting when hovering on clickable blocks (inspired by polybar).
Clickability is inspired by statuscmd patch for dwm. On clicking on text corresponding to a clickable block, the program specified to handle clicks for that block is executed with the first argument specifying which button was clicked (1 for left, 2 for middle and 3 for right).
Colored output is inspired by statuscolors patch for dwm. To add colors, have
your programs for the blocks output raw characters from
in status text switches active colorscheme to the first one in the colors array
defined in dwm's config.h and so on. See
statuscolors patch for dwm
for more info. Keep in mind that you have to start from
\x0b instead of
as instructed on the page.
To signal a specific block to update, run
sigdwmblocks <signal> [<sigval>].
<sigval> is optional and must be an integer. If provided, it is passed as the
first argument to the program specified for updating the block.
A tiny program to get the current root name. May prove helpful in debugging.
Clone the repository and run
cd dwmblocks make sudo make install
Some ideas and code was taken from other projects. Credits for those go to -
- torrinfail (original dwmblocks implementation)
- Daniel Bylinka (statuscmd patch for dwm)
- Jeremy Jay (statuscolors patch for dwm)
- dsblocks - A clone of this project with the only difference being that C functions instead of external programs are used to update blocks and handle clicks.