From 2682ece4c33d497d0e268cb0092d214c9fb2717d Mon Sep 17 00:00:00 2001 From: hughes Date: Mon, 26 Mar 2007 17:02:13 +0200 Subject: Workspace-specific layouts darcs-hash:20070326150213-3a569-64dd38c00558d58f27c3803ab15485892c24cfaa.gz --- XMonad.hs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'XMonad.hs') diff --git a/XMonad.hs b/XMonad.hs index ee23739..32c0c23 100644 --- a/XMonad.hs +++ b/XMonad.hs @@ -15,7 +15,7 @@ -- module XMonad ( - X, WorkSpace, XState(..), Layout(..), + X, WorkSpace, XState(..), Layout(..), LayoutDesc(..), runX, io, withDisplay, isRoot, spawn, trace, whenJust ) where @@ -43,9 +43,13 @@ data XState = XState , wmprotocols :: {-# UNPACK #-} !Atom , dimensions :: {-# UNPACK #-} !(Int,Int) , workspace :: {-# UNPACK #-} !WorkSpace -- ^ workspace list - , layout :: {-# UNPACK #-} !Layout + , defaultLayoutDesc :: {-# UNPACK #-} !LayoutDesc + , layoutDescs :: {-# UNPACK #-} !(M.Map Int LayoutDesc) + -- ^ mapping of workspaces to descriptions of their layouts + + -- , layout :: {-# UNPACK #-} !Layout -- how much of the screen the main window should take - , leftWidth :: {-# UNPACK #-} !Rational + -- , leftWidth :: {-# UNPACK #-} !Rational } type WorkSpace = StackSet Window @@ -53,6 +57,14 @@ type WorkSpace = StackSet Window -- | The different layout modes data Layout = Full | Tile +-- | A full description of a particular workspace's layout parameters. +data LayoutDesc = LayoutDesc { layoutType :: !Layout + , tileFraction :: !Rational + } + + + + -- | The X monad, a StateT transformer over IO encapuslating the window -- manager state newtype X a = X (StateT XState IO a) -- cgit v1.2.3