taffybar-2.1.0: src/System/Taffybar/Hooks.hs
module System.Taffybar.Hooks
( module System.Taffybar.DBus
, module System.Taffybar.Hooks
, refreshBatteriesOnPropChange
) where
import Control.Concurrent
import Control.Monad.Trans.Class
import System.Taffybar.Context
import System.Taffybar.DBus
import System.Taffybar.Information.Battery
import System.Taffybar.Information.Network
newtype NetworkInfoChan = NetworkInfoChan (Chan [(String, (Rational, Rational))])
buildInfoChan :: Double -> IO NetworkInfoChan
buildInfoChan interval = do
chan <- newChan
_ <- forkIO $ monitorNetworkInterfaces interval $ writeChan chan
return $ NetworkInfoChan chan
getNetworkChan :: TaffyIO NetworkInfoChan
getNetworkChan = getStateDefault $ lift $ buildInfoChan 2.0
withBatteryRefresh :: TaffybarConfig -> TaffybarConfig
withBatteryRefresh = appendHook refreshBatteriesOnPropChange