<!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.Actions.WindowNavigation</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-Actions-WindowNavigation.html");}; //]]> </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/XMonad-Actions-WindowNavigation.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.9.2: Third party extensions for xmonad</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Maintainer</th><td>Devin Mullins <me@twifkak.com></td></tr></table><p class="caption">XMonad.Actions.WindowNavigation</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Usage </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>License : BSD3-style (see LICENSE) Stability : unstable Portability : unportable </p><p>This is a rewrite of <a href="XMonad-Layout-WindowNavigation.html">XMonad.Layout.WindowNavigation</a>. WindowNavigation lets you assign keys to move up/down/left/right, based on actual cartesian window coordinates, rather than just going j/k on the stack. </p><p>This module is experimental. You'll have better luck with the original. </p><p>This module differs from the other in a few ways: </p><ol><li> You can go up/down/left/right across multiple screens. </li><li> It doesn't provide little border colors for your neighboring windows. </li><li> It doesn't provide the 'Move' action, which seems to be related to the XMonad.Layout.Combo extension. </li><li> It tries to be slightly smarter about tracking your current position. </li><li> Configuration is different. </li></ol></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:withWindowNavigation">withWindowNavigation</a> :: (<a href="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t:KeySym">KeySym</a>, <a href="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t:KeySym">KeySym</a>, <a href="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t:KeySym">KeySym</a>, <a href="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t:KeySym">KeySym</a>) -> XConfig l -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> (XConfig l)</li><li class="src short"><a href="#v:withWindowNavigationKeys">withWindowNavigationKeys</a> :: [((<a href="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t:KeyMask">KeyMask</a>, <a href="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t:KeySym">KeySym</a>), <a href="XMonad-Actions-WindowNavigation.html#t:WNAction">WNAction</a>)] -> XConfig l -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> (XConfig l)</li><li class="src short"><span class="keyword">data</span> <a href="#t:WNAction">WNAction</a> <ul class="subs"><li>= <a href="#v:WNGo">WNGo</a> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a> </li><li>| <a href="#v:WNSwap">WNSwap</a> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a> </li></ul></li><li class="src short"><a href="#v:go">go</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-IORef.html#t:IORef">IORef</a> WNState -> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a> -> X <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:swap">swap</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-IORef.html#t:IORef">IORef</a> WNState -> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a> -> X <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Direction2D">Direction2D</a> <ul class="subs"><li>= <a href="#v:U">U</a> </li><li>| <a href="#v:D">D</a> </li><li>| <a href="#v:R">R</a> </li><li>| <a href="#v:L">L</a> </li></ul></li></ul></div><div id="interface"><h1 id="g:1">Usage </h1><div class="doc"><p>To use it, you're going to apply the <code><a href="XMonad-Actions-WindowNavigation.html#v:withWindowNavigation">withWindowNavigation</a></code> function. <code><a href="XMonad-Actions-WindowNavigation.html#v:withWindowNavigation">withWindowNavigation</a></code> performs some IO operations, so the syntax you'll use is the same as the spawnPipe example in <a href="XMonad-Hooks-DynamicLog.html">XMonad.Hooks.DynamicLog</a>. In particular: </p><pre> main = do config <- withWindowNavigation (xK_w, xK_a, xK_s, xK_d) $ defaultConfig { ... } xmonad config </pre><p>Here, we pass in the keys for navigation in counter-clockwise order from up. It creates keybindings for <code>modMask</code> to move to window, and <code>modMask .|. shiftMask</code> to swap windows. </p><p>If you want more flexibility over your keybindings, you can use <code><a href="XMonad-Actions-WindowNavigation.html#v:withWindowNavigationKeys">withWindowNavigationKeys</a></code>, which takes a list of <code>keys</code>-esque entries rather than a tuple of the four directional keys. See the source code of <code><a href="XMonad-Actions-WindowNavigation.html#v:withWindowNavigation">withWindowNavigation</a></code> for an example. </p></div><div class="top"><p class="src"><a name="v:withWindowNavigation" class="def">withWindowNavigation</a> :: (<a href="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t:KeySym">KeySym</a>, <a href="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t:KeySym">KeySym</a>, <a href="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t:KeySym">KeySym</a>, <a href="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t:KeySym">KeySym</a>) -> XConfig l -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> (XConfig l)<a href="src/XMonad-Actions-WindowNavigation.html#withWindowNavigation" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:withWindowNavigationKeys" class="def">withWindowNavigationKeys</a> :: [((<a href="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t:KeyMask">KeyMask</a>, <a href="/usr/share/doc/ghc/html/libraries/X11-1.5.0.0/Graphics-X11-Types.html#t:KeySym">KeySym</a>), <a href="XMonad-Actions-WindowNavigation.html#t:WNAction">WNAction</a>)] -> XConfig l -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> (XConfig l)<a href="src/XMonad-Actions-WindowNavigation.html#withWindowNavigationKeys" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:WNAction" class="def">WNAction</a> <a href="src/XMonad-Actions-WindowNavigation.html#WNAction" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:WNGo" class="def">WNGo</a> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:WNSwap" class="def">WNSwap</a> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a name="v:go" class="def">go</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-IORef.html#t:IORef">IORef</a> WNState -> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a> -> X <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/XMonad-Actions-WindowNavigation.html#go" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:swap" class="def">swap</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-IORef.html#t:IORef">IORef</a> WNState -> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a> -> X <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/XMonad-Actions-WindowNavigation.html#swap" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Direction2D" class="def">Direction2D</a> <a href="src/XMonad-Util-Types.html#Direction2D" class="link">Source</a></p><div class="doc"><p>Two-dimensional directions: </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:U" class="def">U</a></td><td class="doc"><p>Up </p></td></tr><tr><td class="src"><a name="v:D" class="def">D</a></td><td class="doc"><p>Down </p></td></tr><tr><td class="src"><a name="v:R" class="def">R</a></td><td class="doc"><p>Right </p></td></tr><tr><td class="src"><a name="v:L" class="def">L</a></td><td class="doc"><p>Left </p></td></tr></table></div><div class="subs instances"><p id="control.i:Direction2D" class="caption collapser" onclick="toggleSection('i:Direction2D')">Instances</p><div id="section.i:Direction2D" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Bounded">Bounded</a> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Enum">Enum</a> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="XMonad-Actions-WindowNavigation.html#t:Direction2D">Direction2D</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.9.2</p></div></body></html>