<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>XMonad.Util.Dzen</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ window.onload = function () {pageLoad();setSynopsis("mini_XMonad-Util-Dzen.html");}; //]]> </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/XMonad-Util-Dzen.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">xmonad-contrib-0.11: Third party extensions for xmonad</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>unportable</td></tr><tr><th>Stability</th><td>stable</td></tr><tr><th>Maintainer</th><td>glasser@mit.edu</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">XMonad.Util.Dzen</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Flexible interface </a></li><li><a href="#g:2">Legacy interface </a></li><li><a href="#g:3">Miscellaneous </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Handy wrapper for dzen. Requires dzen >= 0.2.4. </p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:dzenConfig">dzenConfig</a> :: <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:DzenConfig">DzenConfig</a> = (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a>, [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>]) -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a>, [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>])</li><li class="src short"><a href="#v:timeout">timeout</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Rational">Rational</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a></li><li class="src short"><a href="#v:font">font</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a></li><li class="src short"><a href="#v:xScreen">xScreen</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ScreenId">ScreenId</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a></li><li class="src short"><a href="#v:vCenter">vCenter</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ScreenId">ScreenId</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a></li><li class="src short"><a href="#v:hCenter">hCenter</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ScreenId">ScreenId</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a></li><li class="src short"><a href="#v:center">center</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ScreenId">ScreenId</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a></li><li class="src short"><a href="#v:onCurr">onCurr</a> :: (<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ScreenId">ScreenId</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a>) -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a></li><li class="src short"><a href="#v:x">x</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a></li><li class="src short"><a href="#v:y">y</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a></li><li class="src short"><a href="#v:addArgs">addArgs</a> :: [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>] -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a></li><li class="src short"><a href="#v:dzen">dzen</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:dzenScreen">dzenScreen</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ScreenId">ScreenId</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:dzenWithArgs">dzenWithArgs</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -> [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>] -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:seconds">seconds</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Rational">Rational</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:chomp">chomp</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:-62--61--62-">(>=>)</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> (b -> m c) -> a -> m c</li></ul></div><div id="interface"><h1 id="g:1">Flexible interface </h1><div class="top"><p class="src"><a name="v:dzenConfig" class="def">dzenConfig</a> :: <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/XMonad-Util-Dzen.html#dzenConfig" class="link">Source</a></p><div class="doc"><p><code>dzenConfig config s</code> will display the string <code>s</code> according to the configuration <code>config</code>. For example, to display the string <code>"foobar"</code> with all the default settings, you can simply call </p><pre> dzenConfig return "foobar" </pre><p>Or, to set a longer timeout, you could use </p><pre> dzenConfig (timeout 10) "foobar" </pre><p>You can combine configurations with the (>=>) operator. To display <code>"foobar"</code> for 10 seconds on the first screen, you could use </p><pre> dzenConfig (timeout 10 >=> xScreen 0) "foobar" </pre><p>As a final example, you could adapt the above to display <code>"foobar"</code> for 10 seconds on the current screen with </p><pre> dzenConfig (timeout 10 >=> onCurr xScreen) "foobar" </pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DzenConfig" class="def">DzenConfig</a> = (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a>, [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>]) -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a>, [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>])<a href="src/XMonad-Util-Dzen.html#DzenConfig" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:timeout" class="def">timeout</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Rational">Rational</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a><a href="src/XMonad-Util-Dzen.html#timeout" class="link">Source</a></p><div class="doc"><p>Set the timeout, in seconds. This defaults to 3 seconds if not specified. </p></div></div><div class="top"><p class="src"><a name="v:font" class="def">font</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a><a href="src/XMonad-Util-Dzen.html#font" class="link">Source</a></p><div class="doc"><p>Specify the font. Check out xfontsel to get the format of the String right; if your dzen supports xft, then you can supply that here, too. </p></div></div><div class="top"><p class="src"><a name="v:xScreen" class="def">xScreen</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ScreenId">ScreenId</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a><a href="src/XMonad-Util-Dzen.html#xScreen" class="link">Source</a></p><div class="doc"><p>Start dzen2 on a particular screen. Only works with versions of dzen that support the <a href="-xs.html">-xs</a> argument. </p></div></div><div class="top"><p class="src"><a name="v:vCenter" class="def">vCenter</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ScreenId">ScreenId</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a><a href="src/XMonad-Util-Dzen.html#vCenter" class="link">Source</a></p><div class="doc"><p><code>vCenter height sc</code> sets the configuration to have the dzen bar appear on screen <code>sc</code> with height <code>height</code>, vertically centered with respect to the actual size of that screen. </p></div></div><div class="top"><p class="src"><a name="v:hCenter" class="def">hCenter</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ScreenId">ScreenId</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a><a href="src/XMonad-Util-Dzen.html#hCenter" class="link">Source</a></p><div class="doc"><p><code>hCenter width sc</code> sets the configuration to have the dzen bar appear on screen <code>sc</code> with width <code>width</code>, horizontally centered with respect to the actual size of that screen. </p></div></div><div class="top"><p class="src"><a name="v:center" class="def">center</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ScreenId">ScreenId</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a><a href="src/XMonad-Util-Dzen.html#center" class="link">Source</a></p><div class="doc"><p><code>center width height sc</code> sets the configuration to have the dzen bar appear on screen <code>sc</code> with width <code>width</code> and height <code>height</code>, centered both horizontally and vertically with respect to the actual size of that screen. </p></div></div><div class="top"><p class="src"><a name="v:onCurr" class="def">onCurr</a> :: (<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ScreenId">ScreenId</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a>) -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a><a href="src/XMonad-Util-Dzen.html#onCurr" class="link">Source</a></p><div class="doc"><p>Take a screen-specific configuration and supply it with the screen ID of the currently focused screen, according to xmonad. For example, show a 100-pixel wide bar centered within the current screen, you could use </p><pre> dzenConfig (onCurr (hCenter 100)) "foobar" </pre><p>Of course, you can still combine these with (>=>); for example, to center the string <code>"foobar"</code> both horizontally and vertically in a 100x14 box using the lovely Terminus font, you could use </p><pre> terminus = "-*-terminus-*-*-*-*-12-*-*-*-*-*-*-*" dzenConfig (onCurr (center 100 14) >=> font terminus) "foobar" </pre></div></div><div class="top"><p class="src"><a name="v:x" class="def">x</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a><a href="src/XMonad-Util-Dzen.html#x" class="link">Source</a></p><div class="doc"><p>Put the top of the dzen bar at a particular pixel. </p></div></div><div class="top"><p class="src"><a name="v:y" class="def">y</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a><a href="src/XMonad-Util-Dzen.html#y" class="link">Source</a></p><div class="doc"><p>Put the left of the dzen bar at a particular pixel. </p></div></div><div class="top"><p class="src"><a name="v:addArgs" class="def">addArgs</a> :: [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>] -> <a href="XMonad-Util-Dzen.html#t:DzenConfig">DzenConfig</a><a href="src/XMonad-Util-Dzen.html#addArgs" class="link">Source</a></p><div class="doc"><p>Add raw command-line arguments to the configuration. These will be passed on verbatim to dzen2. The default includes no arguments. </p></div></div><h1 id="g:2">Legacy interface </h1><div class="top"><p class="src"><a name="v:dzen" class="def">dzen</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/XMonad-Util-Dzen.html#dzen" class="link">Source</a></p><div class="doc"><p><code>dzen str timeout</code> pipes <code>str</code> to dzen2 for <code>timeout</code> microseconds. Example usage: </p><pre> dzen "Hi, mom!" (5 `seconds`) </pre></div></div><div class="top"><p class="src"><a name="v:dzenScreen" class="def">dzenScreen</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ScreenId">ScreenId</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/XMonad-Util-Dzen.html#dzenScreen" class="link">Source</a></p><div class="doc"><p><code>dzenScreen sc str timeout</code> pipes <code>str</code> to dzen2 for <code>timeout</code> microseconds, and on screen <code>sc</code>. Requires dzen to be compiled with Xinerama support. </p></div></div><div class="top"><p class="src"><a name="v:dzenWithArgs" class="def">dzenWithArgs</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -> [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>] -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/XMonad-Util-Dzen.html#dzenWithArgs" class="link">Source</a></p><div class="doc"><p><code>dzen str args timeout</code> pipes <code>str</code> to dzen2 for <code>timeout</code> seconds, passing <code>args</code> to dzen. Example usage: </p><pre> dzenWithArgs "Hi, dons!" ["-ta", "r"] (5 `seconds`) </pre></div></div><h1 id="g:3">Miscellaneous </h1><div class="top"><p class="src"><a name="v:seconds" class="def">seconds</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Rational">Rational</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a><a href="src/XMonad-Util-Run.html#seconds" class="link">Source</a></p><div class="doc"><p>Multiplies by ONE MILLION, for functions that take microseconds. </p><p>Use like: </p><pre> (5.5 `seconds`) </pre><p>In GHC 7 and later, you must either enable the PostfixOperators extension (by adding </p><pre> {-# LANGUAGE PostfixOperators #-} </pre><p>to the top of your file) or use seconds in prefix form: </p><pre> 5.5 seconds </pre></div></div><div class="top"><p class="src"><a name="v:chomp" class="def">chomp</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a><a href="src/XMonad-Util-Dzen.html#chomp" class="link">Source</a></p><div class="doc"><p>dzen wants exactly one newline at the end of its input, so this can be used for your own invocations of dzen. However, all functions in this module will call this for you. </p></div></div><div class="top"><p class="src"><a name="v:-62--61--62-" class="def">(>=>)</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> (b -> m c) -> a -> m c</p><div class="doc"><p>Left-to-right Kleisli composition of monads. </p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>