xmonad-contrib-0.18.1: Community-maintained extensions for xmonad

Copyright | (c) 2022 L. S. Leary
License | BSD3-style (see LICENSE)
Maintainer | @LSLeary (on github)
Stability | unstable
Portability | unportable
Safe Haskell | None
Language | Haskell2010

XMonad.Actions.Repeatable

Description

This module factors out the shared logic of XMonad.Actions.CycleRecentWS, XMonad.Actions.CycleWorkspaceByScreen, XMonad.Actions.CycleWindows and XMonad.Actions.MostRecentlyUsed.

See the source of these modules for usage examples.

Synopsis

- repeatable :: [KeySym] -> KeySym -> (EventType -> KeySym -> X ()) -> X ()
- repeatableSt :: Monoid a => s -> [KeySym] -> KeySym -> (EventType -> KeySym -> StateT s X a) -> X (a, s)
- repeatableM :: (MonadIO m, Monoid a) => (m a -> X b) -> [KeySym] -> KeySym -> (EventType -> KeySym -> m a) -> X b

# Documentation

repeatable #

Arguments

:: [KeySym] | The list of `KeySym`s under the modifiers used to invoke the action.
-> KeySym | The keypress that invokes the action.
-> (EventType -> KeySym -> X ()) | The keypress handler.
-> X () |

An action that temporarily usurps and responds to key press/release events, concluding when one of the modifier keys is released.

repeatableSt #

Arguments

:: Monoid a |
=> s | Initial state.
-> [KeySym] | The list of `KeySym`s under the modifiers used to invoke the action.
-> KeySym | The keypress that invokes the action.
-> (EventType -> KeySym -> StateT s X a) | The keypress handler.
-> X (a, s) |

A more general variant of `repeatable` with a stateful handler, accumulating a monoidal return value throughout the events.

repeatableM #

Arguments

:: (MonadIO m, Monoid a) |
=> (m a -> X b) | How to run the monad in `X`.
-> [KeySym] | The list of `KeySym`s under the modifiers used to invoke the action.
-> KeySym | The keypress that invokes the action.
-> (EventType -> KeySym -> m a) | The keypress handler.
-> X b |

A more general variant of `repeatable` with an arbitrary monadic handler, accumulating a monoidal return value throughout the events.