xmonad-contrib-0.13: Third party extensions for xmonad

Copyright(c) David Roundy <droundy@darcs.net>
LicenseBSD
Maintainernone
Stabilityunstable
Portabilityportable
Safe HaskellNone
LanguageHaskell98

XMonad.Layout.LayoutModifier

Contents

Description

A module for writing easy layout modifiers, which do not define a layout in and of themselves, but modify the behavior of or add new functionality to other layouts. If you ever find yourself writing a layout which takes another layout as a parameter, chances are you should be writing a LayoutModifier instead!

In case it is not clear, this module is not intended to help you configure xmonad, it is to help you write other extension modules. So get hacking!

Synopsis

Usage

The LayoutModifier class is provided to help extension developers write easy layout modifiers. End users won't find much of interest here. =)

To write a layout modifier using the LayoutModifier class, define a data type to represent the layout modification (storing any necessary state), define an instance of LayoutModifier, and export an appropriate function for applying the modifier. For example:

data MyModifier a = MyModifier MyState
  deriving (Show, Read)

instance LayoutModifier MyModifier a where
  -- override whatever methods from LayoutModifier you like

modify :: l a -> ModifiedLayout MyModifier l a
modify = ModifiedLayout (MyModifier initialState)

When defining an instance of LayoutModifier, you are free to override as many or as few of the methods as you see fit. See the documentation below for specific information about the effect of overriding each method. Every method has a default implementation; an instance of LayoutModifier which did not provide a non-default implementation of any of the methods would simply act as the identity on any layouts to which it is applied.

For more specific usage examples, see

and several others. You probably want to start by looking at some of the above examples; the documentation below is detailed but possibly confusing, and in many cases the creation of a LayoutModifier is actually quite simple.

Important note: because of the way the LayoutModifier class is intended to be used, by overriding any of its methods and keeping default implementations for all the others, LayoutModifier methods should never be called explicitly. It is likely that such explicit calls will not have the intended effect. Rather, the LayoutModifier methods should only be called indirectly through the LayoutClass instance for ModifiedLayout, since it is this instance that defines the semantics of overriding the various LayoutModifier methods.

The LayoutModifier class

class (Show (m a), Read (m a)) => LayoutModifier m a where Source #

Methods

modifyLayout :: LayoutClass l a => m a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayout allows you to intercept a call to runLayout before it is called on the underlying layout, in order to perform some effect in the X monad, and/or modify some of the parameters before passing them on to the runLayout method of the underlying layout.

The default implementation of modifyLayout simply calls runLayout on the underlying layout.

modifyLayoutWithUpdate :: LayoutClass l a => m a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (m a)) Source #

Similar to modifyLayout, but this function also allows you update the state of your layout modifier(the second value in the outer tuple).

If both modifyLayoutWithUpdate and redoLayout return a modified state of the layout modifier, redoLayout takes precedence. If this function returns a modified state, this state will internally be used in the subsequent call to redoLayout as well.

handleMess :: m a -> SomeMessage -> X (Maybe (m a)) Source #

handleMess allows you to spy on messages to the underlying layout, in order to have an effect in the X monad, or alter the layout modifier state in some way (by returning Just nm, where nm is a new modifier). In all cases, the underlying layout will also receive the message as usual, after the message has been processed by handleMess.

If you wish to possibly modify a message before it reaches the underlying layout, you should use handleMessOrMaybeModifyIt instead. If you do not need to modify messages or have access to the X monad, you should use pureMess instead.

The default implementation of handleMess calls unhook when receiving a Hide or ReleaseResources method (after which it returns Nothing), and otherwise passes the message on to pureMess.

handleMessOrMaybeModifyIt :: m a -> SomeMessage -> X (Maybe (Either (m a) SomeMessage)) Source #

handleMessOrMaybeModifyIt allows you to intercept messages sent to the underlying layout, in order to have an effect in the X monad, alter the layout modifier state, or produce a modified message to be passed on to the underlying layout.

The default implementation of handleMessOrMaybeModifyIt simply passes on the message to handleMess.

pureMess :: m a -> SomeMessage -> Maybe (m a) Source #

pureMess allows you to spy on messages sent to the underlying layout, in order to possibly change the layout modifier state.

The default implementation of pureMess ignores messages sent to it, and returns Nothing (causing the layout modifier to remain unchanged).

redoLayout :: m a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (m a)) Source #

redoLayout allows you to intercept a call to runLayout on workspaces with at least one window, after it is called on the underlying layout, in order to perform some effect in the X monad, possibly return a new layout modifier, and/or modify the results of runLayout before returning them.

If you don't need access to the X monad, use pureModifier instead. Also, if the behavior you need can be cleanly separated into an effect in the X monad, followed by a pure transformation of the results of runLayout, you should consider implementing hook and pureModifier instead of redoLayout.

On empty workspaces, the Stack is Nothing.

The default implementation of redoLayout calls hook and then pureModifier.

pureModifier :: m a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (m a)) Source #

pureModifier allows you to intercept a call to runLayout after it is called on the underlying layout, in order to modify the list of window/rectangle pairings it has returned, and/or return a new layout modifier.

The default implementation of pureModifier returns the window rectangles unmodified.

hook :: m a -> X () Source #

hook is called by the default implementation of redoLayout, and as such represents an X action which is to be run each time runLayout is called on the underlying layout, after runLayout has completed. Of course, if you override redoLayout, then hook will not be called unless you explicitly call it.

The default implementation of hook is return () (i.e., it has no effect).

unhook :: m a -> X () Source #

unhook is called by the default implementation of handleMess upon receiving a Hide or a ReleaseResources message.

The default implementation, of course, does nothing.

modifierDescription :: m a -> String Source #

modifierDescription is used to give a String description to this layout modifier. It is the empty string by default; you should only override this if it is important that the presence of the layout modifier be displayed in text representations of the layout (for example, in the status bar of a XMonad.Hooks.DynamicLog user).

modifyDescription :: LayoutClass l a => m a -> l a -> String Source #

modifyDescription gives a String description for the entire layout (modifier + underlying layout). By default, it is derived from the concatenation of the modifierDescription with the description of the underlying layout, with a "smart space" in between (the space is not included if the modifierDescription is empty).

Instances

LayoutModifier WithBorder Window Source # 

Methods

modifyLayout :: LayoutClass l Window => WithBorder Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => WithBorder Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (WithBorder Window)) Source #

handleMess :: WithBorder Window -> SomeMessage -> X (Maybe (WithBorder Window)) Source #

