xmonad-contrib-0.11: Third party extensions for xmonad

Portability | unportable
Stability | unstable
Maintainer | Devin Mullins <me@twifkak.com>
Safe Haskell | None

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 |
Typeable Direction1D |