From 8e132fc36b99d8f9132c392d81b4a714163c8e62 Mon Sep 17 00:00:00 2001 From: "its.sec" Date: Wed, 6 Feb 2008 20:10:32 +0100 Subject: add swapScreen to CycleWS * add support for swapping the workspaces on screens to CycleWS darcs-hash:20080206191032-07ee0-9f041fb517000089fe62ac0ca621af36e1745253.gz --- XMonad/Actions/CycleWS.hs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/XMonad/Actions/CycleWS.hs b/XMonad/Actions/CycleWS.hs index 00dc53d..dc8db73 100644 --- a/XMonad/Actions/CycleWS.hs +++ b/XMonad/Actions/CycleWS.hs @@ -50,6 +50,8 @@ module XMonad.Actions.CycleWS ( , prevScreen , shiftNextScreen , shiftPrevScreen + , swapNextScreen + , swapPrevScreen -- * Moving between workspaces, take two! -- $taketwo @@ -254,6 +256,21 @@ screenBy d = do ws <- gets windowset let now = screen (current ws) return $ (now + fromIntegral d) `mod` fromIntegral (length (screens ws)) +-- | Swap current screen with next screen +swapNextScreen :: X () +swapNextScreen = swapScreen 1 + +-- | Swap current screen with previous screen +swapPrevScreen :: X () +swapPrevScreen = swapScreen (-1) + +swapScreen :: Int -> X () +swapScreen d = do s <- screenBy d + mws <- screenWorkspace s + case mws of + Nothing -> return () + Just ws -> windows (greedyView ws) + -- | Move focused window to workspace on next screen shiftNextScreen :: X () shiftNextScreen = shiftScreenBy 1 -- cgit v1.2.3