xmobar: write configuration in haskell

This commit is contained in:
Primrose 2025-08-07 12:53:57 +02:00
parent 6e74d28502
commit bc274fc677
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA
2 changed files with 85 additions and 48 deletions

View file

@ -0,0 +1,61 @@
import Xmobar
import Data.Function ((&))
config =
defaultConfig
{ overrideRedirect = False
, font = "Iosevka 13"
, bgColor = "#000000"
, fgColor = "#FFFFFF"
, position = BottomH 30
, commands =
[ Run $ Date "%a %d %H:%M:%S" "date" (1 &second)
, Run $
Com
"tomorrow"
[ "--target", "2025-08-14"
, "--target", "2025-08-21"
]
""
(60 &minute)
, Run $
Battery
[ "-t", "<left> (<timeleft>"
, "-H", "70"
, "-L", "20"
, "-h", "green"
, "-n", "orange"
, "-l", "red"
, "--"
, "-P"
, "-A", "20"
, "-a", "notify-send -u critical \"Battery Low\" \"Please charge your battery\""
]
(6 &second)
, Run $ Com "powerprofilesctl" ["get"] "" (6 &second)
, Run XMonadLog
, Run $
Weather
"LFRN"
[ "-t", "<station>: <tempC>C"
, "-L","10", "-H", "25"
, "--normal", "white"
, "--high", "orange"
, "--low", "blue"
]
(15 &minute)
]
, sepChar = "%"
, alignSep = "}{"
, template = " %XMonadLog% }{ %LFRN% | %battery%, %powerprofilesctl%) | %date%, j%tomorrow% "
}
second :: Int -> Int
second = (* 10)
minute :: Int -> Int
minute = (* 60) . second
main :: IO ()
main = xmobar config