summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJochen Keil <jochen.keil@gmail.com>2012-08-16 20:08:50 +0200
committerJochen Keil <jochen.keil@gmail.com>2012-08-16 20:08:50 +0200
commitb57de3e23f36756d0ba85a10592dea02561f8b0f (patch)
treee5176525fa7d0712bca80ed16d27070f1d934f22
parent81289a1382f901b11320130f8a9c07e593a468f3 (diff)
downloadxmobar-b57de3e23f36756d0ba85a10592dea02561f8b0f.tar.gz
xmobar-b57de3e23f36756d0ba85a10592dea02561f8b0f.tar.bz2
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).
-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