mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-08-07 23:41:52 -07:00
SwapWorkspaces: swapTo Next|Prev
This commit is contained in:
@@ -17,10 +17,15 @@ module XMonad.Actions.SwapWorkspaces (
|
|||||||
-- * Usage
|
-- * Usage
|
||||||
-- $usage
|
-- $usage
|
||||||
swapWithCurrent,
|
swapWithCurrent,
|
||||||
swapWorkspaces
|
swapTo,
|
||||||
|
swapWorkspaces,
|
||||||
|
WSDirection(..)
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
import XMonad (windows, X())
|
||||||
import XMonad.StackSet
|
import XMonad.StackSet
|
||||||
|
import XMonad.Actions.CycleWS
|
||||||
|
import XMonad.Util.WorkspaceCompare
|
||||||
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
@@ -45,6 +50,11 @@ import XMonad.StackSet
|
|||||||
swapWithCurrent :: Eq i => i -> StackSet i l a s sd -> StackSet i l a s sd
|
swapWithCurrent :: Eq i => i -> StackSet i l a s sd -> StackSet i l a s sd
|
||||||
swapWithCurrent t s = swapWorkspaces t (tag $ workspace $ current s) s
|
swapWithCurrent t s = swapWorkspaces t (tag $ workspace $ current s) s
|
||||||
|
|
||||||
|
-- | Say @swapTo Next@ or @swapTo Prev@ to move your current workspace.
|
||||||
|
-- This is an @X ()@ so can be hooked up to your keybindings directly.
|
||||||
|
swapTo :: WSDirection -> X ()
|
||||||
|
swapTo dir = findWorkspace getSortByIndex dir AnyWS 1 >>= windows . swapWithCurrent
|
||||||
|
|
||||||
-- | Takes two workspace tags and an existing XMonad.StackSet and returns a new
|
-- | Takes two workspace tags and an existing XMonad.StackSet and returns a new
|
||||||
-- one with the two corresponding workspaces' tags swapped.
|
-- one with the two corresponding workspaces' tags swapped.
|
||||||
swapWorkspaces :: Eq i => i -> i -> StackSet i l a s sd -> StackSet i l a s sd
|
swapWorkspaces :: Eq i => i -> i -> StackSet i l a s sd -> StackSet i l a s sd
|
||||||
|
Reference in New Issue
Block a user