XMonad.Actions.CycleRecentWS

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

Copyright | (c) Michal Janeczek <janeczek@gmail.com>
License | BSD3-style (see LICENSE)
Maintainer | Michal Janeczek <janeczek@gmail.com>
Stability | unstable
Portability | unportable
Safe Haskell | None
Language | Haskell2010

XMonad.Actions.CycleRecentWS

Contents

- Usage

Description

Provides bindings to cycle through most recently used workspaces with repeated presses of a single key (as long as modifier key is held down). This is similar to how many window managers handle window switching.

Synopsis

- cycleRecentWS :: [KeySym] -> KeySym -> KeySym -> X ()
- cycleRecentNonEmptyWS :: [KeySym] -> KeySym -> KeySym -> X ()
- cycleWindowSets :: (WindowSet -> [WorkspaceId]) -> [KeySym] -> KeySym -> KeySym -> X ()
- toggleRecentWS :: X ()
- toggleRecentNonEmptyWS :: X ()
- toggleWindowSets :: (WindowSet -> [WorkspaceId]) -> X ()
- recentWS :: (WindowSpace -> Bool) -> WindowSet -> [WorkspaceId]

# Usage

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

    import XMonad.Actions.CycleRecentWS

      , ((modm, xK_Tab), cycleRecentWS [xK_Alt_L] xK_Tab xK_grave)

For detailed instructions on editing your key bindings, see the tutorial.

cycleRecentWS #

Arguments

:: [KeySym] | A list of modifier keys used when invoking this action. As soon as one of them is released, the final switch is made.
-> KeySym | Key used to switch to next (less recent) workspace.
-> KeySym | Key used to switch to previous (more recent) workspace. If it's the same as the nextWorkspace key, it is effectively ignored.
-> X () |

Cycle through most recent workspaces with repeated presses of a key, while a modifier key is held down. The recency of workspaces previewed while browsing to the target workspace is not affected. That way a stack of most recently used workspaces is maintained, similarly to how many window managers handle window switching. For best effects use the same modkey+key combination as the one used to invoke this action.

cycleRecentNonEmptyWS #

Arguments

:: [KeySym] | A list of modifier keys used when invoking this action. As soon as one of them is released, the final switch is made.
-> KeySym | Key used to switch to next (less recent) workspace.
-> KeySym | Key used to switch to previous (more recent) workspace. If it's the same as the nextWorkspace key, it is effectively ignored.
-> X () |

Like `cycleRecentWS`, but restricted to non-empty workspaces.

cycleWindowSets #

Arguments

:: (WindowSet -> [WorkspaceId]) | A function used to create a list of workspaces to choose from
-> [KeySym] | A list of modifier keys used when invoking this action. As soon as one of them is released, the final workspace is chosen and the action exits.
-> KeySym | Key used to preview next workspace from the list of generated options
-> KeySym | Key used to preview previous workspace from the list of generated options. If it's the same as nextOption key, it is effectively ignored.
-> X () |

Cycle through a finite list of workspaces with repeated presses of a key, while a modifier key is held down. For best effects use the same modkey+key combination as the one used to invoke this action.

toggleRecentWS :: X () #

Switch to the most recent workspace. The stack of most recently used workspaces is updated, so repeated use toggles between a pair of workspaces.

toggleRecentNonEmptyWS :: X () #

Like `toggleRecentWS`, but restricted to non-empty workspaces.

toggleWindowSets :: (WindowSet -> [WorkspaceId]) -> X () #

Given some function that generates a list of workspaces from a given `WindowSet`, switch to the first generated workspace.

recentWS #

Arguments

:: (WindowSpace -> Bool) | A workspace predicate.
-> WindowSet | The current WindowSet
-> [WorkspaceId] |

Given a predicate `p` and the current `WindowSet` `w`, create a list of workspaces to choose from. They are ordered by recency and have to satisfy `p`.