-
Notifications
You must be signed in to change notification settings - Fork 1
PIped STAtus: the ii of status bars! Event loop over N FIFOs, reading line streams and writing into N segments of your status buffer. After a TTL without updates, a segment is blanked-out.
License
xandkar/pista
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
PiSta ===== Piped Status: the ii of status bars! DESCRIPTION ----------- Intended for use with dwm, but can just as well be adopted to anything else with a textual status area (like tmux). Asynchronously reads lines from N FIFOs and routes to N corresponding slots on the bar: b +--------------+--------------+- ... ---+-------------+ a | slot_1 | slot_2 | | slot_N | r +--------------+--------------+- ... ---+-------------+ ^ ^ ^ | | | +-+ +-+ +-+ | | | | | | |F| |F| |F| |I| |I| |I| |F| |F| |F| |O| |O| |O| | | | | | | |1| |2| |N| | | | | | | +-+ +-+ +-+ ^ ^ ^ | | | process_1 process_2 ... process_N Each slot is given a TTL, after which, if there was no update - the slot is cleared - helping you spot broken sensors and not fool yourself with stale data. What is a sensor? Any process that outputs lines of text. What goes into a FIFO? Lines of text. Each new line filling the slot corresponding to the sensor. USAGE ----- pista [OPTION ...] SPEC [SPEC ...] SPEC = FILE_PATH DATA_WIDTH DATA_TTL FILE_PATH = string DATA_WIDTH = int /* (positive) number of characters */ DATA_TTL = float /* (positive) number of seconds */ OPTION = -i INTERVAL | -s SEPARATOR | -x /* Output to X root window */ | -l LOG_LEVEL | -e EXPIRY_CHARACTER SEPARATOR = string INTERVAL = float /* (positive) number of seconds */ LOG_LEVEL = int /* 0 (nothing) * 1 (error) * 2 (warn) * 3 (info) * 4 (debug) */ EXPIRY_CHARACTER = string /* Character with which to fill the slot * upon expiration. */ EXAMPLES -------- See demo file for a working example. ### dwm For dwm there's an -x flag which causes the status to be sent directly to the X11 root window name (which is what dwm uses as its status): pista -x a 10 15 b 20 5 & ### other For other things you'll need to route pista's stdout output lines to the desired location. #### tmux Let's say tmux for example: 1. Run pista from somewhere (like ~/.xinitrc): pista a 10 15 b 20 5 | while read line; do echo "$line" > ~/.status; done & 2. Then in ~/.tmux.conf set -g status-right "#(cat ~/.status)" LINKS ----- - [dwm](https://dwm.suckless.org/) - [ii](https://tools.suckless.org/ii/) - [tmux](https://tmux.github.io/)
About
PIped STAtus: the ii of status bars! Event loop over N FIFOs, reading line streams and writing into N segments of your status buffer. After a TTL without updates, a segment is blanked-out.
Topics
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published