Sophie

Sophie

distrib > Fedora > 14 > i386 > by-pkgid > 97b7e04d4a67814e1160568251f09714 > files > 433

ghc-xmonad-contrib-devel-0.9.1-8.fc14.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>XMonad.Hooks.DynamicLog</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_XMonad-Hooks-DynamicLog.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>xmonad-contrib-0.9.1: Third party extensions for xmonad</TD
><TD CLASS="topbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html"
>Source code</A
></TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>XMonad.Hooks.DynamicLog</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>unportable</TD
></TR
><TR
><TD CLASS="infohead"
>Stability</TD
><TD CLASS="infoval"
>unstable</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>Don Stewart &lt;dons@cse.unsw.edu.au&gt;</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
>Usage
</A
></DT
><DT
><A HREF="#2"
>Drop-in loggers
</A
></DT
><DT
><A HREF="#3"
>Build your own formatter
</A
></DT
><DT
><A HREF="#4"
>Example formatters
</A
></DT
><DT
><A HREF="#5"
>Formatting utilities
</A
></DT
><DT
><A HREF="#6"
>Internal formatting functions
</A
></DT
><DT
><A HREF="#7"
>To Do
</A
></DT
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
>xmonad calls the logHook with every internal state update, which is
 useful for (among other things) outputting status information to an
 external status bar program such as xmobar or dzen.  DynamicLog
 provides several drop-in logHooks for this purpose, as well as
 flexible tools for specifying your own formatting.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3Adzen"
>dzen</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3ALayoutClass"
>LayoutClass</A
> l <A HREF="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t%3AWindow"
>Window</A
> =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> l -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> (<A HREF="XMonad-Layout-LayoutModifier.html#t%3AModifiedLayout"
>ModifiedLayout</A
> <A HREF="XMonad-Hooks-ManageDocks.html#t%3AAvoidStruts"
>AvoidStruts</A
> l))</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Axmobar"
>xmobar</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3ALayoutClass"
>LayoutClass</A
> l <A HREF="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t%3AWindow"
>Window</A
> =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> l -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> (<A HREF="XMonad-Layout-LayoutModifier.html#t%3AModifiedLayout"
>ModifiedLayout</A
> <A HREF="XMonad-Hooks-ManageDocks.html#t%3AAvoidStruts"
>AvoidStruts</A
> l))</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AstatusBar"
>statusBar</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3ALayoutClass"
>LayoutClass</A
> l <A HREF="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t%3AWindow"
>Window</A
> =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
> -&gt; (<A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3ALayout"
>Layout</A
> -&gt; (<A HREF="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t%3AKeyMask"
>KeyMask</A
>, <A HREF="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t%3AKeySym"
>KeySym</A
>)) -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> l -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> (<A HREF="XMonad-Layout-LayoutModifier.html#t%3AModifiedLayout"
>ModifiedLayout</A
> <A HREF="XMonad-Hooks-ManageDocks.html#t%3AAvoidStruts"
>AvoidStruts</A
> l))</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdynamicLog"
>dynamicLog</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AX"
>X</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdynamicLogXinerama"
>dynamicLogXinerama</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AX"
>X</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdynamicLogWithPP"
>dynamicLogWithPP</A
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AX"
>X</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdynamicLogString"
>dynamicLogString</A
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AX"
>X</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3APP"
>PP</A
>  = <A HREF="#v%3APP"
>PP</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AppCurrent"
>ppCurrent</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWorkspaceId"
>WorkspaceId</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AppVisible"
>ppVisible</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWorkspaceId"
>WorkspaceId</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AppHidden"
>ppHidden</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWorkspaceId"
>WorkspaceId</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AppHiddenNoWindows"
>ppHiddenNoWindows</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWorkspaceId"
>WorkspaceId</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AppUrgent"
>ppUrgent</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWorkspaceId"
>WorkspaceId</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AppSep"
>ppSep</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AppWsSep"
>ppWsSep</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AppTitle"
>ppTitle</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AppLayout"
>ppLayout</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AppOrder"
>ppOrder</A
> :: [<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>] -&gt; [<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AppSort"
>ppSort</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AX"
>X</A
> ([<A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWindowSpace"
>WindowSpace</A
>] -&gt; [<A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWindowSpace"
>WindowSpace</A
>])</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AppExtras"
>ppExtras</A
> :: [<A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AX"
>X</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>)]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AppOutput"
>ppOutput</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdefaultPP"
>defaultPP</A
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdzenPP"
>dzenPP</A
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AxmobarPP"
>xmobarPP</A
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsjanssenPP"
>sjanssenPP</A
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AbyorgeyPP"
>byorgeyPP</A
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Awrap"
>wrap</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Apad"
>pad</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atrim"
>trim</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ashorten"
>shorten</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AxmobarColor"
>xmobarColor</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AxmobarStrip"
>xmobarStrip</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdzenColor"
>dzenColor</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdzenEscape"
>dzenEscape</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdzenStrip"
>dzenStrip</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApprWindowSet"
>pprWindowSet</A
> :: <A HREF="XMonad-Util-WorkspaceCompare.html#t%3AWorkspaceSort"
>WorkspaceSort</A
> -&gt; [<A HREF="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t%3AWindow"
>Window</A
>] -&gt; <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWindowSet"
>WindowSet</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApprWindowSetXinerama"
>pprWindowSetXinerama</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWindowSet"
>WindowSet</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>Usage
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="doc"
><P
>You can use this module with the following in your <TT
>~/.xmonad/xmonad.hs</TT
>:
</P
><PRE
>    import XMonad
    import XMonad.Hooks.DynamicLog