handleMessOrMaybeModifyIt :: WithBorder Window -> SomeMessage -> X (Maybe (Either (WithBorder Window) SomeMessage)) Source #

pureMess :: WithBorder Window -> SomeMessage -> Maybe (WithBorder Window) Source #

redoLayout :: WithBorder Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (WithBorder Window)) Source #

pureModifier :: WithBorder Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (WithBorder Window)) Source #

hook :: WithBorder Window -> X () Source #

unhook :: WithBorder Window -> X () Source #

modifierDescription :: WithBorder Window -> String Source #

modifyDescription :: LayoutClass l Window => WithBorder Window -> l Window -> String Source #

LayoutModifier BoringWindows Window Source # 

Methods

modifyLayout :: LayoutClass l Window => BoringWindows Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => BoringWindows Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (BoringWindows Window)) Source #

handleMess :: BoringWindows Window -> SomeMessage -> X (Maybe (BoringWindows Window)) Source #

handleMessOrMaybeModifyIt :: BoringWindows Window -> SomeMessage -> X (Maybe (Either (BoringWindows Window) SomeMessage)) Source #

pureMess :: BoringWindows Window -> SomeMessage -> Maybe (BoringWindows Window) Source #

redoLayout :: BoringWindows Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (BoringWindows Window)) Source #

pureModifier :: BoringWindows Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (BoringWindows Window)) Source #

hook :: BoringWindows Window -> X () Source #

unhook :: BoringWindows Window -> X () Source #

modifierDescription :: BoringWindows Window -> String Source #

modifyDescription :: LayoutClass l Window => BoringWindows Window -> l Window -> String Source #

LayoutModifier DraggingVisualizer Window Source # 

Methods

modifyLayout :: LayoutClass l Window => DraggingVisualizer Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => DraggingVisualizer Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (DraggingVisualizer Window)) Source #

handleMess :: DraggingVisualizer Window -> SomeMessage -> X (Maybe (DraggingVisualizer Window)) Source #

handleMessOrMaybeModifyIt :: DraggingVisualizer Window -> SomeMessage -> X (Maybe (Either (DraggingVisualizer Window) SomeMessage)) Source #

pureMess :: DraggingVisualizer Window -> SomeMessage -> Maybe (DraggingVisualizer Window) Source #

redoLayout :: DraggingVisualizer Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (DraggingVisualizer Window)) Source #

pureModifier :: DraggingVisualizer Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (DraggingVisualizer Window)) Source #

hook :: DraggingVisualizer Window -> X () Source #

unhook :: DraggingVisualizer Window -> X () Source #

modifierDescription :: DraggingVisualizer Window -> String Source #

modifyDescription :: LayoutClass l Window => DraggingVisualizer Window -> l Window -> String Source #

Eq w => LayoutModifier AutoMaster w Source # 

Methods

modifyLayout :: LayoutClass l w => AutoMaster w -> Workspace WorkspaceId (l w) w -> Rectangle -> X ([(w, Rectangle)], Maybe (l w)) Source #

modifyLayoutWithUpdate :: LayoutClass l w => AutoMaster w -> Workspace WorkspaceId (l w) w -> Rectangle -> X (([(w, Rectangle)], Maybe (l w)), Maybe (AutoMaster w)) Source #

handleMess :: AutoMaster w -> SomeMessage -> X (Maybe (AutoMaster w)) Source #

handleMessOrMaybeModifyIt :: AutoMaster w -> SomeMessage -> X (Maybe (Either (AutoMaster w) SomeMessage)) Source #

pureMess :: AutoMaster w -> SomeMessage -> Maybe (AutoMaster w) Source #

redoLayout :: AutoMaster w -> Rectangle -> Maybe (Stack w) -> [(w, Rectangle)] -> X ([(w, Rectangle)], Maybe (AutoMaster w)) Source #

pureModifier :: AutoMaster w -> Rectangle -> Maybe (Stack w) -> [(w, Rectangle)] -> ([(w, Rectangle)], Maybe (AutoMaster w)) Source #

hook :: AutoMaster w -> X () Source #

unhook :: AutoMaster w -> X () Source #

modifierDescription :: AutoMaster w -> String Source #

modifyDescription :: LayoutClass l w => AutoMaster w -> l w -> String Source #

LayoutModifier TopRightMaster Window Source # 

Methods

modifyLayout :: LayoutClass l Window => TopRightMaster Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => TopRightMaster Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (TopRightMaster Window)) Source #

handleMess :: TopRightMaster Window -> SomeMessage -> X (Maybe (TopRightMaster Window)) Source #

handleMessOrMaybeModifyIt :: TopRightMaster Window -> SomeMessage -> X (Maybe (Either (TopRightMaster Window) SomeMessage)) Source #

pureMess :: TopRightMaster Window -> SomeMessage -> Maybe (TopRightMaster Window) Source #

redoLayout :: TopRightMaster Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (TopRightMaster Window)) Source #

pureModifier :: TopRightMaster Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (TopRightMaster Window)) Source #

hook :: TopRightMaster Window -> X () Source #

unhook :: TopRightMaster Window -> X () Source #

modifierDescription :: TopRightMaster Window -> String Source #

modifyDescription :: LayoutClass l Window => TopRightMaster Window -> l Window -> String Source #

LayoutModifier CenteredMaster Window Source # 

Methods

modifyLayout :: LayoutClass l Window => CenteredMaster Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => CenteredMaster Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (CenteredMaster Window)) Source #

handleMess :: CenteredMaster Window -> SomeMessage -> X (Maybe (CenteredMaster Window)) Source #

handleMessOrMaybeModifyIt :: CenteredMaster Window -> SomeMessage -> X (Maybe (Either (CenteredMaster Window) SomeMessage)) Source #

pureMess :: CenteredMaster Window -> SomeMessage -> Maybe (CenteredMaster Window) Source #

redoLayout :: CenteredMaster Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (CenteredMaster Window)) Source #

pureModifier :: CenteredMaster Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (CenteredMaster Window)) Source #

hook :: CenteredMaster Window -> X () Source #

unhook :: CenteredMaster Window -> X () Source #

modifierDescription :: CenteredMaster Window -> String Source #

modifyDescription :: LayoutClass l Window => CenteredMaster Window -> l Window -> String Source #

LayoutModifier Rename a Source # 

Methods

modifyLayout :: LayoutClass l a => Rename a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => Rename a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (Rename a)) Source #

handleMess :: Rename a -> SomeMessage -> X (Maybe (Rename a)) Source #

handleMessOrMaybeModifyIt :: Rename a -> SomeMessage -> X (Maybe (Either (Rename a) SomeMessage)) Source #

