diff --git a/bin/xmonad.hs b/bin/xmonad.hs index 9d1774f..488d2a0 100644 --- a/bin/xmonad.hs +++ b/bin/xmonad.hs @@ -867,7 +867,7 @@ externalBindings runIO cleanup db = where ses = dbSesClient db sys = dbSysClient db - brightessControls ctl getter = (getter . ctl) ses + brightessControls ctl getter = (fmap (liftIO . runIO) . getter . ctl) ses ib = Left . brightessControls intelBacklightControls ck = Left . brightessControls clevoKeyboardControls ftrAlways n = Right . Always n . Always_ . FallbackAlone diff --git a/lib/XMonad/Internal/DBus/Brightness/ClevoKeyboard.hs b/lib/XMonad/Internal/DBus/Brightness/ClevoKeyboard.hs index e2776d5..3564773 100644 --- a/lib/XMonad/Internal/DBus/Brightness/ClevoKeyboard.hs +++ b/lib/XMonad/Internal/DBus/Brightness/ClevoKeyboard.hs @@ -126,7 +126,7 @@ exportClevoKeyboard = [stateFileDep, brightnessFileDep] clevoKeyboardConfig -clevoKeyboardControls :: Maybe SesClient -> BrightnessControls +clevoKeyboardControls :: MonadUnliftIO m => Maybe SesClient -> BrightnessControls m clevoKeyboardControls = brightnessControls xpfClevoBacklight clevoKeyboardConfig callGetBrightnessCK :: MonadUnliftIO m => SesClient -> m (Maybe Brightness) diff --git a/lib/XMonad/Internal/DBus/Brightness/Common.hs b/lib/XMonad/Internal/DBus/Brightness/Common.hs index 731c3b2..cbf0ca5 100644 --- a/lib/XMonad/Internal/DBus/Brightness/Common.hs +++ b/lib/XMonad/Internal/DBus/Brightness/Common.hs @@ -45,18 +45,19 @@ data BrightnessConfig a b = BrightnessConfig , bcName :: T.Text } -data BrightnessControls = BrightnessControls - { bctlMax :: SometimesX - , bctlMin :: SometimesX - , bctlInc :: SometimesX - , bctlDec :: SometimesX +data BrightnessControls m = BrightnessControls + { bctlMax :: Sometimes (m ()) + , bctlMin :: Sometimes (m ()) + , bctlInc :: Sometimes (m ()) + , bctlDec :: Sometimes (m ()) } brightnessControls - :: XPQuery + :: MonadUnliftIO m + => XPQuery -> BrightnessConfig a b -> Maybe SesClient - -> BrightnessControls + -> BrightnessControls m brightnessControls q bc cl = BrightnessControls { bctlMax = cb "max brightness" memMax @@ -167,12 +168,13 @@ emitBrightness BrightnessConfig {bcPath = p, bcInterface = i} client cur = sig = signal p i memCur callBacklight - :: XPQuery + :: MonadUnliftIO m + => XPQuery -> Maybe SesClient -> BrightnessConfig a b -> T.Text -> MemberName - -> SometimesX + -> Sometimes (m ()) callBacklight q cl diff --git a/lib/XMonad/Internal/DBus/Brightness/IntelBacklight.hs b/lib/XMonad/Internal/DBus/Brightness/IntelBacklight.hs index 7a4b89d..6e90376 100644 --- a/lib/XMonad/Internal/DBus/Brightness/IntelBacklight.hs +++ b/lib/XMonad/Internal/DBus/Brightness/IntelBacklight.hs @@ -110,7 +110,7 @@ exportIntelBacklight = [curFileDep, maxFileDep] intelBacklightConfig -intelBacklightControls :: Maybe SesClient -> BrightnessControls +intelBacklightControls :: MonadUnliftIO m => Maybe SesClient -> BrightnessControls m intelBacklightControls = brightnessControls xpfIntelBacklight intelBacklightConfig callGetBrightnessIB :: MonadUnliftIO m => SesClient -> m (Maybe Brightness)