diff options
author | Jochen Keil <jochen.keil@gmail.com> | 2012-08-16 20:08:50 +0200 |
---|---|---|
committer | Jochen Keil <jochen.keil@gmail.com> | 2012-08-16 20:08:50 +0200 |
commit | b57de3e23f36756d0ba85a10592dea02561f8b0f (patch) | |
tree | e5176525fa7d0712bca80ed16d27070f1d934f22 | |
parent | 81289a1382f901b11320130f8a9c07e593a468f3 (diff) | |
download | xmobar-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.md | 5 | ||||
-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, 5 deletions
@@ -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 |