xmonad-contrib-0.9.1: Third party extensions for xmonadContentsIndex
XMonad.Actions.WindowNavigation
MaintainerDevin Mullins <me@twifkak.com>
Contents
Usage
Description

License : BSD3-style (see LICENSE) Stability : unstable Portability : unportable

This is a rewrite of XMonad.Layout.WindowNavigation. 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.

This module is experimental. You'll have better luck with the original.

This module differs from the other in a few ways:

  1. You can go up/down/left/right across multiple screens.
  2. It doesn't provide little border colors for your neighboring windows.
  3. It doesn't provide the 'Move' action, which seems to be related to the XMonad.Layout.Combo extension.
  4. It tries to be slightly smarter about tracking your current position.
  5. Configuration is different.
Synopsis
withWindowNavigation :: (KeySym, KeySym, KeySym, KeySym) -> XConfig l -> IO (XConfig l)
withWindowNavigationKeys :: [((KeyMask, KeySym), WNAction)] -> XConfig l -> IO (XConfig l)
data WNAction
= WNGo Direction2D
| WNSwap Direction2D
go :: IORef WNState -> Direction2D -> X ()
swap :: IORef WNState -> Direction2D -> X ()
data Direction2D
= U
| D
| R
| L
Usage

To use it, you're going to apply the withWindowNavigation function. withWindowNavigation performs some IO operations, so the syntax you'll use is the same as the spawnPipe example in XMonad.Hooks.DynamicLog. In particular:

 main = do
     config <- withWindowNavigation (xK_w, xK_a, xK_s, xK_d)
             $ defaultConfig { ... }
     xmonad config

Here, we pass in the keys for navigation in counter-clockwise order from up. It creates keybindings for modMask to move to window, and modMask .|. shiftMask to swap windows.

If you want more flexibility over your keybindings, you can use withWindowNavigationKeys, which takes a list of keys-esque entries rather than a tuple of the four directional keys. See the source code of withWindowNavigation for an example.

withWindowNavigation :: (KeySym, KeySym, KeySym, KeySym) -> XConfig l -> IO (XConfig l)
withWindowNavigationKeys :: [((KeyMask, KeySym), WNAction)] -> XConfig l -> IO (XConfig l)
data WNAction
Constructors
WNGo Direction2D
WNSwap Direction2D
go :: IORef WNState -> Direction2D -> X ()
swap :: IORef WNState -> Direction2D -> X ()
data Direction2D
Two-dimensional directions:
Constructors
UUp
DDown
RRight
LLeft
show/hide Instances
Produced by Haddock version 2.6.0