
Hi Felix, I've pushed your patch. But here's an idea: In my config I have a: data ExpandEdges a = ExpandEdges Int deriving (Read,Show) instance LayoutModifier ExpandEdges Window where modifyLayout (ExpandEdges n) ws (Rectangle x y w h) = let bigRect = Rectangle (x - fromIntegral n) (y - fromIntegral n) (w + 2*fromIntegral n) (h + 2*fromIntegral n) in runLayout ws bigRect -- | push edges off-screen, or towards the center of the screen for negative numbers. expandEdges :: Int -> l a -> ModifiedLayout ExpandEdges l a expandEdges n layout = ModifiedLayout (ExpandEdges n) layout So we could define: spacingWithEdge n = expandEdges (-n) . spacing n This implementation is worse because the description is probably too long. But it does suggest that we're missing the combination that leaves no gaps at the screen edge: spacingOnlyBetweenWindows n = expandEdges n . spacing n Then again there's not too much point in defining extra things in contrib that nobody actually uses. Regards, Adam