[xmonad] MultiToggle + Decorations breaks upgrading to 0.10
Brent Yorgey
byorgey at seas.upenn.edu
Mon Sep 24 12:54:55 CEST 2012
On Sat, Sep 22, 2012 at 10:18:15AM -0500, Joseph Garvin wrote:
>
> I see that it's complaining that k is applied to too few arguments, so
> I looked in the docs for MultiToggle and in their example it looks
> like k takes what looks like a lambda (I'm actually confused by the
> syntax, I've never seen parens around a lambda parameter) as a second
> argument now for some reason:
The argument of a lambda may be an arbitrary pattern, just like in a
function definition. Patterns other than single variables usually
need to be surrounded by parentheses, since otherwise they will parse
as multiple arguments. For example,
foo (Just x) = x
\(Just x) -> x
> data MIRROR = MIRROR deriving (Read, Show, Eq, Typeable)
> instance Transformer MIRROR Window where
> transform _ x k = k (Mirror x) (\(Mirror x') -> x')
It looks like the second argument to k is a function which removes the
transformation from the layout. For decoration, it looks like you
want
(\(ModifiedLayout _ x') -> x')
In fact, that will work for the vast majority of transformations,
which are mostly implemented using a layout modifier. Mirror is
special because it's built into the xmonad core.
-Brent
More information about the xmonad
mailing list