summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorZev Weiss <zev@bewilderbeest.net>2016-11-04 14:36:04 -0500
committerZev Weiss <zev@bewilderbeest.net>2016-11-04 14:36:04 -0500
commit35ca0c36f251003a2123433035b6f3a838cff4a4 (patch)
tree84d4c5ec13ed83fc8cef9e5cceb3b142e4358a90 /src
parentf2d33fa9a2a613fd19c41323f2f11941f8a08e27 (diff)
downloadxmobar-35ca0c36f251003a2123433035b6f3a838cff4a4.tar.gz
xmobar-35ca0c36f251003a2123433035b6f3a838cff4a4.tar.bz2
Fix MultiCpu monitor for large uptimes
This is essentially commit a0397ad2 applied to MultiCpu.
Diffstat (limited to 'src')
-rw-r--r--src/Plugins/Monitors/MultiCpu.hs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/Plugins/Monitors/MultiCpu.hs b/src/Plugins/Monitors/MultiCpu.hs
index eab21da..f0cdec4 100644
--- a/src/Plugins/Monitors/MultiCpu.hs
+++ b/src/Plugins/Monitors/MultiCpu.hs
@@ -58,15 +58,15 @@ multiCpuConfig =
[ k ++ n | n <- "" : map show [0 :: Int ..]
, k <- variables]
-type CpuDataRef = IORef [[Float]]
+type CpuDataRef = IORef [[Int]]
-cpuData :: IO [[Float]]
+cpuData :: IO [[Int]]
cpuData = parse `fmap` B.readFile "/proc/stat"
where parse = map parseList . cpuLists
cpuLists = takeWhile isCpu . map B.words . B.lines
isCpu (w:_) = "cpu" `isPrefixOf` B.unpack w
isCpu _ = False
- parseList = map (parseFloat . B.unpack) . tail
+ parseList = map (parseInt . B.unpack) . tail
parseCpuData :: CpuDataRef -> IO [[Float]]
parseCpuData cref =
@@ -76,9 +76,9 @@ parseCpuData cref =
let p0 = zipWith percent bs as
return p0
-percent :: [Float] -> [Float] -> [Float]
+percent :: [Int] -> [Int] -> [Float]
percent b a = if tot > 0 then map (/ tot) $ take 4 dif else [0, 0, 0, 0]
- where dif = zipWith (-) b a
+ where dif = map fromIntegral $ zipWith (-) b a
tot = sum dif
formatMultiCpus :: MultiCpuOpts -> [[Float]] -> Monitor [String]