XMonad.Layout.MouseResizableTile

xmonad-contrib-0.12: 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 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 #

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 # |
Methods readsPrec :: Int -> ReadS DraggerType # readList :: ReadS [DraggerType] # readPrec :: ReadPrec DraggerType # readListPrec :: ReadPrec [DraggerType] #
Show DraggerType # |
Methods showsPrec :: Int -> DraggerType -> ShowS # show :: DraggerType -> String # showList :: [DraggerType] -> ShowS #

data MouseResizableTile a #

Instances

LayoutClass MouseResizableTile Window # |
Methods runLayout :: Workspace WorkspaceId (MouseResizableTile Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (MouseResizableTile Window)) # doLayout :: MouseResizableTile Window -> Rectangle -> Stack Window -> X ([(Window, Rectangle)], Maybe (MouseResizableTile Window)) # pureLayout :: MouseResizableTile Window -> Rectangle -> Stack Window -> [(Window, Rectangle)] # emptyLayout :: MouseResizableTile Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (MouseResizableTile Window)) # handleMessage :: MouseResizableTile Window -> SomeMessage -> X (Maybe (MouseResizableTile Window)) # pureMessage :: MouseResizableTile Window -> SomeMessage -> Maybe (MouseResizableTile Window) # description :: MouseResizableTile Window -> String #
Read (MouseResizableTile a) # |
Methods readsPrec :: Int -> ReadS (MouseResizableTile a) # readList :: ReadS [MouseResizableTile a] # readPrec :: ReadPrec (MouseResizableTile a) # readListPrec :: ReadPrec [MouseResizableTile a] #
Show (MouseResizableTile a) # |
Methods showsPrec :: Int -> MouseResizableTile a -> ShowS # show :: MouseResizableTile a -> String # showList :: [MouseResizableTile a] -> ShowS #