| Copyright | (c) Michael Sloan |
|---|---|
| License | BSD3-style (see LICENSE) |
| Maintainer | <mgsloan@gmail.com> |
| Stability | stable |
| Portability | unportable |
| Safe Haskell | None |
| Language | Haskell98 |
XMonad.Actions.FlexibleManipulate
Contents
Description
Move and resize floating windows without warping the mouse.
Usage
First, add this import to your ~/.xmonad/xmonad.hs:
import qualified XMonad.Actions.FlexibleManipulate as Flex
Now set up the desired mouse binding, for example:
, ((modm, button1), (\w -> focus w >> Flex.mouseWindow Flex.linear w))
- Flex.
linearindicates that positions between the edges and the middle indicate a combination scale/position. - Flex.
discreteindicates that there are discrete pick regions. (The window is divided by thirds for each axis.) - Flex.
resizeperforms only a resize of the window, based on which quadrant the mouse is in. - Flex.
positionis similar to the built-inmouseMoveWindow.
You can also write your own function for this parameter. It should take
a value between 0 and 1 indicating position, and return a value indicating
the corresponding position if plain Flex.linear was used.
For detailed instructions on editing your mouse bindings, see XMonad.Doc.Extending.
mouseWindow :: (Double -> Double) -> Window -> X () #
Given an interpolation function, implement an appropriate window manipulation action.
discrete :: Double -> Double #
Manipulate the window based on discrete pick regions; the window is divided into regions by thirds along each axis.
Scale/reposition the window by factors obtained from the mouse position by linear interpolation. Dragging precisely on a corner resizes that corner; dragging precisely in the middle moves the window without resizing; anything else is an interpolation between the two.