{ programs.xmobar = { enable = true; # XMobar's config file is not a segment of valid Haskell source code -- it is instead a DSL # Note how `Run` handles its arguments properly without parens? # # Also xmobar wants GHC if we use it as a library, and I'm lazy, you probably want to keep it this way. extraConfig = '' Config { overrideRedirect = False , font = "Iosevka 13" , bgColor = "#000000" , fgColor = "#FFFFFF" , position = BottomH 30 , commands = [ Run Date "%a %d %H:%M:%S" "date" 10 , Run Com "tomorrow" [ "--target", "2025-08-14" , "--target", "2025-08-21" ] "" 3600 , Run Battery [ "-t", " (" , "-H", "70" , "-L", "20" , "-h", "green" , "-n", "orange" , "-l", "red" , "--" , "-P" , "-A", "20" , "-a", "notify-send -u critical \"Battery Low\" \"Please charge your battery\"" ] 60 , Run Com "powerprofilesctl" [ "get" ] "" 60 , Run XMonadLog , Run Weather "LFRN" [ "-t", ": C" , "-L","10", "-H", "25" , "--normal", "white" , "--high", "orange" , "--low", "blue" ] 9000 ] , sepChar = "%" , alignSep = "}{" , template = " %XMonadLog% }{ %LFRN% | %battery%, %powerprofilesctl%) | %date%, j%tomorrow% " } ''; }; }