summaryrefslogtreecommitdiffhomepage
path: root/src/Xmobar
diff options
context:
space:
mode:
Diffstat (limited to 'src/Xmobar')
-rw-r--r--src/Xmobar/Plugins/Monitors/Batt.hs13
-rw-r--r--src/Xmobar/Plugins/Monitors/Common/Output.hs3
2 files changed, 11 insertions, 5 deletions
diff --git a/src/Xmobar/Plugins/Monitors/Batt.hs b/src/Xmobar/Plugins/Monitors/Batt.hs
index 16137b1..3f407b6 100644
--- a/src/Xmobar/Plugins/Monitors/Batt.hs
+++ b/src/Xmobar/Plugins/Monitors/Batt.hs
@@ -48,6 +48,7 @@ data BattOpts = BattOpts
, lowString :: String
, mediumString :: String
, highString :: String
+ , incPerc :: Bool
}
defaultOpts :: BattOpts
@@ -71,6 +72,7 @@ defaultOpts = BattOpts
, lowString = ""
, mediumString = ""
, highString = ""
+ , incPerc = False
}
options :: [OptDescr (BattOpts -> BattOpts)]
@@ -87,6 +89,7 @@ options =
, Option "f" ["online"] (ReqArg (\x o -> o { onlineFile = x }) "") ""
, Option "s" ["scale"] (ReqArg (\x o -> o {scale = read x}) "") ""
, Option "a" ["action"] (ReqArg (\x o -> o { onLowAction = Just x }) "") ""
+ , Option "P" ["percent"] (NoArg (\o -> o {incPerc = True})) ""
, Option "A" ["action-threshold"]
(ReqArg (\x o -> o { actionThreshold = read x }) "") ""
, Option "" ["on-icon-pattern"] (ReqArg (\x o ->
@@ -243,13 +246,14 @@ runBatt = runBatt' ["BAT", "BAT0", "BAT1", "BAT2"]
runBatt' :: [String] -> [String] -> Monitor String
runBatt' bfs args = do
opts <- io $ parseOpts args
+ let sp = incPerc opts
c <- io $ readBatteries opts =<< mapM batteryFiles bfs
suffix <- getConfigValue useSuffix
d <- getConfigValue decDigits
nas <- getConfigValue naString
case c of
Result x w t s ->
- do l <- fmtPercent x
+ do l <- fmtPercent x sp
ws <- fmtWatts w opts suffix d
si <- getIconPattern opts s x
st <- showWithColors'
@@ -257,13 +261,14 @@ runBatt' bfs args = do
(100 * x)
parseTemplate (l ++ [st, fmtTime $ floor t, ws, si])
NA -> getConfigValue naString
- where fmtPercent :: Float -> Monitor [String]
- fmtPercent x = do
+ where fmtPercent :: Float -> Bool -> Monitor [String]
+ fmtPercent x sp = do
let x' = minimum [1, x]
+ pc <- if sp then colorizeString (100 * x') "%" else return ""
p <- showPercentWithColors x'
b <- showPercentBar (100 * x') x'
vb <- showVerticalBar (100 * x') x'
- return [b, vb, p]
+ return [b, vb, p ++ pc]
fmtWatts x o s d = do
ws <- showWithPadding $ showDigits d x ++ (if s then "W" else "")
return $ color x o ws
diff --git a/src/Xmobar/Plugins/Monitors/Common/Output.hs b/src/Xmobar/Plugins/Monitors/Common/Output.hs
index 53c5b0f..7a14a74 100644
--- a/src/Xmobar/Plugins/Monitors/Common/Output.hs
+++ b/src/Xmobar/Plugins/Monitors/Common/Output.hs
@@ -1,7 +1,7 @@
------------------------------------------------------------------------------
-- |
-- Module: Xmobar.Plugins.Monitors.Strings
--- Copyright: (c) 2018 Jose Antonio Ortega Ruiz
+-- Copyright: (c) 2018, 2019 Jose Antonio Ortega Ruiz
-- License: BSD3-style (see LICENSE)
--
-- Maintainer: jao@gnu.org
@@ -18,6 +18,7 @@
module Xmobar.Plugins.Monitors.Common.Output ( IconPattern
, parseIconPattern
, padString
+ , colorizeString
, showWithPadding
, showWithColors
, showWithColors'