summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--readme.md5
-rw-r--r--src/Config.hs3
-rw-r--r--src/Parsers.hs10
-rw-r--r--src/Window.hs2
4 files changed, 15 insertions, 5 deletions
diff --git a/readme.md b/readme.md
index f42a18c..f8a1f6e 100644
--- a/readme.md
+++ b/readme.md
@@ -226,6 +226,11 @@ Other configuration options:
: position = Top
+`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.
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