XMonad.Layout.MouseResizableTile

xmonad-contrib-0.11.4: Third party extensions for xmonad

Copyright | (c) Jan Vornberger 2009
License | BSD3-style (see LICENSE)
Maintainer | jan.vornberger@informatik.uni-oldenburg.de
Stability | unstable
Portability | not portable
Safe Haskell | None
Language | Haskell98

XMonad.Layout.MouseResizableTile

Contents

- Usage
- Parameters

Description

A layout in the spirit of XMonad.Layout.ResizableTile, but with the option to use the mouse to adjust the layout.

Synopsis

- mouseResizableTile :: MouseResizableTile a
- mouseResizableTileMirrored :: MouseResizableTile a
- data MRTMessage
  - = ShrinkSlave
  - | ExpandSlave
- nmaster :: MouseResizableTile a -> Int
- masterFrac :: MouseResizableTile a -> Rational
- slaveFrac :: MouseResizableTile a -> Rational
- fracIncrement :: MouseResizableTile a -> Rational
- isMirrored :: MouseResizableTile a -> Bool
- draggerType :: MouseResizableTile a -> DraggerType
- data DraggerType
  - = FixedDragger {
    - gapWidth :: Dimension
    - draggerWidth :: Dimension
    }
  - | BordersDragger
- data MouseResizableTile a

# Usage

You can use this module with the following in your `~/.xmonad/xmonad.hs`:

    import XMonad.Layout.MouseResizableTile

Then edit your `layoutHook` by adding the MouseResizableTile layout. Either in its normal form or the mirrored version. (The mirror layout modifier will not work correctly here because of the use of the mouse.)

    myLayout = mouseResizableTile ||| etc..
    main = xmonad defaultConfig { layoutHook = myLayout }

For more detailed instructions on editing the layoutHook see:

XMonad.Doc.Extending

You may also want to add the following key bindings:

    , ((modm,               xK_u), sendMessage ShrinkSlave) -- %! Shrink a slave area
    , ((modm,               xK_i), sendMessage ExpandSlave) -- %! Expand a slave area

For detailed instruction on editing the key binding see:

XMonad.Doc.Extending.

mouseResizableTile :: MouseResizableTile a

mouseResizableTileMirrored :: MouseResizableTile a

May be removed in favor of `mouseResizableTile { isMirrored = True }`

data MRTMessage

Constructors

ShrinkSlave |
ExpandSlave |

Instances

Message MRTMessage |

# Parameters

The following functions are also labels for updating the `data` (whose representation is otherwise hidden) produced by `mouseResizableTile`.

Usage:

    myLayout = mouseResizableTile{ masterFrac = 0.7,
                                   fracIncrement = 0.05,
                                   draggerType = BordersDragger }
                   |||  etc..

nmaster :: MouseResizableTile a -> Int

Get/set the number of windows in master pane (default: 1).

masterFrac :: MouseResizableTile a -> Rational

Get/set the proportion of screen occupied by master pane (default: 1/2).

slaveFrac :: MouseResizableTile a -> Rational

Get/set the proportion of remaining space in a column occupied by a slave window (default: 1/2).

fracIncrement :: MouseResizableTile a -> Rational

Get/set the increment used when modifying masterFrac/slaveFrac by the Shrink, Expand, etc. messages (default: 3/100).

isMirrored :: MouseResizableTile a -> Bool

Get/set whether the layout is mirrored (default: False).

draggerType :: MouseResizableTile a -> DraggerType

Get/set dragger and gap dimensions (default: FixedDragger 6 6).

data DraggerType

Specifies the size of the clickable area between windows.

Constructors

FixedDragger |
Fields gapWidth :: Dimension width of a gap between windows draggerWidth :: Dimension width of the dragger itself (will overlap windows if greater than gap)
BordersDragger | no gaps, draggers overlap window borders

Instances

Read DraggerType |
Show DraggerType |

data MouseResizableTile a

Instances

LayoutClass MouseResizableTile Window |
Read (MouseResizableTile a) |
Show (MouseResizableTile a) |