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 commandblock-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 percentagewmsl-cpu- CPU usagewmsl-memory- Memory usagewmsl-disk- Disk usagewmsl-time- Date and timewmsl-ip- IP addresswmsl-volume- Audio volumewmsl-load- System loadwmsl-temp- CPU temperaturewmsl-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.
