summaryrefslogtreecommitdiff
path: root/packages/code
diff options
context:
space:
mode:
authorKleidi Bujari <mail@4kb.net>2026-08-17 14:06:19 -0700
committerKleidi Bujari <mail@4kb.net>2026-08-17 14:15:15 -0700
commit0c08e7219a34d0efeb8a209aee544881985c7f6d (patch)
tree75a0607f608d66a1e9325b44b93274cc0d6fceb9 /packages/code
parentd1ea9ec3d514c44aba64fce96f4ab2bc95f8580b (diff)
downloaddepot-0c08e7219a34d0efeb8a209aee544881985c7f6d.tar.gz
depot-0c08e7219a34d0efeb8a209aee544881985c7f6d.tar.bz2
depot-0c08e7219a34d0efeb8a209aee544881985c7f6d.zip
[dfetch] special rendering for batteries
Diffstat (limited to 'packages/code')
-rw-r--r--packages/code/dfetch/app/Dfetch/Battery.hs20
-rw-r--r--packages/code/dfetch/app/Main.hs6
2 files changed, 23 insertions, 3 deletions
diff --git a/packages/code/dfetch/app/Dfetch/Battery.hs b/packages/code/dfetch/app/Dfetch/Battery.hs
index 0315882..703e3df 100644
--- a/packages/code/dfetch/app/Dfetch/Battery.hs
+++ b/packages/code/dfetch/app/Dfetch/Battery.hs
@@ -1,9 +1,11 @@
module Dfetch.Battery
( Battery(..)
, allBatteries
+ , renderBat
) where
import Data.List (isPrefixOf)
+import GHC.Float (double2Int)
import System.Directory (listDirectory)
import System.FilePath ((</>))
@@ -32,3 +34,21 @@ findBatteries = filter ("BAT" `isPrefixOf`) <$> listDirectory basePath
-- | Fetch all batteries from the running system
allBatteries :: IO [Battery]
allBatteries = findBatteries >>= mapM getCapacity
+
+renderBat :: [Battery] -> String
+renderBat bs = unlines $
+ [ "Battery" , "======="] <> map render bs
+ where
+ totalEnergy = sum . map (energyFull) $ bs
+ calcEnergy =
+ show . double2Int . (* 100) . (/ totalEnergy) . energyFull
+
+ render b = mconcat $
+ [ "\t"
+ , name b
+ , ": "
+ , show (capacity b)
+ , "%,\t"
+ , calcEnergy b
+ , "% of total energy"
+ ]
diff --git a/packages/code/dfetch/app/Main.hs b/packages/code/dfetch/app/Main.hs
index e04ff42..83c2596 100644
--- a/packages/code/dfetch/app/Main.hs
+++ b/packages/code/dfetch/app/Main.hs
@@ -1,11 +1,11 @@
module Main (main) where
-import Dfetch.Battery (allBatteries)
+import Dfetch.Battery (renderBat, allBatteries)
import Dfetch.Brightness (allBs)
main :: IO ()
main = do
- bats <- allBatteries
+ bats <- renderBat <$> allBatteries
backlights <- allBs
- print bats
+ putStrLn bats
print backlights