</PRE
><P
>If you just want a quick-and-dirty status bar with zero effort, try
 the <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3Axmobar"
>xmobar</A
></TT
> or <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3Adzen"
>dzen</A
></TT
> functions:
</P
><PRE
> main = xmonad =&lt;&lt; xmobar myConfig

 myConfig = defaultConfig { ... }
</PRE
><P
>There is also <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AstatusBar"
>statusBar</A
></TT
> if you'd like to use another status bar, or would
 like to use different formatting options.  The <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3Axmobar"
>xmobar</A
></TT
>, <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3Adzen"
>dzen</A
></TT
>, and
 <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AstatusBar"
>statusBar</A
></TT
> functions are preferred over the other options listed below, as
 they take care of all the necessary plumbing -- no shell scripting required!
</P
><P
>Alternatively, you can choose among several default status bar formats
 (<TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AdynamicLog"
>dynamicLog</A
></TT
> or <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AdynamicLogXinerama"
>dynamicLogXinerama</A
></TT
>) by simply setting your logHook to the
 appropriate function, for instance:
</P
><PRE
> main = xmonad $ defaultConfig {
    ...
    logHook = dynamicLog
    ...
  }
</PRE
><P
>For more flexibility, you can also use <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AdynamicLogWithPP"
>dynamicLogWithPP</A
></TT
> and supply
 your own pretty-printing format (by either defining one from scratch,
 or customizing one of the provided examples).
 For example:
</P
><PRE
>    -- use sjanssen's pretty-printer format, but with the sections
    -- in reverse
    logHook = dynamicLogWithPP $ sjanssenPP { ppOrder = reverse }
</PRE
><P
>Note that setting the <TT
>logHook</TT
> only sets up xmonad's output; you
 are responsible for starting your own status bar program (e.g. dzen
 or xmobar) and making sure xmonad's output is piped into it
 appropriately, either by putting it in your <TT
>.xsession</TT
> or similar
 file, or by using <TT
>spawnPipe</TT
> in your <TT
>main</TT
> function, for example:
</P
><PRE
> import XMonad.Util.Run   -- for spawnPipe and hPutStrLn

 main = do
     h &lt;- spawnPipe &quot;xmobar -options -foo -bar&quot;
     xmonad $ defaultConfig {
       ...
       logHook = dynamicLogWithPP $ defaultPP { ppOutput = hPutStrLn h }
</PRE
><P
>If you use <TT
>spawnPipe</TT
>, be sure to redefine the <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AppOutput"
>ppOutput</A
></TT
> field of
 your pretty-printer as in the example above; by default the status
 will be printed to stdout rather than the pipe you create.
</P
><P
>Even if you don't use a statusbar, you can still use
 <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AdynamicLogString"
>dynamicLogString</A
></TT
> to show on-screen notifications in response to
 some events. For example, to show the current layout when it
 changes, you could make a keybinding to cycle the layout and
 display the current status:
</P
><PRE
>    , ((mod1Mask, xK_a     ), sendMessage NextLayout &gt;&gt; (dynamicLogString myPP &gt;&gt;= \d-&gt;spawn $&quot;xmessage &quot;++d))
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Drop-in loggers
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:dzen"
><A NAME="v%3Adzen"
></A
></A
><B
>dzen</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3ALayoutClass"
>LayoutClass</A
> l <A HREF="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t%3AWindow"
>Window</A
> =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> l -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> (<A HREF="XMonad-Layout-LayoutModifier.html#t%3AModifiedLayout"
>ModifiedLayout</A
> <A HREF="XMonad-Hooks-ManageDocks.html#t%3AAvoidStruts"
>AvoidStruts</A
> l))</TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#dzen"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Run xmonad with a dzen status bar set to some nice defaults.
</P
><PRE
> main = xmonad =&lt;&lt; dzen myConfig

 myConfig = defaultConfig { ... }
