[Xmonad] xmobar-0.7rc1 testers needed
Andrea Rossato
mailing_list at istitutocolli.org
Tue Jul 17 23:59:18 EDT 2007
On Tue, Jul 17, 2007 at 06:19:13PM -0500, Spencer Janssen wrote:
> > BTW, I've been thinking about it, and I do not see any other possible
> > solution for the specific problem of blocking a thread and resuming it
> > in two different cases: an event *or* the elapsed time. You need the
> > real event or another thread that sends a fake event. Am I right?
>
> It is possible, but annoying. It requires a magic version of nextEvent that
> doesn't block inside foreign calls. Thankfully, this isn't so hard to write
> with threadWaitRead and XPending. With this magic nextEvent, we can use
> asynchronous exceptions to interrupt the thread with a timer. I've sent you
> a patch that implements this.
I thought that having a thread send an XEvent to another thread was
hackish, but your solution is the haskeller's way to hackerdom...;-)
I think it is going to take me at least a couple of days to grasp your
code entirely, but it works perfectly without that 30% increase in
memory consumption.
Without you I just couldn't do it. Thanks!
> The next step, I think, is to remove the 'refresh' configuration entirely --
> just have plugins throw exceptions to the event/drawing thread whenever they
> update.
Well, there is another use of refresh: in the output template you can
set unix commands, and have an empty "commands" list, such as:
Config { font = "-misc-fixed-*-*-*-*-10-*-*-*-*-*-*-*"
, bgColor = "black"
, fgColor = "grey"
, xPos = 0
, yPos = 0
, width = 1024
, height = 15
, align = "right"
, refresh = 10
, commands = []
, sepChar = "%"
, template = "<fc=#ee9a00>%date%</fc> %uname%"
}
In this case we need a global refresh option otherwise I need to hard
code a default value deep in the parsing routines. I don't think this
is a good idea.
Moreover, I think to have even monitors as plugins (enabled by
default, though), this way the user can build a very small xmobar,
with monitors disabled, just to run external unix commands.
Thanks for your help!
Andrea
More information about the Xmonad
mailing list