xmonad-contrib-0.17.1: Community-maintained 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 | Safe-Inferred
Language | Haskell2010

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 def { 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 Source #

mouseResizableTileMirrored :: MouseResizableTile a Source #

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

data MRTMessage Source #

Constructors

ShrinkSlave |
ExpandSlave |

#### Instances

Instances details

Message MRTMessage Source # |
Instance details Defined in XMonad.Layout.MouseResizableTile

# 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 Source #

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

masterFrac :: MouseResizableTile a -> Rational Source #

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

slaveFrac :: MouseResizableTile a -> Rational Source #

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

fracIncrement :: MouseResizableTile a -> Rational Source #

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

isMirrored :: MouseResizableTile a -> Bool Source #

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

draggerType :: MouseResizableTile a -> DraggerType Source #

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

data DraggerType Source #

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

Instances details

Read DraggerType Source # |
Instance details Defined in XMonad.Layout.MouseResizableTile Methods readsPrec :: Int -> ReadS DraggerType Source # readList :: ReadS [DraggerType] Source # readPrec :: ReadPrec DraggerType Source # readListPrec :: ReadPrec [DraggerType] Source #
Show DraggerType Source # |
Instance details Defined in XMonad.Layout.MouseResizableTile Methods showsPrec :: Int -> DraggerType -> ShowS Source # show :: DraggerType -> String Source # showList :: [DraggerType] -> ShowS Source #

data MouseResizableTile a Source #

#### Instances

Instances details

LayoutClass MouseResizableTile Window Source # |

Instance details

Defined in XMonad.Layout.MouseResizableTile

Methods

runLayout :: Workspace WorkspaceId (MouseResizableTile Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (MouseResizableTile Window)) Source #

doLayout :: MouseResizableTile Window -> Rectangle -> Stack Window -> X ([(Window, Rectangle)], Maybe (MouseResizableTile Window)) Source #

pureLayout :: MouseResizableTile Window -> Rectangle -> Stack Window -> [(Window, Rectangle)] Source #

emptyLayout :: MouseResizableTile Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (MouseResizableTile Window)) Source #

handleMessage :: MouseResizableTile Window -> SomeMessage -> X (Maybe (MouseResizableTile Window)) Source #

pureMessage :: MouseResizableTile Window -> SomeMessage -> Maybe (MouseResizableTile Window) Source #

description :: MouseResizableTile Window -> String Source #

Read (MouseResizableTile a) Source # |
Instance details Defined in XMonad.Layout.MouseResizableTile Methods readsPrec :: Int -> ReadS (MouseResizableTile a) Source # readList :: ReadS [MouseResizableTile a] Source # readPrec :: ReadPrec (MouseResizableTile a) Source # readListPrec :: ReadPrec [MouseResizableTile a] Source #
Show (MouseResizableTile a) Source # |
Instance details Defined in XMonad.Layout.MouseResizableTile Methods showsPrec :: Int -> MouseResizableTile a -> ShowS Source # show :: MouseResizableTile a -> String Source # showList :: [MouseResizableTile a] -> ShowS Source #