[xmonad] patch: New XMonad.Layout.MessageControl module.

Adam Vogt vogt.adam at gmail.com
Sun May 3 15:24:50 EDT 2009


* On Sunday, February 08 2009, Don Stewart wrote:

>Who's the LayoutCombinators czar?

Nobody, though droundy was.

Perhaps L.SubLayouts with the apropriate manageHook could replace 
LayoutCombinators, which may or may not be more sane about sending messages 
to the sublayouts.

>quentin.moser:
>> Hi,
>> 
>> These patches provide a message escape/filtering facility intended to
>> make it easier to control complex nested layouts via messages.
>> 
>> 
>> 
>> The first one provides "unEscape" and "ignore" modifiers you could use
>> to write something like this:
>> 
>> > import XMonad.Layout.MessageControl
>> >
>> > myLayout = Full ||| gimp ||| ...
>> >     where gimp = ignore NextLayout $ ignore JumpToLayout $ unEscape $
>> >                  mastered 0.01 0.2 (simpleTabbed ||| Grid)
>> >
>> > nextOuterLayout = sendMessage NextLayout
>> > nextInnerLayout = sendMessage $ escape NextLayout
>> 
>> (see the XMonad.Layout.MessageControl patch for details. For
>> clarification, "ignore" blocks all messages of the _same type_ as its
>> parameter.)
>> 
>> 
>> 
>> However, neither XMonad.Layout.(|||) nor
>> XMonad.Layout.LayoutCombinators.(|||) can be used with this, because
>> they both send messages (NextLayoutNoWrap) which have a private type and
>> therefore cannot be filtered.
>> 
>> Thus the patch to X.L.LayoutCombinators, which moves the
>> NoWrap messages from their own type into the JumpLayout type, so that
>> they can now be intercepted with "ignore JumpToLayout".
>> 
>> I also made these constructors public because I don't like exporting
>> data types with only part of their constructors, but that's not
>> actually necessary and can be reverted if wanted.
>> 
>> 
>> 
>> ...
>> 
>> Also, when adding these modifiers into my Big Monstrous LayoutHook of
>> Hell I had to add an {-# OPTIONS_GHC -fcontext-stack=40 #-} pragma to
>> my xmonad.hs to prevent a context reduction overflow =).
>
>
>> _______________________________________________
>> xmonad mailing list
>> xmonad at haskell.org
>> http://www.haskell.org/mailman/listinfo/xmonad
>
>_______________________________________________
>xmonad mailing list
>xmonad at haskell.org
>http://www.haskell.org/mailman/listinfo/xmonad


More information about the xmonad mailing list