blob: ff6417c4f4aa4b6b4952bd91d08c40d2e674f2b8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
module Internal.ScreenRotate where
import XMonad.StackSet as W
screenRotateForward :: W.StackSet i l a sid sd -> W.StackSet i l a sid sd
screenRotateForward (W.StackSet current visible others floating) = do
let screens = current : visible
workspaces = tail $ cycle $ map W.workspace screens
(current':visible') = zipWith (\s w -> s {workspace = w} ) screens workspaces
in W.StackSet current' visible' others floating
screenRotateBackward :: W.StackSet i l a sid sd -> W.StackSet i l a sid sd
screenRotateBackward (W.StackSet current visible others floating) = do
let screens = current : visible
workspaces = rcycle $ map W.workspace screens
(current':visible') = zipWith (\s w -> s {workspace = w} ) screens workspaces
in W.StackSet current' visible' others floating
where rcycle l = last l : l
|