pureMess :: Rename a -> SomeMessage -> Maybe (Rename a) Source #

redoLayout :: Rename a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (Rename a)) Source #

pureModifier :: Rename a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (Rename a)) Source #

hook :: Rename a -> X () Source #

unhook :: Rename a -> X () Source #

modifierDescription :: Rename a -> String Source #

modifyDescription :: LayoutClass l a => Rename a -> l a -> String Source #

LayoutModifier UnEscape a Source # 

Methods

modifyLayout :: LayoutClass l a => UnEscape a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => UnEscape a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (UnEscape a)) Source #

handleMess :: UnEscape a -> SomeMessage -> X (Maybe (UnEscape a)) Source #

handleMessOrMaybeModifyIt :: UnEscape a -> SomeMessage -> X (Maybe (Either (UnEscape a) SomeMessage)) Source #

pureMess :: UnEscape a -> SomeMessage -> Maybe (UnEscape a) Source #

redoLayout :: UnEscape a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (UnEscape a)) Source #

pureModifier :: UnEscape a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (UnEscape a)) Source #

hook :: UnEscape a -> X () Source #

unhook :: UnEscape a -> X () Source #

modifierDescription :: UnEscape a -> String Source #

modifyDescription :: LayoutClass l a => UnEscape a -> l a -> String Source #

LayoutModifier AddRoster Window Source # 

Methods

modifyLayout :: LayoutClass l Window => AddRoster Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => AddRoster Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (AddRoster Window)) Source #

handleMess :: AddRoster Window -> SomeMessage -> X (Maybe (AddRoster Window)) Source #

handleMessOrMaybeModifyIt :: AddRoster Window -> SomeMessage -> X (Maybe (Either (AddRoster Window) SomeMessage)) Source #

pureMess :: AddRoster Window -> SomeMessage -> Maybe (AddRoster Window) Source #

redoLayout :: AddRoster Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (AddRoster Window)) Source #

pureModifier :: AddRoster Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (AddRoster Window)) Source #

hook :: AddRoster Window -> X () Source #

unhook :: AddRoster Window -> X () Source #

modifierDescription :: AddRoster Window -> String Source #

modifyDescription :: LayoutClass l Window => AddRoster Window -> l Window -> String Source #

LayoutModifier Selection a Source # 

Methods

modifyLayout :: LayoutClass l a => Selection a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => Selection a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (Selection a)) Source #

handleMess :: Selection a -> SomeMessage -> X (Maybe (Selection a)) Source #

handleMessOrMaybeModifyIt :: Selection a -> SomeMessage -> X (Maybe (Either (Selection a) SomeMessage)) Source #

pureMess :: Selection a -> SomeMessage -> Maybe (Selection a) Source #

redoLayout :: Selection a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (Selection a)) Source #

pureModifier :: Selection a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (Selection a)) Source #

hook :: Selection a -> X () Source #

unhook :: Selection a -> X () Source #

modifierDescription :: Selection a -> String Source #

modifyDescription :: LayoutClass l a => Selection a -> l a -> String Source #

LayoutModifier LimitWindows a Source # 

Methods

modifyLayout :: LayoutClass l a => LimitWindows a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => LimitWindows a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (LimitWindows a)) Source #

handleMess :: LimitWindows a -> SomeMessage -> X (Maybe (LimitWindows a)) Source #

handleMessOrMaybeModifyIt :: LimitWindows a -> SomeMessage -> X (Maybe (Either (LimitWindows a) SomeMessage)) Source #

pureMess :: LimitWindows a -> SomeMessage -> Maybe (LimitWindows a) Source #

redoLayout :: LimitWindows a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (LimitWindows a)) Source #

pureModifier :: LimitWindows a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (LimitWindows a)) Source #

hook :: LimitWindows a -> X () Source #

unhook :: LimitWindows a -> X () Source #

modifierDescription :: LimitWindows a -> String Source #

modifyDescription :: LayoutClass l a => LimitWindows a -> l a -> String Source #

LayoutModifier AddMaster Window Source # 

Methods

modifyLayout :: LayoutClass l Window => AddMaster Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => AddMaster Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (AddMaster Window)) Source #

handleMess :: AddMaster Window -> SomeMessage -> X (Maybe (AddMaster Window)) Source #

handleMessOrMaybeModifyIt :: AddMaster Window -> SomeMessage -> X (Maybe (Either (AddMaster Window) SomeMessage)) Source #

pureMess :: AddMaster Window -> SomeMessage -> Maybe (AddMaster Window) Source #

redoLayout :: AddMaster Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (AddMaster Window)) Source #

pureModifier :: AddMaster Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (AddMaster Window)) Source #

hook :: AddMaster Window -> X () Source #

unhook :: AddMaster Window -> X () Source #

modifierDescription :: AddMaster Window -> String Source #

modifyDescription :: LayoutClass l Window => AddMaster Window -> l Window -> String Source #

LayoutModifier UseTransientFor Window Source # 

Methods

modifyLayout :: LayoutClass l Window => UseTransientFor Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => UseTransientFor Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (UseTransientFor Window)) Source #

handleMess :: UseTransientFor Window -> SomeMessage -> X (Maybe (UseTransientFor Window)) Source #

handleMessOrMaybeModifyIt :: UseTransientFor Window -> SomeMessage -> X (Maybe (Either (UseTransientFor Window) SomeMessage)) Source #

pureMess :: UseTransientFor Window -> SomeMessage -> Maybe (UseTransientFor Window) Source #

redoLayout :: UseTransientFor Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (UseTransientFor Window)) Source #

pureModifier :: UseTransientFor Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (UseTransientFor Window)) Source #

hook :: UseTransientFor Window -> X () Source #

unhook :: UseTransientFor Window -> X () Source #

modifierDescription :: UseTransientFor Window -> String Source #

modifyDescription :: LayoutClass l Window => UseTransientFor Window -> l Window -> String Source #

LayoutModifier TrackFloating Window Source # 

Methods

modifyLayout :: LayoutClass l Window => TrackFloating Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => TrackFloating Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (TrackFloating Window)) Source #

handleMess :: TrackFloating Window -> SomeMessage -> X (Maybe (TrackFloating Window)) Source #

handleMessOrMaybeModifyIt :: TrackFloating Window -> SomeMessage -> X (Maybe (Either (TrackFloating Window) SomeMessage)) Source #

pureMess :: TrackFloating Window -> SomeMessage -> Maybe (TrackFloating Window) Source #

redoLayout :: TrackFloating Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (TrackFloating Window)) Source #

