[xmonad] Issue 543 in xmonad: StackSet: non-positive argument to StackSet.new with mroe monitors than workspaces

codesite-noreply at google.com codesite-noreply at google.com
Sun Apr 28 10:07:33 CEST 2013


Comment #1 on issue 543 by byor... at 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



More information about the xmonad mailing list