Copyright | (c) Marco Túlio Gontijo e Silva <marcot@riseup.net> Leonardo Serra <leoserra@minaslivre.org> |
---|---|
License | BSD3-style (see LICENSE) |
Maintainer | Marco Túlio Gontijo e Silva <marcot@riseup.net> |
Stability | unstable |
Portability | unportable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
This module has functions to navigate through workspaces in a bidimensional manner. It allows the organization of workspaces in lines, and provides functions to move and shift windows in all four directions (left, up, right and down) possible in a surface.
This functionality was inspired by GNOME (finite) and KDE (infinite) keybindings for workspace navigation, and by XMonad.Actions.CycleWS for the idea of applying this approach to XMonad.
Usage
You can use this module with the following in your ~/.xmonad/xmonad.hs
file:
import XMonad.Actions.Plane import Data.Map (union) main = xmonad def {keys = myKeys} myKeys conf = union (keys def conf) $ myNewKeys conf myNewKeys (XConfig {modMask = modm}) = planeKeys modm (Lines 3) Finite
For detailed instructions on editing your key bindings, see XMonad.Doc.Extending.
Data types
Direction to go in the plane.
Instances
Enum Direction Source # | |
Defined in XMonad.Actions.Plane succ :: Direction -> Direction # pred :: Direction -> Direction # fromEnum :: Direction -> Int # enumFrom :: Direction -> [Direction] # enumFromThen :: Direction -> Direction -> [Direction] # enumFromTo :: Direction -> Direction -> [Direction] # enumFromThenTo :: Direction -> Direction -> Direction -> [Direction] # |
Defines the behaviour when you're trying to move out of the limits.
The number of lines in which the workspaces will be arranged. It's possible to use a number of lines that is not a divisor of the number of workspaces, but the results are better when using a divisor. If it's not a divisor, the last line will have the remaining workspaces.