pureModifier :: TrackFloating Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (TrackFloating Window)) Source #

hook :: TrackFloating Window -> X () Source #

unhook :: TrackFloating Window -> X () Source #

modifierDescription :: TrackFloating Window -> String Source #

modifyDescription :: LayoutClass l Window => TrackFloating Window -> l Window -> String Source #

LayoutModifier Minimize Window Source # 

Methods

modifyLayout :: LayoutClass l Window => Minimize Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => Minimize Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (Minimize Window)) Source #

handleMess :: Minimize Window -> SomeMessage -> X (Maybe (Minimize Window)) Source #

handleMessOrMaybeModifyIt :: Minimize Window -> SomeMessage -> X (Maybe (Either (Minimize Window) SomeMessage)) Source #

pureMess :: Minimize Window -> SomeMessage -> Maybe (Minimize Window) Source #

redoLayout :: Minimize Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (Minimize Window)) Source #

pureModifier :: Minimize Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (Minimize Window)) Source #

hook :: Minimize Window -> X () Source #

unhook :: Minimize Window -> X () Source #

modifierDescription :: Minimize Window -> String Source #

modifyDescription :: LayoutClass l Window => Minimize Window -> l Window -> String Source #

LayoutModifier Maximize Window Source # 

Methods

modifyLayout :: LayoutClass l Window => Maximize Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => Maximize Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (Maximize Window)) Source #

handleMess :: Maximize Window -> SomeMessage -> X (Maybe (Maximize Window)) Source #

handleMessOrMaybeModifyIt :: Maximize Window -> SomeMessage -> X (Maybe (Either (Maximize Window) SomeMessage)) Source #

pureMess :: Maximize Window -> SomeMessage -> Maybe (Maximize Window) Source #

redoLayout :: Maximize Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (Maximize Window)) Source #

pureModifier :: Maximize Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (Maximize Window)) Source #

hook :: Maximize Window -> X () Source #

unhook :: Maximize Window -> X () Source #

modifierDescription :: Maximize Window -> String Source #

modifyDescription :: LayoutClass l Window => Maximize Window -> l Window -> String Source #

LayoutModifier FullscreenFloat Window Source # 

Methods

modifyLayout :: LayoutClass l Window => FullscreenFloat Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => FullscreenFloat Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (FullscreenFloat Window)) Source #

handleMess :: FullscreenFloat Window -> SomeMessage -> X (Maybe (FullscreenFloat Window)) Source #

handleMessOrMaybeModifyIt :: FullscreenFloat Window -> SomeMessage -> X (Maybe (Either (FullscreenFloat Window) SomeMessage)) Source #

pureMess :: FullscreenFloat Window -> SomeMessage -> Maybe (FullscreenFloat Window) Source #

redoLayout :: FullscreenFloat Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (FullscreenFloat Window)) Source #

pureModifier :: FullscreenFloat Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (FullscreenFloat Window)) Source #

hook :: FullscreenFloat Window -> X () Source #

unhook :: FullscreenFloat Window -> X () Source #

modifierDescription :: FullscreenFloat Window -> String Source #

modifyDescription :: LayoutClass l Window => FullscreenFloat Window -> l Window -> String Source #

LayoutModifier FullscreenFocus Window Source # 

Methods

modifyLayout :: LayoutClass l Window => FullscreenFocus Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => FullscreenFocus Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (FullscreenFocus Window)) Source #

handleMess :: FullscreenFocus Window -> SomeMessage -> X (Maybe (FullscreenFocus Window)) Source #

handleMessOrMaybeModifyIt :: FullscreenFocus Window -> SomeMessage -> X (Maybe (Either (FullscreenFocus Window) SomeMessage)) Source #

pureMess :: FullscreenFocus Window -> SomeMessage -> Maybe (FullscreenFocus Window) Source #

redoLayout :: FullscreenFocus Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (FullscreenFocus Window)) Source #

pureModifier :: FullscreenFocus Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (FullscreenFocus Window)) Source #

hook :: FullscreenFocus Window -> X () Source #

unhook :: FullscreenFocus Window -> X () Source #

modifierDescription :: FullscreenFocus Window -> String Source #

modifyDescription :: LayoutClass l Window => FullscreenFocus Window -> l Window -> String Source #

LayoutModifier FullscreenFull Window Source # 

Methods

modifyLayout :: LayoutClass l Window => FullscreenFull Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => FullscreenFull Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (FullscreenFull Window)) Source #

handleMess :: FullscreenFull Window -> SomeMessage -> X (Maybe (FullscreenFull Window)) Source #

handleMessOrMaybeModifyIt :: FullscreenFull Window -> SomeMessage -> X (Maybe (Either (FullscreenFull Window) SomeMessage)) Source #

pureMess :: FullscreenFull Window -> SomeMessage -> Maybe (FullscreenFull Window) Source #

redoLayout :: FullscreenFull Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (FullscreenFull Window)) Source #

pureModifier :: FullscreenFull Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (FullscreenFull Window)) Source #

hook :: FullscreenFull Window -> X () Source #

unhook :: FullscreenFull Window -> X () Source #

modifierDescription :: FullscreenFull Window -> String Source #

modifyDescription :: LayoutClass l Window => FullscreenFull Window -> l Window -> String Source #

LayoutModifier Monitor Window Source # 

Methods

modifyLayout :: LayoutClass l Window => Monitor Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => Monitor Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (Monitor Window)) Source #

handleMess :: Monitor Window -> SomeMessage -> X (Maybe (Monitor Window)) Source #

handleMessOrMaybeModifyIt :: Monitor Window -> SomeMessage -> X (Maybe (Either (Monitor Window) SomeMessage)) Source #

pureMess :: Monitor Window -> SomeMessage -> Maybe (Monitor Window) Source #

redoLayout :: Monitor Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (Monitor Window)) Source #

pureModifier :: Monitor Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (Monitor Window)) Source #

hook :: Monitor Window -> X () Source #

unhook :: Monitor Window -> X () Source #

modifierDescription :: Monitor Window -> String Source #

modifyDescription :: LayoutClass l Window => Monitor Window -> l Window -> String Source #

LayoutModifier Stoppable Window Source # 

Methods

modifyLayout :: LayoutClass l Window => Stoppable Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => Stoppable Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (Stoppable Window)) Source #

handleMess :: Stoppable Window -> SomeMessage -> X (Maybe (Stoppable Window)) Source #

handleMessOrMaybeModifyIt :: Stoppable Window -> SomeMessage -> X (Maybe (Either (Stoppable Window) SomeMessage)) Source #

