
On Mon, Dec 12, 2011 at 04:31:02PM -0500, Allen S. Rout wrote:
----------------
data ScrUple = ScrUple { xineramascreen :: Integer , workspace :: String } deriving (Show)
data ScrConfig = ScrConfig [ ScrUple ] deriving (Show)
s1 = ScrUple 0 "mail" s2 = ScrUple 1 "web"
ScrConfig sc1 =ScrConfig( [s2 s1] ) ;
main = putStrLn $ show sc1[1]
Looks OK so far except for the problems of syntax already pointed out by others. Proceeding from this point, to build an association between labels and ScrConfigs, you would use Data.Map. Something like this: import qualified Data.Map as M type ScrConfigs = M.Map String ScrConfig myScrConfigs :: ScrConfigs myScrConfigs = M.fromList [ ("initial", [ ScrUple 0 "mail" , ScrUple 1 "web" , ScrUple 2 "jabber" ] ) , ("project", [ ScrUple 0 "editor" , ScrUple 1 "compile" , ScrUple 2 "jabber ] ) ] However, I should point out that this is essentially already implemented in XMonad.Actions.DynamicWorkspaceGroups. It may not currently do exactly what you want -- for example, there's currently no function provided to initialize the list of workspace configs. But it should not be too hard to add. I'd be happy to help walk you through the code or help you figure out how to add the features you want. -Brent