------------------------------------------------------------------------------
-- |
-- Copyright: (c) 2018, 2019, 2022 Jose Antonio Ortega Ruiz
-- License: BSD3-style (see LICENSE)
--
-- Maintainer: jao@gnu.org
-- Stability: unstable
-- Portability: portable
-- Created: Sat Nov 24, 2018 21:03
--
--
-- An example of a Haskell-based xmobar. Compile it with
-- ghc --make -- xmobar.hs
-- with the xmobar library installed or simply call:
-- xmobar /path/to/xmobar.hs
-- and xmobar will compile and launch it for you and
------------------------------------------------------------------------------
import Xmobar
-- Example user-defined plugin
data HelloWorld = HelloWorld
deriving (Read, Show)
instance Exec HelloWorld where
alias HelloWorld = "hw"
run HelloWorld = return "Hello World!!"
-- Configuration, using predefined monitors as well as our HelloWorld
-- plugin:
config :: Config
config = defaultConfig {
font = "xft:Sans Mono-9"
, additionalFonts = []
, borderColor = "black"
, border = TopB
, bgColor = "black"
, fgColor = "grey"
, alpha = 255
, position = Top
, textOffset = -1
, iconOffset = -1
, lowerOnStart = True
, pickBroadest = False
, persistent = False
, hideOnStart = False
, iconRoot = "."
, allDesktops = True
, overrideRedirect = True
, textOutputFormat = Ansi
, commands = [ Run $ Weather "EGPH" ["-t",": C",
"-L","18","-H","25",
"--normal","green",
"--high","red",
"--low","lightblue"] 36000
, Run $ Network "eth0" ["-L","0","-H","32",
"--normal","green","--high","red"] 10
, Run $ Network "eth1" ["-L","0","-H","32",
"--normal","green","--high","red"] 10
, Run $ Cpu ["-L","3","-H","50",
"--normal","green","--high","red"] 10
, Run $ Memory ["-t","Mem: %"] 10
, Run $ Swap [] 10
, Run $ Com "uname" ["-s","-r"] "" 36000
, Run $ Date "%a %b %_d %Y %H:%M:%S" "date" 10
, Run HelloWorld
]
, sepChar = "%"
, alignSep = "}{"
, template = "%cpu% | %memory% * %swap% | %eth0% - %eth1% }\
\ %hw% { %date%| %EGPH% | %uname%"
}
main :: IO ()
main = xmobar config