xmonad-contrib-0.11.1: Third party extensions for xmonad

Portability | unportable
Stability | unstable
Maintainer | Nelson Elhage <nelhage@mit.edu>
Safe Haskell | None

XMonad.Actions.PhysicalScreens

Contents

- Usage

Description

Manipulate screens ordered by physical location instead of ID

Synopsis

- newtype PhysicalScreen = P Int
- getScreen :: PhysicalScreen -> X (Maybe ScreenId)
- viewScreen :: PhysicalScreen -> X ()
- sendToScreen :: PhysicalScreen -> X ()
- onNextNeighbour :: (WorkspaceId -> WindowSet -> WindowSet) -> X ()
- onPrevNeighbour :: (WorkspaceId -> WindowSet -> WindowSet) -> X ()

# Usage

This module allows you name Xinerama screens from XMonad using their physical location relative to each other (as reported by Xinerama), rather than their `ScreenID` s, which are arbitrarily determined by your X server and graphics hardware.

Screens are ordered by the upper-left-most corner, from top-to-bottom and then left-to-right.

Example usage in your `~/.xmonad/xmonad.hs` file:

     import XMonad.Actions.PhysicalScreens

     , ((modMask, xK_a), onPrevNeighbour W.view)
     , ((modMask, xK_o), onNextNeighbour W.view)
     , ((modMask .|. shiftMask, xK_a), onPrevNeighbour W.shift)
     , ((modMask .|. shiftMask, xK_o), onNextNeighbour W.shift)

     --
     -- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
     -- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
     --
     [((modm .|. mask, key), f sc)
         | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
         , (f, mask) <- [(viewScreen, 0), (sendToScreen, shiftMask)]]

For detailed instructions on editing your key bindings, see XMonad.Doc.Extending.

newtype PhysicalScreen

The type of the index of a screen by location

Constructors

P Int |

Instances

Enum PhysicalScreen |
Eq PhysicalScreen |
Integral PhysicalScreen |
Num PhysicalScreen |
Ord PhysicalScreen |
Read PhysicalScreen |
Real PhysicalScreen |
Show PhysicalScreen |

getScreen :: PhysicalScreen -> X (Maybe ScreenId)

Translate a physical screen index to a ScreenId

viewScreen :: PhysicalScreen -> X ()

Switch to a given physical screen

sendToScreen :: PhysicalScreen -> X ()

Send the active window to a given physical screen

onNextNeighbour :: (WorkspaceId -> WindowSet -> WindowSet) -> X ()

Apply operation on a WindowSet with the WorkspaceId of the next screen in the physical order as parameter.

onPrevNeighbour :: (WorkspaceId -> WindowSet -> WindowSet) -> X ()

Apply operation on a WindowSet with the WorkspaceId of the previous screen in the physical order as parameter.