</PRE
><P
>The intent is that the above config file should provide a nice
 status bar with minimal effort.
</P
><P
>If you wish to customize the status bar format at all, you'll have to
 use the <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AstatusBar"
>statusBar</A
></TT
> function instead.
</P
><P
>The binding uses the XMonad.Hooks.ManageDocks module to automatically
 handle screen placement for dzen, and enables 'mod-b' for toggling
 the menu bar.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:xmobar"
><A NAME="v%3Axmobar"
></A
></A
><B
>xmobar</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3ALayoutClass"
>LayoutClass</A
> l <A HREF="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t%3AWindow"
>Window</A
> =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> l -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> (<A HREF="XMonad-Layout-LayoutModifier.html#t%3AModifiedLayout"
>ModifiedLayout</A
> <A HREF="XMonad-Hooks-ManageDocks.html#t%3AAvoidStruts"
>AvoidStruts</A
> l))</TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#xmobar"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Run xmonad with a xmobar status bar set to some nice defaults.
</P
><PRE
> main = xmonad =&lt;&lt; xmobar myConfig

 myConfig = defaultConfig { ... }
</PRE
><P
>This works pretty much the same as <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3Adzen"
>dzen</A
></TT
> function above.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:statusBar"
><A NAME="v%3AstatusBar"
></A
></A
><B
>statusBar</B
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#statusBar"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3ALayoutClass"
>LayoutClass</A
> l <A HREF="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t%3AWindow"
>Window</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>the command line to launch the status bar
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
></TD
><TD CLASS="rdoc"
>the pretty printing options
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3ALayout"
>Layout</A
> -&gt; (<A HREF="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t%3AKeyMask"
>KeyMask</A
>, <A HREF="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t%3AKeySym"
>KeySym</A
>)</TD
><TD CLASS="rdoc"
>the desired key binding to toggle bar visibility
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> l</TD
><TD CLASS="rdoc"
>the base config
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AXConfig"
>XConfig</A
> (<A HREF="XMonad-Layout-LayoutModifier.html#t%3AModifiedLayout"
>ModifiedLayout</A
> <A HREF="XMonad-Hooks-ManageDocks.html#t%3AAvoidStruts"
>AvoidStruts</A
> l))</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Modifies the given base configuration to launch the given status bar,
 send status information to that bar, and allocate space on the screen edges
 for the bar.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:dynamicLog"
><A NAME="v%3AdynamicLog"
></A
></A
><B
>dynamicLog</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AX"
>X</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#dynamicLog"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>An example log hook, which prints status information to stdout in
 the default format:
</P
><PRE
> 1 2 [3] 4 7 : full : title
</PRE
><P
>That is, the currently populated workspaces, the current
 workspace layout, and the title of the focused window.
</P
><P
>To customize the output format, see <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AdynamicLogWithPP"
>dynamicLogWithPP</A
></TT
>.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:dynamicLogXinerama"
><A NAME="v%3AdynamicLogXinerama"
></A
></A
><B
>dynamicLogXinerama</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AX"
>X</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#dynamicLogXinerama"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Workspace logger with a format designed for Xinerama:
</P
><PRE
> [1 9 3] 2 7
</PRE
><P
>where 1, 9, and 3 are the workspaces on screens 1, 2 and 3, respectively,
 and 2 and 7 are non-visible, non-empty workspaces.
</P
><P
>Unfortunately, at the present time, the current layout and window title
 are not shown, and there is no way to incorporate the xinerama
 workspace format shown above with <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AdynamicLogWithPP"
>dynamicLogWithPP</A
></TT
>.  Hopefully this
 will change soon.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="3"
><A NAME="3"
>Build your own formatter
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:dynamicLogWithPP"
><A NAME="v%3AdynamicLogWithPP"
></A
></A
><B
>dynamicLogWithPP</B
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AX"
>X</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#dynamicLogWithPP"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Format the current status using the supplied pretty-printing format,
   and write it to stdout.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:dynamicLogString"
><A NAME="v%3AdynamicLogString"
></A
></A
><B
>dynamicLogString</B
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AX"
>X</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#dynamicLogString"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The same as <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AdynamicLogWithPP"
>dynamicLogWithPP</A
></TT
>, except it simply returns the status
   as a formatted string without actually printing it to stdout, to
   allow for further processing, or use in some application other than
   a status bar.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:PP"
