aboutsummaryrefslogtreecommitdiffstats
path: root/XMonad/Hooks/DynamicLog.hs
diff options
context:
space:
mode:
authorDon Stewart <dons@galois.com>2008-04-03 02:31:30 +0200
committerDon Stewart <dons@galois.com>2008-04-03 02:31:30 +0200
commit09e66ff461d1558255fd1c940fd3e1f7c11fdecd (patch)
treea6202878af6770125373532f23b37cc29f5d84b1 /XMonad/Hooks/DynamicLog.hs
parentc12eb631523eb5acea75ebd4f21580f192e6ae78 (diff)
downloadXMonadContrib-09e66ff461d1558255fd1c940fd3e1f7c11fdecd.tar.gz
XMonadContrib-09e66ff461d1558255fd1c940fd3e1f7c11fdecd.tar.xz
XMonadContrib-09e66ff461d1558255fd1c940fd3e1f7c11fdecd.zip
have 'dzen' use autoStruts to detect the gaps
darcs-hash:20080403003130-cba2c-9e65ec4e893127b66f17ffbc261472b675be1599.gz
Diffstat (limited to 'XMonad/Hooks/DynamicLog.hs')
-rw-r--r--XMonad/Hooks/DynamicLog.hs28
1 files changed, 25 insertions, 3 deletions
diff --git a/XMonad/Hooks/DynamicLog.hs b/XMonad/Hooks/DynamicLog.hs
index ecfc807..9f46195 100644
--- a/XMonad/Hooks/DynamicLog.hs
+++ b/XMonad/Hooks/DynamicLog.hs
@@ -51,13 +51,17 @@ module XMonad.Hooks.DynamicLog (
import XMonad
import Data.Maybe ( isJust, catMaybes )
import Data.List
+import qualified Data.Map as M
import Data.Ord ( comparing )
import qualified XMonad.StackSet as S
import System.IO
import XMonad.Util.WorkspaceCompare
import XMonad.Util.NamedWindows
import XMonad.Util.Run
+
+import XMonad.Layout.LayoutModifier
import XMonad.Hooks.UrgencyHook
+import XMonad.Hooks.ManageDocks
-- $usage
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
@@ -128,6 +132,8 @@ import XMonad.Hooks.UrgencyHook
--
-- * add an xmobarEscape function
+------------------------------------------------------------------------
+
-- | Run xmonad with a dzen status bar set to some nice defaults. Output
-- is taken from the dynamicLogWithPP hook.
--
@@ -142,17 +148,33 @@ import XMonad.Hooks.UrgencyHook
-- If you wish to customize the status bar format at all, you'll have to
-- use something like 'dynamicLogWithPP' instead.
--
-dzen :: (XConfig (Choose Tall (Choose (Mirror Tall) Full)) -> IO ()) -> IO ()
+-- The binding uses the XMonad.Hooks.ManageDocks module to automatically
+-- handle screen placement for dzen, and enables 'mod-b' for toggling
+-- the menu bar.
+--
+dzen ::
+ (XConfig
+ (ModifiedLayout AvoidStruts
+ (Choose Tall (Choose (Mirror Tall) Full))) -> IO t) -> IO t
dzen f = do
h <- spawnPipe ("dzen2" ++ " " ++ flags)
f $ defaultConfig
- { logHook = dynamicLogWithPP dzenPP
- { ppOutput = hPutStrLn h } }
+ { logHook = dynamicLogWithPP dzenPP
+ { ppOutput = hPutStrLn h }
+ ,layoutHook = avoidStrutsOn [U] (layoutHook defaultConfig)
+ ,keys = \c -> mykeys c `M.union` keys defaultConfig c
+ ,manageHook = manageHook defaultConfig <+> manageDocks
+ }
where
+ mykeys (XConfig{modMask=modm}) = M.fromList
+ [((modm, xK_b ), sendMessage ToggleStruts)
+ ]
fg = "'#a8a3f7'" -- n.b quoting
bg = "'#3f3c6d'"
flags = "-e '' -w 400 -ta l -fg " ++ fg ++ " -bg " ++ bg
+------------------------------------------------------------------------
+
-- | An example log hook, which prints status information to stdout in
-- the default format:
--