bar script for stdin, fifo and xsetroot

  • Shell 95.7%
  • Makefile 4.3%
2026-03-05 23:20:31 +08:00
bin Mod(update.sh): add damblocks-kill 2026-03-05 22:06:57 +08:00
completions Feat(damblocks): add --xsetroot to shell completions 2026-02-05 21:10:11 +08:00
etc Mod(99-damblocks-battery.rules): user agnostic 2026-03-05 22:07:01 +08:00
misc Mod(README.md): Add repo avatar 2025-07-10 00:14:40 +08:00
.gitignore New(gitignore): Ignore .nvimlog 2025-09-03 14:05:21 +08:00
dam-damblocks.png Mod(dam-damblocks.png): Update screenshot 2025-11-13 22:15:37 +08:00
damblocks Feat(damblocks): udev rules for battery module 2026-03-03 13:40:57 +08:00
LICENSE Create LICENSE 2021-02-17 19:39:38 +05:30
Makefile Mod(Makefile): destination for bin/ 2026-03-05 22:13:16 +08:00
README.md Mod(README.md): usage for GNU make 2026-03-05 23:20:31 +08:00
screenshot.png image 2021-02-17 21:47:06 +05:30
update.sh Mod(update.sh): add damblocks-kill 2026-03-05 22:06:57 +08:00

Plain text status line generator written in POSIX shell, fork of sbar.

screenshot

Features

  • individual update intervals and signals
  • individual modules only updated when needed, instantly
  • supporting stdin, fifo and xsetroot
  • supporting Wayland, Xorg and TTY
  • restart damblocks with reload

Modules

  • time and date
  • battery or AC power supply, bluetooth battery
  • brightness level, microphone volume, speaker volume
  • wifi signal, ethernet connection
  • memory usage, cpu usage, cpu temperature, cpu fan speed
  • disk usage on root and home partition
  • pacman update count, tty login count, system uptime
  • calcurse coming event count, newsboat unread count, maildir unread count
  • weather report
  • mpd music title

Dependency

depends ttf-nerd-fonts-symbols wireplumber brightnessctl coreutils sed grep awk curl cronie udev
suggests dash bluez-utils isync newsboat calcurse mpc wob xob stow

Every function that supports signaling depends on one or more of:

  1. scripts
  2. udev rules
  3. cronjobs

Specific dependencies are listed in the SIGNALING session in this script.

Installation

To mange all the scripts, udev rules and cronjobs:

# install
make install
# uninstall
make uninstall

Usage

  • output to stdin by default
  • --fifo redirects to ${XDG_RUNTIME_DIR}/damblocks.fifo
  • --xsetroot sets the X root window title

river-classic with dam

Use dam-run.

kwm on river

kwm can read from stdin:

damblocks | kwm &
killall -q mpc
damblocks-mpdd

or a named pipe:

damblocks --fifo &
killall -q mpc
damblocks-mpdd

dwm

# .xinitrc
damblocks --xsetroot &
exec dwm

dwl with bar patch

damblocks | dwl

i3/sway bar

# .config/{i3,sway}/config
bar {
    status_command damblocks
}

exec_always "killall -q mpc; damblocks-mpdd"

dvtm

damblocks --fifo &
dvtm -s ${XDG_RUNTIME_DIR}/damblocks.fifo