XMonad.Actions.SwapWorkspaces

xmonad-contrib-0.12: Third party extensions for xmonad

Copyright | (c) Devin Mullins <me@twifkak.com>
License | BSD3-style (see LICENSE)
Maintainer | Devin Mullins <me@twifkak.com>
Stability | unstable
Portability | unportable
Safe Haskell | None
Language | Haskell98

XMonad.Actions.SwapWorkspaces

Contents

- Usage

Description

Lets you swap workspace tags, so you can keep related ones next to each other, without having to move individual windows.

Synopsis

- swapWithCurrent :: Eq i => i -> StackSet i l a s sd -> StackSet i l a s sd
- swapTo :: Direction1D -> X ()
- swapWorkspaces :: Eq i => i -> i -> StackSet i l a s sd -> StackSet i l a s sd
- data Direction1D
  - = Next
  - | Prev

# Usage

Add this import to your `~/.xmonad/xmonad.hs`:

    import XMonad.Actions.SwapWorkspaces

Then throw something like this in your keys definition:

    ++
    [((modm .|. controlMask, k), windows $ swapWithCurrent i)
        | (i, k) <- zip workspaces [xK_1 ..]]

After installing this update, if you're on workspace 1, hitting mod-ctrl-5 will swap workspaces 1 and 5.

For detailed instructions on editing your key bindings, see XMonad.Doc.Extending.

swapWithCurrent :: Eq i => i -> StackSet i l a s sd -> StackSet i l a s sd

Swaps the currently focused workspace with the given workspace tag, via `swapWorkspaces`.

swapTo :: Direction1D -> X ()

Say `swapTo Next` or `swapTo Prev` to move your current workspace. This is an `X ()` so can be hooked up to your keybindings directly.

swapWorkspaces :: Eq i => i -> i -> StackSet i l a s sd -> StackSet i l a s sd

Takes two workspace tags and an existing XMonad.StackSet and returns a new one with the two corresponding workspaces' tags swapped.

data Direction1D

One-dimensional directions:

Constructors

Next |
Prev |

Instances

Eq Direction1D |
Read Direction1D |
Show Direction1D |