><A NAME="t%3APP"
></A
></A
><B
>PP</B
>  </TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#PP"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The <TT
><A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
></TT
> type allows the user to customize the formatting of
   status information.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:PP"
><A NAME="v%3APP"
></A
></A
><B
>PP</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:ppCurrent"
><A NAME="v%3AppCurrent"
></A
></A
><B
>ppCurrent</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWorkspaceId"
>WorkspaceId</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>how to print the tag of the currently focused
 workspace
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ppVisible"
><A NAME="v%3AppVisible"
></A
></A
><B
>ppVisible</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWorkspaceId"
>WorkspaceId</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>how to print tags of visible but not focused
 workspaces (xinerama only)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ppHidden"
><A NAME="v%3AppHidden"
></A
></A
><B
>ppHidden</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWorkspaceId"
>WorkspaceId</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>how to print tags of hidden workspaces which
 contain windows
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ppHiddenNoWindows"
><A NAME="v%3AppHiddenNoWindows"
></A
></A
><B
>ppHiddenNoWindows</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWorkspaceId"
>WorkspaceId</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>how to print tags of empty hidden workspaces
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ppUrgent"
><A NAME="v%3AppUrgent"
></A
></A
><B
>ppUrgent</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWorkspaceId"
>WorkspaceId</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>format to be applied to tags of urgent workspaces.
 NOTE that <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AppUrgent"
>ppUrgent</A
></TT
> is applied <EM
>in addition to</EM
>
 <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AppHidden"
>ppHidden</A
></TT
>!
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ppSep"
><A NAME="v%3AppSep"
></A
></A
><B
>ppSep</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>separator to use between different log sections
 (window name, layout, workspaces)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ppWsSep"
><A NAME="v%3AppWsSep"
></A
></A
><B
>ppWsSep</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>separator to use between workspace tags
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ppTitle"
><A NAME="v%3AppTitle"
></A
></A
><B
>ppTitle</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>window title format
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ppLayout"
><A NAME="v%3AppLayout"
></A
></A
><B
>ppLayout</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>layout name format
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ppOrder"
><A NAME="v%3AppOrder"
></A
></A
><B
>ppOrder</B
> :: [<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>] -&gt; [<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>]</TD
><TD CLASS="rdoc"
>how to order the different log sections. By
   default, this function receives a list with three
   formatted strings, representing the workspaces,
   the layout, and the current window title,
   respectively. If you have specified any extra
   loggers in <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AppExtras"
>ppExtras</A
></TT
>, their output will also be
   appended to the list.  To get them in the reverse
   order, you can just use <TT
>ppOrder = reverse</TT
>.  If
   you don't want to display the current layout, you
   could use something like <TT
>ppOrder = \(ws:_:t:_) -&gt;
   [ws,t]</TT
>, and so on.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ppSort"
><A NAME="v%3AppSort"
></A
></A
><B
>ppSort</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AX"
>X</A
> ([<A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWindowSpace"
>WindowSpace</A
>] -&gt; [<A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWindowSpace"
>WindowSpace</A
>])</TD
><TD CLASS="rdoc"
>how to sort the workspaces.  See
 <A HREF="XMonad-Util-WorkspaceCompare.html"
>XMonad.Util.WorkspaceCompare</A
> for some useful
 sorts.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ppExtras"
><A NAME="v%3AppExtras"
></A
></A
><B
>ppExtras</B
> :: [<A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AX"
>X</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>)]</TD
><TD CLASS="rdoc"
>loggers for generating extra information such as
 time and date, system load, battery status, and so
 on.  See <A HREF="XMonad-Util-Loggers.html"
>XMonad.Util.Loggers</A
> for examples, or create
 your own!
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ppOutput"
><A NAME="v%3AppOutput"
></A
></A
><B
>ppOutput</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="rdoc"
>applied to the entire formatted string in order to
 output it.  Can be used to specify an alternative
 output method (e.g. write to a pipe instead of
 stdout), and/or to perform some last-minute
 formatting.
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:defaultPP"
><A NAME="v%3AdefaultPP"
></A
></A
><B
>defaultPP</B
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#defaultPP"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The default pretty printing options, as seen in <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AdynamicLog"
>dynamicLog</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="4"
><A NAME="4"
>Example formatters
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:dzenPP"
><A NAME="v%3AdzenPP"
></A
></A
><B
>dzenPP</B
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#dzenPP"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Settings to emulate dwm's statusbar, dzen only. Uses dzenStrip in
 ppUrgent.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:xmobarPP"
