xmonad-0.11: A tiling window manager

Portabilitynot portable, Typeable deriving, mtl, posix
Stabilityunstable
Maintainerdons@cse.unsw.edu.au
Safe HaskellSafe-Infered

XMonad.Operations

Description

Operations.

Synopsis

Documentation

manage :: Window -> X ()Source

Window manager operations manage. Add a new window to be managed in the current workspace. Bring it into focus.

Whether the window is already managed, or not, it is mapped, has its border set, and its event mask set.

unmanage :: Window -> X ()Source

unmanage. A window no longer exists, remove it from the window list, on whatever workspace it is.

killWindow :: Window -> X ()Source

Kill the specified window. If we do kill it, we'll get a delete notify back from X.

There are two ways to delete a window. Either just kill it, or if it supports the delete protocol, send a delete event (e.g. firefox)

kill :: X ()Source

Kill the currently focused client.

windows :: (WindowSet -> WindowSet) -> X ()Source

windows. Modify the current window list with a pure function, and refresh

scaleRationalRect :: Rectangle -> RationalRect -> RectangleSource

Produce the actual rectangle from a screen and a ratio on that screen.

setWMState :: Window -> Int -> X ()Source

setWMState. set the WM_STATE property

hide :: Window -> X ()Source

hide. Hide a window by unmapping it, and setting Iconified.

reveal :: Window -> X ()Source

reveal. Show a window by mapping it and setting Normal this is harmless if the window was already visible

clientMask :: EventMaskSource

The client events that xmonad is interested in

setInitialProperties :: Window -> X ()Source

Set some properties when we initially gain control of a window

refresh :: X ()Source

refresh. Render the currently visible workspaces, as determined by the StackSet. Also, set focus to the focused window.

This is our view operation (MVC), in that it pretty prints our model with X calls.

clearEvents :: EventMask -> X ()Source

clearEvents. Remove all events of a given type from the event queue.

tileWindow :: Window -> Rectangle -> X ()Source

tileWindow. Moves and resizes w such that it fits inside the given rectangle, including its border.

containedIn :: Rectangle -> Rectangle -> BoolSource

Returns True if the first rectangle is contained within, but not equal to the second.

nubScreens :: [Rectangle] -> [Rectangle]Source

Given a list of screens, remove all duplicated screens and screens that are entirely contained within another.

getCleanedScreenInfo :: MonadIO m => Display -> m [Rectangle]Source

Cleans the list of screens according to the rules documented for nubScreens.

rescreen :: X ()Source

rescreen. The screen configuration may have changed (due to xrandr), update the state and refresh the screen, and reset the gap.

setButtonGrab :: Bool -> Window -> X ()Source

setButtonGrab. Tell whether or not to intercept clicks on a given window

setTopFocus :: X ()Source

Set the focus to the window on top of the stack, or root

focus :: Window -> X ()Source

Set focus explicitly to window w if it is managed by us, or root. This happens if X notices we've moved the mouse (and perhaps moved the mouse to a new screen).

setFocusX :: Window -> X ()Source

Call X to set the keyboard focus details.

sendMessage :: Message a => a -> X ()Source

Throw a message to the current LayoutClass possibly modifying how we layout the windows, then refresh.

broadcastMessage :: Message a => a -> X ()Source

Send a message to all layouts, without refreshing.

sendMessageWithNoRefresh :: Message a => a -> Workspace WorkspaceId (Layout Window) Window -> X ()Source

Send a message to a layout, without refreshing.

updateLayout :: WorkspaceId -> Maybe (Layout Window) -> X ()Source

Update the layout field of a workspace

setLayout :: Layout Window -> X ()Source

Set the layout of the currently viewed workspace

screenWorkspace :: ScreenId -> X (Maybe WorkspaceId)Source

Return workspace visible on screen sc, or Nothing.

withFocused :: (Window -> X ()) -> X ()Source

Apply an X operation to the currently focused window, if there is one.

isClient :: Window -> X BoolSource

True if window is under management by us

extraModifiers :: X [KeyMask]Source

Combinations of extra modifier masks we need to grab keys/buttons for. (numlock and capslock)

cleanMask :: KeyMask -> X KeyMaskSource

Strip numlock/capslock from a mask

initColor :: Display -> String -> IO (Maybe Pixel)Source

Get the Pixel value for a named color

restart :: String -> Bool -> X ()Source

restart name resume. Attempt to restart xmonad by executing the program name. If resume is True, restart with the current window state. When executing another window manager, resume should be False.

floatLocation :: Window -> X (ScreenId, RationalRect)Source

Floating layer support

Given a window, find the screen it is located on, and compute the geometry of that window wrt. that screen.

pointScreen :: Position -> Position -> X (Maybe (Screen WorkspaceId (Layout Window) Window ScreenId ScreenDetail))Source

Given a point, determine the screen (if any) that contains it.

pointWithin :: Position -> Position -> Rectangle -> BoolSource

pointWithin x y r returns True if the (x, y) co-ordinate is within r.

float :: Window -> X ()Source

Make a tiled window floating, using its suggested rectangle

mouseDrag :: (Position -> Position -> X ()) -> X () -> X ()Source

Accumulate mouse motion events

mouseMoveWindow :: Window -> X ()Source

XXX comment me

mouseResizeWindow :: Window -> X ()Source

XXX comment me

type D = (Dimension, Dimension)Source

Support for window size hints

mkAdjust :: Window -> X (D -> D)Source

Given a window, build an adjuster function that will reduce the given dimensions according to the window's border width and size hints.

applySizeHints :: Integral a => Dimension -> SizeHints -> (a, a) -> DSource

Reduce the dimensions if needed to comply to the given SizeHints, taking window borders into account.

applySizeHintsContents :: Integral a => SizeHints -> (a, a) -> DSource

Reduce the dimensions if needed to comply to the given SizeHints.

applySizeHints' :: SizeHints -> D -> DSource

XXX comment me

applyAspectHint :: (D, D) -> D -> DSource

Reduce the dimensions so their aspect ratio falls between the two given aspect ratios.

applyResizeIncHint :: D -> D -> DSource

Reduce the dimensions so they are a multiple of the size increments.

applyMaxSizeHint :: D -> D -> DSource

Reduce the dimensions if they exceed the given maximum dimensions.