pureMess :: Stoppable Window -> SomeMessage -> Maybe (Stoppable Window) Source #

redoLayout :: Stoppable Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (Stoppable Window)) Source #

pureModifier :: Stoppable Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (Stoppable Window)) Source #

hook :: Stoppable Window -> X () Source #

unhook :: Stoppable Window -> X () Source #

modifierDescription :: Stoppable Window -> String Source #

modifyDescription :: LayoutClass l Window => Stoppable Window -> l Window -> String Source #

LayoutModifier SmartSpacingWithEdge a Source # 

Methods

modifyLayout :: LayoutClass l a => SmartSpacingWithEdge a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => SmartSpacingWithEdge a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (SmartSpacingWithEdge a)) Source #

handleMess :: SmartSpacingWithEdge a -> SomeMessage -> X (Maybe (SmartSpacingWithEdge a)) Source #

handleMessOrMaybeModifyIt :: SmartSpacingWithEdge a -> SomeMessage -> X (Maybe (Either (SmartSpacingWithEdge a) SomeMessage)) Source #

pureMess :: SmartSpacingWithEdge a -> SomeMessage -> Maybe (SmartSpacingWithEdge a) Source #

redoLayout :: SmartSpacingWithEdge a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (SmartSpacingWithEdge a)) Source #

pureModifier :: SmartSpacingWithEdge a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (SmartSpacingWithEdge a)) Source #

hook :: SmartSpacingWithEdge a -> X () Source #

unhook :: SmartSpacingWithEdge a -> X () Source #

modifierDescription :: SmartSpacingWithEdge a -> String Source #

modifyDescription :: LayoutClass l a => SmartSpacingWithEdge a -> l a -> String Source #

LayoutModifier SmartSpacing a Source # 

Methods

modifyLayout :: LayoutClass l a => SmartSpacing a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => SmartSpacing a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (SmartSpacing a)) Source #

handleMess :: SmartSpacing a -> SomeMessage -> X (Maybe (SmartSpacing a)) Source #

handleMessOrMaybeModifyIt :: SmartSpacing a -> SomeMessage -> X (Maybe (Either (SmartSpacing a) SomeMessage)) Source #

pureMess :: SmartSpacing a -> SomeMessage -> Maybe (SmartSpacing a) Source #

redoLayout :: SmartSpacing a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (SmartSpacing a)) Source #

pureModifier :: SmartSpacing a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (SmartSpacing a)) Source #

hook :: SmartSpacing a -> X () Source #

unhook :: SmartSpacing a -> X () Source #

modifierDescription :: SmartSpacing a -> String Source #

modifyDescription :: LayoutClass l a => SmartSpacing a -> l a -> String Source #

LayoutModifier SpacingWithEdge a Source # 

Methods

modifyLayout :: LayoutClass l a => SpacingWithEdge a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => SpacingWithEdge a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (SpacingWithEdge a)) Source #

handleMess :: SpacingWithEdge a -> SomeMessage -> X (Maybe (SpacingWithEdge a)) Source #

handleMessOrMaybeModifyIt :: SpacingWithEdge a -> SomeMessage -> X (Maybe (Either (SpacingWithEdge a) SomeMessage)) Source #

pureMess :: SpacingWithEdge a -> SomeMessage -> Maybe (SpacingWithEdge a) Source #

redoLayout :: SpacingWithEdge a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (SpacingWithEdge a)) Source #

pureModifier :: SpacingWithEdge a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (SpacingWithEdge a)) Source #

hook :: SpacingWithEdge a -> X () Source #

unhook :: SpacingWithEdge a -> X () Source #

modifierDescription :: SpacingWithEdge a -> String Source #

modifyDescription :: LayoutClass l a => SpacingWithEdge a -> l a -> String Source #

LayoutModifier Spacing a Source # 

Methods

modifyLayout :: LayoutClass l a => Spacing a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => Spacing a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (Spacing a)) Source #

handleMess :: Spacing a -> SomeMessage -> X (Maybe (Spacing a)) Source #

handleMessOrMaybeModifyIt :: Spacing a -> SomeMessage -> X (Maybe (Either (Spacing a) SomeMessage)) Source #

pureMess :: Spacing a -> SomeMessage -> Maybe (Spacing a) Source #

redoLayout :: Spacing a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (Spacing a)) Source #

pureModifier :: Spacing a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (Spacing a)) Source #

hook :: Spacing a -> X () Source #

unhook :: Spacing a -> X () Source #

modifierDescription :: Spacing a -> String Source #

modifyDescription :: LayoutClass l a => Spacing a -> l a -> String Source #

LayoutModifier WorkspaceCursors a Source # 

Methods

modifyLayout :: LayoutClass l a => WorkspaceCursors a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => WorkspaceCursors a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (WorkspaceCursors a)) Source #

handleMess :: WorkspaceCursors a -> SomeMessage -> X (Maybe (WorkspaceCursors a)) Source #

handleMessOrMaybeModifyIt :: WorkspaceCursors a -> SomeMessage -> X (Maybe (Either (WorkspaceCursors a) SomeMessage)) Source #

pureMess :: WorkspaceCursors a -> SomeMessage -> Maybe (WorkspaceCursors a) Source #

redoLayout :: WorkspaceCursors a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (WorkspaceCursors a)) Source #

pureModifier :: WorkspaceCursors a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (WorkspaceCursors a)) Source #

hook :: WorkspaceCursors a -> X () Source #

unhook :: WorkspaceCursors a -> X () Source #

modifierDescription :: WorkspaceCursors a -> String Source #

modifyDescription :: LayoutClass l a => WorkspaceCursors a -> l a -> String Source #

(Show a, Read a, Eq a) => LayoutModifier WindowArranger a Source # 

Methods

modifyLayout :: LayoutClass l a => WindowArranger a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => WindowArranger a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (WindowArranger a)) Source #

handleMess :: WindowArranger a -> SomeMessage -> X (Maybe (WindowArranger a)) Source #

handleMessOrMaybeModifyIt :: WindowArranger a -> SomeMessage -> X (Maybe (Either (WindowArranger a) SomeMessage)) Source #

pureMess :: WindowArranger a -> SomeMessage -> Maybe (WindowArranger a) Source #

redoLayout :: WindowArranger a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (WindowArranger a)) Source #

pureModifier :: WindowArranger a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (WindowArranger a)) Source #

hook :: WindowArranger a -> X () Source #

unhook :: WindowArranger a -> X () Source #

modifierDescription :: WindowArranger a -> String Source #

modifyDescription :: LayoutClass l a => WindowArranger a -> l a -> String Source #

