.\" Generated by scdoc 1.11.5 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "labwc\-actions" "5" "2026\-08\-22" .PP .SH NAME .PP labwc \- actions .PP .SH ACTIONS .PP Actions are used in menus and keyboard/mouse bindings.\& .PP \fB\fR .RS 4 Close top\-most window.\& .PP .RE \fB\fR .RS 4 Kill the process associated with the current window by sending it the SIGTERM signal.\& .PP .RE \fB\fR .RS 4 Execute command.\& Note that in the interest of backward compatibility, labwc supports as an alternative to even though openbox documentation states that it is deprecated.\& Note: Tilde (\(ti) is expanded in the command before passing to execvp().\& .PP .RE \fB\fR .RS 4 Exit labwc.\& .PP .RE \fB\fR .RS 4 Give focus to window under cursor.\& .PP .RE \fB\fR .RS 4 Remove focus from the window that is currently focused.\& .PP .RE \fB\fR .RS 4 Restack the current window above other open windows.\& .PP .RE \fB\fR .RS 4 Restack the current window below other open windows.\& .PP .RE \fB\fR .RS 4 Iconify (minimize) focused window.\& .PP .RE \fB\fR .RS 4 Begin interactive move of window under cursor.\& .PP .RE \fB\fR .RS 4 Move window until it hits the next edge.\& .PP \fBdirection\fR [left|up|right|down] Direction in which to move.\& .PP \fBsnapWindows\fR [yes|no] Move window until it hits an edge of another window or screen edge.\& If set to "no", only move to the next screen edge.\& Default is yes.\& .PP .RE \fB\fR .RS 4 Begin interactive resize of window under cursor.\& .PP \fBdirection\fR [up|down|left|right|up\-left|up\-right|down\-left|down\-right] Edge or corner from which to start resizing.\& If this is not provided, the direction is inferred from the cursor position.\& .PP .RE \fB\fR .RS 4 Resize window relative to its current size.\& Values of left, right, top or bottom tell how much to resize on that edge of window, positive values grow window, negative shrink window.\& .PP Note that some applications like terminal emulators may refuse growing or shrinking by small amounts to keep the window size aligned to their internal cell size.\& .PP .RE \fB\fR .RS 4 Resize window to fill the space between its edge and any other window edge.\& .PP \fBdirection\fR [left|up|right|down] Direction in which to grow.\& .PP .RE \fB\fR .RS 4 Reverse of GrowToEdge.\& Shrinks by a maximum of 50%.\& .PP \fBdirection\fR [left|up|right|down] Direction in which to shrink.\& .PP .RE \fB\fR .RS 4 Move to position (x, y).\& .PP .RE \fB\fR .RS 4 Resize window.\& .PP \fBwidth\fR The width to resize the window to in pixels.\& .PP \fBheight\fR The height to resize the window to in pixels.\& .PP .RE \fB\fR .RS 4 Move to be centered on cursor.\& Tries to prevent any part of the window from going off\-screen.\& This action is deprecated from v0.\&7.\&3.\& To ensure your config works in future labwc releases, please use: .PP \fB\fR .PP .RE \fB\fR .RS 4 Move window relative to its current position.\& Positive value of x moves it right, negative left.\& Positive value of y moves it down, negative up.\& .PP .RE \fB\fR .br \fB\fR .RS 4 Resize window to fill half or quarter the output in the given direction.\& .PP \fBdirection\fR [up|down|left|right|up\-left|up\-right|down\-left|down\-right|center] .RS 4 Direction in which to snap the window.\& .PP .RE \fBcombine\fR [yes|no] .RS 4 Allows to snap a window to an output corner by combining two directions.\& For example, snapping a window to \fBright\fR and then to \fBup\fR places it in the \fBup\-right\fR quarter of the output.\& Default is no.\& .PP .RE ToggleSnapToEdge additionally toggles the active window between tiled to the given direction and its untiled position.\& .PP .RE \fB\fR .br \fB\fR .RS 4 Resize and move active window according to the given region.\& .PP ToggleSnapToRegion additionally toggles the active window between tiled to the given region and its untiled position.\& .PP See labwc\-config(5) for further information on how to define regions.\& .PP .RE \fB\fR .RS 4 Resize and move the active window back to its untiled or unmaximized position if it had been maximized or tiled to a direction or region.\& .PP .RE \fB\fR .br \fB\fR .br \fB\fR .br \fB\fR .br Cycle focus to next/previous window, respectively.\& .PP .RS 4 Default keybinds for NextWindow and PreviousWindow are Alt\-Tab and Shift\-Alt\-Tab.\& While cycling through windows, the arrow keys move the selected window forwards/backwards and the escape key halts the cycling.\& .PP NextWindowImmediate and PreviousWindowImmediate skip the Window Switcher and OSD, useful for binding to keys without modifiers.\& .PP \fBworkspace\fR [all|current] This determines whether to cycle through windows on all workspaces or the current workspace.\& Default is "current".\& .PP \fBoutput\fR [all|focused|cursor] This determines whether to cycle through windows on all outputs, the focused output, or the output under the cursor.\& Default is "all".\& .PP \fBidentifier\fR [all|current] This determines whether to cycle through all windows or only windows of the same application as the currently focused window.\& Default is "all".\& .PP .RE \fB\fR .RS 4 Re\-load configuration and theme files.\& .PP .RE \fB\fR .RS 4 Show a menu.\& .PP .RE .nf .RS 4 yes|no X Y .fi .RE .PP .RS 4 \fBmenu\fR The name of the menu to show.\& The menus "root\-menu", "client\-menu", "client\-send\-to\-menu" and "client\-list\-combined\-menu" are guaranteed to exist, but others may be defined explicitly.\& See labwc\-menu(5) for more information.\& .PP \fBatCursor\fR [yes|no] When opening a menu, open the menu at the location of the mouse cursor.\& When set to no, the menu will appear at the upper\-left corner of the window associated with the action or underneath the window button that opened the menu.\& Default is yes.\& .PP \fBposition\fR Show the menu in the specified position on the monitor that has cursor focus, see below.\& .PP The position tag has two sub\-tags.\& and specify a position and take either a pixel value, the string "center" which will center the menu in that dimension, or a relative value specified as a percentage A relative value is interpreted in terms of the monitor the menu will be shown on, and will be relative to the left/top edge of the menu window and monitor for positive values, and to the right/bottom edge for negative values.\& .PP The example below demonstrates how the '\&root\-menu'\& can be opened from a bottom aligned panel using the command `wtype \-M logo \-k Space`: .PP .RE .nf .RS 4 root\-menu 0 \-0 .fi .RE .PP \fB\fR .RS 4 Set decorations of focused window.\& .PP \fBdecorations\fR [full|border|none] \fBfull\fR enables the whole server side decorations.\& With \fBborder\fR.\& only the borders and invisible resize area are enabled.\& \fBnone\fR disables everything.\& .PP \fBforceSSD\fR [yes|no] If this is no, this action will be ignored for windows that have client side decorations if it would increase the amount of decoration.\& Default is no.\& .PP .RE \fB\fR .RS 4 Toggle decorations of focused window.\& .PP This is a 3\-state action which can be executed multiple times: .PD 0 .IP \(bu 4 Only the titlebar will be hidden, borders and resize area are kept .IP \(bu 4 Remaining decorations will be disabled .IP \(bu 4 Decorations will be shown normally .PD .PP By disabling the theme configuration '\&keepBorder'\& the first step will be removed and the action only toggles between on and off.\& .PP .RE \fB\fR .RS 4 Toggle fullscreen state of focused window.\& .PP .RE \fB\fR .RS 4 Toggle maximize state of focused window.\& Supported directions are "both" (default), "horizontal", and "vertical".\& .PP .RE \fB\fR .RS 4 Maximize focused window in the direction(s) specified.\& Supported directions are "both" (default), "horizontal", and "vertical".\& .PP .RE \fB\fR .RS 4 Unmaximize focused window in the direction(s) specified and return it to its pre\-maximized dimensions.\& Supported directions are "both" (default), "horizontal", and "vertical".\& .PP .RE \fB\fR .RS 4 Toggle always\-on\-top of focused window.\& .PP .RE \fB\fR .RS 4 Toggle between layers '\&always\-on\-bottom'\& and '\&normal'\&.\& When a window is in the '\&always\-on\-bottom'\& layer, it is rendered below all other top\-level windows.\& It is anticipated that this action will be useful when defining window\-rules for desktop\-management tools that do not support the wlr\-layer\-shell protocol.\& .PP .RE \fB\fR .RS 4 Toggle omnipresent (visible on all workspaces / sticky) for the focused window.\& .PP .RE \fB\fR .RS 4 Stop handling keybinds/mousebinds other than ToggleKeybinds itself.\& This can be used to allow A\-Tab and similar keybinds/mousebinds to be delivered to Virtual Machines, VNC clients or nested compositors.\& A second call will restore all original keybinds/mousebinds.\& .PP This action will only affect the window that had keyboard focus when the binding was executed.\& Thus when switching to another window, all the usual keybinds will function again until switching back to the original window.\& There can be multiple windows with this mode set.\& .PP .RE \fB\fR .RS 4 Toggles tearing for the focused window between enabled and disabled.\& This overrides the preference (tearing hint) from the focused window.\& .PP Requires the config option '\&allowTearing'\&.\& When '\&allowTearing'\& is set to '\&fullscreen'\& or '\&fullscreenForced'\&, tearing will still only be enabled if the active window is in fullscreen mode.\& .PP .RE \fB\fR .RS 4 Give focus to topmost window on other output and warp the cursor to the center of the window.\& .PP If \fBoutput\fR is specified, the focus is given to the specified output and \fBdirection\fR is ignored.\& If \fBoutput\fR is omitted, \fBdirection\fR may be one of "left", "right", "up" or "down" to indicate that the focus should be given to the next output in that direction (if one exists).\& .PP \fBwrap\fR [yes|no] When using the direction attribute, wrap around from right\-to\-left or top\-to\-bottom, and vice versa.\& Default is no.\& .PP If the target output does not contain any windows, the cursor will be centered on the output.\& .PP .RE \fB\fR .RS 4 Moves active window to other output, unless the window state is fullscreen.\& .PP If \fBoutput\fR is specified, the window will be sent directly to the specified output and \fBdirection\fR is ignored.\& If \fBoutput\fR is omitted, \fBdirection\fR may be one of "left", "right", "up" or "down" to indicate that the window should be moved to the next output in that direction (if one exists).\& .PP \fBwrap\fR [yes|no] When using the direction attribute, wrap around from right\-to\-left or top\-to\-bottom, and vice versa.\& Default is no.\& .PP .RE \fB\fR .RS 4 Resizes active window size to width and height of the output when the window size exceeds the output size.\& .PP .RE \fB\fR .RS 4 Switch to workspace.\& .PP \fBto\fR The workspace to switch to.\& Supported values are "current", "last", "left", "right", "left\-occupied", "right\-occupied" or the full name of a workspace or its index (starting at 1) as configured in rc.\&xml.\& .PP \fBwrap\fR [yes|no] Wrap around from last desktop to first, and vice versa.\& Default is yes.\& .PP \fBtoggle\fR [yes|no] Toggle to “last” if already on the workspace that would be the actual destination.\& Default is no.\& .PP .RE \fB\fR .RS 4 Send active window to workspace.\& .PP \fBto\fR The workspace to send the window to.\& Supported values are the same as for GoToDesktop.\& .PP \fBfollow\fR [yes|no] Also switch to the specified workspace.\& Default is yes.\& .PP \fBwrap\fR [yes|no] Wrap around from last desktop to first, and vice versa.\& Default is yes.\& .PP .RE \fB\fR .RS 4 Add virtual output (headless backend).\& .PP For example, it can be used to overlay virtual output on real output, but with a different resolution (this can be done with `wlr\-randr` or `wdisplays`).\& After that, virtual output can be selected for screen sharing (casting), effectively sharing only the region of the screen.\& .PP It must be noted that overlaying virtual output and real output is not endorsed or explicitly supported by wlroots.\& For example, after configuring virtual output, real output must be reconfigured as well (for the overlay configuration to work correctly).\& This is the example configuration: .PP .RE .nf .RS 4 .fi .RE .PP .RS 4 Note that the vertical resolution of "ScreenCasting" output is just 50px smaller than "eDP\-1" output to cut off bottom panel from screen sharing.\& .PP Virtual output is also useful for extending the desktop to (maybe mobile) remote systems like tablets.\& E.\&g.\& simply adding a virtual output, attaching wayvnc to it and running a VNC client on the remote system.\& .PP \fBoutput_name\fR The name of virtual output.\& Providing virtual output name is beneficial for further automation.\& Default is "HEADLESS\-X".\& .PP .RE \fB\fR .RS 4 Remove virtual output (headless backend).\& .PP \fBoutput_name\fR The name of virtual output.\& If not supplied, will remove the last virtual output added.\& .PP .RE \fB\fR .RS 4 Reposition the window according to the desired placement policy.\& .PP \fBpolicy\fR [automatic|cursor|center|cascade] Use the specified policy, which has the same meaning as the corresponding value for \fB\fR.\& Default is automatic.\& .PP .RE \fB\fR .br \fB\fR .br \fB\fR .RS 4 Set, unset, or toggle, respectively, the "shaded" state of the active window.\& When shaded, window contents are hidden, leaving only the titlebar visible.\& Full\-screen windows or those without server\-side decorations (including those for which the server\-side titlebar has been hidden) are not eligible for shading.\& .PP .RE \fB\fR .RS 4 Warp the cursor to a position relative to the active output or window.\& .PP \fBto\fR [output|window] Specifies the target area of the warp.\& Default is "output" .PP \fBx\fR [center|value] Specifies the horizontal warp position within the target area.\& "center": Moves the cursor to the horizontal center of the target area.\& Positive or negative integers warp the cursor to a position offset by the specified number of pixels from the left or right edge of the target area, respectively.\& Default is "center" .PP \fBy\fR [center|value] Equivalent for the vertical warp position within the target area.\& Default is "center" .PP .RE \fB\fR .RS 4 Hide the pointer or stylus cursor.\& The cursor becomes visible again on following pointer actions, stylus actions or touchpad gestures.\& Use together with the WarpCursor action to not just hide the cursor but to additionally move it away to prevent e.\&g.\& hover effects.\& .PP .RE \fB\fR .br \fB\fR .br \fB\fR .RS 4 Enable, disable or toggle scroll wheel emulation on cursor motion, respectively.\& This can be useful for trackball mouses to use the rotating ball not just for moving the cursor, but also for (mouse wheel) scrolling.\& .PP See also \fB\fR in labwc\-config(5) for fine tuning the scroll speed.\& .PP .RE \fB\fR .br \fB\fR .br \fB\fR .RS 4 Enable, disable or toggle mouse emulation for drawing tablets, respectively.\& .PP .RE \fB\fR .RS 4 Toggle the screen magnifier on or off at the last magnification level used.\& .PP .RE \fB\fR .RS 4 Minimize all windows in the current workspace so that the desktop becomes visible.\& On calling the action again the hidden windows are unminimized, provided that \- since the initial `ShowDesktop` \- (a) no windows have been unminimized; (b) workspaces have not been switched; and (c) no new applications have been started.\& .PP .RE \fB\fR .br \fB\fR .RS 4 Increase or decrease the magnification level for the screen magnifier.\& If the magnifier is currently off, ZoomIn will enable it at the lowest magnification, equal to (1 + the magnifier increment set in the theme).\& If the magnifier is on and at the lowest magnification, ZoomOut will turn it off.\& .PP .RE \fB\fR .RS 4 If used as the only action for a binding: clear an earlier defined binding.\& .PP .RE \fB\fR .RS 4 Toggle visibility of key\-state on\-screen display (OSD).\& Note: This is for debugging purposes only.\& .PP .RE .SH CONDITIONAL ACTIONS .PP Actions that execute other actions.\& Used in keyboard/mouse bindings.\& .PP \fB\fR .RS 4 This action will execute one set of actions if the focused window matches the criteria, or another if it does not.\& .PP The arguments are as follows: .PP .nf .RS 4 .fi .RE .PP \fBquery\fR .RS 4 Define a query with zero or more conditions.\& All conditions must be evaluated as true in order for the window to match this query.\& Multiple queries can be defined.\& .PP Pattern matching is done according to glob(7) and is case\-insensitive.\& .PP Conditions are as follows: .PP \fBidentifier\fR .RS 4 XDG shell app_id for Wayland clients, WM_CLASS for XWayland clients.\& .PP .RE \fBtitle\fR .RS 4 XDG shell title for Wayland clients, WM_NAME for XWayland clients.\& .PP .RE \fBtype\fR .RS 4 Internal heuristics for Wayland clients, NET_WM_WINDOW_TYPE for XWayland clients.\& .PP .RE \fBshaded\fR [yes|no] .RS 4 Whether or not the client is rolled up.\& .PP .RE \fBmaximized\fR [both|horizontal|vertical|none] .RS 4 Whether the client is maximized along both axes, the horizontal axis only, the vertical axis only, or neither axis (none).\& .PP .RE \fBiconified\fR [yes|no] .RS 4 Whether or not the client is iconified.\& .PP .RE \fBfocused\fR [yes|no] .RS 4 Whether or not the client is focused.\& .PP .RE \fBomnipresent\fR [yes|no] .RS 4 Whether or not the client is visible on all desktops.\& .PP .RE \fBdesktop\fR .RS 4 The desktop the client is currently on.\& This can be the number or name of a desktop, or special relative values "current", "other", "left", "right", "left\-occupied", "right\-occupied" or "last".\& The "left" , "right", "left\-occupied" and "right\-occupied" directions will not wrap.\& .PP .RE \fBtiled\fR [up|right|down|left|up\-left|up\-right|down\-left|down\-right|center|any] .RS 4 Whether the client is tiled (snapped) along the indicated screen edge.\& .PP .RE \fBtiled_region\fR .RS 4 Whether the client is tiled (snapped) to the indicated region.\& The indicated region may be a glob.\& .PP .RE \fBdecoration\fR [full|border|none] .RS 4 Whether the client has full server\-side decorations, borders only, or no server\-side decorations.\& .PP .RE \fBmonitor\fR [current|left|right|] .RS 4 Whether the client is on a monitor relative to the to the currently focused monitor (current, left, or right) or on a monitor with the supplied .\& .PP .RE This argument is optional.\& .PP .RE \fBprompt\fR .RS 4 Display a yes/no prompt dialog (labnag by default).\& If '\&yes'\& is selected, the \fBthen\fR branch will be taken; and similarly with \&'\&no'\& and \fBelse\fR.\& This argument is optional.\& Note that the syntax is different to that of Openbox where a prompt element is not tied to If\-actions but would just be a child of the downstream action.\& The reason for this difference is increased flexibility and functionality gained by optionally using an \fBelse\fR branch.\& .PP .nf .RS 4 .fi .RE .PP .RE \fBthen\fR .RS 4 A list of actions to be executed if the window matches any query.\& This argument is optional.\& .PP .RE \fBelse\fR .RS 4 A list of actions to be executed if the window does not match any query.\& This argument is optional.\& .PP .RE .RE \fB\fR .RS 4 Identical to "If" action, but applies to all windows, not just the focused one.\& .PP The \fBForEach\fR action has another optional \fBnone\fR branch which gets executed when no window has been matched by the query.\& This allows for example to implement a run\-or\-raise functionality.\& .PP .RE .SH SEE ALSO .PP labwc(1), labwc\-config(5), labwc\-theme(5), glob(7)