Copyright | (c) 2009 Adam Vogt 2007 James Webb |
---|---|
License | BSD-style (see xmonad/LICENSE) |
Maintainer | vogt.adam<at>gmail.com |
Stability | unstable |
Portability | unportable |
Safe Haskell | None |
Language | Haskell2010 |
Based on MosaicAlt, but aspect ratio messages always change the aspect ratios, and rearranging the window stack changes the window sizes.
Usage
You can use this module with the following in your xmonad.hs
:
import XMonad.Layout.Mosaic
Then edit your layoutHook
by adding the Mosaic layout:
myLayout = mosaic 2 [3,2] ||| Full ||| etc.. main = xmonad $ def { layoutHook = myLayout }
Unfortunately, infinite lists break serialization, so don't use them. And if
the list is too short, it is extended with ++ repeat 1
, which covers the
main use case.
To change the choice in aspect ratio and the relative sizes of windows, add to your keybindings:
, ((modm, xK_a), sendMessage Taller) , ((modm, xK_z), sendMessage Wider)
, ((modm, xK_r), sendMessage Reset)
For more detailed instructions on editing the layoutHook see the tutorial and XMonad.Doc.Extending.
Instances
Message Aspect Source # | |
Defined in XMonad.Layout.Mosaic |
mosaic :: Rational -> [Rational] -> Mosaic a Source #
The relative magnitudes (the sign is ignored) of the rational numbers in the second argument determine the relative areas that the windows receive. The first number represents the size of the master window, the second is for the next window in the stack, and so on.
The list is extended with ++ repeat 1
, so mosaic 1.5 []
is like a
resizable grid.
The first parameter is the multiplicative factor to use when responding to
the Expand
message.
changeMaster :: (Rational -> Rational) -> X () Source #
These sample functions are meant to be applied to the list of window sizes
through the SlopeMod
message.
changeFocused :: (Rational -> Rational) -> X () Source #
Apply a function to the Rational that represents the currently focused window.
Expand
and Shrink
messages are responded to with changeFocused
(*delta)
or changeFocused (delta/)
where delta
is the first argument to
mosaic
.
This is exported because other functions (ex. const 1
, (+1)
) may be
useful to apply to the current area.
Instances
LayoutClass Mosaic a Source # | |
Defined in XMonad.Layout.Mosaic runLayout :: Workspace WorkspaceId (Mosaic a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (Mosaic a)) # doLayout :: Mosaic a -> Rectangle -> Stack a -> X ([(a, Rectangle)], Maybe (Mosaic a)) # pureLayout :: Mosaic a -> Rectangle -> Stack a -> [(a, Rectangle)] # emptyLayout :: Mosaic a -> Rectangle -> X ([(a, Rectangle)], Maybe (Mosaic a)) # handleMessage :: Mosaic a -> SomeMessage -> X (Maybe (Mosaic a)) # pureMessage :: Mosaic a -> SomeMessage -> Maybe (Mosaic a) # description :: Mosaic a -> String # | |
Read (Mosaic a) Source # | |
Show (Mosaic a) Source # | |