.\" Generated by scdoc 1.11.2
.\" 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" "2023-12-16"
.P
.SH NAME
.P
labwc - actions
.P
.SH ACTIONS
.P
Actions are used in menus and keyboard/mouse bindings.\&
.P
\fB\fR
.RS 4
Close top-most window.\&
.P
.RE
\fB\fR
.RS 4
Kill the process associated with the current window by sending it the
SIGTERM signal.\&
.P
.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 (~) is expanded in the command before passing to execvp()
.P
.RE
\fB\fR
.RS 4
Exit labwc.\&
.P
.RE
\fB\fR
.RS 4
Give focus to window under cursor.\&
.P
.RE
\fB\fR
.RS 4
Remove focus from the window that is currently focused.\&
.P
.RE
\fB\fR
.RS 4
Restack the current window above other open windows.\&
.P
.RE
\fB\fR
.RS 4
Restack the current window below other open windows.\&
.P
.RE
\fB\fR
.RS 4
Iconify (minimize) focused window.\&
.P
.RE
\fB\fR
.RS 4
Begin interactive move of window under cursor
.P
.RE
\fB\fR
.RS 4
Move window until it hits the next edge.\&
.P
\fBdirection\fR [left|up|right|down] Direction in which to move.\&
.P
\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.\&
.P
.RE
\fB\fR
.RS 4
Begin interactive resize of window under cursor
.P
.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.\&
.P
.RE
\fB\fR
.RS 4
Resize window to fill the space between its edge and any other
window edge.\&
.P
\fBdirection\fR [left|up|right|down] Direction in which to grow.\&
.P
.RE
\fB\fR
.RS 4
Reverse of GrowToEdge.\& Shrinks by a maximum of 50%.\&
.P
\fBdirection\fR [left|up|right|down] Direction in which to shrink.\&
.P
.RE
\fB\fR
.RS 4
Move to position (x, y)
.P
.RE
\fB\fR
.RS 4
Resize window
.P
\fBwidth\fR The width to resize the window to in pixels.\&
.P
\fBheight\fR The height to resize the window to in pixels.\&
.P
.RE
\fB\fR
.RS 4
Move to be centered on cursor.\&
Tries to prevent any part of the window from going off-screen.\&
.P
.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.\&
.P
.RE
\fB\fR
.RS 4
Resize window to fill half the output in the given direction.\& Supports
directions "left", "up", "right", "down" and "center".\&
.P
.RE
\fB\fR
.RS 4
Resize and move active window according to the given region.\&
See labwc-config(5) for further information on how to define regions.\&
.P
.RE
\fB\fR
.RS 4
Cycle focus to next window.\&
.P
.RE
\fB\fR
.RS 4
Cycle focus to previous window.\&
.P
.RE
\fB\fR
.RS 4
Re-load configuration and theme files.\&
.P
.RE
\fB\fR
.RS 4
Show menu.\& Valid menu names are "root-menu" and "client-menu".\&
.P
.RE
\fB\fR
.RS 4
Toggle decorations of focused window.\&
.P
This is a 3-state action which can be executed multiple times:
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
Only the titlebar will be hidden, borders and resize area are kept
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
Remaining decorations will be disabled
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
Decorations will be shown normally
.RE
.P
By disabling the theme configuration '\&keepBorder'\& the first step
will be removed and the action only toggles between on and off.\&
.P
.RE
\fB\fR
.RS 4
Toggle fullscreen state of focused window.\&
.P
.RE
\fB\fR
.RS 4
Toggle maximize state of focused window.\& Supported directions are
"both" (default), "horizontal", and "vertical".\&
.P
.RE
\fB\fR
.RS 4
Maximize focused window.\& Supported directions are "both" (default),
"horizontal", and "vertical".\&
.P
.RE
\fB\fR
.RS 4
Toggle always-on-top of focused window.\&
.P
.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.\&
.P
.RE
\fB\fR
.RS 4
Toggle omnipresent (visible on all workspaces / sticky) for the focused window.\&
.P
.RE
\fB\fR
.RS 4
Stop handling keybinds other than ToggleKeybinds itself.\&
This can be used to allow A-Tab and similar keybinds to be delivered
to Virtual Machines, VNC clients or nested compositors.\&
A second call will restore all original keybinds.\&
.P
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.\&
.P
.RE
\fB\fR
.RS 4
Give focus to topmost window on given output and warp the cursor
to the center of the window.\& If the given output does not contain
any windows, the cursor is centered on the given output.\&
.P
.RE
\fB\fR
.RS 4
Switch to workspace.\&
.P
\fBto\fR The workspace to switch to.\& Supported values are "current", "last",
"left", "right" or the full name of a workspace or its index (starting
at 1) as configured in rc.\&xml.\&
.P
\fBwrap\fR [yes|no] Wrap around from last desktop to first, and vice
versa.\& Default yes.\&
.P
.RE
\fB\fR
.RS 4
Send active window to workspace.\&
.P
\fBto\fR The workspace to send the window to.\& Supported values are the same
as for GoToDesktop.\&
.P
\fBfollow\fR [yes|no] Also switch to the specified workspace.\& Default yes.\&
.P
\fBwrap\fR [yes|no] Wrap around from last desktop to first, and vice
versa.\& Default yes.\&
.P
.RE
\fB\fR
.RS 4
Add virtual output (headless backend).\&
.P
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.\&
.P
It must be noted that overlaying virtual output and real output is not
endorsed or explicitely 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:
.P
.RE
.nf
.RS 4
.fi
.RE
.P
.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.\&
.P
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.\&
.P
\fBoutput_name\fR The name of virtual output.\& Providing virtual output name is
beneficial for further automation.\& Default is "HEADLESS-X".\&
.P
.RE
\fB\fR
.RS 4
Remove virtual output (headless backend).\&
.P
\fBoutput_name\fR The name of virtual output.\& If not supplied, will remove the
last virtual output added.\&
.P
.RE
\fB\fR
.RS 4
If used as the only action for a binding: clear an earlier defined binding.\&
.P
.RE
.SH CONDITIONAL ACTIONS
.P
Actions that execute other actions.\& Used in keyboard/mouse bindings.\&
.P
\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.\&
.P
The arguments are as follows:
.P
.nf
.RS 4
.fi
.RE
.P
\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.\&
.P
Pattern matching is done according to glob(7) and is
case-insensitive.\&
.P
Conditions are as follows:
.P
\fBidentifier\fR
.RS 4
XDG shell app_id for Wayland clients, WM_CLASS for
XWayland clients.\&
.P
.RE
\fBtitle\fR
.RS 4
XDG shell title for Wayland clients, WM_NAME for
XWayland clients.\&
.P
.RE
This argument is optional.\&
.P
.RE
\fBthen\fR
.RS 4
A list of actions to be executed if the window matches any
query.\& This argument is optional.\&
.P
.RE
\fBelse\fR
.RS 4
A list of actions to be executed if the window does not match
any query.\& This argument is optional.\&
.P
.RE
.RE
\fB\fR
.RS 4
Identical to "If" action, but applies to all windows, not just the
focused one.\&
.P
.RE
.SH SEE ALSO
.P
labwc(1), labwc-config(5), labwc-theme(5), glob(7)