Copyright | (c) Edward Z. Yang |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | <ezyang@cs.stanford.edu> |
Stability | unstable |
Portability | unportable |
Safe Haskell | None |
Language | Haskell2010 |
Configure layouts based on the width of your screen; use your favorite multi-column layout for wide screens and a full-screen layout for small ones.
Synopsis
- data PerScreen (l1 :: Type -> Type) (l2 :: Type -> Type) a
- ifWider :: (LayoutClass l1 a, LayoutClass l2 a) => Dimension -> l1 a -> l2 a -> PerScreen l1 l2 a
Usage
You can use this module by importing it into your xmonad.hs
file:
import XMonad.Layout.PerScreen
and modifying your layoutHook as follows (for example):
layoutHook = ifWider 1280 (Tall 1 (3/100) (1/2) ||| Full) Full
Replace any of the layouts with any arbitrarily complicated layout. ifWider can also be used inside other layout combinators.
data PerScreen (l1 :: Type -> Type) (l2 :: Type -> Type) a Source #
Instances
(LayoutClass l1 a, LayoutClass l2 a, Show a) => LayoutClass (PerScreen l1 l2) a Source # | |
Defined in XMonad.Layout.PerScreen runLayout :: Workspace WorkspaceId (PerScreen l1 l2 a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (PerScreen l1 l2 a)) # doLayout :: PerScreen l1 l2 a -> Rectangle -> Stack a -> X ([(a, Rectangle)], Maybe (PerScreen l1 l2 a)) # pureLayout :: PerScreen l1 l2 a -> Rectangle -> Stack a -> [(a, Rectangle)] # emptyLayout :: PerScreen l1 l2 a -> Rectangle -> X ([(a, Rectangle)], Maybe (PerScreen l1 l2 a)) # handleMessage :: PerScreen l1 l2 a -> SomeMessage -> X (Maybe (PerScreen l1 l2 a)) # pureMessage :: PerScreen l1 l2 a -> SomeMessage -> Maybe (PerScreen l1 l2 a) # description :: PerScreen l1 l2 a -> String # | |
(Read (l1 a), Read (l2 a)) => Read (PerScreen l1 l2 a) Source # | |
(Show (l1 a), Show (l2 a)) => Show (PerScreen l1 l2 a) Source # | |
:: (LayoutClass l1 a, LayoutClass l2 a) | |
=> Dimension | target screen width |
-> l1 a | layout to use when the screen is wide enough |
-> l2 a | layout to use otherwise |
-> PerScreen l1 l2 a |