| xmonad-contrib-0.9.1: Third party extensions for xmonad | Source code | Contents | Index

XMonad.Actions.OnScreen

Portability | unportable
Stability | unstable
Maintainer | Nils Schweinsberg <mail@n-sch.de>

Contents

Usage

Description
Control workspaces on different screens (in xinerama mode).
Synopsis

onScreen :: (Eq sid, Eq i) => (i -> StackSet i l a sid sd -> StackSet i l a sid sd) -> sid -> i -> StackSet i l a sid sd -> StackSet i l a sid sd
viewOnScreen :: (Eq sid, Eq i) => sid -> i -> StackSet i l a sid sd -> StackSet i l a sid sd
greedyViewOnScreen :: (Eq sid, Eq i) => sid -> i -> StackSet i l a sid sd -> StackSet i l a sid sd
onlyOnScreen :: (Eq sid, Eq i) => sid -> i -> StackSet i l a sid sd -> StackSet i l a sid sd

Usage

This module provides an easy way to control, what you see on other screens in xinerama mode without having to focus them. Put this into your `~/.xmonad/xmonad.hs`:

     import XMonad.Actions.OnScreen

Then add the appropriate keybindings, for example replace your current keys to switch the workspaces with this at the bottom of your keybindings:

         ++
         [ ((m .|. modm, k), windows (f i))
           | (i, k) <- zip (workspaces conf) ([xK_1 .. xK_9] ++ [xK_0])
           , (f, m) <- [ (viewOnScreen 0, 0)
                       , (viewOnScreen 1, controlMask)
                       , (greedyView, controlMask .|. shiftMask) ]
         ]

This will provide you with the following keybindings:

- modkey + 1-0: Switch to workspace 1-0 on screen 0
- modkey + control + 1-0: Switch to workspace 1-0 on screen 1
- modkey + control + shift + 1-0: Default greedyView behaviour

A more basic version inside the default keybindings would be:

            , ((modm .|. controlMask, xK_1) windows (viewOnScreen 0 "1"))

where 0 is the first screen and 1 the workspace with the tag 1.

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

onScreen | Source

:: (Eq sid, Eq i) |
=> i -> StackSet i l a sid sd -> StackSet i l a sid sd | default action
-> sid | screen id
-> i | index of the workspace
-> StackSet i l a sid sd | current stack
-> StackSet i l a sid sd |
Switch to the (hidden) workspace with index i on the screen sc. A default function (for example `view` or `greedyView`) will be run if sc is the current screen, no valid screen id or workspace i is already visible.

viewOnScreen | Source

:: (Eq sid, Eq i) |
=> sid | screen id
-> i | index of the workspace
-> StackSet i l a sid sd | current stack
-> StackSet i l a sid sd |
Switch to workspace i on screen sc. If i is visible use `view` to switch focus to the workspace i.

greedyViewOnScreen | Source

:: (Eq sid, Eq i) |
=> sid | screen id
-> i | index of the workspace
-> StackSet i l a sid sd | current stack
-> StackSet i l a sid sd |
Switch to workspace i on screen sc. If i is visible use `greedyView` to switch the current workspace with workspace i.

onlyOnScreen | Source

:: (Eq sid, Eq i) |
=> sid | screen id
-> i | index of the workspace
-> StackSet i l a sid sd | current stack
-> StackSet i l a sid sd |
Switch to workspace i on screen sc. If i is visible do nothing.

Produced by Haddock version 2.4.2