xmonad-contrib-bluetilebranch-0.8.1: Third party extensions for xmonadSource codeContentsIndex
XMonad.Hooks.Place
Portabilityunportable
Stabilityunstable
MaintainerQuentin Moser <quentin.moser@unifr.ch>
Contents
Usage
Placement actions
Placement policies
Others
Description
Automatic placement of floating windows.
Synopsis
placeFocused :: Placement -> X ()
placeHook :: Placement -> ManageHook
data Placement
smart :: (Rational, Rational) -> Placement
simpleSmart :: Placement
fixed :: (Rational, Rational) -> Placement
underMouse :: (Rational, Rational) -> Placement
inBounds :: Placement -> Placement
withGaps :: (Dimension, Dimension, Dimension, Dimension) -> Placement -> Placement
purePlaceWindow :: Placement -> Rectangle -> [Rectangle] -> (Position, Position) -> Rectangle -> Rectangle
Usage

This module provides a ManageHook that automatically places floating windows at appropriate positions on the screen, as well as an X action to manually trigger repositioning.

You can use this module by including the following in your ~/.xmonad/xmonad.hs:

 import XMonad.Hooks.Place

and adding placeHook to your manageHook, for example:

 main = xmonad $ defaultConfig { manageHook = placeHook simpleSmart
                                              <+> manageHook defaultConfig }

Note that placeHook should be applied after most other hooks, especially hooks such as doFloat and doShift. Since hooks combined with <+> are applied from right to left, this means that placeHook should be the first hook in your chain.

You can also define a key to manually trigger repositioning with placeFocused by adding the following to your keys definition:

 , ((modMask, xK_w), placeFocused simpleSmart)

Both placeHook and placeFocused take a Placement parameter, which specifies the placement policy to use (smart, under the mouse, fixed position, etc.). See Placement for a list of available policies.

Placement actions
placeFocused :: Placement -> X ()Source
Repositions the focused window according to a placement policy. Works for both "real" floating windows and windows in a WindowArranger-based layout.
placeHook :: Placement -> ManageHookSource
Hook to automatically place windows when they are created.
Placement policies

Placement policies determine how windows will be placed by placeFocused and placeHook.

A few examples:

  • Basic smart placement
 myPlacement = simpleSmart
  • Under the mouse (pointer at the top-left corner), but constrained inside of the screen area
 myPlacement = inBounds (underMouse (0, 0))
  • Smart placement with a preference for putting windows near the center of the screen, and with 16px gaps at the top and bottom of the screen where no window will be placed
 myPlacement = withGaps (16,0,16,0) (smart (0.5,0.5))
data Placement Source
The type of placement policies
show/hide Instances
smartSource
:: (Rational, Rational)Where the window should be placed inside the available area. See fixed.
-> Placement
Try to place windows with as little overlap as possible
simpleSmart :: PlacementSource
fixedSource
:: (Rational, Rational)

Where windows should go.

  • (0,0) -> top left of the screen
  • (1,0) -> top right of the screen
  • etc
-> Placement
Place windows at a fixed position
underMouseSource
:: (Rational, Rational)Where the pointer should be relative to the window's frame; see fixed.
-> Placement
Place windows under the mouse
inBounds :: Placement -> PlacementSource
Apply the given placement policy, constraining the placed windows inside the screen boundaries.
withGapsSource
:: (Dimension, Dimension, Dimension, Dimension)top, right, bottom and left gaps
-> Placement
-> Placement
Same as inBounds, but allows specifying gaps along the screen's edges
Others
purePlaceWindowSource
:: PlacementThe placement strategy
-> RectangleThe screen
-> [Rectangle]The other visible windows
-> (Position, Position)The pointer's position.
-> RectangleThe window to be placed
-> Rectangle
Compute the new position of a window according to a placement policy.
Produced by Haddock version 2.4.2