|Portability||not portable, Typeable deriving, mtl, posix|
|manage :: Window -> X ()|
|unmanage :: Window -> X ()|
|modifyGap :: (Int -> (Int, Int, Int, Int) -> (Int, Int, Int, Int)) -> X ()|
|kill :: X ()|
|windows :: (WindowSet -> WindowSet) -> X ()|
|setWMState :: Window -> Int -> X ()|
|hide :: Window -> X ()|
|reveal :: Window -> X ()|
|clientMask :: EventMask|
|setInitialProperties :: Window -> X ()|
|refresh :: X ()|
|clearEvents :: EventMask -> X ()|
|tileWindow :: Window -> Rectangle -> X ()|
|containedIn :: Rectangle -> Rectangle -> Bool|
|nubScreens :: [Rectangle] -> [Rectangle]|
|getCleanedScreenInfo :: MonadIO m => Display -> m [Rectangle]|
|rescreen :: X ()|
|setButtonGrab :: Bool -> Window -> X ()|
|setTopFocus :: X ()|
|focus :: Window -> X ()|
|setFocusX :: Window -> X ()|
|sendMessage :: Message a => a -> X ()|
|broadcastMessage :: Message a => a -> X ()|
|sendMessageWithNoRefresh :: Message a => a -> Workspace WorkspaceId (Layout Window) Window -> X ()|
|updateLayout :: WorkspaceId -> Maybe (Layout Window) -> X ()|
|setLayout :: Layout Window -> X ()|
|screenWorkspace :: ScreenId -> X (Maybe WorkspaceId)|
|withFocused :: (Window -> X ()) -> X ()|
|isClient :: Window -> X Bool|
|extraModifiers :: X [KeyMask]|
|cleanMask :: KeyMask -> X KeyMask|
|initColor :: Display -> String -> IO (Maybe Pixel)|
|restart :: String -> Bool -> X ()|
|floatLocation :: Window -> X (ScreenId, RationalRect)|
|float :: Window -> X ()|
|mouseDrag :: (Position -> Position -> X ()) -> X () -> X ()|
|mouseMoveWindow :: Window -> X ()|
|mouseResizeWindow :: Window -> X ()|
|type D = (Dimension, Dimension)|
|applySizeHints :: Integral a => SizeHints -> (a, a) -> D|
|applySizeHints' :: SizeHints -> D -> D|
|applyAspectHint :: (D, D) -> D -> D|
|applyResizeIncHint :: D -> D -> D|
|applyMaxSizeHint :: D -> D -> D|
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. A window no longer exists, remove it from the window
list, on whatever workspace it is.
|Modify the size of the status gap at the top of the current screen
Taking a function giving the current screen, and current geometry.
Kill the currently focused client. 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)
|windows. Modify the current window list with a pure function, and refresh
|setWMState. set the WM_STATE property
|hide. Hide a window by unmapping it, and setting Iconified.
|reveal. Show a window by mapping it and setting Normal
this is harmless if the window was already visible
|The client events that xmonad is interested in
|Set some properties when we initially gain control of a window
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. Remove all events of a given type from the event queue.
|tileWindow. Moves and resizes w such that it fits inside the given
rectangle, including its border.
|Returns True if the first rectangle is contained within, but not equal
to the second.
|Given a list of screens, remove all duplicated screens and screens that
are entirely contained within another.
|Cleans the list of screens according to the rules documented for
|rescreen. The screen configuration may have changed (due to
xrandr), update the state and refresh the screen, and reset the gap.
|setButtonGrab. Tell whether or not to intercept clicks on a given window
|Set the focus to the window on top of the stack, or root
|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).
|Call X to set the keyboard focus details.
|Throw a message to the current LayoutClass possibly modifying how we
layout the windows, then refresh.
|Send a message to all layouts, without refreshing.
|Send a message to a layout, without refreshing.
|Update the layout field of a workspace
|Set the layout of the currently viewed workspace
|Return workspace visible on screen sc, or Nothing.
|Apply an X operation to the currently focused window, if there is one.
|True if window is under management by us
|Combinations of extra modifier masks we need to grab keys/buttons for.
(numlock and capslock)
|Strip numlock/capslock from a mask
|Get the Pixel value for a named color
|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.
Floating layer support
Given a window, find the screen it is located on, and compute
the geometry of that window wrt. that screen.
|Make a tiled window floating, using its suggested rectangle
|Accumulate mouse motion events
|XXX comment me
|XXX comment me
|Support for window size hints
|Reduce the dimensions if needed to comply to the given SizeHints.
|XXX comment me
|Reduce the dimensions so their aspect ratio falls between the two given aspect ratios.
|Reduce the dimensions so they are a multiple of the size increments.
|Reduce the dimensions if they exceed the given maximum dimensions.
|Produced by Haddock version 2.4.2|