taffybar-3.0.0: A desktop bar similar to xmobar, but with more GUI

Copyright | (c) Ivan A. Malison
License | BSD3-style (see LICENSE)
Maintainer | Ivan A. Malison
Stability | unstable
Portability | unportable
Safe Haskell | None
Language | Haskell2010

System.Taffybar.Context

Contents

- Orphan instances

Description

Synopsis

- logIO :: Priority -> String -> IO ()
- logT :: MonadTrans t => Priority -> String -> t IO ()
- type Taffy m v = MonadIO m => ReaderT Context m v
- type TaffyIO v = ReaderT Context IO v
- type Listener = Event -> Taffy IO ()
- type SubscriptionList = [(Unique, Listener)]
- data Value = Typeable t => Value t
- fromValue :: forall t. Typeable t => Value -> Maybe t
- data BarConfig = BarConfig {
  - strutConfig :: StrutConfig
  - widgetSpacing :: Int32
  - startWidgets :: [TaffyIO Widget]
  - centerWidgets :: [TaffyIO Widget]
  - endWidgets :: [TaffyIO Widget]
  - barId :: Unique
  }
- type BarConfigGetter = TaffyIO [BarConfig]
- data TaffybarConfig = TaffybarConfig {
  - dbusClientParam :: Maybe Client
  - startupHook :: TaffyIO ()
  - getBarConfigsParam :: BarConfigGetter
  - errorMsg :: Maybe String
  }
- appendHook :: TaffyIO () -> TaffybarConfig -> TaffybarConfig
- defaultTaffybarConfig :: TaffybarConfig
- data Context = Context {
  - x11ContextVar :: MVar X11Context
  - listeners :: MVar SubscriptionList
  - contextState :: MVar (Map TypeRep Value)
  - existingWindows :: MVar [(BarConfig, Window)]
  - sessionDBusClient :: Client
  - systemDBusClient :: Client
  - getBarConfigs :: BarConfigGetter
  - contextBarConfig :: Maybe BarConfig
  }
- buildContext :: TaffybarConfig -> IO Context
- buildEmptyContext :: IO Context
- buildBarWindow :: Context -> BarConfig -> IO Window
- refreshTaffyWindows :: TaffyIO ()
- forceRefreshTaffyWindows :: TaffyIO ()
- asksContextVar :: (r -> MVar b) -> ReaderT r IO b
- runX11 :: X11Property a -> TaffyIO a
- runX11Def :: a -> X11Property a -> TaffyIO a
- runX11Context :: MonadIO m => Context -> a -> X11Property a -> m a
- getState :: forall t. Typeable t => Taffy IO (Maybe t)
- getStateDefault :: Typeable t => Taffy IO t -> Taffy IO t
- putState :: forall t. Typeable t => Taffy IO t -> Taffy IO t
- taffyFork :: ReaderT r IO () -> ReaderT r IO ()
- startX11EventHandler :: Taffy IO ()
- unsubscribe :: Unique -> Taffy IO ()
- subscribeToAll :: Listener -> Taffy IO Unique
- subscribeToEvents :: [String] -> Listener -> Taffy IO Unique
- handleX11Event :: Event -> Taffy IO ()

# Documentation

logIO :: Priority -> String -> IO () Source #

logT :: MonadTrans t => Priority -> String -> t IO () Source #

type Taffy m v = MonadIO m => ReaderT Context m v Source #

type TaffyIO v = ReaderT Context IO v Source #

type Listener = Event -> Taffy IO () Source #

type SubscriptionList = [(Unique, Listener)] Source #

data Value Source #

Constructors

Typeable t => Value t |

fromValue :: forall t. Typeable t => Value -> Maybe t Source #

data BarConfig Source #

Constructors

BarConfig |

Fields

- strutConfig :: StrutConfig
- widgetSpacing :: Int32
- startWidgets :: [TaffyIO Widget]
- centerWidgets :: [TaffyIO Widget]
- endWidgets :: [TaffyIO Widget]
- barId :: Unique

Instances

Eq BarConfig Source # |
Instance details Defined in System.Taffybar.Context Methods (==) :: BarConfig -> BarConfig -> Bool Source # (/=) :: BarConfig -> BarConfig -> Bool Source #

type BarConfigGetter = TaffyIO [BarConfig] Source #

data TaffybarConfig Source #

Constructors

TaffybarConfig |

Fields

- dbusClientParam :: Maybe Client
- startupHook :: TaffyIO ()
- getBarConfigsParam :: BarConfigGetter
- errorMsg :: Maybe String

appendHook :: TaffyIO () -> TaffybarConfig -> TaffybarConfig Source #

defaultTaffybarConfig :: TaffybarConfig Source #

data Context Source #

Constructors

Context |

Fields

- x11ContextVar :: MVar X11Context
- listeners :: MVar SubscriptionList
- contextState :: MVar (Map TypeRep Value)
- existingWindows :: MVar [(BarConfig, Window)]
- sessionDBusClient :: Client
- systemDBusClient :: Client
- getBarConfigs :: BarConfigGetter
- contextBarConfig :: Maybe BarConfig

buildContext :: TaffybarConfig -> IO Context Source #

buildEmptyContext :: IO Context Source #

buildBarWindow :: Context -> BarConfig -> IO Window Source #

refreshTaffyWindows :: TaffyIO () Source #

forceRefreshTaffyWindows :: TaffyIO () Source #

asksContextVar :: (r -> MVar b) -> ReaderT r IO b Source #

runX11 :: X11Property a -> TaffyIO a Source #

runX11Def :: a -> X11Property a -> TaffyIO a Source #

runX11Context :: MonadIO m => Context -> a -> X11Property a -> m a Source #

getState :: forall t. Typeable t => Taffy IO (Maybe t) Source #

getStateDefault :: Typeable t => Taffy IO t -> Taffy IO t Source #

Like "putState", but avoids aquiring a lock if the value is already in the map.

putState :: forall t. Typeable t => Taffy IO t -> Taffy IO t Source #

Get a value of the type returned by the provided action from the the current taffybar state, unless the state does not exist, in which case the action will be called to populate the state map.

taffyFork :: ReaderT r IO () -> ReaderT r IO () Source #

startX11EventHandler :: Taffy IO () Source #

unsubscribe :: Unique -> Taffy IO () Source #

subscribeToAll :: Listener -> Taffy IO Unique Source #

subscribeToEvents :: [String] -> Listener -> Taffy IO Unique Source #

handleX11Event :: Event -> Taffy IO () Source #

# Orphan instances

IsX11Window Window Source # |
Instance details