summaryrefslogtreecommitdiffhomepage
path: root/examples/xmobar.hs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/xmobar.hs')
-rw-r--r--examples/xmobar.hs76
1 files changed, 76 insertions, 0 deletions
diff --git a/examples/xmobar.hs b/examples/xmobar.hs
new file mode 100644
index 0000000..1325ae7
--- /dev/null
+++ b/examples/xmobar.hs
@@ -0,0 +1,76 @@
+------------------------------------------------------------------------------
+-- |
+-- Copyright: (c) 2018 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 "<fc=red>Hello World!!</fc>"
+
+-- Configuration, using predefined monitors as well as our HelloWorld
+-- plugin:
+
+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
+ , commands = [ Run $ Weather "EGPH" ["-t","<station>: <tempC>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: <usedratio>%"] 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% { <fc=#ee9a00>%date%</fc>| %EGPH% | %uname%"
+}
+
+main :: IO ()
+main = xmobar config