From b57de3e23f36756d0ba85a10592dea02561f8b0f Mon Sep 17 00:00:00 2001 From: Jochen Keil Date: Thu, 16 Aug 2012 20:08:50 +0200 Subject: New configuration option 'hideOnStart' When set to True the window is initially not mapped, i.e. hidden. It then can be toggled manually (for example using the dbus interface) or automatically (by a plugin) to make it reappear (unhide/reveal). --- src/Config.hs | 3 +++ src/Parsers.hs | 10 ++++++---- src/Window.hs | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/Config.hs b/src/Config.hs index 47358b0..a6ad3e2 100644 --- a/src/Config.hs +++ b/src/Config.hs @@ -55,6 +55,8 @@ data Config = , position :: XPosition -- ^ Top Bottom or Static , border :: Border -- ^ NoBorder TopB BottomB or FullB , borderColor :: String -- ^ Border color + , hideOnStart :: Bool -- ^ Hide (Unmap) the window on + -- initialization , lowerOnStart :: Bool -- ^ Lower to the bottom of the -- window stack on initialization , persistent :: Bool -- ^ Whether automatic hiding should @@ -97,6 +99,7 @@ defaultConfig = , position = Top , border = NoBorder , borderColor = "#BFBFBF" + , hideOnStart = False , lowerOnStart = True , persistent = False , commands = [ Run $ Date "%a %b %_d %Y * %H:%M:%S" "theDate" 10 diff --git a/src/Parsers.hs b/src/Parsers.hs index c92480e..c658be6 100644 --- a/src/Parsers.hs +++ b/src/Parsers.hs @@ -131,13 +131,14 @@ parseConfig = runParser parseConf fields "Config" . stripComments <$?> pFont <|?> pBgColor <|?> pFgColor <|?> pPosition <|?> pBorder <|?> pBdColor - <|?> pLowerOnStart <|?> pPersistent - <|?> pCommands <|?> pSepChar - <|?> pAlignSep <|?> pTemplate + <|?> pHideOnStart <|?> pLowerOnStart + <|?> pPersistent <|?> pCommands + <|?> pSepChar <|?> pAlignSep + <|?> pTemplate fields = [ "font", "bgColor", "fgColor", "sepChar", "alignSep" , "border", "borderColor" ,"template", "position" - , "lowerOnStart", "persistent", "commands" + , "hideOnStart", "lowerOnStart", "persistent", "commands" ] pFont = strField font "font" @@ -149,6 +150,7 @@ parseConfig = runParser parseConf fields "Config" . stripComments pTemplate = strField template "template" pPosition = field position "position" $ tillFieldEnd >>= read' "position" + pHideOnStart = field hideOnStart "hideOnStart" $ tillFieldEnd >>= read' "hideOnStart" pLowerOnStart = field lowerOnStart "lowerOnStart" $ tillFieldEnd >>= read' "lowerOnStart" pPersistent = field persistent "persistent" $ tillFieldEnd >>= read' "persistent" pBorder = field border "border" $ tillFieldEnd >>= read' "border" diff --git a/src/Window.hs b/src/Window.hs index 0ffa139..9b0c506 100644 --- a/src/Window.hs +++ b/src/Window.hs @@ -41,7 +41,7 @@ createWin d fs c = do win <- newWindow d (defaultScreenOfDisplay d) rootw r o setProperties r c d win srs when (lowerOnStart c) (lowerWindow d win) - mapWindow d win + when (not $ hideOnStart c) $ mapWindow d win return (r,win) -- | Updates the size and position of the window -- cgit v1.2.3