diff options
-rw-r--r-- | readme.md | 6 | ||||
-rw-r--r-- | src/Config.hs | 3 | ||||
-rw-r--r-- | src/Parsers.hs | 10 | ||||
-rw-r--r-- | src/Window.hs | 2 |
4 files changed, 15 insertions, 6 deletions
@@ -229,11 +229,15 @@ Other configuration options: `lowerOnStart` : When True the window is sent the bottom of the window stack initially. +`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. + `persistent` : When True the window status is fixed i.e. hiding or revealing is not possible. This option can be toggled at runtime. - `border` : TopB, TopBM, BottomB, BottomBM, FullB, FullBM or NoBorder (default). 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 |