aboutsummaryrefslogtreecommitdiff
path: root/src/Rahm/Desktop/Desktop.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Rahm/Desktop/Desktop.hs')
-rw-r--r--src/Rahm/Desktop/Desktop.hs33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/Rahm/Desktop/Desktop.hs b/src/Rahm/Desktop/Desktop.hs
index 053b330..5466fd1 100644
--- a/src/Rahm/Desktop/Desktop.hs
+++ b/src/Rahm/Desktop/Desktop.hs
@@ -4,22 +4,24 @@ module Rahm.Desktop.Desktop where
-- state of the current screen -> workspace and thus restore it.
-- import XMonad.Operations
-import Data.Maybe (fromMaybe)
+
import Control.Monad (forM_)
-import XMonad (X(..))
-import qualified XMonad.StackSet as W
-import qualified XMonad as X
+import Data.Default
import Data.Map (Map)
import qualified Data.Map as Map
-import Data.Default
+import Data.Maybe (fromMaybe)
+import XMonad (X (..))
+import qualified XMonad as X
+import qualified XMonad.StackSet as W
import qualified XMonad.Util.ExtensibleState as XS
newtype Desktop si wi = Desktop (Map si wi)
deriving (Read, Show)
-newtype Desktops = Desktops {
- theaters :: Map String (Desktop X.ScreenId X.WorkspaceId)
-} deriving (Read, Show)
+newtype Desktops = Desktops
+ { theaters :: Map String (Desktop X.ScreenId X.WorkspaceId)
+ }
+ deriving (Read, Show)
instance Default Desktops where
def = Desktops mempty
@@ -32,9 +34,11 @@ saveCurrentDesktop :: String -> X ()
saveCurrentDesktop name =
X.withWindowSet $ \windowSet ->
XS.modify $ \(Desktops m) ->
- Desktops $ flip (Map.insert name) m $
- Desktop $ Map.fromList $
- map (\(W.Screen ws sid _) -> (sid, W.tag ws)) $ W.screens windowSet
+ Desktops $
+ flip (Map.insert name) m $
+ Desktop $
+ Map.fromList $
+ map (\(W.Screen ws sid _) -> (sid, W.tag ws)) $ W.screens windowSet
restoreDesktop :: String -> X ()
restoreDesktop name = do
@@ -47,7 +51,7 @@ restoreDesktop name = do
fromMaybe scr $ do
wid <- Map.lookup (W.screen scr) screenToWorkspace
workspace <- Map.lookup wid workspacesById
- return $ scr { W.workspace = workspace }
+ return $ scr {W.workspace = workspace}
newScreens = map newScreenWorkspace (cur : vis)
newVisibleWorkspaces = map (W.tag . W.workspace) newScreens
@@ -55,6 +59,5 @@ restoreDesktop name = do
filter (\ws -> not (W.tag ws `elem` newVisibleWorkspaces)) $
W.workspaces ws
- (newCur:newVisible) = newScreens
- in
- W.StackSet newCur newVisible newHiddenWorkspaces float
+ (newCur : newVisible) = newScreens
+ in W.StackSet newCur newVisible newHiddenWorkspaces float