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

Reply via email to