Provides bindings to cycle forward or backward through the list of
workspaces, to move windows between workspaces, and to cycle
between screens. More general combinators provide ways to cycle
through workspaces in various orders, to only cycle through some
subset of workspaces, and to cycle by more than one workspace at a
time.
Note that this module now subsumes the functionality of the former
XMonad.Actions.RotView. Former users of rotView can simply replace
rotView True with moveTo Next NonEmptyWS, and so on.
If you want to exactly replicate the action of rotView (cycling
through workspace in order lexicographically by tag, instead of in
the order specified in the config), it can be implemented as:
rotView b = do t <- findWorkspace getSortByTag (bToDir b) NonEmptyWS 1
windows . greedyView $ t
where bToDir True = Next
bToDir False = Prev
|
You can use this module with the following in your ~/.xmonad/xmonad.hs file:
import XMonad.Actions.CycleWS
-- a basic CycleWS setup
, ((modMask x, xK_Down), nextWS)
, ((modMask x, xK_Up), prevWS)
, ((modMask x .|. shiftMask, xK_Down), shiftToNext)
, ((modMask x .|. shiftMask, xK_Up), shiftToPrev)
, ((modMask x, xK_Right), nextScreen)
, ((modMask x, xK_Left), prevScreen)
, ((modMask x .|. shiftMask, xK_Right), shiftNextScreen)
, ((modMask x .|. shiftMask, xK_Left), shiftPrevScreen)
, ((modMask x, xK_z), toggleWS)
If you want to follow the moved window, you can use both actions:
, ((modMask x .|. shiftMask, xK_Down), shiftToNext >> nextWS)
, ((modMask x .|. shiftMask, xK_Up), shiftToPrev >> prevWS)
You can also get fancier with moveTo, shiftTo, and findWorkspace.
For example:
, ((modMask x , xK_f), moveTo Next EmptyWS) -- find a free workspace
, ((modMask x .|. controlMask, xK_Right), -- a crazy keybinding!
do t <- findWorkspace getXineramaWsCompare Next NonEmptyWS 2
windows . view $ t )
For detailed instructions on editing your key bindings, see
XMonad.Doc.Extending.
|
Given a function s to sort workspaces, a direction dir, a
predicate p on workspaces, and an integer n, find the tag of
the workspace which is n away from the current workspace in
direction dir (wrapping around if necessary), among those
workspaces, sorted by s, which satisfy p.
For some useful workspace sorting functions, see
XMonad.Util.WorkspaceCompare.
For ideas of what to do with a workspace tag once obtained, note
that moveTo and shiftTo are implemented by applying (>>=
(windows . greedyView)) and (>>= (windows . shift)), respectively,
to the output of findWorkspace.
|