module Main where import System.Taffybar import System.Taffybar.Information.CPU import System.Taffybar.Information.Memory import System.Taffybar.SimpleConfig import System.Taffybar.Widget import System.Taffybar.Widget.Generic.PollingGraph memCallback = do mi <- parseMeminfo return [memoryUsedRatio mi] cpuCallback = do (userLoad, systemLoad, totalLoad) <- cpuLoad return [totalLoad, systemLoad] main = do let memCfg = defaultGraphConfig { graphDataColors = [(1, 0, 0, 1)] , graphLabel = Just "mem" } cpuCfg = defaultGraphConfig { graphDataColors = [ (0, 1, 0, 1) , (1, 0, 1, 0.5) ] , graphLabel = Just "cpu" } let clock = textClockNew Nothing "%a %b %_d %H:%M" 1 workspaces = workspacesNew defaultWorkspacesConfig windows = windowsNew defaultWindowsConfig layout = layoutNew defaultLayoutconfig note = notifyAreaNew defaultNotificationConfig wea = weatherNew (defaultWeatherConfig "KMSN") 10 mpris = mpris2New mem = pollingGraphNew memCfg 1 memCallback cpu = pollingGraphNew cpuCfg 0.5 cpuCallback tray = systrayNew simpleTaffybar defaultSimpleTaffyConfig { startWidgets = [ workspaces, layout, windows, note ] , endWidgets = [ tray, wea, clock, mem, cpu, mpris ] }