summaryrefslogtreecommitdiff
path: root/packages/code/dfetch/app/Dfetch/Brightness.hs
diff options
context:
space:
mode:
Diffstat (limited to 'packages/code/dfetch/app/Dfetch/Brightness.hs')
-rw-r--r--packages/code/dfetch/app/Dfetch/Brightness.hs29
1 files changed, 25 insertions, 4 deletions
diff --git a/packages/code/dfetch/app/Dfetch/Brightness.hs b/packages/code/dfetch/app/Dfetch/Brightness.hs
index 912905a..9d7b7b9 100644
--- a/packages/code/dfetch/app/Dfetch/Brightness.hs
+++ b/packages/code/dfetch/app/Dfetch/Brightness.hs
@@ -1,8 +1,29 @@
-module Dfetch.Brightness where
+module Dfetch.Brightness
+ ( Brightness(..)
+ , fetchBrightness
+ , allBs
+ ) where
-import System.FilePath ((</>))
-import System.Directory (listDirectory)
-import Data.List (isPrefixOf)
+import System.Directory (listDirectory)
+import System.FilePath ((</>))
basePath :: FilePath
basePath = "/sys/class/backlight/"
+
+data Brightness = Brightness
+ { bright :: Int
+ , maxbright :: Int
+ } deriving Show
+
+backlights :: IO [String]
+backlights = listDirectory basePath
+
+fetchBrightness :: String -> IO Brightness
+fetchBrightness device = Brightness
+ <$> (read <$> readFile (path </> "brightness"))
+ <*> (read <$> readFile (path </> "max_brightness"))
+ where
+ path = basePath </> device
+
+allBs :: IO [Brightness]
+allBs = backlights >>= mapM fetchBrightness