diff options
Diffstat (limited to 'Monitors')
| -rw-r--r-- | Monitors/Cpu.hs | 31 | 
1 files changed, 12 insertions, 19 deletions
| diff --git a/Monitors/Cpu.hs b/Monitors/Cpu.hs index f24b9ee..e712c98 100644 --- a/Monitors/Cpu.hs +++ b/Monitors/Cpu.hs @@ -26,7 +26,7 @@ data Config =             , cpuNormalColor :: String             , cpuCritical :: Integer             , cpuCriticalColor :: String -           } +           } deriving (Show)  defaultConfig :: Config  defaultConfig =  @@ -46,6 +46,11 @@ floatToPercent :: Float -> String  floatToPercent n =       showFFloat (Just 2) (n*100) "%"  +setColor :: Show a => String -> a -> (a -> String) -> String +setColor str conf ty = +    "<fc=" ++ ty conf ++ ">" ++ +    str ++ "</fc>" +      fileCPU :: IO B.ByteString  fileCPU = B.readFile "/proc/stat" @@ -74,29 +79,17 @@ parseCPU =         return percent  formatCpu :: [Float] -> String  -formatCpu [] = ""  formatCpu (us:ni:sy:_) -    | x >= c = setColor z cpuCriticalColor -    | x >= n  = setColor z cpuNormalColor -    | otherwise = floatToPercent y +    | x >= c = setColor y config cpuCriticalColor +    | x >= n  = setColor y config cpuNormalColor +    | otherwise = y      where x = (us * 100) + (sy * 100) + (ni * 100) -          y = us + sy + ni -          z = floatToPercent y +          y = floatToPercent $ us + sy + ni            c = fromInteger (cpuCritical config)            n = fromInteger (cpuNormal config)  formatCpu _ = "" -setColor :: String -> (Config -> String) -> String -setColor str ty = -    "<fc=" ++ ty config ++ ">" ++ -    str ++ "</fc>" -     -cpu :: IO String -cpu =  -    do l <- parseCPU -       return $ "Cpu: " ++ formatCpu l -  main :: IO ()  main = -    do c <- cpu -       putStrLn c +    do s <- parseCPU +       putStrLn $ "Cpu: " ++ formatCpu s | 
