Copyright | (c) Christian Wills 2014 |
---|---|
License | BSD3-style (see LICENSE) |
Maintainer | cwills.dev@gmail.com |
Stability | unstable |
Portability | not portable |
Safe Haskell | None |
Language | Haskell2010 |
XMonad.Util.SpawnNamedPipe
Contents
Description
A module for spawning a pipe whose Handle
lives in the Xmonad state.
Synopsis
- 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 $ def { ppOutput = maybe (\s -> return ()) (hPutStrLn) mh} -- Main main = xmonad $ def { startupHook = startupHook' , logHook = logHook'}
spawnNamedPipe :: String -> String -> X () Source #
When spawnNamedPipe
is executed with a command String
and a name
String
respectively. The command string is spawned with spawnPipe
(as
long as the name chosen hasn't been used already) and the Handle
returned
is saved in Xmonad's state associated with the name String
.
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.