[xmonad] Issue 91 in xmonad: DynamicLog causes xmonad to hang when the output pipe is full

codesite-noreply at google.com codesite-noreply at google.com
Sun Feb 15 19:19:33 EST 2009


Comment #5 on issue 91 by wirtwolff: DynamicLog causes xmonad to hang when  
the output pipe is full
http://code.google.com/p/xmonad/issues/detail?id=91

Hmm, unfortunately, looks like this needs to be re-opened.

Run either of these configs with latest darcs, or Config.Sjanssen, or
anything that spawnPipes and hPutStrLn's to a status bar. Then kill the bar
and hold down mod-j till xmonad freezes. Asgaroth worked out can find pipe
fd via lsof, so to clear it to restart xmonad can use something like:

ls /proc/`pgrep xmonad`/fd/`lsof | grep xmonad | \
  egrep '[ur] *FIFO' |  sed -n 's/.*\([0-9]\)[ur].*/\1/ p'`

and cat the appropriate pipe.


import XMonad
import XMonad.Hooks.DynamicLog
{-
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run
import System.IO
main = do
   h <- spawnPipe "xmobar"
   xmonad $ defaultConfig
       { layoutHook = avoidStruts $ layoutHook defaultConfig
       , logHook = dynamicLogWithPP $ xmobarPP { ppOutput = hPutStrLn h }
       }
   -}      -- or equivalent plus kebinding--

main = xmonad =<< statusBar "xmobar" xmobarPP strutkey defaultConfig
   where strutkey (XConfig {modMask = modm}) = (modm, xK_b)

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings


More information about the xmonad mailing list