Portability | unportable |
---|---|
Stability | unstable |
Maintainer | Nils Schweinsberg <mail@n-sch.de> |
Control workspaces on different screens (in xinerama mode).
- 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.
:: (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.
:: (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
.
:: (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
.