{-| Module : Hi3Status.Blocks.Backlight License : MIT Maintainer : Josh Kirklin (jjvk2@cam.ac.uk) Stability : experimental -} module Hi3Status.Blocks.Backlight ( BacklightBlock (..) ) where import Hi3Status.Block import Hi3Status.Block.Util import qualified Data.Text as T import Control.Monad.IO.Class import System.Process -- | A backlight percentage brightness indicator. Uses @xbacklight@ as a backend. data BacklightBlock = BacklightBlock { -- | The format of the display text. -- -- * @{perc}@ = backlight brightness percentage. format :: String } instance Block BacklightBlock where runBlock b = onUpdate $ do perc <- xbacklight let s = formatText [("perc", show $ round perc)] $ format b pushBlockDescription $ emptyBlockDescription { full_text = s } xbacklight :: BlockM Float xbacklight = read <$> (liftIO $ readProcess "xbacklight" [] "")