<!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.Layout.ZoomRow</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-Layout-ZoomRow.html");}; //]]> </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/XMonad-Layout-ZoomRow.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>unstable</td></tr><tr><th>Maintainer</th><td>orphaned</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">XMonad.Layout.ZoomRow</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Usage </a></li><li><a href="#g:2">Creation </a></li><li><a href="#g:3">Messages </a></li><li><a href="#g:4">Use with non-<code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a></code> elements </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Row layout with individually resizable elements. </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"><span class="keyword">data</span> <a href="#t:ZoomRow">ZoomRow</a> f a</li><li class="src short"><a href="#v:zoomRow">zoomRow</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> a) => <a href="XMonad-Layout-ZoomRow.html#t:ZoomRow">ZoomRow</a> <a href="XMonad-Layout-ZoomRow.html#t:ClassEQ">ClassEQ</a> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:ZoomMessage">ZoomMessage</a> <ul class="subs"><li>= <a href="#v:Zoom">Zoom</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Rational">Rational</a> </li><li>| <a href="#v:ZoomTo">ZoomTo</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Rational">Rational</a> </li><li>| <a href="#v:ZoomFull">ZoomFull</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> </li><li>| <a href="#v:ZoomFullToggle">ZoomFullToggle</a> </li></ul></li><li class="src short"><a href="#v:zoomIn">zoomIn</a> :: <a href="XMonad-Layout-ZoomRow.html#t:ZoomMessage">ZoomMessage</a></li><li class="src short"><a href="#v:zoomOut">zoomOut</a> :: <a href="XMonad-Layout-ZoomRow.html#t:ZoomMessage">ZoomMessage</a></li><li class="src short"><a href="#v:zoomReset">zoomReset</a> :: <a href="XMonad-Layout-ZoomRow.html#t:ZoomMessage">ZoomMessage</a></li><li class="src short"><a href="#v:zoomRowWith">zoomRowWith</a> :: (<a href="XMonad-Layout-ZoomRow.html#t:EQF">EQF</a> f a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> (f a), <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> (f a), <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> a) => f a -> <a href="XMonad-Layout-ZoomRow.html#t:ZoomRow">ZoomRow</a> f a</li><li class="src short"><span class="keyword">class</span> <a href="#t:EQF">EQF</a> f a <span class="keyword">where</span><ul class="subs"><li><a href="#v:eq">eq</a> :: f a -> a -> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:ClassEQ">ClassEQ</a> a = <a href="#v:ClassEQ">ClassEQ</a></li></ul></div><div id="interface"><h1 id="g:1">Usage </h1><div class="doc"><p>This module provides a layout which places all windows in a single row; the size occupied by each individual window can be increased and decreased, and a window can be set to use the whole available space whenever it has focus. </p><p>You can use this module by including the following in your <code>~/.xmonad/xmonad.hs</code>: </p><pre> import XMonad.Layout.ZoomRow </pre><p>and using <code><a href="XMonad-Layout-ZoomRow.html#v:zoomRow">zoomRow</a></code> somewhere in your <code><a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#v:layoutHook">layoutHook</a></code>, for example: </p><pre> myLayout = zoomRow ||| Mirror zoomRow </pre><p>To be able to resize windows, you can create keybindings to send the relevant <code><a href="XMonad-Layout-ZoomRow.html#t:ZoomMessage">ZoomMessage</a></code>s: </p><pre> -- Increase the size occupied by the focused window , ((modMask .|. shifMask, xK_minus), sendMessage zoomIn) -- Decrease the size occupied by the focused window , ((modMayk , xK_minus), sendMessage zoomOut) -- Reset the size occupied by the focused window , ((modMask , xK_equal), sendMessage zoomReset) -- (Un)Maximize the focused window , ((modMask , xK_f ), sendMessage ToggleZoomFull) </pre><p>For more information on editing your layout hook and key bindings, see <a href="XMonad-Doc-Extending.html">XMonad.Doc.Extending</a>. </p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:ZoomRow" class="def">ZoomRow</a> f a <a href="src/XMonad-Layout-ZoomRow.html#ZoomRow" class="link">Source</a></p><div class="doc"><p>A layout that arranges its windows in a horizontal row, and allows to change the relative size of each element independently. </p></div><div class="subs instances"><p id="control.i:ZoomRow" class="caption collapser" onclick="toggleSection('i:ZoomRow')">Instances</p><div id="section.i:ZoomRow" class="show"><table><tr><td class="src">(<a href="XMonad-Layout-ZoomRow.html#t:EQF">EQF</a> f a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> (f a), <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> (f a)) => <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:LayoutClass">LayoutClass</a> (<a href="XMonad-Layout-ZoomRow.html#t:ZoomRow">ZoomRow</a> f) a</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> (f a)) => <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="XMonad-Layout-ZoomRow.html#t:ZoomRow">ZoomRow</a> f a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> (f a)) => <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> (<a href="XMonad-Layout-ZoomRow.html#t:ZoomRow">ZoomRow</a> f a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> (f a)) => <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> (<a href="XMonad-Layout-ZoomRow.html#t:ZoomRow">ZoomRow</a> f a)</td><td class="doc empty"> </td></tr></table></div></div></div><h1 id="g:2">Creation </h1><div class="top"><p class="src"><a name="v:zoomRow" class="def">zoomRow</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> a) => <a href="XMonad-Layout-ZoomRow.html#t:ZoomRow">ZoomRow</a> <a href="XMonad-Layout-ZoomRow.html#t:ClassEQ">ClassEQ</a> a<a href="src/XMonad-Layout-ZoomRow.html#zoomRow" class="link">Source</a></p><div class="doc"><p><code><a href="XMonad-Layout-ZoomRow.html#t:ZoomRow">ZoomRow</a></code> layout for laying out elements which are instances of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a></code>. Perfect for <code><a href="/usr/share/doc/ghc/html/libraries/X11-1.6.0/Graphics-X11-Types.html#t:Window">Window</a></code>s. </p></div></div><h1 id="g:3">Messages </h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:ZoomMessage" class="def">ZoomMessage</a> <a href="src/XMonad-Layout-ZoomRow.html#ZoomMessage" class="link">Source</a></p><div class="doc"><p>The type of messages accepted by a <code><a href="XMonad-Layout-ZoomRow.html#t:ZoomRow">ZoomRow</a></code> layout </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Zoom" class="def">Zoom</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Rational">Rational</a></td><td class="doc"><p>Multiply the focused window's size factor by the given number. </p></td></tr><tr><td class="src"><a name="v:ZoomTo" class="def">ZoomTo</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Rational">Rational</a></td><td class="doc"><p>Set the focused window's size factor to the given number. </p></td></tr><tr><td class="src"><a name="v:ZoomFull" class="def">ZoomFull</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc"><p>Set whether the focused window should occupy all available space when it has focus </p></td></tr><tr><td class="src"><a name="v:ZoomFullToggle" class="def">ZoomFullToggle</a></td><td class="doc"><p>Toggle whether the focused window should occupy all available space when it has focus </p></td></tr></table></div><div class="subs instances"><p id="control.i:ZoomMessage" class="caption collapser" onclick="toggleSection('i:ZoomMessage')">Instances</p><div id="section.i:ZoomMessage" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> <a href="XMonad-Layout-ZoomRow.html#t:ZoomMessage">ZoomMessage</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="XMonad-Layout-ZoomRow.html#t:ZoomMessage">ZoomMessage</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:Message">Message</a> <a href="XMonad-Layout-ZoomRow.html#t:ZoomMessage">ZoomMessage</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:zoomIn" class="def">zoomIn</a> :: <a href="XMonad-Layout-ZoomRow.html#t:ZoomMessage">ZoomMessage</a><a href="src/XMonad-Layout-ZoomRow.html#zoomIn" class="link">Source</a></p><div class="doc"><p>Increase the size of the focused window. Defined as <code>Zoom 1.5</code> </p></div></div><div class="top"><p class="src"><a name="v:zoomOut" class="def">zoomOut</a> :: <a href="XMonad-Layout-ZoomRow.html#t:ZoomMessage">ZoomMessage</a><a href="src/XMonad-Layout-ZoomRow.html#zoomOut" class="link">Source</a></p><div class="doc"><p>Decrease the size of the focused window. Defined as <code>Zoom (2/3)</code> </p></div></div><div class="top"><p class="src"><a name="v:zoomReset" class="def">zoomReset</a> :: <a href="XMonad-Layout-ZoomRow.html#t:ZoomMessage">ZoomMessage</a><a href="src/XMonad-Layout-ZoomRow.html#zoomReset" class="link">Source</a></p><div class="doc"><p>Reset the size of the focused window. Defined as <code>ZoomTo 1</code> </p></div></div><h1 id="g:4">Use with non-<code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a></code> elements </h1><div class="doc"><p>Haskell's <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a></code> class is usually concerned with structural equality, whereas what this layout really wants is for its elements to have a unique identity, even across changes. There are cases (such as, importantly, <code><a href="/usr/share/doc/ghc/html/libraries/X11-1.6.0/Graphics-X11-Types.html#t:Window">Window</a></code>s) where the <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a></code> instance for a type actually does that, but if you want to lay out something more exotic than windows and your <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a></code> means something else, you can use the following. </p></div><div class="top"><p class="src"><a name="v:zoomRowWith" class="def">zoomRowWith</a> :: (<a href="XMonad-Layout-ZoomRow.html#t:EQF">EQF</a> f a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> (f a), <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> (f a), <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> a) => f a -> <a href="XMonad-Layout-ZoomRow.html#t:ZoomRow">ZoomRow</a> f a<a href="src/XMonad-Layout-ZoomRow.html#zoomRowWith" class="link">Source</a></p><div class="doc"><p>ZoomRow layout with a custom equality predicate. It should of course satisfy the laws for <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a></code>, and you should also make sure that the layout never has to handle two "equal" elements at the same time (it won't do any huge damage, but might behave a bit strangely). </p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:EQF" class="def">EQF</a> f a <span class="keyword">where</span><a href="src/XMonad-Layout-ZoomRow.html#EQF" class="link">Source</a></p><div class="doc"><p>Class for equivalence relations. Must be transitive, reflexive. </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:eq" class="def">eq</a> :: f a -> a -> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/XMonad-Layout-ZoomRow.html#eq" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:EQF" class="caption collapser" onclick="toggleSection('i:EQF')">Instances</p><div id="section.i:EQF" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a => <a href="XMonad-Layout-ZoomRow.html#t:EQF">EQF</a> <a href="XMonad-Layout-ZoomRow.html#t:ClassEQ">ClassEQ</a> a</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a => <a href="XMonad-Layout-ZoomRow.html#t:EQF">EQF</a> <a href="XMonad-Layout-Groups-Examples.html#t:GroupEQ">GroupEQ</a> (<a href="XMonad-Layout-Groups.html#t:Group">Group</a> l a)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:ClassEQ" class="def">ClassEQ</a> a <a href="src/XMonad-Layout-ZoomRow.html#ClassEQ" class="link">Source</a></p><div class="doc"><p>To use the usual <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#v:-61--61-">==</a></code>: </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ClassEQ" class="def">ClassEQ</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ClassEQ" class="caption collapser" onclick="toggleSection('i:ClassEQ')">Instances</p><div id="section.i:ClassEQ" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a => <a href="XMonad-Layout-ZoomRow.html#t:EQF">EQF</a> <a href="XMonad-Layout-ZoomRow.html#t:ClassEQ">ClassEQ</a> a</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="XMonad-Layout-ZoomRow.html#t:ClassEQ">ClassEQ</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> (<a href="XMonad-Layout-ZoomRow.html#t:ClassEQ">ClassEQ</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> (<a href="XMonad-Layout-ZoomRow.html#t:ClassEQ">ClassEQ</a> a)</td><td class="doc empty"> </td></tr></table></div></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>