Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- blucontrol :: BlucontrolConstraints m g r => ConfigControl m g r -> IO (StM m (StM g (StM r ())))
- type BlucontrolConstraints m g r = (ControlConstraint m (StM g (StM r ())), MonadControl m, MonadBaseControl IO g, MonadBaseControl IO r, MonadGamma g, MonadRecolor r, CompatibleValues (GammaValue g) (RecolorValue r))
- data ConfigControl m g r = ConfigControl {
- runControl :: forall a. m a -> IO (StM m a)
- runGamma :: forall a. g a -> IO (StM g a)
- runRecolor :: forall a. r a -> IO (StM r a)
- class MonadBaseControl IO m => MonadControl m where
- type ControlConstraint m a :: Constraint
- doInbetween :: ControlConstraint m a => a -> m ()
- (!>) :: (forall a. t1 m a -> m (StT t1 a)) -> (forall a. t2 (t1 m) a -> t1 m (StT t2 a)) -> forall a. ControlConcatT t1 t2 m a -> m (StT t1 (StT t2 a))
- class Monad m => MonadGamma m where
- type GammaValue m
- gamma :: m (GammaValue m)
- class Monad m => MonadRecolor m where
- type RecolorValue m
- recolor :: RecolorValue m -> m ()
- class Default a where
- def :: a
main
For most configurations blucontrol
should be called directly from the main
function in
$XDG_CONFIG_HOME/blucontrol/blucontrol.hs
blucontrol :: BlucontrolConstraints m g r => ConfigControl m g r -> IO (StM m (StM g (StM r ()))) Source #
type BlucontrolConstraints m g r = (ControlConstraint m (StM g (StM r ())), MonadControl m, MonadBaseControl IO g, MonadBaseControl IO r, MonadGamma g, MonadRecolor r, CompatibleValues (GammaValue g) (RecolorValue r)) Source #
ConfigControl
will set the monads in which recoloring and calculation of the gamma values
will take place.
data ConfigControl m g r Source #
ConfigControl | |
|
Control
Modules with instances of MonadControl
can be found under Blucontrol.Control.*
.
class MonadBaseControl IO m => MonadControl m where Source #
type ControlConstraint m a :: Constraint Source #
Give a constraint to allow doInbetween
to handle a polymorphic argument.
This is usfeul to allow arguments wrapped in monadic state StM
from running
MonadGamma
and MonadRecolor
.
:: ControlConstraint m a | |
=> a | the returned value from the last call of |
-> m () | the side effect to be run inbetween recoloring |
This function will be called after recoloring the screen.
Instances
To compose instances of MonadControl
avoid function composition, as it won't compose
doInbetween
.
Use !>
instead.
(!>) :: (forall a. t1 m a -> m (StT t1 a)) -> (forall a. t2 (t1 m) a -> t1 m (StT t2 a)) -> forall a. ControlConcatT t1 t2 m a -> m (StT t1 (StT t2 a)) infixr 5 Source #
Gamma
Modules with instances of MonadGamma
can be found under Blucontrol.Gamma.*
.
class Monad m => MonadGamma m where Source #
type GammaValue m Source #
gamma :: m (GammaValue m) Source #
Calculate a gamma value. This is a monadic function, to allow the value to be dependent on side effects like time and location.
Instances
Recolor
Modules with instances of MonadRecolor
can be found under Blucontrol.Recolor.*
.
class Monad m => MonadRecolor m where Source #
type RecolorValue m Source #
recolor :: RecolorValue m -> m () Source #
Apply a gamma value. This is a monadic function, to allow application to external programs like an X display server.
Instances
MonadBaseControl IO m => MonadRecolor (RecolorXT m) Source # | |
Defined in Blucontrol.Monad.Recolor.X type RecolorValue (RecolorXT m) Source # | |
(MonadBaseControl IO m, Show c) => MonadRecolor (RecolorPrintT c m) Source # | |
Defined in Blucontrol.Monad.Recolor.Print type RecolorValue (RecolorPrintT c m) Source # recolor :: RecolorValue (RecolorPrintT c m) -> RecolorPrintT c m () Source # |
other
A class for types with a default value.
Nothing