><A NAME="v%3AxmobarPP"
></A
></A
><B
>xmobarPP</B
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#xmobarPP"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Some nice xmobar defaults.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:sjanssenPP"
><A NAME="v%3AsjanssenPP"
></A
></A
><B
>sjanssenPP</B
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#sjanssenPP"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The options that sjanssen likes to use with xmobar, as an
 example.  Note the use of <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AxmobarColor"
>xmobarColor</A
></TT
> and the record update on
 <TT
><A HREF="XMonad-Hooks-DynamicLog.html#v%3AdefaultPP"
>defaultPP</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:byorgeyPP"
><A NAME="v%3AbyorgeyPP"
></A
></A
><B
>byorgeyPP</B
> :: <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#byorgeyPP"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The options that byorgey likes to use with dzen, as another example.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="5"
><A NAME="5"
>Formatting utilities
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:wrap"
><A NAME="v%3Awrap"
></A
></A
><B
>wrap</B
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#wrap"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>left delimiter
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>right delimiter
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>output string
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Wrap a string in delimiters, unless it is empty.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:pad"
><A NAME="v%3Apad"
></A
></A
><B
>pad</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#pad"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Pad a string with a leading and trailing space.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:trim"
><A NAME="v%3Atrim"
></A
></A
><B
>trim</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#trim"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Trim leading and trailing whitespace from a string.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:shorten"
><A NAME="v%3Ashorten"
></A
></A
><B
>shorten</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#shorten"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Limit a string to a certain length, adding <A HREF="---.html"
>...</A
> if truncated.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:xmobarColor"
><A NAME="v%3AxmobarColor"
></A
></A
><B
>xmobarColor</B
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#xmobarColor"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>foreground color: a color name, or #rrggbb format
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>background color
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>output string
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Use xmobar escape codes to output a string with given foreground
   and background colors.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:xmobarStrip"
><A NAME="v%3AxmobarStrip"
></A
></A
><B
>xmobarStrip</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#xmobarStrip"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Strip xmobar markup. Useful to remove ppHidden color from ppUrgent
   field. For example:
</P
><PRE
>     , ppHidden          = xmobarColor &quot;gray20&quot; &quot;&quot; . wrap &quot;&lt;&quot; &quot;&gt;&quot;
     , ppUrgent          = xmobarColor &quot;dark orange&quot; &quot;&quot; .  xmobarStrip
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:dzenColor"
><A NAME="v%3AdzenColor"
></A
></A
><B
>dzenColor</B
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#dzenColor"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>foreground color: a color name, or #rrggbb format
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>background color
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>output string
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Use dzen escape codes to output a string with given foreground
   and background colors.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:dzenEscape"
><A NAME="v%3AdzenEscape"
></A
></A
><B
>dzenEscape</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#dzenEscape"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Escape any dzen metacharacters.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:dzenStrip"
><A NAME="v%3AdzenStrip"
></A
></A
><B
>dzenStrip</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#dzenStrip"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Strip dzen formatting or commands. Useful to remove ppHidden
   formatting in ppUrgent field. For example:
</P
><PRE
>     , ppHidden          = dzenColor &quot;gray20&quot; &quot;&quot; . wrap &quot;(&quot; &quot;)&quot;
     , ppUrgent          = dzenColor &quot;dark orange&quot; &quot;&quot; .  dzenStrip
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="6"
><A NAME="6"
>Internal formatting functions
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:pprWindowSet"
><A NAME="v%3ApprWindowSet"
></A
></A
><B
>pprWindowSet</B
> :: <A HREF="XMonad-Util-WorkspaceCompare.html#t%3AWorkspaceSort"
>WorkspaceSort</A
> -&gt; [<A HREF="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t%3AWindow"
>Window</A
>] -&gt; <A HREF="XMonad-Hooks-DynamicLog.html#t%3APP"
>PP</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWindowSet"
>WindowSet</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#pprWindowSet"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Format the workspace information, given a workspace sorting function,
   a list of urgent windows, a pretty-printer format, and the current
   WindowSet.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:pprWindowSetXinerama"
><A NAME="v%3ApprWindowSetXinerama"
></A
></A
><B
>pprWindowSetXinerama</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/xmonad-0.9.1/XMonad-Core.html#t%3AWindowSet"
>WindowSet</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/XMonad-Hooks-DynamicLog.html#pprWindowSetXinerama"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="7"
><A NAME="7"
>To Do
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="doc"
><UL
><LI
> incorporate dynamicLogXinerama into the PP framework somehow
</LI
><LI
> add an xmobarEscape function
</LI
></UL
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.6.1</TD
></TR
></TABLE
></BODY
></HTML
>