xmonad-contrib-0.9.1: Third party extensions for xmonadSource codeContentsIndex
XMonad.Layout.MessageControl
Portabilityunportable
Stabilityunstable
Maintainer<quentin.moser@unifr.ch>
Contents
Usage
Description
Provides message "escaping" and filtering facilities which help control complex nested layouts.
Synopsis
data Ignore m l w
ignore :: (Message m, LayoutClass l w) => m -> l w -> Ignore m l w
data UnEscape w
unEscape :: LayoutClass l w => l w -> ModifiedLayout UnEscape l w
newtype EscapedMessage = Escape SomeMessage
escape :: Message m => m -> EscapedMessage
Usage

You can use this module by importing it into your ~/.xmonad/xmonad.hs file:

 import XMonad.Layout.MessageEscape

Then, if you use a modified layout where the modifier would intercept a message, but you'd want to be able to send it to the inner layout only, add the unEscape modifier to the inner layout like so:

 import XMonad.Layout.Master (mastered)
 import XMonad.Layout.Tabbed (simpleTabbed)
 import XMonad.Layout.LayoutCombinators ((|||))

 myLayout = Tall ||| unEscape (mastered 0.01 0.5 $ Full ||| simpleTabbed)

you can now send a message to the inner layout with sendMessage $ escape message, e.g.

 -- Change the inner layout
 ((modm .|. controlMask, xK_space), sendMessage $ escape NextLayout)

If you want unescaped messages to be handled only by the enclosing layout, use the ignore modifier:

 myLayout = Tall ||| (ignore NextLayout $ ignore (JumpToLayout "") $
                       unEscape $ mastered 0.01 0.5 
                         $ Full ||| simpleTabbed)

IMPORTANT NOTE: The standard '(|||)' operator from XMonad.Layout does not behave correctly with ignore. Make sure you use the one from XMonad.Layout.LayoutCombinators.

data Ignore m l w Source
the Ignore layout modifier. Prevents its inner layout from receiving messages of a certain type.
ignore :: (Message m, LayoutClass l w) => m -> l w -> Ignore m l wSource
Applies the Ignore layout modifier to a layout, blocking all messages of the same type as the one passed as its first argument.
data UnEscape w Source
the UnEscape layout modifier. Listens to EscapedMessages and sends their nested message to the inner layout.
unEscape :: LayoutClass l w => l w -> ModifiedLayout UnEscape l wSource
Applies the UnEscape layout modifier to a layout.
newtype EscapedMessage Source
Data type for an escaped message. Send with escape.
Constructors
Escape SomeMessage
escape :: Message m => m -> EscapedMessageSource
Creates an EscapedMessage.
Produced by Haddock version 2.6.0