summaryrefslogtreecommitdiffhomepage
path: root/src/Plugins/Monitors
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2013-05-26 05:45:30 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2013-05-26 05:45:30 +0200
commitb8279eccf85b3709ccce0533846a10fb613a10f4 (patch)
treebb5be7eddbc259084406212f8167ac73627b45df /src/Plugins/Monitors
parent2e228c10e7ca6551820c319ca1f1e575c1e72ee1 (diff)
downloadxmobar-b8279eccf85b3709ccce0533846a10fb613a10f4.tar.gz
xmobar-b8279eccf85b3709ccce0533846a10fb613a10f4.tar.bz2
Allowing template variables in Battery's -O and -o args
Should address github issue #109. Thanks to Todd Lunter for the suggestion.
Diffstat (limited to 'src/Plugins/Monitors')
-rw-r--r--src/Plugins/Monitors/Batt.hs14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/Plugins/Monitors/Batt.hs b/src/Plugins/Monitors/Batt.hs
index a593782..27007f9 100644
--- a/src/Plugins/Monitors/Batt.hs
+++ b/src/Plugins/Monitors/Batt.hs
@@ -1,7 +1,7 @@
-----------------------------------------------------------------------------
-- |
-- Module : Plugins.Monitors.Batt
--- Copyright : (c) 2010, 2011, 2012 Jose A Ortega
+-- Copyright : (c) 2010, 2011, 2012, 2013 Jose A Ortega
-- (c) 2010 Andrea Rossato, Petr Rockai
-- License : BSD-style (see LICENSE)
--
@@ -149,6 +149,14 @@ readBatteries opts bfs =
runBatt :: [String] -> Monitor String
runBatt = runBatt' ["BAT0","BAT1","BAT2"]
+statusTemplate:: String -> [String] -> Monitor String
+statusTemplate s vs = do
+ t <- getConfigValue template
+ setConfigValue (s ++ "<acstatus>") template
+ r <- parseTemplate vs
+ setConfigValue t template
+ return r
+
runBatt' :: [String] -> [String] -> Monitor String
runBatt' bfs args = do
opts <- io $ parseOpts args
@@ -158,7 +166,9 @@ runBatt' bfs args = do
case c of
Result x w t s ->
do l <- fmtPercent x
- parseTemplate (l ++ s:[fmtTime $ floor t, fmtWatts w opts suffix d])
+ let ts = [fmtTime $ floor t, fmtWatts w opts suffix d]
+ s' <- statusTemplate s (l ++ "":ts)
+ parseTemplate (l ++ s':ts)
NA -> return "N/A"
where fmtPercent :: Float -> Monitor [String]
fmtPercent x = do