| Copyright | (c) Christian Wills 2014 | 
|---|---|
| License | BSD3-style (see LICENSE) | 
| Maintainer | cwills.dev@gmail.com | 
| Stability | unstable | 
| Portability | not portable | 
| Safe Haskell | None | 
| Language | Haskell98 | 
XMonad.Util.SpawnNamedPipe
Contents
Description
A module for spawning a pipe whose Handle lives in the Xmonad state.
- spawnNamedPipe :: String -> String -> X ()
- getNamedPipe :: String -> X (Maybe Handle)
Usage
This module makes it possible to spawn a pipe to Dzen2 in the startupHook and write to it from inside the logHook without the need for global variables.
import XMonad.Util.SpawnNamedPipe
import Data.Maybe
-- StartupHook
startupHook' = spawnNamedPipe "dzen2" "dzenPipe" 
-- LogHook
logHook' = do
    mh <- getNamedPipeHandle "dzenPipe" 
        dynamicLogWithPP $ defaultPP {
            ppOutput = maybe (\s -> return ()) (hPutStrLn) mh}
-- Main
main = xmonad $ defaultConfig {
                     startupHook = startupHook'
                   , logHook = logHook'}spawnNamedPipe :: String -> String -> X () Source
getNamedPipe :: String -> X (Maybe Handle) Source
Attempts to retrieve a Handle to a pipe previously stored in Xmonad's
 state associated with the given string via a call to spawnNamedPipe. If the
 given string doesn't exist in the map stored in Xmonad's state Nothing is
 returned.