diff --git a/readme.md b/readme.md index f4f07e8..de679c7 100644 --- a/readme.md +++ b/readme.md @@ -645,7 +645,7 @@ something like: - Args: default monitor arguments - Variables that can be used with the `-t`/`--template` argument: `total`, `free`, `buffer`, `cache`, `rest`, `used`, - `usedratio`, `usedbar`, `freebar` + `usedratio`, `usedbar`, `freeratio`, `freebar` - Default template: `Mem: % (M)` ### `Swap Args RefreshRate` diff --git a/src/Plugins/Monitors/Mem.hs b/src/Plugins/Monitors/Mem.hs index 5c55ee2..3cf46c7 100644 --- a/src/Plugins/Monitors/Mem.hs +++ b/src/Plugins/Monitors/Mem.hs @@ -19,8 +19,8 @@ import Plugins.Monitors.Common memConfig :: IO MConfig memConfig = mkMConfig "Mem: % (M)" -- template - ["usedbar", "freebar", "usedratio", "total", - "free", "buffer", "cache", "rest", "used"] -- available replacements + ["usedbar", "freebar", "usedratio", "freeratio", "total", + "free", "buffer", "cache", "rest", "used"] -- available replacements fileMEM :: IO String fileMEM = readFile "/proc/meminfo" @@ -33,7 +33,8 @@ parseMEM = rest = free + buffer + cache used = total - rest usedratio = used / total - return [usedratio, total, free, buffer, cache, rest, used] + freeratio = free / total + return [usedratio, freeratio, total, free, buffer, cache, rest, used, freeratio] totalMem :: IO Float totalMem = fmap ((*1024) . (!!1)) parseMEM @@ -42,15 +43,16 @@ usedMem :: IO Float usedMem = fmap ((*1024) . (!!6)) parseMEM formatMem :: [Float] -> Monitor [String] -formatMem (r:xs) = +formatMem (r:fr:xs) = do let f = showDigits 0 rr = 100 * r ub <- showPercentBar rr r fb <- showPercentBar (100 - rr) (1 - r) rs <- showPercentWithColors r + fs <- showPercentWithColors fr s <- mapM (showWithColors f) xs - return (ub:fb:rs:s) -formatMem _ = return $ replicate 9 "N/A" + return (ub:fb:rs:fs:s) +formatMem _ = return $ replicate 10 "N/A" runMem :: [String] -> Monitor String runMem _ =