From 5dc7fc15f343f16d077ec44e834c042e8661dc0c Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Sun, 27 Dec 2015 22:30:20 +0100 Subject: katara: taffybar patch --- machines/profpatsch/taffybar.patch | 71 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 machines/profpatsch/taffybar.patch (limited to 'machines/profpatsch/taffybar.patch') diff --git a/machines/profpatsch/taffybar.patch b/machines/profpatsch/taffybar.patch new file mode 100644 index 00000000..a93fca1a --- /dev/null +++ b/machines/profpatsch/taffybar.patch @@ -0,0 +1,71 @@ +diff --git a/src/System/Taffybar/Battery.hs b/src/System/Taffybar/Battery.hs +index 5335eff..32c7efa 100644 +--- a/src/System/Taffybar/Battery.hs ++++ b/src/System/Taffybar/Battery.hs +@@ -9,6 +9,7 @@ + -- more advanced features could be supported if there is interest. + module System.Taffybar.Battery ( + batteryBarNew, ++ batteryIconNew, + textBatteryNew, + defaultBatteryConfig + ) where +@@ -108,30 +109,22 @@ defaultBatteryConfig = + | pct < 0.9 = (0.5, 0.5, 0.5) + | otherwise = (0, 1, 0) + +--- | A fancy graphical battery widget that represents the current +--- charge as a colored vertical bar. There is also a textual +--- percentage readout next to the bar. ++-- | + batteryBarNew :: BarConfig -- ^ Configuration options for the bar display +- -> Double -- ^ Polling period in seconds + -> IO Widget +-batteryBarNew battCfg pollSeconds = do ++batteryBarNew battCfg = do + battCtxt <- batteryContextNew +- case battCtxt of +- Nothing -> do +- let lbl :: Maybe String +- lbl = Just "No battery" +- labelNew lbl >>= return . toWidget +- Just ctxt -> do +- -- This is currently pretty inefficient - each poll period it +- -- queries the battery twice (once for the label and once for +- -- the bar). +- -- +- -- Converting it to combine the two shouldn't be hard. +- b <- hBoxNew False 1 +- txt <- textBatteryNew "$percentage$%" pollSeconds +- r <- newIORef ctxt +- bar <- pollingBarNew battCfg pollSeconds (battPct r) +- boxPackStart b bar PackNatural 0 +- boxPackStart b txt PackNatural 0 +- widgetShowAll b +- return (toWidget b) ++ let noBat = toWidget <$> labelNew (Just "No battery" :: Maybe String) ++ maybe noBat (batteryIconNew battCfg) battCtxt ++ ++-- | A fancy graphical battery widget that represents the current ++-- charge as a colored vertical bar. ++batteryIconNew :: BarConfig ++ -> BatteryContext ++ -> IO Widget ++batteryIconNew cfg ctxt = do ++ icon <- pollingBarNew cfg pollSeconds . battPct =<< newIORef ctxt ++ widgetShowAll icon ++ return icon ++ where ++ pollSeconds = 5 +diff --git a/src/System/Taffybar/Widgets/PollingBar.hs b/src/System/Taffybar/Widgets/PollingBar.hs +index d30adaf..01f161c 100644 +--- a/src/System/Taffybar/Widgets/PollingBar.hs ++++ b/src/System/Taffybar/Widgets/PollingBar.hs +@@ -16,6 +16,7 @@ import Control.Monad ( forever ) + import Graphics.UI.Gtk + + import System.Taffybar.Widgets.VerticalBar ++import Debug.Trace + + pollingBarNew :: BarConfig -> Double -> IO Double -> IO Widget + pollingBarNew cfg pollSeconds action = do -- cgit 1.4.1