aboutsummaryrefslogtreecommitdiffstats

wmsl - Window Manager Status Line

wmsl is a simple and efficient status line program for window managers like dwm.

Features

  • Status blocks are updated by timer or unique signal
  • Simple runtime config format (see wmslrc)
  • Extensible source in ~350 LOC
  • Signal-based block updates for instant feedback
  • No dependencies except X11

Building

make

For debug builds:

make DEBUG=1

Installation

make install

By default, this installs to /usr/local/bin. To install elsewhere:

make PREFIX=/usr install

Configuration

Create a configuration file at ~/.config/wmsl/wmslrc:

delim= |
prefix=
suffix=

block=wmsl-time
block-id=1
block-sleep=1

block=wmsl-battery
block-id=2
block-sleep=10

See contrib/README.md for example monitoring scripts.

Configuration Options

  • delim=STRING - Delimiter between blocks (default: " | ")
  • prefix=STRING - Prefix before all blocks (default: "")
  • suffix=STRING - Suffix after all blocks (default: " ")
  • block=COMMAND - Define a block with the given command
  • block-id=ID - Set block ID for manual triggering (0 = cannot be triggered)
  • block-sleep=SECONDS - Update interval in seconds (0 = manual only)

Usage

Start wmsl (typically in your .xinitrc or window manager startup):

wmsl &

Use a custom config file:

wmsl -C /path/to/config &

Manually trigger a block update:

sigwmsl <block-id>

Contrib Scripts

The contrib/ directory contains useful monitoring scripts:

  • wmsl-battery - Battery status and percentage
  • wmsl-cpu - CPU usage
  • wmsl-memory - Memory usage
  • wmsl-disk - Disk usage
  • wmsl-time - Date and time
  • wmsl-ip - IP address
  • wmsl-volume - Audio volume
  • wmsl-load - System load
  • wmsl-temp - CPU temperature
  • wmsl-wifi - WiFi status

Install them to your PATH:

cp contrib/wmsl-* ~/.local/bin/
chmod +x ~/.local/bin/wmsl-*

License

MIT License - See LICENSE file for details.