summaryrefslogtreecommitdiffstats
path: root/XMonad.hs
diff options
context:
space:
mode:
Diffstat (limited to 'XMonad.hs')
-rw-r--r--XMonad.hs18
1 files changed, 15 insertions, 3 deletions
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)