----------------------------------------------------------------------------- -- | -- Module : Plugins.XMonadLog -- Copyright : (c) Andrea Rossato -- License : BSD-style (see LICENSE) -- -- Maintainer : Andrea Rossato -- Stability : unstable -- Portability : unportable -- -- A plugin example for Xmobar, a text based status bar -- ----------------------------------------------------------------------------- module Plugins.XMonadLog where import Control.Concurrent import Foreign (unsafePerformIO) import Plugins data XLog = XLog deriving (Read) instance Exec XLog where rate XLog = 10 alias XLog = "xlog" run XLog = readMVar reading reading :: MVar String reading = unsafePerformIO $ do m <- newMVar "" let loop = do l <- getLine tryTakeMVar m putMVar m l loop forkIO loop return m {-# NOINLINE reading #-}