xmonad-config/lib/Xmobar/Plugins/BacklightCommon.hs

27 lines
928 B
Haskell
Raw Normal View History

{-# LANGUAGE OverloadedStrings #-}
2021-11-23 18:28:38 -05:00
--------------------------------------------------------------------------------
-- | Common backlight plugin bits
--
-- Use the custom DBus interface exported by the XMonad process so I can react
-- to signals spawned by commands
module Xmobar.Plugins.BacklightCommon (startBacklight) where
2022-07-09 17:44:14 -04:00
import Data.Internal.DBus
2022-12-30 10:38:21 -05:00
import RIO
import qualified RIO.Text as T
2021-11-25 00:12:00 -05:00
import Xmobar.Plugins.Common
2021-11-23 18:28:38 -05:00
2022-07-09 17:08:10 -04:00
startBacklight :: RealFrac a => ((Maybe a -> IO ()) -> SesClient -> IO ())
-> (SesClient -> IO (Maybe a)) -> T.Text -> Callback -> IO ()
2021-11-23 18:28:38 -05:00
startBacklight matchSignal callGetBrightness icon cb = do
2022-12-30 10:38:21 -05:00
withDBusClientConnection cb $ \c -> liftIO $ do
matchSignal dpy c
dpy =<< callGetBrightness c
2021-11-23 18:28:38 -05:00
where
formatBrightness b = return $ T.concat [icon, T.pack $ show (round b :: Integer), "%"]
2022-12-30 10:38:21 -05:00
dpy = displayMaybe cb formatBrightness