|
XMonad.Actions.CycleWS | Portability | unportable | Stability | unstable | Maintainer | Joachim Breitner <mail@joachim-breitner.de> |
|
|
|
|
|
Description |
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
|
|
Synopsis |
|
|
|
|
Usage
|
|
You can use this module with the following in your ~/.xmonad/xmonad.hs file:
import XMonad.Actions.CycleWS
-- a basic CycleWS setup
, ((modm, xK_Down), nextWS)
, ((modm, xK_Up), prevWS)
, ((modm .|. shiftMask, xK_Down), shiftToNext)
, ((modm .|. shiftMask, xK_Up), shiftToPrev)
, ((modm, xK_Right), nextScreen)
, ((modm, xK_Left), prevScreen)
, ((modm .|. shiftMask, xK_Right), shiftNextScreen)
, ((modm .|. shiftMask, xK_Left), shiftPrevScreen)
, ((modm, xK_z), toggleWS)
If you want to follow the moved window, you can use both actions:
, ((modm .|. shiftMask, xK_Down), shiftToNext >> nextWS)
, ((modm .|. shiftMask, xK_Up), shiftToPrev >> prevWS)
You can also get fancier with moveTo, shiftTo, and findWorkspace.
For example:
, ((modm , xK_f), moveTo Next EmptyWS) -- find a free workspace
, ((modm .|. controlMask, xK_Right), -- a crazy keybinding!
do t <- findWorkspace getSortByXineramaRule Next NonEmptyWS 2
windows . view $ t )
For detailed instructions on editing your key bindings, see
XMonad.Doc.Extending.
|
|
Moving between workspaces
|
|
The following commands for moving the view and windows between
workspaces are somewhat inflexible, but are very simple and probably
Do The Right Thing for most users.
All of the commands in this section cycle through workspaces in the
order in which they are given in your config.
|
|
|
Switch to the next workspace.
|
|
|
Switch to the previous workspace.
|
|
|
Move the focused window to the next workspace.
|
|
|
Move the focused window to the previous workspace.
|
|
Toggling the previous workspace
|
|
|
|
|
Toggle to the workspace displayed previously.
|
|
|
greedyView a workspace, or if already there, view
the previously displayed workspace ala weechat. Change greedyView to
toggleOrView in your workspace bindings as in the view
faq at http://haskell.org/haskellwiki/Xmonad/Frequently_asked_questions.
For more flexibility see toggleOrDoSkip.
|
|
Moving between screens (xinerama)
|
|
|
View next screen
|
|
|
View prev screen
|
|
|
Move focused window to workspace on next screen
|
|
|
Move focused window to workspace on prev screen
|
|
|
Swap current screen with next screen
|
|
|
Swap current screen with previous screen
|
|
Moving between workspaces, take two!
|
|
A few more general commands are also provided, which allow cycling
through subsets of workspaces.
For example,
moveTo Next EmptyWS
will move to the first available workspace with no windows, and
shiftTo Prev (WSIs $ return (('p' `elem`) . tag))
will move the focused window backwards to the first workspace containing
the letter p in its name. =)
|
|
|
One-dimensional directions:
| Constructors | |
|
|
|
What type of workspaces should be included in the cycle?
| Constructors | EmptyWS | cycle through empty workspaces
| NonEmptyWS | cycle through non-empty workspaces
| HiddenWS | cycle through non-visible workspaces
| HiddenNonEmptyWS | cycle through non-empty non-visible workspaces
| AnyWS | cycle through all workspaces
| WSIs (X (WindowSpace -> Bool)) | cycle through workspaces satisfying
an arbitrary predicate
|
|
|
|
|
Move the currently focused window to the next workspace in the
given direction that satisfies the given condition.
|
|
|
View the next workspace in the given direction that satisfies
the given condition.
|
|
The mother-combinator
|
|
|
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.
|
|
|
Allows ignoring listed workspace tags (such as scratchpad's "NSP") while
finding the previously displayed workspace, or choice of different actions,
like view, shift, etc. For example:
import qualified XMonad.StackSet as W
import XMonad.Actions.CycleWS
-- toggleOrView for people who prefer view to greedyView
toggleOrView' = toggleOrDoSkip [] W.view
-- toggleOrView ignoring scratchpad and named scratchpad workspace
toggleOrViewNoSP = toggleOrDoSkip ["NSP"] W.greedyView
|
|
|
List difference (\\) for workspaces and tags. Removes workspaces
matching listed tags from the given workspace list.
|
|
Produced by Haddock version 2.6.0 |