[Xmonad] X Events in a Status Bar

Andrea Rossato mailing_list at istitutocolli.org
Tue Jul 17 06:47:30 EDT 2007


I'm fighting with my personal ignorance and intellectual limitations
without seeing any end.

Supposed you have a window that displays a string that is the
concatenation of a list (of unknown length) of MVars, written by
forked threads with unknown frequencies.

You could check if any single variable has been updated after a given
amount of time, but it is quite probable that some of them have been
updated in that period of time. So you just end up reading them
periodically, and displaying what can be displayed.

This stupid reading happens in a recursive loop. 

Now, how can you handle X Events in such a situation and specifically
an Exposure event?

You could stop the loop and wait for the event to occur, but you need to
update the display since some MVar have change in the meantime.

You could wait for the event for some time and then update anyway.
It's a less stupid way of reading, but I cannot find any function to
achieve this result.

You could just forget about it, keep on updating periodically, but
then someone is going to say that your status bar has refresh issues
(who cares? Once I started it I'm not going to cover it, so no
Exposure event handling is needed here. If you have a problem with
that send a patch, it could even be applied...;-).

Actually I think I'm not able to find a working solution in a limited
amount of time, no matter how huge that amount is.

But since I keep reading that in order to code Haskell you must be
very smart, I thought I could ask here, before giving up...;-)


More information about the Xmonad mailing list