From 393f376f24bda4d5dd8745d45d1ff5ef7b31aab5 Mon Sep 17 00:00:00 2001 From: Don Stewart Date: Thu, 19 Apr 2007 03:27:05 +0200 Subject: Parameterise StackSet by two index types, rather than breaking abstraction darcs-hash:20070419012705-9c5c1-3aa97e02123af08c3f4500c9e9c3bb7ab4121652 --- XMonad.hs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'XMonad.hs') diff --git a/XMonad.hs b/XMonad.hs index 0de51ed..9053e69 100644 --- a/XMonad.hs +++ b/XMonad.hs @@ -15,12 +15,11 @@ -- module XMonad ( - X, WorkSpace, XState(..), Layout(..), LayoutDesc(..), - runX, io, withDisplay, isRoot, - spawn, trace, whenJust, rotateLayout + X, WorkSpace, WorkspaceId(..), ScreenId(..), XState(..), Layout(..), LayoutDesc(..), + runX, io, withDisplay, isRoot, spawn, trace, whenJust, rotateLayout ) where -import StackSet (StackSet,WorkspaceId) +import StackSet (StackSet) import Control.Monad.State import System.IO @@ -48,7 +47,13 @@ data XState = XState -- to descriptions of their layouts } -type WorkSpace = StackSet Window +type WorkSpace = StackSet WorkspaceId ScreenId Window + +-- | Virtual workspace indicies +newtype WorkspaceId = W Int deriving (Eq,Ord,Show,Enum,Num,Integral,Real) + +-- | Physical screen indicies +newtype ScreenId = S Int deriving (Eq,Ord,Show,Enum,Num,Integral,Real) ------------------------------------------------------------------------ -- cgit v1.2.3