
Comment #1 on issue 543 by byor...@gmail.com: StackSet: non-positive argument to StackSet.new with mroe monitors than workspaces http://code.google.com/p/xmonad/issues/detail?id=543 Here's the relevant code from XMonad.StackSet: -- | /O(n)/. Create a new stackset, of empty stacks, with given tags, -- with physical screens whose descriptions are given by 'm'. The -- number of physical screens (@length 'm'@) should be less than or -- equal to the number of workspace tags. The first workspace in the -- list will be current. -- -- Xinerama: Virtual workspaces are assigned to physical screens, starting at 0. -- new :: (Integral s) => l -> [i] -> [sd] -> StackSet i l a s sd new l wids m | not (null wids) && length m <= length wids && not (null m) = StackSet cur visi unseen M.empty where (seen,unseen) = L.splitAt (length m) $ map (\i -> Workspace i l Nothing) wids (cur:visi) = [ Screen i s sd | (i, s, sd) <- zip3 seen [0..] m ] -- now zip up visibles with their screen id new _ _ _ = abort "non-positive argument to StackSet.new" As you can see the comment even explicitly states the precondition that there must be more workspaces than screens. Unfortunately a fix for this is not trivial because of the way we keep track of screens in the StackSet, where each screen is actually a wrapper around a visible workspace. So if we don't have enough workspaces we are literally unable to construct the required Screen objects. Perhaps changing the definition of Screen to include a Maybe Workspace would work, though I am not sure what other changes that would require. -- You received this message because this project is configured to send all issue notifications to this address. You may adjust your notification preferences at: https://code.google.com/hosting/settings