Sin Descripción

taffybar.hs 1.5KB

    import Data.IORef (newIORef) import System.Taffybar import System.Taffybar.Battery (textBatteryNew) import System.Taffybar.Systray import System.Taffybar.TaffyPager import System.Taffybar.SimpleClock import System.Taffybar.Widgets.PollingGraph import System.Taffybar.Widgets.PollingLabel import System.Information.Battery (batteryContextsNew) import System.Information.CPU import System.Information.Memory (parseMeminfo, memoryUsedRatio) import Graphics.UI.Gtk (widgetShowAll) cpuCallback = do (_, systemLoad, totalLoad) <- cpuLoad return [totalLoad, systemLoad] formatMeminfo m = "Mem: " ++ memPercentage ++ "%" where memPercentage = show . truncate . ((*) 100) $ memoryUsedRatio m textMemoryNew intervalSeconds = do memLabel <- pollingLabelNew "" intervalSeconds (parseMeminfo >>= return . formatMeminfo) widgetShowAll memLabel return memLabel main = do cs <- batteryContextsNew rs <- sequence $ fmap newIORef cs let cpuCfg = defaultGraphConfig { graphDataColors = [(0, 1, 0, 1), (1, 0, 1, 0.5)] } clock = textClockNew Nothing "<span fgcolor='orange'>%a %b %_d %H:%M</span>" 1 log = taffyPagerNew defaultPagerConfig tray = systrayNew cpu = pollingGraphNew cpuCfg 3 cpuCallback battery = textBatteryNew rs "Bat: $percentage$%" 30 --battery = batteryBarNew defaultBatteryConfig 30 memory = textMemoryNew 3 defaultTaffybar defaultTaffybarConfig { barHeight = 15, startWidgets = [log], endWidgets = [tray, clock, memory, battery, cpu] }