summaryrefslogtreecommitdiffhomepage
path: root/src/lib/Xmobar.hs
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2018-11-25 15:10:29 +0000
committerjao <jao@gnu.org>2018-11-25 15:10:29 +0000
commit77df1ac30fa7af5948f7ff64f5fee9aed64552b3 (patch)
tree647a4eb67ff1c293a5c530538ee88fc0093b577a /src/lib/Xmobar.hs
parente0d6da82de8d0d1cef98896164c6016b84e47068 (diff)
downloadxmobar-77df1ac30fa7af5948f7ff64f5fee9aed64552b3.tar.gz
xmobar-77df1ac30fa7af5948f7ff64f5fee9aed64552b3.tar.bz2
Back to app/src, since it seems they're the default convention for stack
Diffstat (limited to 'src/lib/Xmobar.hs')
-rw-r--r--src/lib/Xmobar.hs106
1 files changed, 0 insertions, 106 deletions
diff --git a/src/lib/Xmobar.hs b/src/lib/Xmobar.hs
deleted file mode 100644
index b4543f6..0000000
--- a/src/lib/Xmobar.hs
+++ /dev/null
@@ -1,106 +0,0 @@
-{-# LANGUAGE CPP #-}
-
------------------------------------------------------------------------------
--- |
--- Module : Xmobar
--- Copyright : (c) 2011, 2012, 2013, 2014, 2015, 2017, 2018 Jose Antonio Ortega Ruiz
--- (c) 2007 Andrea Rossato
--- License : BSD-style (see LICENSE)
---
--- Maintainer : Jose A. Ortega Ruiz <jao@gnu.org>
--- Stability : unstable
--- Portability : unportable
---
--- A status bar for the Xmonad Window Manager
---
------------------------------------------------------------------------------
-
-module Xmobar (xmobar
- , Runnable (..)
- , module Xmobar.Config
- , module Xmobar.Plugins.BufferedPipeReader
- , module Xmobar.Plugins.CommandReader
- , module Xmobar.Plugins.Date
-#ifdef DATEZONE
- , module Xmobar.Plugins.DateZone
-#endif
- , module Xmobar.Plugins.EWMH
- , module Xmobar.Plugins.Kbd
- , module Xmobar.Plugins.Locks
-#ifdef INOTIFY
- , module Xmobar.Plugins.Mail
- , module Xmobar.Plugins.MBox
-#endif
- , module Xmobar.Plugins.Monitors
- , module Xmobar.Plugins.PipeReader
- , module Xmobar.Plugins.StdinReader
- , module Xmobar.Plugins.XMonadLog
- ) where
-
-import Data.Foldable (for_)
-import qualified Data.Map as Map
-
-import Graphics.X11.Xlib
-import Control.Concurrent.Async (Async, cancel)
-import Control.Exception (bracket)
-
-import Xmobar.Config
-import Xmobar.Run.Runnable
-import Xmobar.Run.Template
-import Xmobar.Run.EventLoop (startLoop, startCommand)
-import Xmobar.System.Signal (setupSignalHandler, withDeferSignals)
-import Xmobar.X11.Types
-import Xmobar.X11.XUtil
-import Xmobar.X11.Window
-import Xmobar.Plugins.BufferedPipeReader
-import Xmobar.Plugins.CommandReader
-import Xmobar.Plugins.Date
-#ifdef DATEZONE
-import Xmobar.Plugins.DateZone
-#endif
-import Xmobar.Plugins.EWMH
-import Xmobar.Plugins.Kbd
-import Xmobar.Plugins.Locks
-#ifdef INOTIFY
-import Xmobar.Plugins.Mail
-import Xmobar.Plugins.MBox
-#endif
-import Xmobar.Plugins.Monitors
-import Xmobar.Plugins.PipeReader
-import Xmobar.Plugins.StdinReader
-import Xmobar.Plugins.XMonadLog
-
-
-splitTemplate :: Config -> [String]
-splitTemplate conf =
- case break (==l) t of
- (le,_:re) -> case break (==r) re of
- (ce,_:ri) -> [le, ce, ri]
- _ -> def
- _ -> def
- where [l, r] = alignSep
- (if length (alignSep conf) == 2 then conf else defaultConfig)
- t = template conf
- def = [t, "", ""]
-
-xmobar :: Config -> IO ()
-xmobar conf = withDeferSignals $ do
- initThreads
- d <- openDisplay ""
- fs <- initFont d (font conf)
- fl <- mapM (initFont d) (additionalFonts conf)
- cls <- mapM (parseCommands conf) (splitTemplate conf)
- sig <- setupSignalHandler
- bracket (mapM (mapM $ startCommand sig) cls)
- cleanupThreads
- $ \vars -> do
- (r,w) <- createWin d fs conf
- let ic = Map.empty
- to = textOffset conf
- ts = textOffsets conf ++ replicate (length fl) (-1)
- startLoop (XConf d r w (fs:fl) (to:ts) ic conf) sig vars
-
-cleanupThreads :: [[([Async ()], a)]] -> IO ()
-cleanupThreads vars =
- for_ (concat vars) $ \(asyncs, _) ->
- for_ asyncs cancel