summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNorbert Zeh <nzeh@cs.dal.ca>2010-06-04 16:41:53 +0200
committerNorbert Zeh <nzeh@cs.dal.ca>2010-06-04 16:41:53 +0200
commit59c17dbdb1ca05f690fc47dca77ac452b0efd721 (patch)
treef659a1a966dd15921fd0524de145844ff8b446ea
parent73a3ef7912ce9c9d43d04767f06a7928087f1c51 (diff)
downloadxmobar-59c17dbdb1ca05f690fc47dca77ac452b0efd721.tar.gz
xmobar-59c17dbdb1ca05f690fc47dca77ac452b0efd721.tar.bz2
Fix strange formatting of CPU frequencies
Ignore-this: 8c7108dbb071318135c54f0ff830c065 This patch displays frequencies under 1GHz as MHz and above 1GHz as GHz. Unfortunately, it was also necessary to touch CoreCommon.hs and CoreTemp.hs to implement this. darcs-hash:20100604144153-18a2b-cea493ec887c16a50bcef0db001ebbce3ccef74f.gz
-rw-r--r--Plugins/Monitors/CoreCommon.hs13
-rw-r--r--Plugins/Monitors/CoreTemp.hs2
-rw-r--r--Plugins/Monitors/CpuFreq.hs6
3 files changed, 12 insertions, 9 deletions
diff --git a/Plugins/Monitors/CoreCommon.hs b/Plugins/Monitors/CoreCommon.hs
index 95d8613..80e7700 100644
--- a/Plugins/Monitors/CoreCommon.hs
+++ b/Plugins/Monitors/CoreCommon.hs
@@ -27,12 +27,12 @@ import Data.List (isPrefixOf)
-- is performed.
checkedDataRetrieval :: (Num a, Ord a, Show a) =>
String -> String -> String -> String -> (Double -> a)
- -> Monitor String
-checkedDataRetrieval failureMessage dir file pattern trans = do
+ -> (a -> String) -> Monitor String
+checkedDataRetrieval failureMessage dir file pattern trans fmt = do
exists <- io $ fileExist $ concat [dir, "/", pattern, "0/", file]
case exists of
False -> return failureMessage
- True -> retrieveData dir file pattern trans
+ True -> retrieveData dir file pattern trans fmt
-- |
-- Function retrieves data from files in directory dir specified by
@@ -40,11 +40,12 @@ checkedDataRetrieval failureMessage dir file pattern trans = do
-- to each one. Final array is processed by template parser function
-- and returned as monitor string.
retrieveData :: (Num a, Ord a, Show a) =>
- String -> String -> String -> (Double -> a) -> Monitor String
-retrieveData dir file pattern trans = do
+ String -> String -> String -> (Double -> a) -> (a -> String) ->
+ Monitor String
+retrieveData dir file pattern trans fmt = do
count <- io $ dirCount dir pattern
contents <- io $ mapM getGuts $ files count
- values <- mapM (showWithColors show) $ map conversion contents
+ values <- mapM (showWithColors fmt) $ map conversion contents
parseTemplate values
where
getGuts f = withFile f ReadMode hGetLine
diff --git a/Plugins/Monitors/CoreTemp.hs b/Plugins/Monitors/CoreTemp.hs
index 66ac637..a24b284 100644
--- a/Plugins/Monitors/CoreTemp.hs
+++ b/Plugins/Monitors/CoreTemp.hs
@@ -37,5 +37,5 @@ runCoreTemp _ = do
pattern = "coretemp."
divisor = 1e3 :: Double
failureMessage = "CoreTemp: N/A"
- checkedDataRetrieval failureMessage dir file pattern (/divisor)
+ checkedDataRetrieval failureMessage dir file pattern (/divisor) show
diff --git a/Plugins/Monitors/CpuFreq.hs b/Plugins/Monitors/CpuFreq.hs
index 70482f5..fd1da4c 100644
--- a/Plugins/Monitors/CpuFreq.hs
+++ b/Plugins/Monitors/CpuFreq.hs
@@ -23,7 +23,7 @@ import Plugins.Monitors.CoreCommon
-- cpu frequencies.
cpuFreqConfig :: IO MConfig
cpuFreqConfig = mkMConfig
- "Freq: <cpu0>GHz" -- template
+ "Freq: <cpu0>" -- template
(zipWith (++) (repeat "cpu") (map show [0 :: Int ..])) -- available
-- replacements
@@ -36,5 +36,7 @@ runCpuFreq _ = do
pattern = "cpu"
divisor = 1e6 :: Double
failureMessage = "CpuFreq: N/A"
- checkedDataRetrieval failureMessage dir file pattern (/divisor)
+ fmt x | x < 1 = (show (round (x * 1000) :: Integer)) ++ "MHz"
+ | otherwise = (show x) ++ "GHz"
+ checkedDataRetrieval failureMessage dir file pattern (/divisor) fmt