summaryrefslogtreecommitdiffhomepage
path: root/src
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 /src
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).
Diffstat (limited to 'src')
-rw-r--r--src/Config.hs3
-rw-r--r--src/Parsers.hs10
-rw-r--r--src/Window.hs2
3 files changed, 10 insertions, 5 deletions
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