LayoutModifier MagicFocus Window Source # 

Methods

modifyLayout :: LayoutClass l Window => MagicFocus Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => MagicFocus Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (MagicFocus Window)) Source #

handleMess :: MagicFocus Window -> SomeMessage -> X (Maybe (MagicFocus Window)) Source #

handleMessOrMaybeModifyIt :: MagicFocus Window -> SomeMessage -> X (Maybe (Either (MagicFocus Window) SomeMessage)) Source #

pureMess :: MagicFocus Window -> SomeMessage -> Maybe (MagicFocus Window) Source #

redoLayout :: MagicFocus Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (MagicFocus Window)) Source #

pureModifier :: MagicFocus Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (MagicFocus Window)) Source #

hook :: MagicFocus Window -> X () Source #

unhook :: MagicFocus Window -> X () Source #

modifierDescription :: MagicFocus Window -> String Source #

modifyDescription :: LayoutClass l Window => MagicFocus Window -> l Window -> String Source #

LayoutModifier Magnifier Window Source # 

Methods

modifyLayout :: LayoutClass l Window => Magnifier Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => Magnifier Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (Magnifier Window)) Source #

handleMess :: Magnifier Window -> SomeMessage -> X (Maybe (Magnifier Window)) Source #

handleMessOrMaybeModifyIt :: Magnifier Window -> SomeMessage -> X (Maybe (Either (Magnifier Window) SomeMessage)) Source #

pureMess :: Magnifier Window -> SomeMessage -> Maybe (Magnifier Window) Source #

redoLayout :: Magnifier Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (Magnifier Window)) Source #

pureModifier :: Magnifier Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (Magnifier Window)) Source #

hook :: Magnifier Window -> X () Source #

unhook :: Magnifier Window -> X () Source #

modifierDescription :: Magnifier Window -> String Source #

modifyDescription :: LayoutClass l Window => Magnifier Window -> l Window -> String Source #

LayoutModifier ShowWName a Source # 

Methods

modifyLayout :: LayoutClass l a => ShowWName a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => ShowWName a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (ShowWName a)) Source #

handleMess :: ShowWName a -> SomeMessage -> X (Maybe (ShowWName a)) Source #

handleMessOrMaybeModifyIt :: ShowWName a -> SomeMessage -> X (Maybe (Either (ShowWName a) SomeMessage)) Source #

pureMess :: ShowWName a -> SomeMessage -> Maybe (ShowWName a) Source #

redoLayout :: ShowWName a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (ShowWName a)) Source #

pureModifier :: ShowWName a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (ShowWName a)) Source #

hook :: ShowWName a -> X () Source #

unhook :: ShowWName a -> X () Source #

modifierDescription :: ShowWName a -> String Source #

modifyDescription :: LayoutClass l a => ShowWName a -> l a -> String Source #

LayoutModifier Reflect a Source # 

Methods

modifyLayout :: LayoutClass l a => Reflect a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => Reflect a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (Reflect a)) Source #

handleMess :: Reflect a -> SomeMessage -> X (Maybe (Reflect a)) Source #

handleMessOrMaybeModifyIt :: Reflect a -> SomeMessage -> X (Maybe (Either (Reflect a) SomeMessage)) Source #

pureMess :: Reflect a -> SomeMessage -> Maybe (Reflect a) Source #

redoLayout :: Reflect a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (Reflect a)) Source #

pureModifier :: Reflect a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (Reflect a)) Source #

hook :: Reflect a -> X () Source #

unhook :: Reflect a -> X () Source #

modifierDescription :: Reflect a -> String Source #

modifyDescription :: LayoutClass l a => Reflect a -> l a -> String Source #

LayoutModifier MouseResize Window Source # 

Methods

modifyLayout :: LayoutClass l Window => MouseResize Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => MouseResize Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (MouseResize Window)) Source #

handleMess :: MouseResize Window -> SomeMessage -> X (Maybe (MouseResize Window)) Source #

handleMessOrMaybeModifyIt :: MouseResize Window -> SomeMessage -> X (Maybe (Either (MouseResize Window) SomeMessage)) Source #

pureMess :: MouseResize Window -> SomeMessage -> Maybe (MouseResize Window) Source #

redoLayout :: MouseResize Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (MouseResize Window)) Source #

pureModifier :: MouseResize Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (MouseResize Window)) Source #

hook :: MouseResize Window -> X () Source #

unhook :: MouseResize Window -> X () Source #

modifierDescription :: MouseResize Window -> String Source #

modifyDescription :: LayoutClass l Window => MouseResize Window -> l Window -> String Source #

LayoutModifier BorderResize Window Source # 

Methods

modifyLayout :: LayoutClass l Window => BorderResize Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => BorderResize Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (BorderResize Window)) Source #

handleMess :: BorderResize Window -> SomeMessage -> X (Maybe (BorderResize Window)) Source #

handleMessOrMaybeModifyIt :: BorderResize Window -> SomeMessage -> X (Maybe (Either (BorderResize Window) SomeMessage)) Source #

pureMess :: BorderResize Window -> SomeMessage -> Maybe (BorderResize Window) Source #

redoLayout :: BorderResize Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (BorderResize Window)) Source #

pureModifier :: BorderResize Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (BorderResize Window)) Source #

hook :: BorderResize Window -> X () Source #

unhook :: BorderResize Window -> X () Source #

modifierDescription :: BorderResize Window -> String Source #

modifyDescription :: LayoutClass l Window => BorderResize Window -> l Window -> String Source #

LayoutModifier ResizeScreen a Source # 

Methods

modifyLayout :: LayoutClass l a => ResizeScreen a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => ResizeScreen a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (ResizeScreen a)) Source #

handleMess :: ResizeScreen a -> SomeMessage -> X (Maybe (ResizeScreen a)) Source #

handleMessOrMaybeModifyIt :: ResizeScreen a -> SomeMessage -> X (Maybe (Either (ResizeScreen a) SomeMessage)) Source #

pureMess :: ResizeScreen a -> SomeMessage -> Maybe (ResizeScreen a) Source #

redoLayout :: ResizeScreen a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (ResizeScreen a)) Source #

pureModifier :: ResizeScreen a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (ResizeScreen a)) Source #

hook :: ResizeScreen a -> X () Source #

unhook :: ResizeScreen a -> X () Source #

modifierDescription :: ResizeScreen a -> String Source #

modifyDescription :: LayoutClass l a => ResizeScreen a -> l a -> String Source #

LayoutModifier WorkspaceDir Window Source # 

Methods

