| 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.