<div dir="ltr">On Sun, Aug 14, 2011 at 06:05, Jochen Keil <span dir="ltr">&lt;<a href="mailto:jochen.keil@gmail.com">jochen.keil@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
However, if I call foo from a keybinding<br>
<br>
((modMask, xK_x), foo)<br>
<br>
the spawned program will run but not mapped. This means that I can see<br>
the console output in xmonad stdout/stderr but the window will not pop<br>
up. I think this is because of the internal handling of keyevents in<br>
</blockquote><div><br></div><div>It&#39;s because your function is doing stuff instead of listening for X events.  If you want to go off and do something else, forkIO a thread for the something else.  If your something else requires communication with X11, you&#39;ll need to think about rewriting around the event handler instead.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">code I have written. It&#39;s some kind of of vi-mode behaviour for xmonad.<br></blockquote><div><br></div>
<div>XMonad.Actions.Submap would be a good starting point for this.  Not an ideal one, as  it doesn&#39;t support timeouts or grabbing an entire submap.</div><div><br></div></div>-- <br>brandon s allbery                                      <a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a><br>
wandering unix systems administrator (available)     (412) 475-9364 vm/sms<br><br>
</div>