dots-of-war/.surf/cache/WebKitCache/Version 16/Blobs/4E717D81BB880C30E966E57B2C35459E905A81F6

85 lines
168 KiB
Text
Raw Normal View History

2020-03-19 11:03:08 +00:00
<!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.Core</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><link rel="stylesheet" type="text/css" href="quick-jump.css" /><script src="haddock-bundle.min.js" async="async" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/XMonad.Core.html">Source</a></li><li><a href="/package/xmonad-0.15">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">xmonad-0.15: A tiling window manager</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>(c) Spencer Janssen 2007</td></tr><tr><th>License</th><td>BSD3-style (see LICENSE)</td></tr><tr><th>Maintainer</th><td>spencerjanssen@gmail.com</td></tr><tr><th>Stability</th><td>unstable</td></tr><tr><th>Portability</th><td>not portable, uses cunning newtype deriving</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">XMonad.Core</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>The <code><a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></code> monad, a state monad transformer over <code><a href="/package/base-4.11.1.0/docs/System-IO.html#t:IO" title="System.IO">IO</a></code>, for the window
manager state, and support routines.</p></div></div><div id="synopsis"><details id="syn"><summary>Synopsis</summary><ul class="details-toggle" data-details-id="syn"><li class="src short"><span class="keyword">data</span> <a href="#t:X">X</a> a</li><li class="src short"><span class="keyword">type</span> <a href="#t:WindowSet">WindowSet</a> = <a href="XMonad-StackSet.html#t:StackSet" title="XMonad.StackSet">StackSet</a> <a href="XMonad-Core.html#t:WorkspaceId" title="XMonad.Core">WorkspaceId</a> (<a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a>) <a href="XMonad.html#t:Window" title="XMonad">Window</a> <a href="XMonad-Core.html#t:ScreenId" title="XMonad.Core">ScreenId</a> <a href="XMonad-Core.html#t:ScreenDetail" title="XMonad.Core">ScreenDetail</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:WindowSpace">WindowSpace</a> = <a href="XMonad-StackSet.html#t:Workspace" title="XMonad.StackSet">Workspace</a> <a href="XMonad-Core.html#t:WorkspaceId" title="XMonad.Core">WorkspaceId</a> (<a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a>) <a href="XMonad.html#t:Window" title="XMonad">Window</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:WorkspaceId">WorkspaceId</a> = <a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a></li><li class="src short"><span class="keyword">newtype</span> <a href="#t:ScreenId">ScreenId</a> = <a href="#v:S">S</a> <a href="/package/base-4.11.1.0/docs/Data-Int.html#t:Int" title="Data.Int">Int</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ScreenDetail">ScreenDetail</a> = <a href="#v:SD">SD</a> {<ul class="subs"><li><a href="#v:screenRect">screenRect</a> :: !<a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:XState">XState</a> = <a href="#v:XState">XState</a> {<ul class="subs"><li><a href="#v:windowset">windowset</a> :: !<a href="XMonad-Core.html#t:WindowSet" title="XMonad.Core">WindowSet</a></li><li><a href="#v:mapped">mapped</a> :: !(<a href="/package/containers-0.5.11.0/docs/Data-Set.html#t:Set" title="Data.Set">Set</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a>)</li><li><a href="#v:waitingUnmap">waitingUnmap</a> :: !(<a href="/package/containers-0.5.11.0/docs/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a> <a href="/package/base-4.11.1.0/docs/Data-Int.html#t:Int" title="Data.Int">Int</a>)</li><li><a href="#v:dragging">dragging</a> :: !(<a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> (<a href="XMonad.html#t:Position" title="XMonad">Position</a> -&gt; <a href="XMonad.html#t:Position" title="XMonad">Position</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> (), <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ()))</li><li><a href="#v:numberlockMask">numberlockMask</a> :: !<a href="XMonad.html#t:KeyMask" title="XMonad">KeyMask</a></li><li><a href="#v:extensibleState">extensibleState</a> :: !(<a href="/package/containers-0.5.11.0/docs/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> <a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a> (<a href="/package/base-4.11.1.0/docs/Data-Either.html#t:Either" title="Data.Either">Either</a> <a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a> <a href="XMonad-Core.html#t:StateExtension" title="XMonad.Core">StateExtension</a>))</li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:XConf">XConf</a> = <a href="#v:XConf">XConf</a> {<ul class="subs"><li><a href="#v:display">display</a> :: <a href="XMonad.html#t:Display" title="XMonad">Display</a></li><li><a href="#v:config">config</a> :: !(<a href="XMonad-Core.html#t:XConfig" title="XMonad.Core
encapsulating the window manager configuration and state,
respectively.</p><p>Dynamic components may be retrieved with <code><a href="XMonad.html#v:get" title="XMonad">get</a></code>, static components
with <code><a href="XMonad.html#v:ask" title="XMonad">ask</a></code>. With newtype deriving we get readers and state monads
instantiated on <code><a href="XMonad-Core.html#t:XConf" title="XMonad.Core">XConf</a></code> and <code><a href="XMonad-Core.html#t:XState" title="XMonad.Core">XState</a></code> automatically.</p></div><div class="subs instances"><details id="i:X" open="open"><summary>Instances</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:X:Monad:1"></span> <a href="/package/base-4.11.1.0/docs/Control-Monad.html#t:Monad" title="Control.Monad">Monad</a> <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></span> <a href="src/XMonad.Core.html#line-151" class="link">Source</a> <a href="#t:X" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:X:Monad:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Core.html">XMonad.Core</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a -&gt; (a -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> b) -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> b -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a <a href="#v:fail" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:X:Functor:2"></span> <a href="/package/base-4.11.1.0/docs/Data-Functor.html#t:Functor" title="Data.Functor">Functor</a> <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></span> <a href="src/XMonad.Core.html#line-151" class="link">Source</a> <a href="#t:X" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:X:Functor:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Core.html">XMonad.Core</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> b -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:X:MonadFail:3"></span> <a href="/package/base-4.11.1.0/docs/Control-Monad-Fail.html#t:MonadFail" title="Control.Monad.Fail">MonadFail</a> <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></span> <a href="src/XMonad.Core.html#line-151" class="link">Source</a> <a href="#t:X" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:X:MonadFail:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Core.html">XMonad.Core</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fail">fail</a> :: <a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a> -&gt; <a href="XMonad-Core.h
provides additional information and a simple interface for using this.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><details id="i:XState" open="open"><summary>Instances</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:XState:MonadState:1"></span> <a href="XMonad.html#t:MonadState" title="XMonad">MonadState</a> <a href="XMonad-Core.html#t:XState" title="XMonad.Core">XState</a> <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></span> <a href="src/XMonad.Core.html#line-151" class="link">Source</a> <a href="#t:XState" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:XState:MonadState:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Core.html">XMonad.Core</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> <a href="XMonad-Core.html#t:XState" title="XMonad.Core">XState</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:put">put</a> :: <a href="XMonad-Core.html#t:XState" title="XMonad.Core">XState</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> () <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:state">state</a> :: (<a href="XMonad-Core.html#t:XState" title="XMonad.Core">XState</a> -&gt; (a, <a href="XMonad-Core.html#t:XState" title="XMonad.Core">XState</a>)) -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a <a href="#v:state" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:XConf" class="def">XConf</a> <a href="src/XMonad.Core.html#XConf" class="link">Source</a> <a href="#t:XConf" class="selflink">#</a></p><div class="doc"><p>XConf, the (read-only) window manager configuration.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:XConf" class="def">XConf</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:display" class="def">display</a> :: <a href="XMonad.html#t:Display" title="XMonad">Display</a></dfn><div class="doc"><p>the X11 display</p></div></li><li><dfn class="src"><a id="v:config" class="def">config</a> :: !(<a href="XMonad-Core.html#t:XConfig" title="XMonad.Core">XConfig</a> <a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a>)</dfn><div class="doc"><p>initial user configuration</p></div></li><li><dfn class="src"><a id="v:theRoot" class="def">theRoot</a> :: !<a href="XMonad.html#t:Window" title="XMonad">Window</a></dfn><div class="doc"><p>the root window</p></div></li><li><dfn class="src"><a id="v:normalBorder" class="def">normalBorder</a> :: !<a href="XMonad.html#t:Pixel" title="XMonad">Pixel</a></dfn><div class="doc"><p>border color of unfocused windows</p></div></li><li><dfn class="src"><a id="v:focusedBorder" class="def">focusedBorder</a> :: !<a href="XMonad.html#t:Pixel" title="XMonad">Pixel</a></dfn><div class="doc"><p>border color of the focused window</p></div></li><li><dfn class="src"><a id="v:keyActions" class="def">keyActions</a> :: !(<a href="/package/containers-0.5.11.0/docs/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> (<a href="XMonad.html#t:KeyMask" title="XMonad">KeyMask</a>, <a href="XMonad.html#t:KeySym" title="XMonad">KeySym</a>) (<a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ()))</dfn><div class="doc"><p>a mapping of key presses to actions</p></div></li><li><dfn class="src"><a id="v:buttonActions" class="def">buttonActions</a> :: !(<a href="/package/containers-0.5.11.0/docs/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> (<a href="XMonad.html#t:KeyMask" title="XMonad">KeyMask</a>, <a href="XMonad.html#t:Button" title="XMonad">Button</a>) (<a href="XMonad.
the event currently being processed</p></div></li><li><dfn class="src"><a id="v:currentEvent" class="def">currentEvent</a> :: !(<a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> <a href="/package/X11-1.9/docs/Graphics-X11-Xlib-Extras.html#t:Event" title="Graphics.X11.Xlib.Extras">Event</a>)</dfn><div class="doc"><p>event currently being processed</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><details id="i:XConf" open="open"><summary>Instances</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:XConf:MonadReader:1"></span> <a href="XMonad.html#t:MonadReader" title="XMonad">MonadReader</a> <a href="XMonad-Core.html#t:XConf" title="XMonad.Core">XConf</a> <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></span> <a href="src/XMonad.Core.html#line-151" class="link">Source</a> <a href="#t:XConf" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:XConf:MonadReader:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Core.html">XMonad.Core</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> <a href="XMonad-Core.html#t:XConf" title="XMonad.Core">XConf</a> <a href="#v:ask" class="selflink">#</a></p><p class="src"><a href="#v:local">local</a> :: (<a href="XMonad-Core.html#t:XConf" title="XMonad.Core">XConf</a> -&gt; <a href="XMonad-Core.html#t:XConf" title="XMonad.Core">XConf</a>) -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a <a href="#v:local" class="selflink">#</a></p><p class="src"><a href="#v:reader">reader</a> :: (<a href="XMonad-Core.html#t:XConf" title="XMonad.Core">XConf</a> -&gt; a) -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a <a href="#v:reader" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:XConfig" class="def">XConfig</a> l <a href="src/XMonad.Core.html#XConfig" class="link">Source</a> <a href="#t:XConfig" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:XConfig" class="def">XConfig</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:normalBorderColor" class="def">normalBorderColor</a> :: !<a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a></dfn><div class="doc"><p>Non focused windows border color. Default: &quot;#dddddd&quot;</p></div></li><li><dfn class="src"><a id="v:focusedBorderColor" class="def">focusedBorderColor</a> :: !<a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a></dfn><div class="doc"><p>Focused windows border color. Default: &quot;#ff0000&quot;</p></div></li><li><dfn class="src"><a id="v:terminal" class="def">terminal</a> :: !<a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a></dfn><div class="doc"><p>The preferred terminal application. Default: &quot;xterm&quot;</p></div></li><li><dfn class="src"><a id="v:layoutHook" class="def">layoutHook</a> :: !(l <a href="XMonad.html#t:Window" title="XMonad">Window</a>)</dfn><div class="doc"><p>The available layouts</p></div></li><li><dfn class="src"><a id="v:manageHook" class="def">manageHook</a> :: !<a href="XMonad-Core.html#t:ManageHook" title="XMonad.Core">ManageHook</a></dfn><div class="doc"><p>The action to run when a new window is opened</p></div></li><li><dfn class="src"><a id="v:handleEventHook" class="def">handleEventHook</a> :: !(<a href="/package/X11-1.9/docs/Graphics-X11-Xlib-Extras.html#t:Event" title="Graphics.X11.Xlib.Extras">Event</a> -&gt; <a href="XMo
should also be run afterwards. mappend should be used for combining
event hooks in most cases.</p></div></li><li><dfn class="src"><a id="v:workspaces" class="def">workspaces</a> :: ![<a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a>]</dfn><div class="doc"><p>The list of workspaces' names</p></div></li><li><dfn class="src"><a id="v:modMask" class="def">modMask</a> :: !<a href="XMonad.html#t:KeyMask" title="XMonad">KeyMask</a></dfn><div class="doc"><p>the mod modifier</p></div></li><li><dfn class="src"><a id="v:keys" class="def">keys</a> :: !(<a href="XMonad-Core.html#t:XConfig" title="XMonad.Core">XConfig</a> <a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> -&gt; <a href="/package/containers-0.5.11.0/docs/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> (<a href="XMonad.html#t:ButtonMask" title="XMonad">ButtonMask</a>, <a href="XMonad.html#t:KeySym" title="XMonad">KeySym</a>) (<a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ()))</dfn><div class="doc"><p>The key binding: a map from key presses and actions</p></div></li><li><dfn class="src"><a id="v:mouseBindings" class="def">mouseBindings</a> :: !(<a href="XMonad-Core.html#t:XConfig" title="XMonad.Core">XConfig</a> <a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> -&gt; <a href="/package/containers-0.5.11.0/docs/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> (<a href="XMonad.html#t:ButtonMask" title="XMonad">ButtonMask</a>, <a href="XMonad.html#t:Button" title="XMonad">Button</a>) (<a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ()))</dfn><div class="doc"><p>The mouse bindings</p></div></li><li><dfn class="src"><a id="v:borderWidth" class="def">borderWidth</a> :: !<a href="XMonad.html#t:Dimension" title="XMonad">Dimension</a></dfn><div class="doc"><p>The border width</p></div></li><li><dfn class="src"><a id="v:logHook" class="def">logHook</a> :: !(<a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ())</dfn><div class="doc"><p>The action to perform when the windows set is changed</p></div></li><li><dfn class="src"><a id="v:startupHook" class="def">startupHook</a> :: !(<a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ())</dfn><div class="doc"><p>The action to perform on startup</p></div></li><li><dfn class="src"><a id="v:focusFollowsMouse" class="def">focusFollowsMouse</a> :: !<a href="/package/base-4.11.1.0/docs/Data-Bool.html#t:Bool" title="Data.Bool">Bool</a></dfn><div class="doc"><p>Whether window entry events can change focus</p></div></li><li><dfn class="src"><a id="v:clickJustFocuses" class="def">clickJustFocuses</a> :: !<a href="/package/base-4.11.1.0/docs/Data-Bool.html#t:Bool" title="Data.Bool">Bool</a></dfn><div class="doc"><p>False to make a click which changes focus to be additionally passed to the window</p></div></li><li><dfn class="src"><a id="v:clientMask" class="def">clientMask</a> :: !<a href="XMonad.html#t:EventMask" title="XMonad">EventMask</a></dfn><div class="doc"><p>The client events that xmonad is interested in</p></div></li><li><dfn class="src"><a id="v:rootMask" class="def">rootMask</a> :: !<a href="XMonad.html#t:EventMask" title="XMonad">EventMask</a></dfn><div class="doc"><p>The root events that xmonad is interested in</p></div></li><li><dfn class="src"><a id="v:handleExtraArgs" class="def">handleExtraArgs</a> :: !([<a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a>] -&gt; <a href="XMonad-Core.html#t:XConfig" title="XMonad.Core">XConfig</a> <a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> -&gt; <a href="/package/base-4.11.1.0/docs/System-IO.html#t:IO" title="System.IO">IO</a> (<a href="XMonad-Core.html#t:XConfig" title="XMonad.Core">XConfig</a> <a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a>))</dfn><div class="doc"><p>Modify the configuration, complain about extra arguments etc. with arguments that are not handled by default</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><details id="i:XConfig" open="open">
the basic layout operations along with a sensible default for each.</p><p>Minimal complete definition:</p><ul><li><code><a href="XMonad-Core.html#v:runLayout" title="XMonad.Core">runLayout</a></code> || ((<code><a href="XMonad-Core.html#v:doLayout" title="XMonad.Core">doLayout</a></code> || <code><a href="XMonad-Core.html#v:pureLayout" title="XMonad.Core">pureLayout</a></code>) &amp;&amp; <code><a href="XMonad-Core.html#v:emptyLayout" title="XMonad.Core">emptyLayout</a></code>), and</li><li><code><a href="XMonad-Core.html#v:handleMessage" title="XMonad.Core">handleMessage</a></code> || <code><a href="XMonad-Core.html#v:pureMessage" title="XMonad.Core">pureMessage</a></code></li></ul><p>You should also strongly consider implementing <code><a href="XMonad-Core.html#v:description" title="XMonad.Core">description</a></code>,
although it is not required.</p><p>Note that any code which <em>uses</em> <code><a href="XMonad-Core.html#t:LayoutClass" title="XMonad.Core">LayoutClass</a></code> methods should only
ever call <code><a href="XMonad-Core.html#v:runLayout" title="XMonad.Core">runLayout</a></code>, <code><a href="XMonad-Core.html#v:handleMessage" title="XMonad.Core">handleMessage</a></code>, and <code><a href="XMonad-Core.html#v:description" title="XMonad.Core">description</a></code>! In
other words, the only calls to <code><a href="XMonad-Core.html#v:doLayout" title="XMonad.Core">doLayout</a></code>, <code><a href="XMonad-Core.html#v:pureMessage" title="XMonad.Core">pureMessage</a></code>, and other
such methods should be from the default implementations of
<code><a href="XMonad-Core.html#v:runLayout" title="XMonad.Core">runLayout</a></code>, <code><a href="XMonad-Core.html#v:handleMessage" title="XMonad.Core">handleMessage</a></code>, and so on. This ensures that the
proper methods will be used, regardless of the particular methods
that any <code><a href="XMonad-Core.html#t:LayoutClass" title="XMonad.Core">LayoutClass</a></code> instance chooses to define.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:runLayout" class="def">runLayout</a> :: <a href="XMonad-StackSet.html#t:Workspace" title="XMonad.StackSet">Workspace</a> <a href="XMonad-Core.html#t:WorkspaceId" title="XMonad.Core">WorkspaceId</a> (layout a) a -&gt; <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ([(a, <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a>)], <a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> (layout a)) <a href="src/XMonad.Core.html#runLayout" class="link">Source</a> <a href="#v:runLayout" class="selflink">#</a></p><div class="doc"><p>By default, <code><a href="XMonad-Core.html#v:runLayout" title="XMonad.Core">runLayout</a></code> calls <code><a href="XMonad-Core.html#v:doLayout" title="XMonad.Core">doLayout</a></code> if there are any
windows to be laid out, and <code><a href="XMonad-Core.html#v:emptyLayout" title="XMonad.Core">emptyLayout</a></code> otherwise. Most
instances of <code><a href="XMonad-Core.html#t:LayoutClass" title="XMonad.Core">LayoutClass</a></code> probably do not need to implement
<code><a href="XMonad-Core.html#v:runLayout" title="XMonad.Core">runLayout</a></code>; it is only useful for layouts which wish to make
use of more of the <code><a href="XMonad-StackSet.html#t:Workspace" title="XMonad.StackSet">Workspace</a></code> information (for example,
<a href="XMonad-Layout-PerWorkspace.html">XMonad.Layout.PerWorkspace</a>).</p></div><p class="src"><a id="v:doLayout" class="def">doLayout</a> :: layout a -&gt; <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a> -&gt; <a href="XMonad-StackSet.html#t:Stack" title="XMonad.StackSet">Stack</a> a -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ([(a, <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a>)], <a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> (layout a)) <a href="src/XMonad.Core.html#doLayout" class="link">Source</a> <a href="#v:doLayout" class="selflink">#</a></p><div class="doc"><p>Given a <code><a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a></code> in which to place the windows, and a <code><a href="XMonad-StackSet.html#t:Stack" title="XMonad.StackSet">Stack</a></code>
of windows, return a list of windows and their corresponding
Rectangles. If an element is not given a Rectangle by
<code><a href="XMonad-Core.html#v:doLayout" title="XMonad.Core">doLayout</a></code>, then it is not shown on screen. The order of
windows in this list should be the desired stacking order.</p><p>Also possibly return a modified layout (by returning <code>Just
newLayout</code>), if this layout needs to be modified (e.g. if it
keeps track of some sort of state). Return <code>Nothing</code> if the
layout does not need to be modified.</p><p>Layouts which do not need access to the <code><a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></code> monad (<code><a href="/package/base-4.11.1.0/docs/System-IO.html#t:IO" title="System.IO">IO</a></code>, window
manager state, or configuration) and do not keep track of their
own state should implement <code><a href="XMonad-Core.html#v:pureLayout" title="XMonad.Core">pureLayout</a></code> instead of <code><a href="XMonad-Core.html#v:doLayout" title="XMonad.Core">doLayout</a></code>.</p></div><p class="src"><a id="v:pureLayout" class="def">pureLayout</a> :: layout a -&gt; <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a> -&gt; <a href="XMonad-StackSet.html#t:Stack" title="XMonad.StackSet">Stack</a> a -&gt; [(a, <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a>)] <a href="src/XMonad.Core.html#pureLayout" class="link">Source</a> <a href="#v:pureLayout" class="selflink">#</a></p><div class="doc"><p>This is a pure version of <code><a href="XMonad-Core.html#v:doLayout" title="XMonad.Core">doLayout</a></code>, for cases where we
don't need access to the <code><a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></code> monad to determine how to lay out
the windows, and we don't need to modify the layout itself.</p></div><p class="src"><a id="v:emptyLayout" class="def">emptyLayout</a> :: layout a -&gt; <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ([(a, <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a>)], <a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> (layout a)) <a href="src/XMonad.Core.html#emptyLayout" class="link">Source</a> <a href="#v:emptyLayout" class="selflink">#</a></p><div class="doc"><p><code><a href="XMonad-Core.html#v:emptyLayout" title="XMonad.Core">emptyLayout</a></code> is called when there are no windows.</p></div><p class="src"><a id="v:handleMessage" class="def">handleMessage</a> :: layout a -&gt; <a href="XMonad-Core.html#t:SomeMessage" title="XMonad.Core">SomeMessage</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> (<a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> (layout a)) <a href="src/XMonad.Core.html#handleMessage" class="link">Source</a> <a href="#v:handleMessage" class="selflink">#</a></p><div class="doc"><p><code><a href="XMonad-Core.html#v:handleMessage" title="XMonad.Core">handleMessage</a></code> performs message handling. If
<code><a href="XMonad-Core.html#v:handleMessage" title="XMonad.Core">handleMessage</a></code> returns <code>Nothing</code>, then the layout did not
respond to the message and the screen is not refreshed.
Otherwise, <code><a href="XMonad-Core.html#v:handleMessage" title="XMonad.Core">handleMessage</a></code> returns an updated layout and the
screen is refreshed.</p><p>Layouts which do not need access to the <code><a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></code> monad to decide how
to handle messages should implement <code><a href="XMonad-Core.html#v:pureMessage" title="XMonad.Core">pureMessage</a></code> instead of
<code><a href="XMonad-Core.html#v:handleMessage" title="XMonad.Core">handleMessage</a></code> (this restricts the risk of error, and makes
testing much easier).</p></div><p class="src"><a id="v:pureMessage" class="def">pureMessage</a> :: layout a -&gt; <a href="XMonad-Core.html#t:SomeMessage" title="XMonad.Core">SomeMessage</a> -&gt; <a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> (layout a) <a href="src/XMonad.Core.html#pureMessage" class="link">Source</a> <a href="#v:pureMessage" class="selflink">#</a></p><div class="doc"><p>Respond to a message by (possibly) changing our layout, but
taking no other action. If the layout changes, the screen will
be refreshed.</p></div><p class="src"><a id="v:description" class="def">description</a> :: layout a -&gt; <a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a> <a href="src/XMonad.Core.html#description" class="link">Source</a> <a href="#v:description" class="selflink">#</a></p><div class="doc"><p>This should be a human-readable string that is used when
selecting layouts by name. The default implementation is
<code><a href="/package/base-4.11.1.0/docs/Text-Show.html#v:show" title="Text.Show">show</a></code>, which is in some cases a poor default.</p></div></div><div class="subs instances"><details id="i:LayoutClass" open="open"><summary>Instances</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:LayoutClass:LayoutClass:1"></span> <a href="XMonad-Core.html#t:LayoutClass" title="XMonad.Core">LayoutClass</a> <a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a></span> <a href="src/XMonad.Core.html#line-340" class="link">Source</a> <a href="#t:LayoutClass" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:LayoutClass:LayoutClass:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Core.html">XMonad.Core</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runLayout">runLayout</a> :: <a href="XMonad-StackSet.html#t:Workspace" title="XMonad.StackSet">Workspace</a> <a href="XMonad-Core.html#t:WorkspaceId" title="XMonad.Core">WorkspaceId</a> (<a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a>) <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ([(<a href="XMonad.html#t:Window" title="XMonad">Window</a>, <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a>)], <a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> (<a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a>)) <a href="src/XMonad.Core.html#runLayout" class="link">Source</a> <a href="#v:runLayout" class="selflink">#</a></p><p class="src"><a href="#v:doLayout">doLayout</a> :: <a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a> -&gt; <a href="XMonad-StackSet.html#t:Stack" title="XMonad.StackSet">Stack</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ([(<a href="XMonad.html#t:Window" title="XMonad">Window</a>, <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a>)], <a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> (<a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a>)) <a href="src/XMonad.Core.html#doLayout" class="link">Source</a> <a href="#v:doLayout" class="selflink">#</a></p><p class="src"><a href="#v:pureLayout">pureLayout</a> :: <a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a> -&gt; <a href="XMonad-StackSet.html#t:Stack" title="XMonad.StackSet">Stack</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; [(<a href="XMonad.html#t:Window" title="XMonad">Window</a>, <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a>)] <a href="src/XMonad.Core.html#pureLayout" class="link">Source</a> <a href="#v:pureLayout" class="selflink">#</a></p><p class="src"><a href="#v:emptyLayout">emptyLayout</a> :: <a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ([(<a href="XMonad.html#t:Window" title="XMonad">Window</a>, <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a>)], <a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> (<
and <code><a href="XMonad-Core.html#t:LayoutClass" title="XMonad.Core">LayoutClass</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src">(<a href="XMonad-Core.html#t:LayoutClass" title="XMonad.Core">LayoutClass</a> l a, <a href="/package/base-4.11.1.0/docs/Text-Read.html#t:Read" title="Text.Read">Read</a> (l a)) =&gt; <a id="v:Layout" class="def">Layout</a> (l a)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><details id="i:Layout" open="open"><summary>Instances</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Layout:LayoutClass:1"></span> <a href="XMonad-Core.html#t:LayoutClass" title="XMonad.Core">LayoutClass</a> <a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a></span> <a href="src/XMonad.Core.html#line-340" class="link">Source</a> <a href="#t:Layout" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Layout:LayoutClass:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Core.html">XMonad.Core</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runLayout">runLayout</a> :: <a href="XMonad-StackSet.html#t:Workspace" title="XMonad.StackSet">Workspace</a> <a href="XMonad-Core.html#t:WorkspaceId" title="XMonad.Core">WorkspaceId</a> (<a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a>) <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ([(<a href="XMonad.html#t:Window" title="XMonad">Window</a>, <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a>)], <a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> (<a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a>)) <a href="src/XMonad.Core.html#runLayout" class="link">Source</a> <a href="#v:runLayout" class="selflink">#</a></p><p class="src"><a href="#v:doLayout">doLayout</a> :: <a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a> -&gt; <a href="XMonad-StackSet.html#t:Stack" title="XMonad.StackSet">Stack</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ([(<a href="XMonad.html#t:Window" title="XMonad">Window</a>, <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a>)], <a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> (<a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a>)) <a href="src/XMonad.Core.html#doLayout" class="link">Source</a> <a href="#v:doLayout" class="selflink">#</a></p><p class="src"><a href="#v:pureLayout">pureLayout</a> :: <a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a> -&gt; <a href="XMonad-StackSet.html#t:Stack" title="XMonad.StackSet">Stack</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; [(<a href="XMonad.html#t:Window" title="XMonad">Window</a>, <a href="XMonad.html#t:Rectangle" title="XMonad">Rectangle</a>)] <a href="src/XMonad.Core.html#pureLayout" class="link">Source</a> <a href="#v:pureLayout" class="selflink">#</a></p><p class="src"><a href="#v:emptyLayout">emptyLayout</a> :: <a href="XMonad-Core.html#t:Layout" title="XMonad.Core">Layout</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; <a href="XMonad.html#t:Rectangle" tit
from a <code><a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a></code>.</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:Typeable" class="def">Typeable</a> (a :: k) <a href="#t:Typeable" class="selflink">#</a></p><div class="doc"><p>The class <code><a href="XMonad-Core.html#t:Typeable" title="XMonad.Core">Typeable</a></code> allows a concrete representation of a type to
be calculated.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src">typeRep#</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="XMonad-Core.html#t:Typeable" title="XMonad.Core">Typeable</a> a =&gt; <a id="t:Message" class="def">Message</a> a <a href="src/XMonad.Core.html#Message" class="link">Source</a> <a href="#t:Message" class="selflink">#</a></p><div class="doc"><p>Based on ideas in /An Extensible Dynamically-Typed Hierarchy of
Exceptions/, Simon Marlow, 2006. Use extensible messages to the
<code><a href="XMonad-Core.html#v:handleMessage" title="XMonad.Core">handleMessage</a></code> handler.</p><p>User-extensible messages must be a member of this class.</p></div><div class="subs instances"><details id="i:Message" open="open"><summary>Instances</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Message:Message:1"></span> <a href="XMonad-Core.html#t:Message" title="XMonad.Core">Message</a> <a href="/package/X11-1.9/docs/Graphics-X11-Xlib-Extras.html#t:Event" title="Graphics.X11.Xlib.Extras">Event</a></span> <a href="src/XMonad.Core.html#line-370" class="link">Source</a> <a href="#t:Message" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:Message:Message:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Core.html">XMonad.Core</a></p></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Message:Message:2"></span> <a href="XMonad-Core.html#t:Message" title="XMonad.Core">Message</a> <a href="XMonad-Core.html#t:LayoutMessages" title="XMonad.Core">LayoutMessages</a></span> <a href="src/XMonad.Core.html#line-378" class="link">Source</a> <a href="#t:Message" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:Message:Message:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Core.html">XMonad.Core</a></p></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Message:Message:3"></span> <a href="XMonad-Core.html#t:Message" title="XMonad.Core">Message</a> <a href="XMonad-Layout.html#t:ChangeLayout" title="XMonad.Layout">ChangeLayout</a></span> <a href="src/XMonad.Core.html#line-137" class="link">Source</a> <a href="#t:Message" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:Message:Message:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Layout.html">XMonad.Layout</a></p></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Message:Message:4"></span> <a href="XMonad-Core.html#t:Message" title="XMonad.Core">Message</a> <a href="XMonad-Layout.html#t:IncMasterN" title="XMonad.Layout">IncMasterN</a></span> <a href="src/XMonad.Core.html#line-44" class="link">Source</a> <a href="#t:Message" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:Message:Message:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Layout.html">XMonad.Layout</a></p></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Message:Message:5"></span> <a href="XMonad-Core.html#t:Message" title="XMonad.Core">Message</a> <a href="XMonad-Layout.html#t:Resize" title="XMonad.Layout">Resize</a></span> <a href="src/XMonad.Core.html#line-43" class="link">Source</a> <a href="#t:Message" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:Message:Message:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Layout.html">XMonad.Layout</a></p></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SomeMessage" class="def">SomeMessage</a> <a href="src/XMonad.Core.html#SomeMessage" class="link">Source</a> <a href="#t:SomeMessage" class="selflink">#</a></p><div class="doc"><p>A wrapped value of some type in the <code><a href="XMonad-Core.html#t:Message" title="XMonad.Core">Message</a></code> class.</p></div><div class="s
type check on the result.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:LayoutMessages" class="def">LayoutMessages</a> <a href="src/XMonad.Core.html#LayoutMessages" class="link">Source</a> <a href="#t:LayoutMessages" class="selflink">#</a></p><div class="doc"><p><code><a href="XMonad-Core.html#t:LayoutMessages" title="XMonad.Core">LayoutMessages</a></code> are core messages that all layouts (especially stateful
layouts) should consider handling.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Hide" class="def">Hide</a></td><td class="doc"><p>sent when a layout becomes non-visible</p></td></tr><tr><td class="src"><a id="v:ReleaseResources" class="def">ReleaseResources</a></td><td class="doc"><p>sent when xmonad is exiting or restarting</p></td></tr></table></div><div class="subs instances"><details id="i:LayoutMessages" open="open"><summary>Instances</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:LayoutMessages:Eq:1"></span> <a href="/package/base-4.11.1.0/docs/Data-Eq.html#t:Eq" title="Data.Eq">Eq</a> <a href="XMonad-Core.html#t:LayoutMessages" title="XMonad.Core">LayoutMessages</a></span> <a href="src/XMonad.Core.html#line-376" class="link">Source</a> <a href="#t:LayoutMessages" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:LayoutMessages:Eq:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Core.html">XMonad.Core</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="XMonad-Core.html#t:LayoutMessages" title="XMonad.Core">LayoutMessages</a> -&gt; <a href="XMonad-Core.html#t:LayoutMessages" title="XMonad.Core">LayoutMessages</a> -&gt; <a href="/package/base-4.11.1.0/docs/Data-Bool.html#t:Bool" title="Data.Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="XMonad-Core.html#t:LayoutMessages" title="XMonad.Core">LayoutMessages</a> -&gt; <a href="XMonad-Core.html#t:LayoutMessages" title="XMonad.Core">LayoutMessages</a> -&gt; <a href="/package/base-4.11.1.0/docs/Data-Bool.html#t:Bool" title="Data.Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:LayoutMessages:Message:2"></span> <a href="XMonad-Core.html#t:Message" title="XMonad.Core">Message</a> <a href="XMonad-Core.html#t:LayoutMessages" title="XMonad.Core">LayoutMessages</a></span> <a href="src/XMonad.Core.html#line-378" class="link">Source</a> <a href="#t:LayoutMessages" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:LayoutMessages:Message:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="XMonad-Core.html">XMonad.Core</a></p></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:StateExtension" class="def">StateExtension</a> <a href="src/XMonad.Core.html#StateExtension" class="link">Source</a> <a href="#t:StateExtension" class="selflink">#</a></p><div class="doc"><p>Existential type to store a state extension.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a href="XMonad-Core.html#t:ExtensionClass" title="XMonad.Core">ExtensionClass</a> a =&gt; <a id="v:StateExtension" class="def">StateExtension</a> a</td><td class="doc"><p>Non-persistent state extension</p></td></tr><tr><td class="src">(<a href="/package/base-4.11.1.0/docs/Text-Read.html#t:Read" title="Text.Read">Read</a> a, <a href="/package/base-4.11.1.0/docs/Text-Show.html#t:Show" title="Text.Show">Show</a> a, <a href="XMonad-Core.html#t:ExtensionClass" title="XMonad.Core">ExtensionClass</a> a) =&gt; <a id="v:PersistentExtension" class="def">PersistentExtension</a> a</td><td class="doc"><p>Persistent extension</p></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="XMonad-Core.html#t:Typeable" title="XMonad.Core">Typeable</a> a =&gt; <a id="t:ExtensionClass" class="def">ExtensionClass</a> a <span class="keyword">where</span> <a href="src/XMonad.Core.html#ExtensionClass" class="link
an instance of this class.</p><p>Minimal complete definition: initialValue</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="XMonad-Core.html#v:initialValue" title="XMonad.Core">initialValue</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:initialValue" class="def">initialValue</a> :: a <a href="src/XMonad.Core.html#initialValue" class="link">Source</a> <a href="#v:initialValue" class="selflink">#</a></p><div class="doc"><p>Defines an initial value for the state extension</p></div><p class="src"><a id="v:extensionType" class="def">extensionType</a> :: a -&gt; <a href="XMonad-Core.html#t:StateExtension" title="XMonad.Core">StateExtension</a> <a href="src/XMonad.Core.html#extensionType" class="link">Source</a> <a href="#v:extensionType" class="selflink">#</a></p><div class="doc"><p>Specifies whether the state extension should be
persistent. Setting this method to <code><a href="XMonad-Core.html#v:PersistentExtension" title="XMonad.Core">PersistentExtension</a></code>
will make the stored data survive restarts, but
requires a to be an instance of Read and Show.</p><p>It defaults to <code><a href="XMonad-Core.html#t:StateExtension" title="XMonad.Core">StateExtension</a></code>, i.e. no persistence.</p></div></div></div><div class="top"><p class="src"><a id="v:runX" class="def">runX</a> :: <a href="XMonad-Core.html#t:XConf" title="XMonad.Core">XConf</a> -&gt; <a href="XMonad-Core.html#t:XState" title="XMonad.Core">XState</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a -&gt; <a href="/package/base-4.11.1.0/docs/System-IO.html#t:IO" title="System.IO">IO</a> (a, <a href="XMonad-Core.html#t:XState" title="XMonad.Core">XState</a>) <a href="src/XMonad.Core.html#runX" class="link">Source</a> <a href="#v:runX" class="selflink">#</a></p><div class="doc"><p>Run the <code><a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></code> monad, given a chunk of <code><a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></code> monad code, and an initial state
Return the result, and final state</p></div></div><div class="top"><p class="src"><a id="v:catchX" class="def">catchX</a> :: <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a <a href="src/XMonad.Core.html#catchX" class="link">Source</a> <a href="#v:catchX" class="selflink">#</a></p><div class="doc"><p>Run in the <code><a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></code> monad, and in case of exception, and catch it and log it
to stderr, and run the error case.</p></div></div><div class="top"><p class="src"><a id="v:userCode" class="def">userCode</a> :: <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> (<a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> a) <a href="src/XMonad.Core.html#userCode" class="link">Source</a> <a href="#v:userCode" class="selflink">#</a></p><div class="doc"><p>Execute the argument, catching all exceptions. Either this function or
<code><a href="XMonad-Core.html#v:catchX" title="XMonad.Core">catchX</a></code> should be used at all callsites of user customized code.</p></div></div><div class="top"><p class="src"><a id="v:userCodeDef" class="def">userCodeDef</a> :: a -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a <a href="src/XMonad.Core.html#userCodeDef" class="link">Source</a> <a href="#v:userCodeDef" class="selflink">#</a></p><div class="doc"><p>Same as userCode but with a default argument to return instead of using
Maybe, provided for convenience.</p></div></div><div class="top"><p class="src"><a id="v:io" class="def">io</a> :: <a href="XMonad.html#t:MonadIO" title="XMonad">MonadIO</a> m =&gt; <a href="/package/base-4.11.1.0/docs/System-IO.html#t:IO" title="System.IO">IO</a> a -&gt; m a <a href="src/XMonad.Core.html#io" class="link">Source</a> <a href="#v:io" class="selflink">#</a></p><div class="doc"><p>General utilities</p><p>Lift an <code><a href="/package/base-4.11.1.0/docs/System-IO.html#t:IO" title="System.IO">IO</a></code> action into the <code><a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></code> monad</p></div></div><div class="top"><p class="src"><a id="v:catchIO" class="def">catchIO</a> :: <a href="XMonad.html#t:MonadIO" title="XMonad">MonadIO</a> m =&gt; <a href="/package/base-4.11.1.0/docs/System-IO.html#t:IO" title="System.IO">IO</a> () -&gt; m () <a href="src/XMonad.Core.html#catchIO" class="link">Source</a> <a href="#v:catchIO" class="selflink">#</a></p><div class="doc"><p>Lift an <code><a href="/package/base-4.11.1.0/docs/System-IO.html#t:IO" title="System.IO">IO</a></code> action into the <code><a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></code> monad. If the action results in an <code><a href="/package/base-4.11.1.0/docs/System-IO.html#t:IO" title="System.IO">IO</a></code>
exception, log the exception to stderr and continue normal execution.</p></div></div><div class="top"><p class="src"><a id="v:installSignalHandlers" class="def">installSignalHandlers</a> :: <a href="XMonad.html#t:MonadIO" title="XMonad">MonadIO</a> m =&gt; m () <a href="src/XMonad.Core.html#installSignalHandlers" class="link">Source</a> <a href="#v:installSignalHandlers" class="selflink">#</a></p><div class="doc"><p>Ignore SIGPIPE to avoid termination when a pipe is full, and SIGCHLD to
avoid zombie processes, and clean up any extant zombie processes.</p></div></div><div class="top"><p class="src"><a id="v:uninstallSignalHandlers" class="def">uninstallSignalHandlers</a> :: <a href="XMonad.html#t:MonadIO" title="XMonad">MonadIO</a> m =&gt; m () <a href="src/XMonad.Core.html#uninstallSignalHandlers" class="link">Source</a> <a href="#v:uninstallSignalHandlers" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:withDisplay" class="def">withDisplay</a> :: (<a href="XMonad.html#t:Display" title="XMonad">Display</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a) -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a <a href="src/XMonad.Core.html#withDisplay" class="link">Source</a> <a href="#v:withDisplay" class="selflink">#</a></p><div class="doc"><p>Run a monad action with the current display settings</p></div></div><div class="top"><p class="src"><a id="v:withWindowSet" class="def">withWindowSet</a> :: (<a href="XMonad-Core.html#t:WindowSet" title="XMonad.Core">WindowSet</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a) -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a <a href="src/XMonad.Core.html#withWindowSet" class="link">Source</a> <a href="#v:withWindowSet" class="selflink">#</a></p><div class="doc"><p>Run a monadic action with the current stack set</p></div></div><div class="top"><p class="src"><a id="v:isRoot" class="def">isRoot</a> :: <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> <a href="/package/base-4.11.1.0/docs/Data-Bool.html#t:Bool" title="Data.Bool">Bool</a> <a href="src/XMonad.Core.html#isRoot" class="link">Source</a> <a href="#v:isRoot" class="selflink">#</a></p><div class="doc"><p>True if the given window is the root window</p></div></div><div class="top"><p class="src"><a id="v:runOnWorkspaces" class="def">runOnWorkspaces</a> :: (<a href="XMonad-Core.html#t:WindowSpace" title="XMonad.Core">WindowSpace</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> <a href="XMonad-Core.html#t:WindowSpace" title="XMonad.Core">WindowSpace</a>) -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> () <a href="src/XMonad.Core.html#runOnWorkspaces" class="link">Source</a> <a href="#v:runOnWorkspaces" class="selflink">#</a></p><div class="doc"><p>This is basically a map function, running a function in the <code><a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></code> monad on
each workspace with the output of that function being the modified workspace.</p></div></div><div class="top"><p class="src"><a id="v:getAtom" class="def">getAtom</a> :: <a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> <a href="XMonad.html#t:Atom" title="XMonad">Atom</a> <a href="src/XMonad.Core.html#getAtom" class="link">Source</a> <a href="#v:getAtom" class="selflink">#</a></p><div class="doc"><p>Wrapper for the common case of atom internment</p></div></div><div class="top"><p class="src"><a id="v:spawn" class="def">spawn</a> :: <a href="XMonad.html#t:MonadIO" title="XMonad">MonadIO</a> m =&gt; <a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a> -&gt; m () <a href="src/XMonad.Core.html#spawn" class="link">Source</a> <a href="#v:spawn" class="selflink">#</a></p><div class="doc"><p>spawn. Launch an external application. Specifically, it double-forks and
runs the <code><a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a></code> you pass as a command to /bin/sh.</p><p>Note this function assumes your locale uses utf8.</p></div></div><div class="top"><p class="src"><a id="v:spawnPID" class="def">spawnPID</a> :: <a href="XMonad.html#t:MonadIO" title="XMonad">MonadIO</a> m =&gt; <a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a> -&gt; m <a href="/package/base-4.11.1.0/docs/System-Posix-Types.html#t:ProcessID" title="System.Posix.Types">ProcessID</a> <a href="src/XMonad.Core.html#spawnPID" class="link">Source</a> <a href="#v:spawnPID" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="XMonad-Core.html#v:spawn" title="XMonad.Core">spawn</a></code>, but returns the <code><a href="/package/base-4.11.1.0/docs/System-Posix-Types.html#t:ProcessID" title="System.Posix.Types">ProcessID</a></code> of the launched application</p></div></div><div class="top"><p class="src"><a id="v:xfork" class="def">xfork</a> :: <a href="XMonad.html#t:MonadIO" title="XMonad">MonadIO</a> m =&gt; <a href="/package/base-4.11.1.0/docs/System-IO.html#t:IO" title="System.IO">IO</a> () -&gt; m <a href="/package/base-4.11.1.0/docs/System-Posix-Types.html#t:ProcessID" title="System.Posix.Types">ProcessID</a> <a href="src/XMonad.Core.html#xfork" class="link">Source</a> <a href="#v:xfork" class="selflink">#</a></p><div class="doc"><p>A replacement for <code><a href="/package/unix-2.7.2.2/docs/System-Posix-Process-ByteString.html#v:forkProcess" title="System.Posix.Process.ByteString">forkProcess</a></code> which resets default signal handlers.</p></div></div><div class="top"><p class="src"><a id="v:recompile" class="def">recompile</a> :: <a href="XMonad.html#t:MonadIO" title="XMonad">MonadIO</a> m =&gt; <a href="/package/base-4.11.1.0/docs/Data-Bool.html#t:Bool" title="Data.Bool">Bool</a> -&gt; m <a href="/package/base-4.11.1.0/docs/Data-Bool.html#t:Bool" title="Data.Bool">Bool</a> <a href="src/XMonad.Core.html#recompile" class="link">Source</a> <a href="#v:recompile" class="selflink">#</a></p><div class="doc"><p>'recompile force', recompile the xmonad configuration file when
any of the following apply:</p><ul><li>force is <code><a href="/package/base-4.11.1.0/docs/Data-Bool.html#v:True" title="Data.Bool">True</a></code></li><li>the xmonad executable does not exist</li><li>the xmonad executable is older than xmonad.hs or any file in
the <code>lib</code> directory (under the configuration directory).</li></ul><p>The -i flag is used to restrict recompilation to the xmonad.hs file only,
and any files in the aforementioned <code>lib</code> directory.</p><p>Compilation errors (if any) are logged to the <code>xmonad.errors</code> file
in the xmonad data directory. If GHC indicates failure with a
non-zero exit code, an xmessage displaying that file is spawned.</p><p><code><a href="/package/base-4.11.1.0/docs/Data-Bool.html#v:False" title="Data.Bool">False</a></code> is returned if there are compilation errors.</p></div></div><div class="top"><p class="src"><a id="v:trace" class="def">trace</a> :: <a href="XMonad.html#t:MonadIO" title="XMonad">MonadIO</a> m =&gt; <a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a> -&gt; m () <a href="src/XMonad.Core.html#trace" class="link">Source</a> <a href="#v:trace" class="selflink">#</a></p><div class="doc"><p>A <code><a href="XMonad-Core.html#v:trace" title="XMonad.Core">trace</a></code> for the <code><a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></code> monad. Logs a string to stderr. The result may
be found in your .xsession-errors file</p></div></div><div class="top"><p class="src"><a id="v:whenJust" class="def">whenJust</a> :: <a href="/package/base-4.11.1.0/docs/Control-Monad.html#t:Monad" title="Control.Monad">Monad</a> m =&gt; <a href="/package/base-4.11.1.0/docs/Data-Maybe.html#t:Maybe" title="Data.Maybe">Maybe</a> a -&gt; (a -&gt; m ()) -&gt; m () <a href="src/XMonad.Core.html#whenJust" class="link">Source</a> <a href="#v:whenJust" class="selflink">#</a></p><div class="doc"><p>Conditionally run an action, using a <code>Maybe a</code> to decide.</p></div></div><div class="top"><p class="src"><a id="v:whenX" class="def">whenX</a> :: <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> <a href="/package/base-4.11.1.0/docs/Data-Bool.html#t:Bool" title="Data.Bool">Bool</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> () -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> () <a href="src/XMonad.Core.html#whenX" class="link">Source</a> <a href="#v:whenX" class="selflink">#</a></p><div class="doc"><p>Conditionally run an action, using a <code><a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a></code> event to decide</p></div></div><div class="top"><p class="src"><a id="v:getXMonadDir" class="def">getXMonadDir</a> :: <a href="XMonad.html#t:MonadIO" title="XMonad">MonadIO</a> m =&gt; m <a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a> <a href="src/XMonad.Core.html#getXMonadDir" class="link">Source</a> <a href="#v:getXMonadDir" class="selflink">#</a></p><div class="doc"><p>Return the path to the xmonad configuration directory. This
directory is where user configuration files are stored (e.g, the
xmonad.hs file). You may also create a <code>lib</code> subdirectory in the
configuration directory and the default recompile command will add
it to the GHC include path.</p><p>Several directories are considered. In order of
preference:</p><ol><li>The directory specified in the <code>XMONAD_CONFIG_DIR</code> environment variable.</li><li>The <code>~/.xmonad</code> directory.</li><li>The <code>XDG_CONFIG_HOME/xmonad</code> directory.</li></ol><p>The first directory that exists will be used. If none of the
directories exist then (1) will be used if it is set, otherwise (2)
will be used. Either way, a directory will be created if necessary.</p></div></div><div class="top"><p class="src"><a id="v:getXMonadCacheDir" class="def">getXMonadCacheDir</a> :: <a href="XMonad.html#t:MonadIO" title="XMonad">MonadIO</a> m =&gt; m <a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a> <a href="src/XMonad.Core.html#getXMonadCacheDir" class="link">Source</a> <a href="#v:getXMonadCacheDir" class="selflink">#</a></p><div class="doc"><p>Return the path to the xmonad cache directory. This directory is
used to store temporary files that can easily be recreated. For
example, the XPrompt history file.</p><p>Several directories are considered. In order of preference:</p><ol><li>The directory specified in the <code>XMONAD_CACHE_DIR</code> environment variable.</li><li>The <code>~/.xmonad</code> directory.</li><li>The <code>XDG_CACHE_HOME/xmonad</code> directory.</li></ol><p>The first directory that exists will be used. If none of the
directories exist then (1) will be used if it is set, otherwise (2)
will be used. Either way, a directory will be created if necessary.</p></div></div><div class="top"><p class="src"><a id="v:getXMonadDataDir" class="def">getXMonadDataDir</a> :: <a href="XMonad.html#t:MonadIO" title="XMonad">MonadIO</a> m =&gt; m <a href="/package/base-4.11.1.0/docs/Data-String.html#t:String" title="Data.String">String</a> <a href="src/XMonad.Core.html#getXMonadDataDir" class="link">Source</a> <a href="#v:getXMonadDataDir" class="selflink">#</a></p><div class="doc"><p>Return the path to the xmonad data directory. This directory is
used by XMonad to store data files such as the run-time state file
and the configuration binary generated by GHC.</p><p>Several directories are considered. In order of preference:</p><ol><li>The directory specified in the <code>XMONAD_DATA_DIR</code> environment variable.</li><li>The <code>~/.xmonad</code> directory.</li><li>The <code>XDG_DATA_HOME/xmonad</code> directory.</li></ol><p>The first directory that exists will be used. If none of the
directories exist then (1) will be used if it is set, otherwise (2)
will be used. Either way, a directory will be created if necessary.</p></div></div><div class="top"><p class="src"><a id="v:stateFileName" class="def">stateFileName</a> :: (<a href="/package/base-4.11.1.0/docs/Data-Functor.html#t:Functor" title="Data.Functor">Functor</a> m, <a href="XMonad.html#t:MonadIO" title="XMonad">MonadIO</a> m) =&gt; m <a href="/package/base-4.11.1.0/docs/System-IO.html#t:FilePath" title="System.IO">FilePath</a> <a href="src/XMonad.Core.html#stateFileName" class="link">Source</a> <a href="#v:stateFileName" class="selflink">#</a></p><div class="doc"><p>Get the name of the file used to store the xmonad window state.</p></div></div><div class="top"><p class="src"><a id="v:atom_WM_STATE" class="def">atom_WM_STATE</a> :: <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> <a href="XMonad.html#t:Atom" title="XMonad">Atom</a> <a href="src/XMonad.Core.html#atom_WM_STATE" class="link">Source</a> <a href="#v:atom_WM_STATE" class="selflink">#</a></p><div class="doc"><p>Common non-predefined atoms</p></div></div><div class="top"><p class="src"><a id="v:atom_WM_PROTOCOLS" class="def">atom_WM_PROTOCOLS</a> :: <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> <a href="XMonad.html#t:Atom" title="XMonad">Atom</a> <a href="src/XMonad.Core.html#atom_WM_PROTOCOLS" class="link">Source</a> <a href="#v:atom_WM_PROTOCOLS" class="selflink">#</a></p><div class="doc"><p>Common non-predefined atoms</p></div></div><div class="top"><p class="src"><a id="v:atom_WM_DELETE_WINDOW" class="def">atom_WM_DELETE_WINDOW</a> :: <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> <a href="XMonad.html#t:Atom" title="XMonad">Atom</a> <a href="src/XMonad.Core.html#atom_WM_DELETE_WINDOW" class="link">Source</a> <a href="#v:atom_WM_DELETE_WINDOW" class="selflink">#</a></p><div class="doc"><p>Common non-predefined atoms</p></div></div><div class="top"><p class="src"><a id="v:atom_WM_TAKE_FOCUS" class="def">atom_WM_TAKE_FOCUS</a> :: <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> <a href="XMonad.html#t:Atom" title="XMonad">Atom</a> <a href="src/XMonad.Core.html#atom_WM_TAKE_FOCUS" class="link">Source</a> <a href="#v:atom_WM_TAKE_FOCUS" class="selflink">#</a></p><div class="doc"><p>Common non-predefined atoms</p></div></div><div class="top"><p class="src"><a id="v:withWindowAttributes" class="def">withWindowAttributes</a> :: <a href="XMonad.html#t:Display" title="XMonad">Display</a> -&gt; <a href="XMonad.html#t:Window" title="XMonad">Window</a> -&gt; (<a href="/package/X11-1.9/docs/Graphics-X11-Xlib-Extras.html#t:WindowAttributes" title="Graphics.X11.Xlib.Extras">WindowAttributes</a> -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> ()) -&gt; <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> () <a href="src/XMonad.Core.html#withWindowAttributes" class="link">Source</a> <a href="#v:withWindowAttributes" class="selflink">#</a></p><div class="doc"><p>Safely access window attributes.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ManageHook" class="def">ManageHook</a> = <a href="XMonad-Core.html#t:Query" title="XMonad.Core">Query</a> (<a href="/package/base-4.11.1.0/docs/Data-Monoid.html#t:Endo" title="Data.Monoid">Endo</a> <a href="XMonad-Core.html#t:WindowSet" title="XMonad.Core">WindowSet</a>) <a href="src/XMonad.Core.html#ManageHook" class="link">Source</a> <a href="#t:ManageHook" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">newtype</span> <a id="t:Query" class="def">Query</a> a <a href="src/XMonad.Core.html#Query" class="link">Source</a> <a href="#t:Query" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Query" class="def">Query</a> (<a href="/package/mtl-2.2.2/docs/Control-Monad-Reader.html#t:ReaderT" title="Control.Monad.Reader">ReaderT</a> <a href="XMonad.html#t:Window" title="XMonad">Window</a> <a href="XMonad-Core.html#t:X" title="XMonad.Core">X</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instanc