modifyLayout :: LayoutClass l Window => WorkspaceDir Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => WorkspaceDir Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (WorkspaceDir Window)) Source #

handleMess :: WorkspaceDir Window -> SomeMessage -> X (Maybe (WorkspaceDir Window)) Source #

handleMessOrMaybeModifyIt :: WorkspaceDir Window -> SomeMessage -> X (Maybe (Either (WorkspaceDir Window) SomeMessage)) Source #

pureMess :: WorkspaceDir Window -> SomeMessage -> Maybe (WorkspaceDir Window) Source #

redoLayout :: WorkspaceDir Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (WorkspaceDir Window)) Source #

pureModifier :: WorkspaceDir Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (WorkspaceDir Window)) Source #

hook :: WorkspaceDir Window -> X () Source #

unhook :: WorkspaceDir Window -> X () Source #

modifierDescription :: WorkspaceDir Window -> String Source #

modifyDescription :: LayoutClass l Window => WorkspaceDir Window -> l Window -> String Source #

LayoutModifier AvoidStruts a Source # 

Methods

modifyLayout :: LayoutClass l a => AvoidStruts a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => AvoidStruts a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (AvoidStruts a)) Source #

handleMess :: AvoidStruts a -> SomeMessage -> X (Maybe (AvoidStruts a)) Source #

handleMessOrMaybeModifyIt :: AvoidStruts a -> SomeMessage -> X (Maybe (Either (AvoidStruts a) SomeMessage)) Source #

pureMess :: AvoidStruts a -> SomeMessage -> Maybe (AvoidStruts a) Source #

redoLayout :: AvoidStruts a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (AvoidStruts a)) Source #

pureModifier :: AvoidStruts a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (AvoidStruts a)) Source #

hook :: AvoidStruts a -> X () Source #

unhook :: AvoidStruts a -> X () Source #

modifierDescription :: AvoidStruts a -> String Source #

modifyDescription :: LayoutClass l a => AvoidStruts a -> l a -> String Source #

LayoutModifier WindowNavigation Window Source # 

Methods

modifyLayout :: LayoutClass l Window => WindowNavigation Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => WindowNavigation Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (WindowNavigation Window)) Source #

handleMess :: WindowNavigation Window -> SomeMessage -> X (Maybe (WindowNavigation Window)) Source #

handleMessOrMaybeModifyIt :: WindowNavigation Window -> SomeMessage -> X (Maybe (Either (WindowNavigation Window) SomeMessage)) Source #

pureMess :: WindowNavigation Window -> SomeMessage -> Maybe (WindowNavigation Window) Source #

redoLayout :: WindowNavigation Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (WindowNavigation Window)) Source #

pureModifier :: WindowNavigation Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (WindowNavigation Window)) Source #

hook :: WindowNavigation Window -> X () Source #

unhook :: WindowNavigation Window -> X () Source #

modifierDescription :: WindowNavigation Window -> String Source #

modifyDescription :: LayoutClass l Window => WindowNavigation Window -> l Window -> String Source #

LayoutModifier Gaps a Source # 

Methods

modifyLayout :: LayoutClass l a => Gaps a -> Workspace WorkspaceId (l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (l a)) Source #

modifyLayoutWithUpdate :: LayoutClass l a => Gaps a -> Workspace WorkspaceId (l a) a -> Rectangle -> X (([(a, Rectangle)], Maybe (l a)), Maybe (Gaps a)) Source #

handleMess :: Gaps a -> SomeMessage -> X (Maybe (Gaps a)) Source #

handleMessOrMaybeModifyIt :: Gaps a -> SomeMessage -> X (Maybe (Either (Gaps a) SomeMessage)) Source #

pureMess :: Gaps a -> SomeMessage -> Maybe (Gaps a) Source #

redoLayout :: Gaps a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> X ([(a, Rectangle)], Maybe (Gaps a)) Source #

pureModifier :: Gaps a -> Rectangle -> Maybe (Stack a) -> [(a, Rectangle)] -> ([(a, Rectangle)], Maybe (Gaps a)) Source #

hook :: Gaps a -> X () Source #

unhook :: Gaps a -> X () Source #

modifierDescription :: Gaps a -> String Source #

modifyDescription :: LayoutClass l a => Gaps a -> l a -> String Source #

LayoutModifier LayoutHintsToCenter Window Source # 

Methods

modifyLayout :: LayoutClass l Window => LayoutHintsToCenter Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => LayoutHintsToCenter Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (LayoutHintsToCenter Window)) Source #

handleMess :: LayoutHintsToCenter Window -> SomeMessage -> X (Maybe (LayoutHintsToCenter Window)) Source #

handleMessOrMaybeModifyIt :: LayoutHintsToCenter Window -> SomeMessage -> X (Maybe (Either (LayoutHintsToCenter Window) SomeMessage)) Source #

pureMess :: LayoutHintsToCenter Window -> SomeMessage -> Maybe (LayoutHintsToCenter Window) Source #

redoLayout :: LayoutHintsToCenter Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (LayoutHintsToCenter Window)) Source #

pureModifier :: LayoutHintsToCenter Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (LayoutHintsToCenter Window)) Source #

hook :: LayoutHintsToCenter Window -> X () Source #

unhook :: LayoutHintsToCenter Window -> X () Source #

modifierDescription :: LayoutHintsToCenter Window -> String Source #

modifyDescription :: LayoutClass l Window => LayoutHintsToCenter Window -> l Window -> String Source #

LayoutModifier LayoutHints Window Source # 

Methods

modifyLayout :: LayoutClass l Window => LayoutHints Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => LayoutHints Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (LayoutHints Window)) Source #

handleMess :: LayoutHints Window -> SomeMessage -> X (Maybe (LayoutHints Window)) Source #

handleMessOrMaybeModifyIt :: LayoutHints Window -> SomeMessage -> X (Maybe (Either (LayoutHints Window) SomeMessage)) Source #

pureMess :: LayoutHints Window -> SomeMessage -> Maybe (LayoutHints Window) Source #

redoLayout :: LayoutHints Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (LayoutHints Window)) Source #

pureModifier :: LayoutHints Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (LayoutHints Window)) Source #

hook :: LayoutHints Window -> X () Source #

unhook :: LayoutHints Window -> X () Source #

modifierDescription :: LayoutHints Window -> String Source #

modifyDescription :: LayoutClass l Window => LayoutHints Window -> l Window -> String Source #

(Read p, Show p, SetsAmbiguous p) => LayoutModifier (ConfigurableBorder p) Window Source # 

Methods

modifyLayout :: LayoutClass l Window => ConfigurableBorder p Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => ConfigurableBorder p Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (ConfigurableBorder p Window)) Source #

