xmonad-contrib-0.17.1: Community-maintained extensions for xmonad
Copyright(c) 2014 Anders Engstrom <ankaan@gmail.com>
LicenseBSD3-style (see LICENSE)
Maintainer(c) Anders Engstrom <ankaan@gmail.com>
Stabilityunstable
Portabilityunportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

XMonad.Layout.AvoidFloats

Contents

Description

Find a maximum empty rectangle around floating windows and use that area to display non-floating windows.

Synopsis

Usage

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

import XMonad.Layout.AvoidFloats

and modify the layouts to call avoidFloats on the layouts where you want the non-floating windows to not be behind floating windows.

layoutHook = ... ||| avoidFloats Full ||| ...

For more detailed instructions on editing the layoutHook see: XMonad.Doc.Extending

Then add appropriate key bindings, for example:

,((modm .|. shiftMask, xK_b), sendMessage AvoidFloatToggle)
,((modm .|. controlMask, xK_b), withFocused $ sendMessage . AvoidFloatToggleItem)
,((modm .|. shiftMask .|. controlMask, xK_b), sendMessage (AvoidFloatSet False) >> sendMessage AvoidFloatClearItems)

For detailed instructions on editing your key bindings, see XMonad.Doc.Extending.

Note that this module is incompatible with an old way of configuring XMonad.Actions.FloatSnap. If you are having problems, please update your configuration.

avoidFloats Source #

Arguments

:: l a

Layout to modify.

-> ModifiedLayout AvoidFloats l a 

Avoid floating windows unless the resulting area for windows would be too small. In that case, use the whole screen as if this layout modifier wasn't there. No windows are avoided by default, they need to be added using signals.

avoidFloats' Source #

Arguments

:: Int

Minimum width of the area used for non-floating windows.

-> Int

Minimum height of the area used for non-floating windows.

-> Bool

If floating windows should be avoided by default.

-> l a

Layout to modify.

-> ModifiedLayout AvoidFloats l a 

Avoid floating windows unless the resulting area for windows would be too small. In that case, use the whole screen as if this layout modifier wasn't there.

data AvoidFloatMsg Source #

Change the state of the whole avoid float layout modifier.

Constructors

AvoidFloatToggle

Toggle between avoiding all or only selected.

AvoidFloatSet Bool

Set if all all floating windows should be avoided.

AvoidFloatClearItems

Clear the set of windows to specifically avoid.

Instances

Instances details
Message AvoidFloatMsg Source # 
Instance details

Defined in XMonad.Layout.AvoidFloats

data AvoidFloatItemMsg a Source #

Change the state of the avoid float layout modifier conserning a specific window.

Constructors

AvoidFloatAddItem a

Add a window to always avoid.

AvoidFloatRemoveItem a

Stop always avoiding selected window.

AvoidFloatToggleItem a

Toggle between always avoiding selected window.

Instances

Instances details
Typeable a => Message (AvoidFloatItemMsg a) Source # 
Instance details

Defined in XMonad.Layout.AvoidFloats