[dev] [announce] pista: the ii of status bars

From: Siraaj Khandkar <siraaj_AT_khandkar.net>
Date: Fri, 22 Oct 2021 10:04:22 -0400

Hello fellow dislikers of sucking!

After a lot of suckfull experiments (archived at
https://github.com/xandkar/khatus/), I've finally settled on what it is
that I would even want from a status bar thingie - I want ii, but for my
status bar. Here's my take on it:

https://github.com/xandkar/pista

I've been dogfooding/beta-testing pista for almost 2 years now, and
while there's certainly improvements that can be made - it reliably does
pretty much what I want.

Any constructive criticism is highly appreciated!

The main design idea is this: asynchronously read lines from N FIFOs and
route 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? Anything that outputs lines of text.
What goes into a FIFO? Lines of text.

Here're the "sensors" that I currently use (which are still in flux and
not quite suckless yet):

https://github.com/xandkar/pista-sensors

I launch it all via a script such as this:
https://github.com/xandkar/pista-sensors/blob/master/example-via-tmux

which I call from ~/.xinitrc

Running it from tmux has been great - I can do runtime reconfiguration,
stop, restart the whole thing, can attach and stop/restart and or tweak
individual sensor processes, etc. - all without relaunching X.

This also makes it easy to do one-off experiments as well as temporarily
disabling things (like if I want to completely disable the weather
fetcher while I know I'm going to be offline for a long time).

-- xand
Received on Fri Oct 22 2021 - 16:04:22 CEST

This archive was generated by hypermail 2.3.0 : Fri Oct 22 2021 - 17:12:08 CEST