Portability | not portable, Typeable deriving, mtl, posix |
---|---|
Stability | unstable |
Maintainer | dons@cse.unsw.edu.au |
Operations.
- manage :: Window -> X ()
- unmanage :: Window -> X ()
- killWindow :: Window -> X ()
- kill :: X ()
- windows :: (WindowSet -> WindowSet) -> X ()
- scaleRationalRect :: Rectangle -> RationalRect -> Rectangle
- 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)
- pointScreen :: Position -> Position -> X (Maybe (Screen WorkspaceId (Layout Window) Window ScreenId ScreenDetail))
- pointWithin :: Position -> Position -> Rectangle -> Bool
- float :: Window -> X ()
- mouseDrag :: (Position -> Position -> X ()) -> X () -> X ()
- mouseMoveWindow :: Window -> X ()
- mouseResizeWindow :: Window -> X ()
- type D = (Dimension, Dimension)
- mkAdjust :: Window -> X (D -> D)
- applySizeHints :: Integral a => Dimension -> SizeHints -> (a, a) -> D
- applySizeHintsContents :: Integral a => SizeHints -> (a, a) -> D
- applySizeHints' :: SizeHints -> D -> D
- applyAspectHint :: (D, D) -> D -> D
- applyResizeIncHint :: D -> D -> D
- applyMaxSizeHint :: D -> D -> D
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)
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.
reveal :: Window -> X ()Source
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
setInitialProperties :: Window -> X ()Source
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 :: 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. 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
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).
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
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.
extraModifiers :: X [KeyMask]Source
Combinations of extra modifier masks we need to grab keys/buttons for. (numlock and capslock)
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
.
mouseMoveWindow :: Window -> X ()Source
XXX comment me
mouseResizeWindow :: Window -> X ()Source
XXX comment me
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.