handleMess :: ConfigurableBorder p Window -> SomeMessage -> X (Maybe (ConfigurableBorder p Window)) Source #

handleMessOrMaybeModifyIt :: ConfigurableBorder p Window -> SomeMessage -> X (Maybe (Either (ConfigurableBorder p Window) SomeMessage)) Source #

pureMess :: ConfigurableBorder p Window -> SomeMessage -> Maybe (ConfigurableBorder p Window) Source #

redoLayout :: ConfigurableBorder p Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (ConfigurableBorder p Window)) Source #

pureModifier :: ConfigurableBorder p Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (ConfigurableBorder p Window)) Source #

hook :: ConfigurableBorder p Window -> X () Source #

unhook :: ConfigurableBorder p Window -> X () Source #

modifierDescription :: ConfigurableBorder p Window -> String Source #

modifyDescription :: LayoutClass l Window => ConfigurableBorder p Window -> l Window -> String Source #

(LayoutClass l Window, Read (l Window)) => LayoutModifier (Drawer l) Window Source # 

Methods

modifyLayout :: LayoutClass l Window => Drawer l Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => Drawer l Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (Drawer l Window)) Source #

handleMess :: Drawer l Window -> SomeMessage -> X (Maybe (Drawer l Window)) Source #

handleMessOrMaybeModifyIt :: Drawer l Window -> SomeMessage -> X (Maybe (Either (Drawer l Window) SomeMessage)) Source #

pureMess :: Drawer l Window -> SomeMessage -> Maybe (Drawer l Window) Source #

redoLayout :: Drawer l Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (Drawer l Window)) Source #

pureModifier :: Drawer l Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (Drawer l Window)) Source #

hook :: Drawer l Window -> X () Source #

unhook :: Drawer l Window -> X () Source #

modifierDescription :: Drawer l Window -> String Source #

modifyDescription :: LayoutClass l Window => Drawer l Window -> l Window -> String Source #

(Read (l Window), Show (l Window), LayoutClass l Window) => LayoutModifier (Sublayout l) Window Source # 

Methods

modifyLayout :: LayoutClass l Window => Sublayout l Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => Sublayout l Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (Sublayout l Window)) Source #

handleMess :: Sublayout l Window -> SomeMessage -> X (Maybe (Sublayout l Window)) Source #

handleMessOrMaybeModifyIt :: Sublayout l Window -> SomeMessage -> X (Maybe (Either (Sublayout l Window) SomeMessage)) Source #

pureMess :: Sublayout l Window -> SomeMessage -> Maybe (Sublayout l Window) Source #

redoLayout :: Sublayout l Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (Sublayout l Window)) Source #

pureModifier :: Sublayout l Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (Sublayout l Window)) Source #

hook :: Sublayout l Window -> X () Source #

unhook :: Sublayout l Window -> X () Source #

modifierDescription :: Sublayout l Window -> String Source #

modifyDescription :: LayoutClass l Window => Sublayout l Window -> l Window -> String Source #

(DecorationStyle ds Window, Shrinker s) => LayoutModifier (Decoration ds s) Window Source #

The long LayoutModifier instance for the Decoration type.

In redoLayout we check the state: if there is no state we initialize it.

The state is diffed against the list of windows produced by the underlying layout: removed windows get deleted and new ones decorated by createDecos, which will call decorate to decide if a window must be given a Rectangle, in which case a decoration window will be created.

After that we resync the updated state with the windows' list and then we process the resynced stated (as we do with a new state).

First we map the decoration windows, we update each decoration to reflect any decorated window's change, and we insert, in the list of windows and rectangles returned by the underlying layout, the decoration for each window. This way xmonad will restack the decorations and their windows accordingly. At the end we remove invisible/stacked windows.

Message handling is quite simple: when needed we release the state component of the Decoration LayoutModifier. Otherwise we call handleEvent, which will call the appropriate DecorationStyle methods to perform its tasks.

Methods

modifyLayout :: LayoutClass l Window => Decoration ds s Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => Decoration ds s Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (Decoration ds s Window)) Source #

handleMess :: Decoration ds s Window -> SomeMessage -> X (Maybe (Decoration ds s Window)) Source #

handleMessOrMaybeModifyIt :: Decoration ds s Window -> SomeMessage -> X (Maybe (Either (Decoration ds s Window) SomeMessage)) Source #

pureMess :: Decoration ds s Window -> SomeMessage -> Maybe (Decoration ds s Window) Source #

redoLayout :: Decoration ds s Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (Decoration ds s Window)) Source #

pureModifier :: Decoration ds s Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (Decoration ds s Window)) Source #

hook :: Decoration ds s Window -> X () Source #

unhook :: Decoration ds s Window -> X () Source #

modifierDescription :: Decoration ds s Window -> String Source #

modifyDescription :: LayoutClass l Window => Decoration ds s Window -> l Window -> String Source #

data ModifiedLayout m l a Source #

A ModifiedLayout is simply a container for a layout modifier combined with an underlying layout. It is, of course, itself a layout (i.e. an instance of LayoutClass).

Constructors

ModifiedLayout (m a) (l a) 

Instances

(LayoutModifier m a, LayoutClass l a) => LayoutClass (ModifiedLayout m l) a Source #

The LayoutClass instance for a ModifiedLayout defines the semantics of a LayoutModifier applied to an underlying layout.

Methods

runLayout :: Workspace WorkspaceId (ModifiedLayout m l a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (ModifiedLayout m l a))

doLayout :: ModifiedLayout m l a -> Rectangle -> Stack a -> X ([(a, Rectangle)], Maybe (ModifiedLayout m l a))

pureLayout :: ModifiedLayout m l a -> Rectangle -> Stack a -> [(a, Rectangle)]

emptyLayout :: ModifiedLayout m l a -> Rectangle -> X ([(a, Rectangle)], Maybe (ModifiedLayout m l a))

handleMessage :: ModifiedLayout m l a -> SomeMessage -> X (Maybe (ModifiedLayout m l a))

pureMessage :: ModifiedLayout m l a -> SomeMessage -> Maybe (ModifiedLayout m l a)

description :: ModifiedLayout m l a -> String

(Read (m a), Read (l a)) => Read (ModifiedLayout m l a) Source # 
(Show (m a), Show (l a)) => Show (ModifiedLayout m l a) Source # 

Methods

showsPrec :: Int -> ModifiedLayout m l a -> ShowS #

show :: ModifiedLayout m l a -> String #

showList :: [ModifiedLayout m l a] -> ShowS #