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

22 lines
806 B
Haskell
Raw Normal View History

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
import DBus.Client
2021-11-25 00:12:00 -05:00
import Xmobar.Plugins.Common
2021-11-23 18:28:38 -05:00
startBacklight :: RealFrac a => ((Maybe a -> IO ()) -> Client -> IO ())
2021-11-27 13:24:13 -05:00
-> (Client -> IO (Maybe a)) -> String -> Callback -> IO ()
2021-11-23 18:28:38 -05:00
startBacklight matchSignal callGetBrightness icon cb = do
withDBusClientConnection False cb $ \c -> do
2021-11-27 13:24:13 -05:00
matchSignal display c
display =<< callGetBrightness c
2021-11-23 18:28:38 -05:00
where
2021-11-27 13:24:13 -05:00
formatBrightness b = return $ icon ++ show (round b :: Integer) ++ "%"
display = displayMaybe cb formatBrightness