1WMCTRL(1) General Commands Manual WMCTRL(1)
2
3
4
6 wmctrl - interact with a EWMH/NetWM compatible X Window Manager.
7
9 wmctrl [ options | actions ]...
10
11
12
14 wmctrl is a command that can be used to interact with an X Window man‐
15 ager that is compatible with the EWMH/NetWM specification. wmctrl can
16 query the window manager for information, and it can request that cer‐
17 tain window management actions be taken.
18
19
20 wmctrl is controlled entirely by its command line arguments. The com‐
21 mand line arguments are used to specify the action to be performed
22 (with options that modify behavior) and any arguments that might be
23 needed to perform the actions.
24
25
26 The following sections define the supported actions and options. Argu‐
27 ments to the actions and options are written in the form <ARGNAME> in
28 the descriptions below. The detailed syntax for writing arguments are
29 in a single section dedicated to that purpose.
30
31
32
33
35 The following command line arguments can be specified to invoke a wmc‐
36 trl action. Only one action can be executed with the invocation of the
37 wmctrl command.
38
39
40 -a <WIN>
41 Switch to the desktop containing the window <WIN>, raise the
42 window, and give it focus.
43
44
45 -b ( add | remove | toggle),prop1 [,prop2 ]
46 Add, remove, or toggle up to two window properties simultane‐
47 ously. The window that is being modified must be identified with
48 a -r action. The property change is achived by using the EWMH
49 _NET_WM_STATE request. The supported property names (for prop1
50 and prop2) are modal, sticky, maximized_vert, maximized_horz,
51 shaded, skip_taskbar, skip_pager, hidden, fullscreen, above and
52 below. Two properties are supported to allow operations like
53 maximizing a window to full screen mode. Note that this action
54 is made up of exactly two shell command line arguments.
55
56
57
58 -c <WIN>
59 Close the window <WIN> gracefully.
60
61
62 -d List all desktops managed by the window manager. One line is
63 output for each desktop, with the line broken up into space
64 separated columns. The first column contains an integer desktop
65 number. The second column contains a '*' character for the
66 current desktop, otherwise it contains a '-' character. The next
67 two columns contain the fixed string DG: and then the desktop
68 geometry as '<width>x<height>' (e.g. '1280x1024'). The following
69 two columns contain the fixed string VP: and then the viewport
70 position in the format '<y>,<y>' (e.g. '0,0'). The next three
71 columns after this contains the fixed string WA: and then two
72 columns with the workarea geometry as 'X,Y and WxH' (e.g. '0,0
73 1280x998'). The rest of the line contains the name of the
74 desktop (possibly containing multiple spaces).
75
76
77 -e <MVARG>
78 Resize and move a window that has been specified with a -r
79 action according to the <MVARG> argument.
80
81
82 -g w,h Change the geometry (common size) of all desktops so they are w
83 pixels wide and h pixels high. w and h must be positive
84 integers. A window manager may ignore this request.
85
86
87 -h Print help text about program usage.
88
89
90 -I name
91 Set the icon name (short title) of the window specified by a -r
92 action to name.
93
94
95 -k ( on | off )
96 Turn on or off the window manager's "show the desktop" mode (if
97 the window manager implements this feature).
98
99
100 -l List the windows being managed by the window manager. One line
101 is output for each window, with the line broken up into space
102 separated columns. The first column always contains the window
103 identity as a hexadecimal integer, and the second column always
104 contains the desktop number (a -1 is used to identify a sticky
105 window). If the -p option is specified the next column will
106 contain the PID for the window as a decimal integer. If the -G
107 option is specified then four integer columns will follow: x-
108 offset, y-offset, width and height. The next column always
109 contains the client machine name. The remainder of the line
110 contains the window title (possibly with multiple spaces in the
111 title).
112
113
114 -m Display information about the window manager and the
115 environment.
116
117
118 -n N Change the number of desktops to N (a non-negative integer).
119
120
121 -N name
122 Set the name (long title) of the window specified by a -r action
123 to name.
124
125
126
127 -o x,y Change the viewport for the current desktop. The values x and y
128 are numeric offsets that specify the position of the top left
129 corner of the viewport. A window manager may ignore this
130 request.
131
132
133 -r <WIN>
134 Specify a target window for an action.
135
136
137 -R <WIN>
138 Move the window <WIN> to the current desktop, raise the window,
139 and give it focus.
140
141
142 -s <DESK>
143 Switch to the desktop <DESK>.
144
145
146 -t <DESK>
147 Move a window that has been specified with the -r action to the
148 desktop <DESK>.
149
150
151 -T name
152 Set the both the name (long title) and icon name (short title)
153 of the window specified by a -r action to name. This action is
154 like using the -N and -I actions at the same time (which would
155 otherwise be impossible since wmctrl can execute only one action
156 at a time).
157
158
159
161 The following options modify the default actions, or they modify the
162 interpretation of arguments.
163
164
165 -F Window name arguments (<WIN>) are to be treated as exact window
166 titles that are case sensitive. Without this options window
167 titles are considered to be case insensitive substrings of the
168 full window title.
169
170
171 -G Include geometry information in the output of the -l action.
172
173
174 -i Interpret window arguments (<WIN>) as a numeric value rather
175 than a string name for the window. If the numeric value starts
176 with the prefix '0x' it is assumed to be a hexadecimal number.
177
178
179 -p Include PIDs in the window list printed by the -l action. Prints
180 a PID of '0' if the application owning the window does not
181 support it.
182
183
184 -u Override auto-detection and force UTF-8 mode.
185
186
187 -v Provide verbose output. This is really useful when debugging
188 wmctrl itself.
189
190
191 -w [ <WORKAROUND>[,<WORKAROUND>]... ]
192 Use workarounds specified in the argument.
193
194
195 -x Include WM_CLASS in the window list or interpret <WIN> as the
196 WM_CLASS name.
197
198
199
201 <DESK> A Desktop is always specified by an integer which represents the
202 desktop numbers. Desktop numbers start at 0.
203
204
205 <MVARG>
206 A move and resize argument has the format 'g,x,y,w,h'. All five
207 components are integers. The first value, g, is the gravity of
208 the window, with 0 being the most common value (the default
209 value for the window). Please see the EWMH specification for
210 other values.
211
212 The four remaining values are a standard geometry specification:
213 x,y is the position of the top left corner of the window, and
214 w,h is the width and height of the window, with the exception
215 that the value of -1 in any position is interpreted to mean that
216 the current geometry value should not be modified.
217
218
219
220 <WIN> This argument specifies a window that is the target of an
221 action. By default the argument is treated as if were a string,
222 and windows are examined until one is found with a title the
223 contains the specified string as a substring. The substring
224 matching is done in a case insensitive manner. The -F option may
225 be used to force exact, case sensitive title matching. The
226 option -i may be used to interpret the window target as a
227 numeric window identity instead of a string.
228
229 The window name string :SELECT: is treated specially. If this
230 window name is used then wmctrl waits for the user to select the
231 target window by clicking on it.
232
233 The window name string :ACTIVE: may be used to instruct wmctrl
234 to use the currently active window for the action.
235
236
237
238 <WORKAROUND>
239 There is only one work around currently implemeted. It is
240 specified by using the string DESKTOP_TITLES_INVALID_UTF8 and it
241 causes the printing of non-ASCII desktop tiles correctly when
242 using Window Maker.
243
244
245
246
248 Getting a list of windows managed by the window manager
249
250 wmctrl -l
251
252 Getting a list of windows with PID and geometry information.
253
254 wmctrl -p -G -l
255
256 Going to the window with a name containing 'emacs' in it
257
258 wmctrl -a emacs
259
260 Shade a window with a title that contains the word 'mozilla'
261
262 wmctrl -r mozilla -b add,shaded
263
264 Close a very specifically titled window sticky
265
266 wmctrl -F -c 'Debian bug tracking system - Mozilla'
267
268 Toggle the 'stickiness' of a window with a specific window identity
269
270 wmctrl -i -r 0x0120002 -b add,sticky
271
272 Change the title of window to a specified string but choose the window
273 by clicking on it
274
275 wmctrl -r :SELECT: -T "Selected Window"
276
278 zenity(1) is a useful dialog program for building scripts with wmctrl.
279
280 Some examples of EWMH/NetWM compatible window managers include recent
281 versions of Enlightenment, Icewm, Kwin, Sawfish and Xfce.
282
284 wmctrl was written by Tomas Styblo <tripie@cpan.org>.
285
286 This manual page was written by Shyamal Prasad <shyamal@member.fsf.org>
287 for the Debian project (but may be used by others).
288
289
290
291 December 12, 2004 WMCTRL(1)