Jitterbug no more.
[fvwm.git] / doc / commands / WindowList.xml
blob51f807036fb02f54291541ff95e09919e08f809d
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE part PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3   "../docbook-xml/docbookx.dtd"
5 <!ENTITY % myents SYSTEM "../fvwm.ent" >
6 %myents;
7 ]>
9 <!-- $Id: WindowList.xml,v 1.4 2007/06/16 12:38:46 griph Exp $ -->
11 <section id='WindowList'>
12 <title>WindowList</title>
14 <cmdsynopsis>
15         <command>WindowList</command
16         ><arg choice='opt'
17                 >(<replaceable>conditions</replaceable
18         >)</arg
19         ><arg choice='opt'
20                 ><replaceable>position</replaceable
21         ></arg
22         ><arg choice='opt'
23                 ><replaceable>options</replaceable
24         ></arg
25         ><arg choice='opt'
26                 ><replaceable>double-click-action</replaceable
27         ></arg>
28 </cmdsynopsis>
31 <para>Generates a pop-up menu (and pops it up) in which the title and
32 geometry of each of the windows currently on the desktop are
33 shown.</para>
35 <para>The format of the geometry part is:
36 <replaceable>desk</replaceable>(<replaceable>layer</replaceable>): <replaceable>x-geometry</replaceable> <replaceable>sticky</replaceable>,
37 where
38 <replaceable>desk</replaceable> and <replaceable>layer</replaceable>
39 are the corresponding numbers and
40 <replaceable>sticky</replaceable>
41 is empty or a capital S.  The geometry of iconified windows is
42 shown in parentheses.  Selecting an item from the window list
43 pop-up menu causes the interpreted function "WindowListFunc" to be
44 run with the window id of that window passed in as $0. The default
45 "WindowListFunc" looks like this:</para>
47 <programlisting>
48 <fvwmref cmd="AddToFunc"/> WindowListFunc
49 + I <fvwmref cmd="Iconify"/> off
50 + I <fvwmref cmd="FlipFocus"/>
51 + I <fvwmref cmd="Raise"/>
52 + I <fvwmref cmd="WarpToWindow"/> 5p 5p
53 </programlisting>
55 <para>You can destroy the built-in "WindowListFunc" and create your own
56 if these defaults do not suit you.</para>
58 <para>The window list menu uses the "WindowList" menu style if it is
59 defined (see
60 <fvwmref cmd="MenuStyle"/>
61 command).  Otherwise the default menu style is used.  To switch
62 back to the default menu style, issue the command</para>
64 <programlisting>
65 <fvwmref cmd="DestroyMenuStyle"/> WindowList
66 </programlisting>
68 <para>Example:</para>
70 <programlisting>
71 <fvwmref cmd="MenuStyle"/> WindowList <fvwmref cmd="MenuStyle" opt="SelectOnRelease"/> Meta_L
72 </programlisting>
74 <para>The
75 <replaceable>conditions</replaceable>
76 can be used to exclude certain windows from the window
77 list. Please refer to the
78 <fvwmref cmd="Current"/>
79 command for details.  Only windows that match the given conditions
80 are displayed in the window list.  The
81 <replaceable>options</replaceable>
82 below work vice versa: windows that would otherwise not be
83 included in the window list can be selected with them.  The
84 <replaceable>conditions</replaceable>
85 always override the
86 <replaceable>options</replaceable>.</para>
89 <para>The
90 <replaceable>position</replaceable>
91 arguments are the same as for
92 <fvwmref cmd="Menu"/>.
93 The command
94 <replaceable>double-click-action</replaceable>
95 is invoked if the user double-clicks (or hits the key rapidly
96 twice if the menu is bound to a key) when bringing the window
97 list.  The
98 <replaceable>double-click-action</replaceable>
99 must be quoted if it consists of more than one word.</para>
101 <para>The
102 <replaceable>double-click-action</replaceable>
103 is useful to define a default window if you have bound the window
104 list to a key (or button) like this:</para>
106 <programlisting>
107 # Here we call an existing function, but
108 # it may be different.  See the default
109 # WindowListFunc definition earlier in this
110 # man page.
111 <fvwmref cmd="AddToFunc"/> SwitchToWindow
112 + I WindowListFunc
114 <fvwmref cmd="Key"/> Tab A M WindowList "Prev SwitchToWindow"
115 </programlisting>
117 <para>Hitting
118 <keysym>Alt-Tab</keysym>
119 once it brings up the window list, if you hit it twice the focus
120 is flipped between the current and the last focused window.  With
121 the proper
122 <fvwmref cmd="MenuStyle" opt="SelectOnRelease"/>
123 menu style (see example above) a window is selected as soon as you
124 release the
125 <keysym>Alt</keysym>
126 key.</para>
128 <para>The
129 <replaceable>options</replaceable>
130 passed to WindowList are separated by commas and can be
131 <emphasis remap='I'>Geometry</emphasis> / <emphasis remap='I'>NoGeometry</emphasis> / <emphasis remap='I'>NoGeometryWithInfo</emphasis>,
132 <emphasis remap='I'>NoDeskNum,</emphasis>
133 <emphasis remap='I'>NoLayer,</emphasis>
134 <emphasis remap='I'>NoNumInDeskTitle</emphasis>,
135 <emphasis remap='I'>NoCurrentDeskTitle</emphasis>,
136 <emphasis remap='I'>MaxLabelWidth width</emphasis>,
137 <emphasis remap='I'>TitleForAllDesks</emphasis>,
138 <emphasis remap='I'>Function funcname</emphasis>,
139 <emphasis remap='I'>Desk desknum</emphasis>,
140 <emphasis remap='I'>CurrentDesk</emphasis>,
141 <emphasis remap='I'>NoIcons</emphasis> / <emphasis remap='I'>Icons</emphasis> / <emphasis remap='I'>OnlyIcons</emphasis>,
142 <emphasis remap='I'>NoNormal</emphasis> / <emphasis remap='I'>Normal</emphasis> / <emphasis remap='I'>OnlyNormal</emphasis>,
143 <emphasis remap='I'>NoSticky</emphasis> / <emphasis remap='I'>Sticky</emphasis> / <emphasis remap='I'>OnlySticky</emphasis>,
144 <emphasis remap='I'>NoStickyAcrossPages</emphasis> / <emphasis remap='I'>StickyAcrossPages</emphasis> / <emphasis remap='I'>OnlyStickyAcrossPages</emphasis>,
145 <emphasis remap='I'>NoStickyAcrossDesks</emphasis> / <emphasis remap='I'>StickyAcrossDesks</emphasis> / <emphasis remap='I'>OnlyStickyAcrossDesks</emphasis>,
146 <emphasis remap='I'>NoOnTop</emphasis> / <emphasis remap='I'>OnTop</emphasis> / <emphasis remap='I'>OnlyOnTop</emphasis>,
147 <emphasis remap='I'>NoOnBottom</emphasis> / <emphasis remap='I'>OnBottom</emphasis> / <emphasis remap='I'>OnlyOnBottom</emphasis>,
148 <emphasis remap='I'>Layer m [n]</emphasis>,
149 <emphasis remap='I'>UseSkipList</emphasis> / <emphasis remap='I'>OnlySkipList</emphasis>,
150 <emphasis remap='I'>NoDeskSort</emphasis>,
151 <emphasis remap='I'>ReverseOrder</emphasis>,
152 <emphasis remap='I'>CurrentAtEnd</emphasis>,
153 <emphasis remap='I'>IconifiedAtEnd</emphasis>,
154 <emphasis remap='I'>UseIconName</emphasis>,
155 <emphasis remap='I'>Alphabetic</emphasis> / <emphasis remap='I'>NotAlphabetic</emphasis>,
156 <emphasis remap='I'>SortByResource</emphasis>,
157 <emphasis remap='I'>SortByClass</emphasis>,
158 <emphasis remap='I'>NoHotkeys</emphasis>,
159 <emphasis remap='I'>SelectOnRelease</emphasis>.</para>
161 <para>(Note - normal means not iconic, sticky, or on top)</para>
163 <para>With the
164 <fvwmopt cmd="WindowList" opt="SortByResource"/>
165 option windows are alphabetically sorted first by resource class,
166 then by resource name and then by window name (or icon name if
167 <fvwmopt cmd="WindowList" opt="UseIconName"/>
168 is specified).
169 <fvwmopt cmd="WindowList" opt="ReverseOrder"/>
170 also works in the expected manner.</para>
172 <para>With the
173 <fvwmopt cmd="WindowList" opt="SortByClass"/>
174 option windows are sorted just like with
175 <emphasis remap='I'>SortByResource</emphasis>,
176 but the resource name is not taken into account, only the resource
177 class.</para>
179 <para>The
180 <fvwmopt cmd="WindowList" opt="SelectOnRelease"/>
181 option works exactly like the
182 <fvwmref cmd="MenuStyle"/>
183 option with the same name, but overrides the option given in a
184 menu style.  By default, this option is set to the left
185 <keysym>Alt</keysym>
186 key.  To switch it off, use
187 <emphasis remap='I'>SelectOnRelease</emphasis>
188 without a key name.</para>
190 <para>If you pass in a function via
191 <fvwmref cmd="Function"/> funcname,
192 it is called within a window context of the selected window:</para>
194 <programlisting>
195 <fvwmref cmd="AddToFunc"/> IFunc I <fvwmref cmd="Iconify"/> toggle
196 WindowList <fvwmref cmd="Function"/> IFunc, NoSticky, CurrentDesk, NoIcons
197 </programlisting>
199 <para>If you use the
200 <fvwmopt cmd="WindowList" opt="Layer"/>
201 <replaceable>m</replaceable>
202 <optional><replaceable>n</replaceable></optional>
203 option, only windows in layers between m and n are displayed. n
204 defaults to m.  With the
205 <emphasis remap='I'>ReverseOrder</emphasis>
206 option the order of the windows in the list is reversed.</para>
208 <para>With the
209 <fvwmopt cmd="WindowList" opt="CurrentAtEnd"/>
210 option the currently focused window (if any) is shown at the
211 bottom of the list.  This is mostly intended for simulating the
212 Alt-Tab behavior in another GUI.</para>
214 <para>
215 <fvwmopt cmd="WindowList" opt="IconifiedAtEnd"/>
216 makes iconified windows be moved to the end of the list.  This is
217 also from another GUI.</para>
219 <para>The
220 <fvwmopt cmd="WindowList" opt="NoGeometry"/>
221 option causes fvwm to not display the geometries as well as
222 the separators which indicate the different desktops.
223 <fvwmopt cmd="WindowList" opt="NoGeometryWithInfo"/>
224 removes the geometries, but keep the desktop information
225 and indicates iconic windows.
226 <fvwmopt cmd="WindowList" opt="NoDeskNum"/>
227 causes fvwm to not display the desktop number in the geometry
228 or before the window title with the
229 <fvwmopt cmd="WindowList" opt="NoGeometryWithInfo"/>
230 option.
231 <fvwmopt cmd="WindowList" opt="NoNumInDeskTitle"/>
232 is only useful if a desktop name is defined with the
233 <fvwmref cmd="DesktopName"/>
234 command. It causes fvwm to not display the desktop number before
235 the desktop name.  By default, the WindowList menu have a title
236 which indicates the current desk or the selected desktop if the
237 <fvwmopt cmd="WindowList" opt="Desk"/>
238 condition is used. The
239 <fvwmopt cmd="WindowList" opt="NoCurrentDeskTitle"/>
240 option removes this title.
241 <fvwmopt cmd="WindowList" opt="TitleForAllDesks"/>
242 causes fvwm to add a menu title with the desk name and/or number
243 before each group of windows on the same desk.
244 With
245 <fvwmopt cmd="WindowList" opt="NoLayer"/>,
246 the layer of the window is not diplayed.  The options
247 <fvwmopt cmd="WindowList" opt="ShowPage"/>,
248 <fvwmopt cmd="WindowList" opt="ShowPageX"/> and
249 <fvwmopt cmd="WindowList" opt="ShowPageY"/>
250 enable displaying the page of the window rounded multiples of the
251 display size.
252 With
253 <fvwmopt cmd="WindowList" opt="ShowScreen"/>,
254 the window's Xinerama screen number is displayed.</para>
256 <para>The
257 <fvwmopt cmd="WindowList" opt="MaxLabelWidth"/>
258 option takes the number of characters to print as its argument.
259 No more than that many characters of the window name are visible.</para>
261 <para>If you wanted to use the
262 <emphasis remap='B'>WindowList</emphasis>
263 as an icon manager, you could invoke the following:</para>
265 <programlisting>
266 WindowList OnlyIcons, Sticky, OnTop, Geometry
267 </programlisting>
269 <para>(Note - the
270 <emphasis remap='I'>Only</emphasis>
271 options essentially wipe out all other ones... but the
272 <fvwmopt cmd="WindowList" opt="OnlyListSkip"/>
273 option which just causes
274 <emphasis remap='B'>WindowList</emphasis>
275 to only consider the windows with
276 <fvwmref cmd="Style" opt="WindowListSkip"/>
277 style.)</para>
279 </section>