.files/nix/configurations/vanadium/home/xmobar/xmobar.hs

84 lines
2.2 KiB
Haskell

import Xmobar
import Data.Function ((&))
import Data.List (intercalate)
config :: Config
config =
defaultConfig
{
-- as docked
overrideRedirect = False
-- For framework 13
, dpi = 150
, font = "Iosevka 8"
, fgColor = "#FFFFFF"
, bgColor = "#000000"
, position = BottomH 24
, textOffset = 2
, commands =
[ Run $ Date "%a %d %H:%M:%S" "hereClock" (1 &second)
, Run $ DateZone "%H:%M" "" "America/Aruba" "arubaClock" (10 &second)
, Run $ DateZone "%H:%M" "" "Europe/Paris" "cetClock" (10 &second)
, Run $ DateZone "%H:%M" "" "Asia/Taipei" "tstClock" (10 &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)
]
, template =
" %XMonadLog% "
<> alignSep config
<> intercalate "|"
[ unwords
[ "<fc=#c9c9c9>[Aruba: %arubaClock%]</fc>"
, "<fc=#c9c9c9>[CET: %cetClock%]</fc>"
, "<fc=#c9c9c9>[TST: %tstClock%]</fc>"
]
<> " "
, " %LFRN% "
, " %battery%, %powerprofilesctl%) "
, " %hereClock% (j%tomorrow%) "
]
}
second :: Int -> Int
second = (* 10)
minute :: Int -> Int
minute = (* 60) . second
main :: IO ()
main = xmobar config