aboutsummaryrefslogtreecommitdiffstats
path: root/RotSlaves.hs
diff options
context:
space:
mode:
authorSpencer Janssen <sjanssen@cse.unl.edu>2007-11-01 21:10:59 +0100
committerSpencer Janssen <sjanssen@cse.unl.edu>2007-11-01 21:10:59 +0100
commit4866f2e367dfcf22a9591231ba40948826a1b438 (patch)
tree7a245caee3f146826b267d773b7eaa80386a818e /RotSlaves.hs
parent47589e1913fb9530481caedb543978a30d4323ea (diff)
downloadXMonadContrib-4866f2e367dfcf22a9591231ba40948826a1b438.tar.gz
XMonadContrib-4866f2e367dfcf22a9591231ba40948826a1b438.tar.xz
XMonadContrib-4866f2e367dfcf22a9591231ba40948826a1b438.zip
Hierarchify
darcs-hash:20071101201059-a5988-fc1f1262bec1b69e13ba18ae7cefeafc8c4471d4.gz
Diffstat (limited to 'RotSlaves.hs')
-rw-r--r--RotSlaves.hs60
1 files changed, 0 insertions, 60 deletions
diff --git a/RotSlaves.hs b/RotSlaves.hs
deleted file mode 100644
index b5406b0..0000000
--- a/RotSlaves.hs
+++ /dev/null
@@ -1,60 +0,0 @@
------------------------------------------------------------------------------
--- |
--- Module : XMonadContrib.RotSlaves
--- Copyright : (c) Hans Philipp Annen <haphi@gmx.net>, Mischa Dieterle <der_m@freenet.de>
--- License : BSD3-style (see LICENSE)
---
--- Maintainer : Hans Philipp Annen <haphi@gmx.net>
--- Stability : unstable
--- Portability : unportable
---
--- Rotate all windows except the master window
--- and keep the focus in place.
------------------------------------------------------------------------------
-module XMonadContrib.RotSlaves (
- -- $usag
- rotSlaves', rotSlavesUp, rotSlavesDown,
- rotAll', rotAllUp, rotAllDown
- ) where
-
-import XMonad.StackSet
-import XMonad.Operations
-import XMonad
-
--- $usage
---
--- To use this module, import it with:
---
--- > import XMonadContrib.RotSlaves
---
--- and add a keybinding:
---
--- > , ((modMask .|. shiftMask, xK_Tab ), rotSlavesUp)
---
---
--- This operation will rotate all windows except the master window, while the focus
--- stays where it is. It is useful together with the TwoPane-Layout (see XMonadContrib.TwoPane).
-
--- %import XMonadContrib.RotSlaves
--- %keybind , ((modMask .|. shiftMask, xK_Tab ), rotSlavesUp)
-
--- | Rotate the windows in the current stack excluding the first one
-rotSlavesUp,rotSlavesDown :: X ()
-rotSlavesUp = windows $ modify' (rotSlaves' (\l -> (tail l)++[head l]))
-rotSlavesDown = windows $ modify' (rotSlaves' (\l -> [last l]++(init l)))
-
-rotSlaves' :: ([a] -> [a]) -> Stack a -> Stack a
-rotSlaves' _ s@(Stack _ [] []) = s
-rotSlaves' f (Stack t [] rs) = Stack t [] (f rs) -- Master has focus
-rotSlaves' f s@(Stack _ ls _ ) = Stack t' (reverse revls') rs' -- otherwise
- where (master:ws) = integrate s
- (revls',t':rs') = splitAt (length ls) (master:(f ws))
-
--- | Rotate the windows in the current stack
-rotAllUp,rotAllDown :: X ()
-rotAllUp = windows $ modify' (rotAll' (\l -> (tail l)++[head l]))
-rotAllDown = windows $ modify' (rotAll' (\l -> [last l]++(init l)))
-
-rotAll' :: ([a] -> [a]) -> Stack a -> Stack a
-rotAll' f s = Stack r (reverse revls) rs
- where (revls,r:rs) = splitAt (length (up s)) (f (integrate s))