[xmonad] how to redirect dynamicLogXinerama output to a FIFO/named pipe?
wagnerdm at seas.upenn.edu
wagnerdm at seas.upenn.edu
Wed Jun 20 20:31:44 CEST 2012
You can use liftIO to turn an IO action into an X action: liftIO
(hSetBuffering stdout LineBuffering).
~d
Quoting Lara Michaels <laramichaels1978 at yahoo.com>:
> Hi Brandon
>
> thank you for this. I tried changing xmonad.hs to read
> main = do
> xmonad $ gnomeConfig { modMask = mod4Mask
> , startupHook = hSetBuffering stdout LineBuffering
> , manageHook = manageDocks <+> myManageHook
> <+> manageHook defaultConfig
> , workspaces = myWorkspaces
> , normalBorderColor = "#cccccc"
> , focusedBorderColor = "#cd8b00"
> , borderWidth = 3
> , layoutHook = showWName myLayout
> , logHook = dynamicLogXinerama
> -- , logHook = ewmhDesktopsLogHook <+>
> dynamicLogXinerama
> , handleEventHook = ewmhDesktopsEventHook
> } `additionalKeysP` myKeys
>
> but now xmonad shows me an error message:
>
> Couldn't match expected type 'X ()' with actual type 'IO ()'
> In the return type of a call of 'hsetBuffering'
> In the 'startupHook' field of a record
> In the first argument of 'addditionalKeysP', [...]
>
> Do you know why this is happening?
>
> thank you for any help
> ~l
>
>
>
> ________________________________
> From: Brandon Allbery <allbery.b at gmail.com>
> To: Lara Michaels <laramichaels1978 at yahoo.com>
> Cc: "xmonad at haskell.org" <xmonad at haskell.org>
> Sent: Wednesday, June 20, 2012 3:33 AM
> Subject: Re: [xmonad] how to redirect dynamicLogXinerama output to a
> FIFO/named pipe?
>
>
> On Tue, Jun 19, 2012 at 9:57 PM, Lara Michaels
> <laramichaels1978 at yahoo.com> wrote:
>
> but to my surprise running 'tail -f /tmp/xmonad-fifo' shows no
> output, while if I simply start xmonad in a terminal I can see it
> printing information about the workspaces being used to the terminal:
>
> At a guess, you've just demonstrated that nobody has been using
> dynamicLogXinerama. It isn't flushing its output, and I can't find
> anywhere where xmonad sets its stdout to unbuffered or line buffered
> output. Output to a terminal is automatically line buffered, so in
> that case it works as expected; block buffering means it'd only get
> flushed to the FIFO every 4Kbytes or so.
>
> You could try importing System.IO and adding
>
> hSetBuffering stdout LineBuffering
>
> to the startupHook.
> --
> brandon s allbery allbery.b at gmail.com
> wandering unix systems administrator (available) (412) 475-9364 vm/sms
More information about the xmonad
mailing list