 | xmonad-contrib-0.9.1: Third party extensions for xmonad | Contents | Index |
|
XMonad.Layout.Decoration | Portability | unportable | Stability | unstable | Maintainer | andrea.rossato@unibz.it |
|
|
|
|
|
Description |
A layout modifier and a class for easily creating decorated
layouts.
|
|
Synopsis |
|
|
|
|
Usage:
|
|
This module is intended for layout developers, who want to decorate
their layouts. End users will not find here very much for them.
For examples of DecorationStyle instances you can have a look at
XMonad.Layout.SimpleDecoration, XMonad.Layout.Tabbed,
XMonad.Layout.DwmStyle, or XMonad.Layout.TabBarDecoration.
|
|
decoration :: (DecorationStyle ds a, Shrinker s) => s -> Theme -> ds a -> l a -> ModifiedLayout (Decoration ds s) l a |
A layout modifier that, with a Shrinker, a Theme, a
DecorationStyle, and a layout, will decorate this layout
according to the decoration style provided.
For some usage examples see XMonad.Layout.DecorationMadness.
|
|
data Theme |
A Theme is a record of colors, font etc., to customize a
DecorationStyle.
For a collection of Themes see XMonad.Util.Themes
| Constructors | Theme | | activeColor :: String | Color of the active window
| inactiveColor :: String | Color of the inactive window
| urgentColor :: String | Color of the urgent window
| activeBorderColor :: String | Color of the border of the active window
| inactiveBorderColor :: String | Color of the border of the inactive window
| urgentBorderColor :: String | Color of the border of the urgent window
| activeTextColor :: String | Color of the text of the active window
| inactiveTextColor :: String | Color of the text of the inactive window
| urgentTextColor :: String | Color of the text of the urgent window
| fontName :: String | Font name
| decoWidth :: Dimension | Maximum width of the decorations (if supported by the DecorationStyle)
| decoHeight :: Dimension | Height of the decorations
|
|
| Instances | |
|
|
defaultTheme :: Theme |
The default xmonad Theme.
|
|
data Decoration ds s a |
The Decoration LayoutModifier. This data type is an instance
of the LayoutModifier class. This data type will be passed,
together with a layout, to the ModifiedLayout type constructor
to modify the layout by adding decorations according to a
DecorationStyle.
| Instances | (DecorationStyle ds Window, Shrinker s) => LayoutModifier (Decoration ds s) Window | 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.
| (Read s, Read (ds a)) => Read (Decoration ds s a) | | (Show s, Show (ds a)) => Show (Decoration ds s a) | |
|
|
|
data DecorationMsg |
A Decoration layout modifier will handle SetTheme, a message
to dynamically change the decoration Theme.
| Constructors | | Instances | |
|
|
class (Read (ds a), Show (ds a), Eq a) => DecorationStyle ds a where |
The DecorationStyle class, defines methods used in the
implementation of the Decoration LayoutModifier instance. A
type instance of this class is passed to the Decoration type in
order to decorate a layout, by using these methods.
| | Methods | describeDeco :: ds a -> String | The description that the Decoration modifier will display.
| | shrink :: ds a -> Rectangle -> Rectangle -> Rectangle | Shrink the window's rectangle when applying a decoration.
| | decorationEventHook :: ds a -> DecorationState -> Event -> X () | The decoration event hook, where the
decorationMouseFocusHook and decorationMouseDragHook are
called. If you reimplement it those methods will not be
called.
| | decorationMouseFocusHook :: ds a -> DecorationState -> Event -> X () | This method is called when the user clicks the pointer over
the decoration.
| | decorationMouseDragHook :: ds a -> DecorationState -> Event -> X () | This method is called when the user starts grabbing the
decoration.
| | pureDecoration :: ds a -> Dimension -> Dimension -> Rectangle -> Stack a -> [(a, Rectangle)] -> (a, Rectangle) -> Maybe Rectangle | The pure version of the main method, decorate.
| | decorate :: ds a -> Dimension -> Dimension -> Rectangle -> Stack a -> [(a, Rectangle)] -> (a, Rectangle) -> X (Maybe Rectangle) | Given the theme's decoration width and height, the screen
rectangle, the windows stack, the list of windows and
rectangles returned by the underlying layout and window to be
decorated, tupled with its rectangle, produce a Just
Rectangle or Nothing if the window is not to be decorated.
|
| | Instances | |
|
|
data DefaultDecoration a |
The default DecorationStyle, with just the default methods'
implementations.
| Constructors | | Instances | |
|
|
class (Read s, Show s) => Shrinker s where |
| Methods | | | Instances | |
|
|
data DefaultShrinker |
Instances | |
|
|
shrinkText :: DefaultShrinker |
|
data CustomShrink |
Constructors | | Instances | |
|
|
shrinkWhile :: (String -> [String]) -> (String -> X Bool) -> String -> X String |
|
isInStack :: Eq a => Stack a -> a -> Bool |
True if the window is in the Stack. The Window comes second
to facilitate list processing, even though w `isInStack` s won't
work...;)
|
|
isVisible :: Rectangle -> [Rectangle] -> Bool |
Given a Rectangle and a list of Rectangles is True if the
Rectangle is not completely contained by any Rectangle of the
list.
|
|
isInvisible :: Rectangle -> [Rectangle] -> Bool |
The contrary of isVisible.
|
|
isWithin :: Rectangle -> Rectangle -> Bool |
True is the first Rectangle is totally within the second
Rectangle.
|
|
fi :: (Integral a, Num b) => a -> b |
Short-hand for fromIntegral
|
|
findWindowByDecoration :: Window -> DecorationState -> Maybe (OrigWin, (Window, Maybe Rectangle)) |
|
module XMonad.Layout.LayoutModifier |
|
Produced by Haddock version 2.7.2 |