import Xmobar import Config import Monitors topProcL p = TopProc (p <~> args) 15 where template = " " ++ "· " args = ["-t", template, "-w", "12", "-L" , "10", "-H", "80"] diskIOS p = DiskIO [("/", " ")] (diskArgs p) 10 cpuFreq' p = CpuFreq (p <~> args) 50 where args = ["-t" , "" , "-L", "1", "-H", "2", "-d", "2"] memory' = Memory args 20 where template = " " args = ["-t", template , "-p", "2", "-d", "1", "--", "--scale", "1024"] master on off p = Volume "default" "Master" (args ++ ("--":ext)) 10 where args = ["-t", " "] ext = ["-C", pForeground p, "-c", "sienna4", "-O", on, "-o", off] config p = (baseConfig p) { position = TopSize C 100 (defaultHeight - 2) , textOffset = offset , textOffsets = [offset - 1, offset - 1, offset + 2 , offset, offset + 1] , bgColor = if pIsLight p then "gray94" else "black" , alpha = 255 , border = FullB , commands = [ Run (topProcL p) , Run (load p) , Run (iconBatt p) , Run (cpuBars p) , Run memory' , Run (diskU p) , Run (diskIOS p) , Run (kbd p) , Run (coreTemp p) , Run (wireless p "wlp164s0") , Run (dynNetwork p) , Run (vpnMark "wg-mullvad") , Run tun0 , Run (master (dimi "\xf025") (dimi "\xf131") p) , Run captureVol , Run laTime , Run localTime , Run (cpuFreq' p) , Run (weather' wt "EGPH" p) ] ++ extraCmds , template = trayT ++ " |batt0| " ++ "" ++ " |wg-mullvad||tun0||wlp164s0wi|" ++ "" ++ " |dynnetwork| " ++ "" ++ " |default:Master| " ++ dimi "\xf130" ++ " |default:Capture|" ++ "" ++ " |EGPH| " ++ eLog p ++ " {} " ++ "|kbd|" ++ " |multicpu|" ++ " |cpufreq|" ++ " |multicoretemp|" ++ " |top| " ++ dimi "\xf080" ++ " |memory| " ++ dimi "\xf0a0" ++ "|diskio| |disku| " ++ " |datetime| " ++ " |laTime| " } where dimi = fc "grey50" . fn 7 offset = defaultHeight - 8 wt = " ° " ++ fn 5 "🌫" ++ " " isXmonad = pWm p == Just "xmonad" trayT = if isXmonad then "|tray|" else "" eLog p = if isXmonad then "|XMonadLog|" else fc (pHigh p) "|elog|" extraCmds = if isXmonad then [ Run (NamedXPropertyLog "_XMONAD_TRAYPAD" "tray") , Run XMonadLog] else [Run (NamedXPropertyLog "_EMACS_LOG" "elog")] main :: IO () main = palette >>= configFromArgs . config >>= xmobar