Move and resize floating windows without warping the mouse.
First, add this import to your
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))
linearindicates that positions between the edges and the middle indicate a combination scale/position.
discreteindicates that there are discrete pick regions. (The window is divided by thirds for each axis.)
resizeperforms only a resize of the window, based on which quadrant the mouse is in.
positionis similar to the built-in
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.
Given an interpolation function, implement an appropriate window manipulation action.
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.
Only resize the window, based on the window quadrant the mouse is in.