XMonad.Layout.LayoutScreens

xmonad-contrib-0.18.1: Community-maintained extensions for xmonad

Copyright | (c) David Roundy <droundy@darcs.net>
License | BSD3-style (see LICENSE)
Maintainer | none
Stability | unstable
Portability | unportable
Safe Haskell | None
Language | Haskell2010

XMonad.Layout.LayoutScreens

Contents

- Usage

Description

Divide a single screen into multiple screens.

Synopsis

- layoutScreens :: LayoutClass l Int => Int -> l Int -> X ()
- layoutSplitScreen :: LayoutClass l Int => Int -> l Int -> X ()
- fixedLayout :: [Rectangle] -> FixedLayout a
- data FixedLayout a

# Usage

This module allows you to pretend that you have more than one screen by dividing a single screen into multiple screens that xmonad will treat as separate screens. This should definitely be useful for testing the behavior of xmonad under Xinerama, and it's possible that it'd also be handy for use as an actual user interface, if you've got a very large screen and long for greater flexibility (e.g. being able to see your email window at all times, a crude mimic of sticky windows).

You can use this module with the following in your `xmonad.hs` file:

    import XMonad.Layout.LayoutScreens
    import XMonad.Layout.TwoPane

Then add some keybindings; for example:

      , ((modm .|. shiftMask,                 xK_space), layoutScreens 2 (TwoPane 0.5 0.5))
      , ((modm .|. controlMask .|. shiftMask, xK_space), rescreen)

Another example use would be to handle a scenario where xrandr didn't work properly (e.g. a VNC X server in my case) and you want to be able to resize your screen (e.g. to match the size of a remote VNC client):

    import XMonad.Layout.LayoutScreens

      , ((modm .|. shiftMask, xK_space),
           layoutScreens 1 (fixedLayout [Rectangle 0 0 1024 768]))
      , ((modm .|. controlMask .|. shiftMask, xK_space), rescreen)

For detailed instructions on editing your key bindings, see the tutorial.

layoutScreens :: LayoutClass l Int => Int -> l Int -> X () #

Modify all screens.

layoutSplitScreen :: LayoutClass l Int => Int -> l Int -> X () #

Modify current screen.

fixedLayout :: [Rectangle] -> FixedLayout a #

data FixedLayout a #

#### Instances

Instances details

LayoutClass FixedLayout a # |
Instance details Defined in XMonad.Layout.LayoutScreens Methods runLayout :: Workspace WorkspaceId (FixedLayout a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (FixedLayout a)) # doLayout :: FixedLayout a -> Rectangle -> Stack a -> X ([(a, Rectangle)], Maybe (FixedLayout a)) # pureLayout :: FixedLayout a -> Rectangle -> Stack a -> [(a, Rectangle)] # emptyLayout :: FixedLayout a -> Rectangle -> X ([(a, Rectangle)], Maybe (FixedLayout a)) # handleMessage :: FixedLayout a -> SomeMessage -> X (Maybe (FixedLayout a)) # pureMessage :: FixedLayout a -> SomeMessage -> Maybe (FixedLayout a) # description :: FixedLayout a -> String #
Read (FixedLayout a) # |
Instance details Defined in XMonad.Layout.LayoutScreens Methods readsPrec :: Int -> ReadS (FixedLayout a) # readList :: ReadS [FixedLayout a] # readPrec :: ReadPrec (FixedLayout a) # readListPrec :: ReadPrec [FixedLayout a] #
Show (FixedLayout a) # |
Instance details Defined in XMonad.Layout.LayoutScreens Methods showsPrec :: Int -> FixedLayout a -> ShowS # show :: FixedLayout a -> String # showList :: [FixedLayout a] -> ShowS #