diff options
Diffstat (limited to 'upstream/fedora-40/man1/icesh.1')
-rw-r--r-- | upstream/fedora-40/man1/icesh.1 | 952 |
1 files changed, 952 insertions, 0 deletions
diff --git a/upstream/fedora-40/man1/icesh.1 b/upstream/fedora-40/man1/icesh.1 new file mode 100644 index 00000000..9ad67659 --- /dev/null +++ b/upstream/fedora-40/man1/icesh.1 @@ -0,0 +1,952 @@ +.\" -*- mode: troff; coding: utf-8 -*- +.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.45) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. +.ie n \{\ +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" ======================================================================== +.\" +.IX Title "ICESH 1" +.TH ICESH 1 2024-01-24 "icewm\ 3.4.5" "User Commands" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SS NAME +.IX Subsection "NAME" +.Vb 1 +\& icesh \- control window properties and the IceWM window manager +.Ve +.SS SYNOPSIS +.IX Subsection "SYNOPSIS" +.IP "\fBicesh\fR \fIOPTIONS|ACTIONS\fR+" 4 +.IX Item "icesh OPTIONS|ACTIONS+" +.SS DESCRIPTION +.IX Subsection "DESCRIPTION" +\&\fBicesh\fR provides two types of commands: +.IP "1. Commands to directly interact with icewm:" 4 +.IX Item "1. Commands to directly interact with icewm:" +These are listed in the section "MANAGER ACTIONS" below. +They are easy to use, because they don't require to select one +or more windows. For example, \f(CW\*(C`icesh restart\*(C'\fR will restart +icewm and \f(CW\*(C`icesh clients\*(C'\fR lists the applications that +are managed by icewm. +.IP "2. Commands that operate on a selection of windows:" 4 +.IX Item "2. Commands that operate on a selection of windows:" +See the section \f(CW\*(C`WINDOW ACTIONS\*(C'\fR below. For example, \f(CW\*(C`icesh close\*(C'\fR +is a request to close a window, but which window? Now icesh +will turn the mouse pointer into a crosshair. Click on a window +and a close request will be sent to that application. +.Sp +The power of icesh lies in its ability to programmatically +select one or more windows and operate on that selection. +This can be used in scripts and in \fBicewm\-keys\fR\|(5) +to define your own window management hotkeys. For example, to +immediately close all xterm windows do \f(CW\*(C`icesh \-c xterm close\*(C'\fR. +.Sp +There are a dozen \f(CW\*(C`SELECT OPTIONS\*(C'\fR to select windows. They start +with a '\-' or a '+'. The '\-' starts a new selection, while the '+' +adds more windows to an existing selection. +.Sp +This selection of windows can be reduced by \f(CW\*(C`FILTER OPTIONS\*(C'\fR. +These remove unwanted windows from the current selection. +Multiple filter options can be given. For example, +\&\f(CW\*(C`icesh \-c xterm \-W this close\*(C'\fR will close only those xterms +that are shown on the current workspace. The xterms on other +workspaces are filtered out by the \f(CW\*(C`\-W this\*(C'\fR filter option. +.PP +There is no limit to the number of commands, selections, filters +and actions that you can give to a single icesh command. +They are processed and evaluated one by one from left to right. +This makes icesh a small declarative programming language. +Have a look at some examples near the end of this document. +.SS OPTIONS +.IX Subsection "OPTIONS" +\&\fBicesh\fR recognizes the following options: +.SS "SELECT OPTIONS" +.IX Subsection "SELECT OPTIONS" +Select options specify the window or windows to which subsequent +actions apply. If none is given, but an action does require a window, +then a selection crosshair is shown to select the desired window +interactively. The manager actions do not require window options. +.PP +The following options \fIselect\fR one or more client windows. +If needed, they can be repeated for successive actions. +.IP "\fB\-a\fR, \fB\-all\fR" 4 +.IX Item "-a, -all" +Selects all client windows of the window manager. +.IP "\fB\-f\fR, \fB\-focus\fR, \fB+f\fR, \fB+focus\fR" 4 +.IX Item "-f, -focus, +f, +focus" +Selects the application window that is currently focused. +The option with minus sign replaces the existing selection with +the focused window. With a plus sign the focused window is added to +an existing selection. +.IP "\fB+g\fR, \fB+group\fR" 4 +.IX Item "+g, +group" +Extend the current selection with client windows that +belong to the same application window group. +.IP "\fB\-r\fR, \fB\-root\fR, \fB+r\fR, \fB+root\fR" 4 +.IX Item "-r, -root, +r, +root" +Selects the root window. +The option with minus sign replaces the existing selection with +the root window. With a plus sign the root window is added to +an existing selection. +.IP "\fB\-s\fR, \fB\-shown\fR" 4 +.IX Item "-s, -shown" +Selects all client windows that are on the current workspace. +.IP "\fB\-t\fR, \fB\-top\fR" 4 +.IX Item "-t, -top" +Selects all toplevel windows from the display unconditionally. +This includes windows that have never been mapped and windows +with the override redirect bit set to evade management. +.IP "\fB\-w\fR, \fB\-window\fR, \fB+w\fR, \fB+window\fR \fIWINDOW_ID\fR" 4 +.IX Item "-w, -window, +w, +window WINDOW_ID" +Specifies the identifier of the window, \fIWINDOW_ID\fR, for which the +action applies. Special identifiers are \fBroot\fR for the root window +and \fBfocus\fR for the currently focused window. +The option with minus sign replaces the existing selection. +With a plus sign the window is added to an existing selection. +.IP "\fB\-x\fR, \fB\-xembed\fR" 4 +.IX Item "-x, -xembed" +Selects all windows that are embedded using the \fIXEMBED\fR protocol. +.IP "\fB+c\fR, \fB+class\fR \fICLASS\fR" 4 +.IX Item "+c, +class CLASS" +Extend the current selection with client windows that have a +\&\fIWM_CLASS\fR property equal to \fICLASS\fR. This is the resource +instance and class name. If \fICLASS\fR contains a period, only +windows with exactly the same \fIWM_CLASS\fR property are matched. +If there is no period, windows of the same class and windows +of the same instance are selected. +.IP "\fB+C\fR, \fB+Class\fR" 4 +.IX Item "+C, +Class" +Extend the current selection with client windows that +have a \fIWM_CLASS\fR property \fIsimilar\fR to the already +selected set of windows. +.IP "\fB\-D\fR, \fB\-Dockapps\fR" 4 +.IX Item "-D, -Dockapps" +Selects all Dockapp applications that are managed by icewm. +.IP "\fB+P\fR, \fB+Pid\fR" 4 +.IX Item "+P, +Pid" +Extend the current selection with client windows that have +the same process identifier as one of the selected windows. +.IP \fB\-T\fR 4 +.IX Item "-T" +Selects the IceWM taskbar. +.SS "FILTER OPTIONS" +.IX Subsection "FILTER OPTIONS" +The following options \fIfilter\fR the currently selected set of windows. +If no previous \fIselect\fR option was given then a \fB\-all\fR option is +implicitly assumed to filter all client windows. +.IP "\fB\-c\fR, \fB\-class\fR \fICLASS\fR" 4 +.IX Item "-c, -class CLASS" +Filters the set of windows on their \fIWM_CLASS\fR property. This is +the resource instance and class name. If \fICLASS\fR contains a period, +only windows with exactly the same \fIWM_CLASS\fR property are matched. +If there is no period, windows of the same class and windows of the +same instance (aka. \fI\-name\fR) are selected. +.IP "\fB\-l\fR, \fB\-last\fR" 4 +.IX Item "-l, -last" +Filter clients and keep only the most recent client. +.IP "\fB\-m\fR, \fB\-machine\fR \fIHOST\fR" 4 +.IX Item "-m, -machine HOST" +Filters clients by host name. Clients with a WM_CLIENT_MACHINE property +equal to \fIHOST\fR are selected. +.IP "\fB\-n\fR, \fB\-name\fR \fINAME\fR" 4 +.IX Item "-n, -name NAME" +Filters clients by _NET_WM_NAME or WM_NAME. +\&\fINAME\fR matches any part of the property value. +To match at the beginning use a \f(CW\*(C`^\*(C'\fR prefix. +To match at the end use a \f(CW\*(C`$\*(C'\fR suffix. +.IP "\fB\-p\fR, \fB\-pid\fR \fIPID\fR" 4 +.IX Item "-p, -pid PID" +Filters clients by process ID. Clients with a _NET_WM_PID property equal +to \fIPID\fR are selected. +.IP "\fB\-u\fR, \fB\-unmapped\fR" 4 +.IX Item "-u, -unmapped" +Filter clients and keep those that are currently not viewable. +These are hidden, minimized, rolled-up, or on another workspace. +.IP "\fB\-v\fR, \fB\-viewable\fR" 4 +.IX Item "-v, -viewable" +Filter clients and keep only those that are currently viewable. +These clients are mapped on the current workspace. +.IP "\fB\-G\fR, \fB\-Gravity\fR \fIGRAVITY\fR" 4 +.IX Item "-G, -Gravity GRAVITY" +Filters clients by the window gravity field of the WM_NORMAL_HINTS +property. Clients with a gravity equal to \fIGRAVITY\fR are selected. +If \fIGRAVITY\fR starts with an exclamation mark then the filtering is +inverted. +.IP "\fB\-L\fR, \fB\-Layer\fR \fILAYER\fR" 4 +.IX Item "-L, -Layer LAYER" +Filters clients by \fIGNOME window layer\fR, which can either be a layer +name or a layer number. See EXPRESSIONS below. If \fILAYER\fR starts with +an exclamation mark then the filtering is inverted. +.IP "\fB\-N\fR, \fB\-Netstate\fR \fISTATE\fR" 4 +.IX Item "-N, -Netstate STATE" +Filters clients by \fIEWMH window state\fR. Clients that have at +least an EWMH window state of \fISTATE\fR are selected. This state +refers to details like \fBMINIZED\fR or \fBMAXIMIZED\fR. See EXPRESSIONS +below. If \fISTATE\fR starts with an exclamation mark then the filtering +is inverted. A question mark \f(CW\*(C`?\*(C'\fR filters clients with any bit set +in \fISTATE\fR. +.IP "\fB\-P\fR, \fB\-Property\fR \fIPROP[=value]\fR" 4 +.IX Item "-P, -Property PROP[=value]" +Filters clients by property. Clients that have a property \fIPROP\fR +are selected. If the optional \fIvalue\fR is given, the match succeeds +only if \fIPROP\fR is a string, window, cardinal, or atom, with a value +equal to \fIvalue\fR. The filtering is inverted if \fIPROP\fR starts with +an exclamation mark. +.IP "\fB\-R\fR, \fB\-Role\fR \fIROLE\fR" 4 +.IX Item "-R, -Role ROLE" +Filters clients by WM_WINDOW_ROLE. Clients that have a WM_WINDOW_ROLE +property value equal to \fIROLE\fR are selected. The filtering is inverted +if \fIROLE\fR starts with an exclamation mark. +.IP "\fB\-W\fR, \fB\-Workspace\fR \fIWORKSPACE\fR" 4 +.IX Item "-W, -Workspace WORKSPACE" +Filter clients by workspace. Workspace \fIWORKSPACE\fR is either a +workspace name, or a workspace number counting from zero, or the word +\&\f(CW\*(C`this\*(C'\fR for the current workspace, or the word \f(CW\*(C`All\*(C'\fR for all workspaces. +If \fIWORKSPACE\fR starts with an exclamation mark then the filtering is +inverted. +.IP "\fB\-X\fR, \fB\-Xinerama\fR \fIMONITOR\fR" 4 +.IX Item "-X, -Xinerama MONITOR" +Limit clients by \fIRandR\fR/\fIXinerama\fR monitor. Only operate on +clients that are displayed on \fIMONITOR\fR, where \fIMONITOR\fR can +be \f(CW\*(C`All\*(C'\fR for all monitors, \f(CW\*(C`this\*(C'\fR for the monitor where the +active window is displayed, or a monitor number starting from zero. +See the output of \f(CW\*(C`randr\*(C'\fR or \f(CW\*(C`xinerama\*(C'\fR below. +.SS "GENERAL OPTIONS" +.IX Subsection "GENERAL OPTIONS" +The following options are identical for every IceWM command. +.IP "\fB\-d\fR, \fB\-display\fR \fIDISPLAY\fR" 4 +.IX Item "-d, -display DISPLAY" +Specifies the X11 DISPLAY. If unspecified, defaults to \fR\f(CB$DISPLAY\fR\fB\fR. +.IP "\fB\-h\fR, \fB\-\-help\fR" 4 +.IX Item "-h, --help" +Print a brief usage statement to \fIstdout\fR and exit. +.IP "\fB\-V\fR, \fB\-\-version\fR" 4 +.IX Item "-V, --version" +Print the program version to \fIstdout\fR and exit. +.IP "\fB\-C\fR, \fB\-\-copying\fR" 4 +.IX Item "-C, --copying" +Print copying permissions to \fIstdout\fR for the program and exit. +.IP "\fB\-q\fR, \fB\-\-quiet\fR" 4 +.IX Item "-q, --quiet" +Don't complain if no matching windows could be found. +.SS ACTIONS +.IX Subsection "ACTIONS" +\&\fBicesh\fR expects one or more action arguments. There are two kinds of +actions: \fIwindow actions\fR and \fImanager actions\fR. The first operates on +the selected windows. The second directly interacts with the \fBicewm\fR +window manager. +.SS "WINDOW ACTIONS" +.IX Subsection "WINDOW ACTIONS" +The following actions affect the selected window or windows. +.IP \fBactivate\fR 4 +.IX Item "activate" +Activate the window, aka. \fIto focus\fR. +.IP \fBclose\fR 4 +.IX Item "close" +Send a close request to the client that created the window. +.IP \fBkill\fR 4 +.IX Item "kill" +Force an immediate close down of the client that created the window. +.IP \fBid\fR 4 +.IX Item "id" +Print window identifiers for the selected windows. +.IP \fBpid\fR 4 +.IX Item "pid" +Print process identifiers for the selected windows. +.IP \fBlist\fR 4 +.IX Item "list" +Show window details, like geometry and names. +.IP \fBlower\fR 4 +.IX Item "lower" +Lower the window. +.IP \fBraise\fR 4 +.IX Item "raise" +Raise the window. +.IP \fBabove\fR 4 +.IX Item "above" +Stack the window above others. +.IP \fBbelow\fR 4 +.IX Item "below" +Stack the window below others. +.IP \fBrollup\fR 4 +.IX Item "rollup" +Rollup the specified window. +.IP \fBfullscreen\fR 4 +.IX Item "fullscreen" +Set the window to fullscreen. +.IP \fBmaximize\fR 4 +.IX Item "maximize" +Maximize the window. +.IP \fBhorizontal\fR 4 +.IX Item "horizontal" +Maximize the window only horizontally. +.IP \fBvertical\fR 4 +.IX Item "vertical" +Maximize the window only vertically. +.IP \fBminimize\fR 4 +.IX Item "minimize" +Minimize the window. +.IP \fBrestore\fR 4 +.IX Item "restore" +Restore the window to normal. +.IP \fBhide\fR 4 +.IX Item "hide" +Hide the window. +.IP \fBunhide\fR 4 +.IX Item "unhide" +Reveal the window. +.IP \fBskip\fR 4 +.IX Item "skip" +Don't show the window on the taskbar. +.IP \fBunskip\fR 4 +.IX Item "unskip" +Do show the window on the taskbar. +.IP \fBsticky\fR 4 +.IX Item "sticky" +Show the window on all workspaces. +.IP \fBunsticky\fR 4 +.IX Item "unsticky" +Show the window on just one workspace. +.IP \fBurgent\fR 4 +.IX Item "urgent" +Set the urgent flag to flash the task button. +.IP "\fBresize\fR \fIWIDTH\fR \fIHEIGHT\fR" 4 +.IX Item "resize WIDTH HEIGHT" +Resize window to \fIWIDTH\fR by \fIHEIGHT\fR window units. For text based +applications like terminals, a window unit is the size of a single +character cell. +.IP "\fBsizeto\fR \fIWIDTH\fR \fIHEIGHT\fR" 4 +.IX Item "sizeto WIDTH HEIGHT" +Resize window to \fIWIDTH\fR by \fIHEIGHT\fR pixels. If \fIWIDTH\fR or \fIHEIGHT\fR +ends with a percent sign \f(CW\*(C`%\*(C'\fR, then they refer to a percentage of the +desktop work area. For instance, \f(CW\*(C`sizeto 50% 100%\*(C'\fR resizes to half +the desktop width and whatever height is available above or below the +taskbar. +.IP "\fBsizeby\fR \fIWIDTH\fR \fIHEIGHT\fR" 4 +.IX Item "sizeby WIDTH HEIGHT" +Resize window by \fIWIDTH\fR by \fIHEIGHT\fR pixels. If \fIWIDTH\fR or \fIHEIGHT\fR +ends with a percent sign \f(CW\*(C`%\*(C'\fR, then they refer to a percentage of the +current window size. For instance, \f(CW\*(C`sizeby 50% 200\*(C'\fR increases the width +by 50% and increases the height by 200 pixels. +.IP "\fBmove\fR \fIX\fR \fIY\fR" 4 +.IX Item "move X Y" +Move the selected window or windows to the screen position \fIX\fR \fIY\fR. +To specify \fIX\fR or \fIY\fR values relative to the right side or bottom side +precede the value with an extra minus sign, like in \f(CW\*(C`move \-+10 \-\-20\*(C'\fR. +.IP "\fBmoveby\fR \fIX\fR \fIY\fR" 4 +.IX Item "moveby X Y" +Displace window by \fIX\fR \fIY\fR pixels. +.IP \fBcenter\fR 4 +.IX Item "center" +Position the window in the center of the desktop work area. +.IP \fBleft\fR 4 +.IX Item "left" +Position the window against the left side of the desktop work area. +.IP \fBright\fR 4 +.IX Item "right" +Position the window against the right side of the desktop work area. +.IP \fBtop\fR 4 +.IX Item "top" +Position the window against the top side of the desktop work area. +.IP \fBbottom\fR 4 +.IX Item "bottom" +Position the window against the bottom side of the desktop work area. +.IP "\fBsetIconTitle\fR \fITITLE\fR" 4 +.IX Item "setIconTitle TITLE" +Set the icon title to \fITITLE\fR. +.IP \fBgetIconTitle\fR 4 +.IX Item "getIconTitle" +Print the icon title. +.IP "\fBsetWindowTitle\fR \fITITLE\fR" 4 +.IX Item "setWindowTitle TITLE" +Set the window title to \fITITLE\fR. +.IP \fBgetWindowTitle\fR 4 +.IX Item "getWindowTitle" +Print the window title. +.IP "\fBsetGeometry\fR \fIGEOMETRY\fR" 4 +.IX Item "setGeometry GEOMETRY" +Set the window geometry to \fIGEOMETRY\fR. This geometry should be +specified in a format that can be parsed by \fBXParseGeometry\fR\|(3). +Negative offsets are with respect to the bottom or right side of +the screen. Use \f(CW\*(C`+\-\*(C'\fR for a truly negative position. +.IP \fBgetGeometry\fR 4 +.IX Item "getGeometry" +Print the window geometry. +.IP "\fBsetClass\fR \fICLASS\fR" 4 +.IX Item "setClass CLASS" +Set the resource name and class to \fICLASS\fR, which should be a resource +name and a resource class connected by a dot. To preserve either the +existing name or class, use a percentage sign for that part. +.IP \fBgetClass\fR 4 +.IX Item "getClass" +Print the resource name and class. +.IP "\fBnetState\fR \fI[STATE]\fR" 4 +.IX Item "netState [STATE]" +If \fISTATE\fR is omitted then it shows the \fIEWMH window state\fR. +If \fISTATE\fR starts with a \f(CW\*(C`+\*(C'\fR then flags in \fISTATE\fR are appended to +the existing \fIEWMH window state\fR. If \fISTATE\fR starts with a \f(CW\*(C`\-\*(C'\fR +then flags in \fISTATE\fR are removed from the existing \fIEWMH window +state\fR. If \fISTATE\fR starts with a \f(CW\*(C`^\*(C'\fR then flags in \fISTATE\fR are +toggled with respect to the existing \fIEWMH window state\fR. +If \fISTATE\fR starts with a \f(CW\*(C`=\*(C'\fR then the \fIEWMH window state\fR +is set to \fISTATE\fR. See EXPRESSIONS below. A list of \fIEWMH flags\fR +can be found in the output of \f(CW\*(C`icesh symbols\*(C'\fR. +.IP "\fBsetLayer\fR \fILAYER\fR" 4 +.IX Item "setLayer LAYER" +Move the specified window to another \fIwindow layer\fR. +See EXPRESSIONS below for a list of \fILAYER\fR symbols. +.IP \fBgetLayer\fR 4 +.IX Item "getLayer" +Print the \fIwindow layer\fR for the specified window. +.IP "\fBsetWorkspace\fR \fIWORKSPACE\fR" 4 +.IX Item "setWorkspace WORKSPACE" +Move the specified window to another workspace. Select the root +window to change the current workspace. If \fIWORKSPACE\fR is \f(CW\*(C`All\*(C'\fR +then the specified window becomes visible on all workspaces. +Specify \f(CW\*(C`this\*(C'\fR for the current workspace, \f(CW\*(C`next\*(C'\fR for the subsequent +workspace or \f(CW\*(C`prev\*(C'\fR for the preceding workspace. +.IP \fBgetWorkspace\fR 4 +.IX Item "getWorkspace" +Print the workspace for the specified window. +.IP "\fBopacity\fR [\fIOPACITY\fR]" 4 +.IX Item "opacity [OPACITY]" +Print the window opacity if \fIOPACITY\fR is not given, +otherwise set the window opacity to \fIOPACITY\fR. +.IP "\fBsetTrayOption\fR \fITRAYOPTION\fR" 4 +.IX Item "setTrayOption TRAYOPTION" +Set the \fIIceWM tray option\fR for the specified window to \fITRAYOPTION\fR. +See \fIIceWM tray options\fR, below, for \fITRAYOPTION\fR symbols. +.IP \fBgetTrayOption\fR 4 +.IX Item "getTrayOption" +Print the \fIIceWM tray option\fR for the specified window. +.IP "\fBsetNormalGravity\fR \fIGRAVITY\fR" 4 +.IX Item "setNormalGravity GRAVITY" +Set the window gravity field in the WM_NORMAL_HINTS property for the +specified window to \fIGRAVITY\fR. See below for \fIGRAVITY\fR symbols. +.IP \fBgetNormalGravity\fR 4 +.IX Item "getNormalGravity" +Print the window gravity from the WM_NORMAL_HINTS property for the +specified window. +.IP "\fBsetWindowGravity\fR \fIGRAVITY\fR" 4 +.IX Item "setWindowGravity GRAVITY" +Set the window gravity for the specified window to \fIGRAVITY\fR. +See below for \fIGRAVITY\fR symbols. +.IP \fBgetWindowGravity\fR 4 +.IX Item "getWindowGravity" +Print the window gravity for the specified window. +.IP "\fBsetBitGravity\fR \fIGRAVITY\fR" 4 +.IX Item "setBitGravity GRAVITY" +Set the bit gravity> for the specified window to \fIGRAVITY\fR. +See below for \fIGRAVITY\fR symbols. +.IP \fBgetBitGravity\fR 4 +.IX Item "getBitGravity" +Print the bit gravity for the specified window. +.IP "\fBmotif\fR [\fBfuncs\fR \fIFUNCTIONS\fR | \fBdecor\fR \fIDECORATIONS\fR | \fBremove\fR]" 4 +.IX Item "motif [funcs FUNCTIONS | decor DECORATIONS | remove]" +Query, set or modify the \f(CW\*(C`_MOTIF_WM_HINTS\*(C'\fR property for the specified +window. Without arguments \fBmotif\fR will show the current value, but +only if the window has such a property. The property can be removed or +reset with the \fBremove\fR argument. With \fBfuncs\fR and \fBdecor\fR individual +fields of this property can be enabled or disabled. If \fIFUNCTIONS\fR or +\&\fIDECORATIONS\fR starts with a minus or plus sign then the existing value +is modified, otherwise it is set to the new value. Note that if \f(CW\*(C`All\*(C'\fR +is set, other set fields are disabled and cleared fields are enabled. +.IP \fBborderless\fR 4 +.IX Item "borderless" +Hide the frame borders and title. +.IP \fBbordered\fR 4 +.IX Item "bordered" +Show the frame borders and title. +.IP \fBdenormal\fR 4 +.IX Item "denormal" +Remove the WM_NORMAL_HINTS property, if it exists. This lifts +font-size restrictions on resizing, especially for terminals. +.IP "\fBprop\fR \fIPROPERTY\fR" 4 +.IX Item "prop PROPERTY" +Print the value of property \fIPROPERTY\fR, if it is present. +.IP \fBproperties\fR 4 +.IX Item "properties" +Print all properties and their values. +.IP \fBframe\fR 4 +.IX Item "frame" +Print the identifier of the window frame. +.IP \fBextents\fR 4 +.IX Item "extents" +Print the window identifier and the frame border sizes: left, right, +top and bottom. +.IP \fBfocusmodel\fR 4 +.IX Item "focusmodel" +Print the ICCCM focus model as advertised by the client window. +This is either Locally, Passive, Globally or NoInput. +.IP "\fBoverride\fR [\fI0|1\fR]" 4 +.IX Item "override [0|1]" +Print the override redirect status for the window, or if either 0 or 1 +is given, then disable or enable the override redirect status. +.IP "\fBtabto\fR \fIlabel\fR" 4 +.IX Item "tabto label" +Move the windows as tabs to a frame that has \f(CW\*(C`frame\*(C'\fR label \fIlabel\fR. +Such a frame is created if needed. +.IP \fBuntab\fR 4 +.IX Item "untab" +Move each window to its own frame, if it is currently tabbed. +.IP "\fBloadicon\fR \fIimage.pam\fR" 4 +.IX Item "loadicon image.pam" +Load an icon from file, which must be in the PAM image format, +with dimensions at most 256, a depth of 4, and type \fIRGB_ALPHA\fR. +.IP "\fBsaveicon\fR \fIfile000.pam\fR" 4 +.IX Item "saveicon file000.pam" +Save an icon to a new file in the PAM image format. Digits are +increased to generate a unique new filename for each window. +.IP "\fBclick\fR \fIwindow-x\fR \fIwindow-y\fR \fIbutton\fR" 4 +.IX Item "click window-x window-y button" +Send a button press and release event at position (\fIwindow-x\fR, +\&\fIwindow-y\fR). A negative position is relative to the bottom right +corner. The mouse pointer is warped to the position before sending +the events. The button number should be between 1 and 5 inclusive. +.IP "\fBmonitors\fR \fItop\fR \fIbottom\fR \fIleft\fR \fIright\fR" 4 +.IX Item "monitors top bottom left right" +This sets the monitors to use for fullscreen. +Top, bottom, left, and right are indices of the \fIicesh xinerama\fR command. +.IP \fBspy\fR 4 +.IX Item "spy" +Observe the selected windows and report any changes. This includes +focus, visibility, position, size and all window properties. +To monitor all of the protocol request messages that client applications +may send to icewm, also spy on the root window. +.IP \fBstacking\fR 4 +.IX Item "stacking" +Sort the list of windows from topmost to bottom-most. +.IP \fBreverse\fR 4 +.IX Item "reverse" +Reverse the order of the list of windows. +.SS "MANAGER ACTIONS" +.IX Subsection "MANAGER ACTIONS" +The following actions control the IceWM window manager and therefore +do not require a window \fIselect\fR or \fIfilter\fR option: +.IP \fBlistWorkspaces\fR 4 +.IX Item "listWorkspaces" +List the names of all workspaces. +.IP \fBcurrent\fR 4 +.IX Item "current" +Show the number and name of the current workspace. +.IP "\fBgoto\fR \fIWORKSPACE\fR" 4 +.IX Item "goto WORKSPACE" +Change the current workspace to \fIWORKSPACE\fR. Specify \f(CW\*(C`next\*(C'\fR for the +subsequent workspace or \f(CW\*(C`prev\*(C'\fR for the preceding workspace. +.IP "\fBworkspaces\fR [\fICOUNT\fR]" 4 +.IX Item "workspaces [COUNT]" +Print the number of workspaces if \fICOUNT\fR is not given, +otherwise set the number of workspaces to \fICOUNT\fR. +.IP "\fBsetWorkspaceName\fR \fIINDEX\fR \fINAME\fR" 4 +.IX Item "setWorkspaceName INDEX NAME" +Change the name of the workspace \fIINDEX\fR to \fINAME\fR, where \fIINDEX\fR is +a workspace number starting from zero. +.IP "\fBsetWorkspaceNames\fR \fINAME\fR [\fINAME\fR]*" 4 +.IX Item "setWorkspaceNames NAME [NAME]*" +Change the workspace names to the list of \fINAME\fRs. +.IP "\fBaddWorkspace\fR \fINAME\fR" 4 +.IX Item "addWorkspace NAME" +Create a new workspace with name \fINAME\fR. +.IP "\fBdesktop\fR [\fISHOWING\fR]" 4 +.IX Item "desktop [SHOWING]" +If \fISHOWING\fR is \f(CW1\fR then set \f(CW\*(C`showing the desktop\*(C'\fR mode. +If \fISHOWING\fR is \f(CW0\fR then turn off \f(CW\*(C`showing the desktop\*(C'\fR. +Print the current mode if \fISHOWING\fR is not given. +.IP \fBworkarea\fR 4 +.IX Item "workarea" +Print the dimensions of the work area for the current workspace. +This is the desktop, but minus space occupied by dock and panel windows. +.IP \fBrandr\fR 4 +.IX Item "randr" +Summarize the \fIRandR\fR configuration. +.IP \fBxinerama\fR 4 +.IX Item "xinerama" +Summarize the \fIXinerama\fR configuration. +.IP \fBcheck\fR 4 +.IX Item "check" +Print information about the current window manager, like name, +version, class, locale, command, host name and pid. +.IP \fBclients\fR 4 +.IX Item "clients" +List all managed client windows, their titles and geometries. +.IP \fBshown\fR 4 +.IX Item "shown" +List all mapped client windows for the current desktop, +their titles and geometries. +.IP \fBwindows\fR 4 +.IX Item "windows" +List all toplevel windows, their titles and geometries. +.IP \fBsystray\fR 4 +.IX Item "systray" +List applications that are managed by the IceWM system tray. +.IP \fBxembed\fR 4 +.IX Item "xembed" +List application windows that are embedded using the \fIXEMBED\fR protocol. +This is another way to discover system tray applications. +.IP \fBlogout\fR 4 +.IX Item "logout" +Let icewm execute the \f(CW\*(C`LogoutCommand\*(C'\fR. +.IP \fBreboot\fR 4 +.IX Item "reboot" +Let icewm execute the \f(CW\*(C`RebootCommand\*(C'\fR. +.IP \fBshutdown\fR 4 +.IX Item "shutdown" +Let icewm execute the \f(CW\*(C`ShutdownCommand\*(C'\fR. +.IP \fBcancel\fR 4 +.IX Item "cancel" +Let icewm cancel the logout/reboot/shutdown. +.IP \fBabout\fR 4 +.IX Item "about" +Let icewm show the about window. +.IP \fBwindowlist\fR 4 +.IX Item "windowlist" +Let icewm show the window list window. +.IP \fBrestart\fR 4 +.IX Item "restart" +Let icewm restart itself. +.IP \fBsuspend\fR 4 +.IX Item "suspend" +Let icewm execute the \f(CW\*(C`SuspendCommand\*(C'\fR. +.IP \fBhibernate\fR 4 +.IX Item "hibernate" +Let icewm execute the \f(CW\*(C`HibernateCommand\*(C'\fR. +.IP \fBwinoptions\fR 4 +.IX Item "winoptions" +Let icewm reload the \f(CW\*(C`winoptions\*(C'\fR. +.IP \fBkeys\fR 4 +.IX Item "keys" +Let icewm reload the \f(CW\*(C`keys\*(C'\fR file. +.IP \fBrefresh\fR 4 +.IX Item "refresh" +Let icewm refresh the desktop background. +.IP \fBguievents\fR 4 +.IX Item "guievents" +Monitor the \fBICEWM_GUI_EVENT\fR property and report all changes. +Hit \f(CW\*(C`Ctrl+C\*(C'\fR to abort this and continue with the next command. +.IP "\fBdelay\fR [\fItime\fR]" 4 +.IX Item "delay [time]" +Stop execution for \fItime\fR or 0.1 seconds. +.IP "\fBrunonce\fR \fIprogram\fR [\fIarguments...\fR]" 4 +.IX Item "runonce program [arguments...]" +This action is meant to be used together with the \fB\-class\fR option. +Only if no window is matched by \fIWM_CLASS\fR then +\&\fIprogram\fR [\fIarguments...\fR] is executed. +.IP "\fBloop\fR [\fIcount\fR]" 4 +.IX Item "loop [count]" +Loop back to the beginning of the command and repeat. The optional +\&\fIcount\fR limits the number of repetitions. +.IP \fBpick\fR 4 +.IX Item "pick" +Choose a window by a mouse button click. +.IP \fBsync\fR 4 +.IX Item "sync" +Synchronize with the IceWM window manager. That is, wait for icewm to +process all previous actions. +.IP \fBsymbols\fR 4 +.IX Item "symbols" +List all named symbols. +.SS CONDITIONALS +.IX Subsection "CONDITIONALS" +Icesh supports \f(CW\*(C`if\-then\-else\*(C'\fR expressions. The full syntax is: +.PP +.Vb 9 +\& if selection +\& then +\& actions +\& elif selection +\& then +\& actions +\& else +\& actions +\& end +.Ve +.PP +Where \f(CW\*(C`selection\*(C'\fR is a sequence of selection and filtering options, +which evaluates to \fBtrue\fR when it is non-empty. That is, if one or more +windows fulfilled the condition. If it is empty, then its \f(CW\*(C`actions\*(C'\fR +clause is ignored and the subsequent \f(CW\*(C`elif\*(C'\fR or \f(CW\*(C`else\*(C'\fR clause is tried +or taken. Each clause is optional. +.PP +Whenever a selection condition evaluates to \fBfalse\fR, the window selection +that existed before the \f(CW\*(C`if\*(C'\fR clause is immediately restored. This also +happens after an \f(CW\*(C`end\*(C'\fR clause. +.SS EXPRESSIONS +.IX Subsection "EXPRESSIONS" +Some of the window actions require one or two \fIEXPRESSION\fR arguments. +.ie n .IP "\fBEXPRESSION\fR ::= \fISYMBOL\fR | \fIEXPRESSION\fR { ""+"" | ""|"" } \fISYMBOL\fR" 4 +.el .IP "\fBEXPRESSION\fR ::= \fISYMBOL\fR | \fIEXPRESSION\fR { \f(CW+\fR | \f(CW|\fR } \fISYMBOL\fR" 4 +.IX Item "EXPRESSION ::= SYMBOL | EXPRESSION { + | | } SYMBOL" +.PP +Each \fISYMBOL\fR may be from one of the following applicable domains: +.IP "\fIWindow layer\fR" 4 +.IX Item "Window layer" +Named symbols of the domain \fIWindow layer\fR (numeric range: 0\-15): +.Sp +.Vb 9 +\& Desktop (0) +\& Below (2) +\& Normal (4) +\& OnTop (6) +\& Dock (8) +\& AboveDock (10) +\& Menu (12) +\& Fullscreen (14) +\& AboveAll (15) +.Ve +.Sp +These symbols are used with the \fILAYER\fR argument to the \f(CW\*(C`setLayer\*(C'\fR +action. +.IP "\fIIceWM tray option\fR" 4 +.IX Item "IceWM tray option" +Named symbols of the domain \fIIceWM tray option\fR (numeric range: 0\-2): +.Sp +.Vb 3 +\& Ignore (0) +\& Minimized (1) +\& Exclusive (2) +.Ve +.Sp +These symbols are used with the \fITRAYOPTION\fR argument to the +\&\f(CW\*(C`setTrayOption\*(C'\fR action. +.IP "\fIGravity symbols\fR" 4 +.IX Item "Gravity symbols" +Named symbols for window and bit gravity (numeric range: 0\-10): +.Sp +.Vb 11 +\& ForgetGravity (0) +\& NorthWestGravity (1) +\& NorthGravity (2) +\& NorthEastGravity (3) +\& WestGravity (4) +\& CenterGravity (5) +\& EastGravity (6) +\& SouthWestGravity (7) +\& SouthGravity (8) +\& SouthEastGravity (9) +\& StaticGravity (10) +.Ve +.IP "\fIMotif functions\fR" 4 +.IX Item "Motif functions" +.Vb 6 +\& All (1) +\& Resize (2) +\& Move (4) +\& Minimize (8) +\& Maximize (16) +\& Close (32) +.Ve +.IP "\fIMotif decorations\fR" 4 +.IX Item "Motif decorations" +.Vb 7 +\& All (1) +\& Border (2) +\& Resize (4) +\& Title (8) +\& Menu (16) +\& Minimize (32) +\& Maximize (64) +.Ve +.IP "\fIEWMH window state symbols\fR" 4 +.IX Item "EWMH window state symbols" +Named symbols of the domain \fIEWMH state\fR (numeric range: +0\-8191): +.Sp +.Vb 10 +\& ABOVE (1) +\& BELOW (2) +\& DEMANDS_ATTENTION (4) +\& FOCUSED (8) +\& FULLSCREEN (16) +\& HIDDEN (32) +\& MAXIMIZED_HORZ (64) +\& MAXIMIZED_VERT (128) +\& MODAL (256) +\& SHADED (512) +\& SKIP_PAGER (1024) +\& SKIP_TASKBAR (2048) +\& STICKY (4096) +.Ve +.SS EXAMPLES +.IX Subsection "EXAMPLES" +List all workspace names: +.PP +.Vb 1 +\& icesh listWorkspaces +.Ve +.PP +Example output: +.PP +.Vb 4 +\& workspace #0: \`main\*(Aq +\& workspace #1: \`web\*(Aq +\& workspace #2: \`doc\*(Aq +\& workspace #3: \`dev\*(Aq +.Ve +.PP +Close terminal work and activate terminal fun. +.PP +.Vb 1 +\& icesh \-c work.XTerm close \-a \-c fun.XTerm activate +.Ve +.PP +Print opacity for all xterms. +.PP +.Vb 1 +\& icesh \-c XTerm opacity +.Ve +.PP +Change opacity for all xterms. +.PP +.Vb 1 +\& icesh \-c XTerm opacity 84 +.Ve +.PP +Move all windows on workspace "Top" to the current workspace. +.PP +.Vb 1 +\& icesh \-W "Top" setWorkspace "this" +.Ve +.PP +Restore all hidden clients, minimize all clients on the current +workspace and activate Firefox. +.PP +.Vb 1 +\& icesh \-N HIDDEN restore \-a \-W "this" minimize \-a \-c Firefox activate +.Ve +.PP +Resize the focused window to occupy the right half of the desktop area. +.PP +.Vb 1 +\& icesh \-f sizeto 49% 100% top right raise +.Ve +.PP +Toggle the frame border of the focused window. +.PP +.Vb 2 +\& if icesh \-f motif | grep \-q \*(Aqdecor:$\*(Aq; then \e +\& icesh \-f motif decor All; else icesh \-f motif decor ""; fi +.Ve +.PP +Here is a different solution using conditionals. +.PP +.Vb 1 +\& icesh \-f if \-P _NET_FRAME_EXTENTS=0 then bordered else borderless +.Ve +.PP +Here is a conditional to either toggle the visibility of a roxterm +that has a WM_ROLE value of \f(CW\*(C`special\*(C'\fR or start it with \fBrunonce\fR. +.PP +.Vb 4 +\& icesh if \-c roxterm.Roxterm \-R special then \e +\& if \-v then hide \e +\& elif \-u then setWorkspace this activate end \e +\& else runonce roxterm \-\-role=special +.Ve +.PP +Collect all urxvt terminals from the fourth workspace in a single frame +on the current workspace. +.PP +.Vb 1 +\& icesh \-W 3 \-c urxvt tabto myfunnyname +.Ve +.PP +Use the loop construct conditionally to wait for a certain window to +appear. +.PP +.Vb 1 +\& icesh \-t if \-n Tooltip then list else delay 0.05 loop end +.Ve +.SS ENVIRONMENT +.IX Subsection "ENVIRONMENT" +.IP \fBDISPLAY\fR 4 +.IX Item "DISPLAY" +The default display. +.SS "EXIT STATUS" +.IX Subsection "EXIT STATUS" +.IP \fB0\fR 4 +.IX Item "0" +The last action completed successfully. +.IP \fB1\fR 4 +.IX Item "1" +The last action completed unsuccessfully, or no window met the condition. +.IP \fB2\fR 4 +.IX Item "2" +A conditional has invalid syntax. +.IP \fB3\fR 4 +.IX Item "3" +The display could not be opened. +.IP \fB4\fR 4 +.IX Item "4" +The X server reports an error while processing a request. +.SS COMPLIANCE +.IX Subsection "COMPLIANCE" +\&\fBicesh\fR is largely compliant with the EWMH and ICCCM specifications. +Some commands, like manager actions, are specific to IceWM. +.SS "SEE ALSO" +.IX Subsection "SEE ALSO" +\&\fBicewm\fR\|(1), \fBwmctrl\fR\|(1), \fBxdotool\fR\|(1), \fBxprop\fR\|(1), +\&\fBxwininfo\fR\|(1), \fBXParseGeometry\fR\|(3). +.SS BUGS +.IX Subsection "BUGS" +Please report bugs at <https://github.com/bbidulock/icewm/issues>. +.SS AUTHOR +.IX Subsection "AUTHOR" +Brian Bidulock <mailto:bidulock@openss7.org>. +.PP +See \fB\-\-copying\fR for full copyright notice and copying permissions. +.SS LICENSE +.IX Subsection "LICENSE" +\&\fBIceWM\fR is licensed under the GNU Library General Public License. +See the \fICOPYING\fR file in the distribution or use the \fB\-\-copying\fR flag +to display copying permissions. |