Copyright | (c) Lukas Mai |
---|---|
License | BSD3-style (see LICENSE) |
Maintainer | <l.mai@web.de> |
Stability | unstable |
Portability | unportable |
Safe Haskell | None |
Language | Haskell2010 |
Support for simple mouse gestures.
Synopsis
- data Direction2D
- mouseGestureH :: (Direction2D -> X ()) -> X () -> X ()
- mouseGesture :: Map [Direction2D] (Window -> X ()) -> Window -> X ()
- mkCollect :: (MonadIO m, MonadIO m') => m (Direction2D -> m' [Direction2D], m' [Direction2D])
Usage
You can use this module with the following in your xmonad.hs
:
import XMonad.Actions.MouseGestures import qualified XMonad.StackSet as W
then add an appropriate mouse binding:
, ((modm .|. shiftMask, button3), mouseGesture gestures)
where gestures
is a Map
from gestures to actions on
windows, for example:
gestures = M.fromList [ ([], focus) , ([U], \w -> focus w >> windows W.swapUp) , ([D], \w -> focus w >> windows W.swapDown) , ([R, D], \_ -> sendMessage NextLayout) ]
This is just an example, of course; you can use any mouse button and gesture definitions you want.
For detailed instructions on editing your mouse bindings, see XMonad.Doc.Extending.
data Direction2D Source #
Two-dimensional directions:
Instances
mouseGestureH :: (Direction2D -> X ()) -> X () -> X () Source #
is a mouse button
event handler. It collects mouse movements, calling mouseGestureH
moveHook endHookmoveHook
for each
update; when the button is released, it calls endHook
.
mouseGesture :: Map [Direction2D] (Window -> X ()) -> Window -> X () Source #
A utility function on top of mouseGestureH
. It uses a Map
to
look up the mouse gesture, then executes the corresponding action (if any).
mkCollect :: (MonadIO m, MonadIO m') => m (Direction2D -> m' [Direction2D], m' [Direction2D]) Source #
A callback generator for mouseGestureH
. mkCollect
returns two
callback functions for passing to mouseGestureH
. The move hook will
collect mouse movements (and return the current gesture as a list); the end
hook will return a list of the completed gesture, which you can access with
>>=
.