cvsimport
[fvwm.git] / doc / modules / FvwmTabs.xml
blobade867f7720aec5edb10b14f589a4e8c5d814996
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!-- $Id: FvwmTabs.xml,v 1.6 2008/01/08 10:31:00 griph Exp $ -->
3 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
4   "../docbook-xml/docbookx.dtd"
6 <!ENTITY % myents SYSTEM "../fvwm.ent" >
7 %myents;
8 ]>
10 <article>
11 <artheader>
12         <title>FvwmTabs</title>
13         <author>Scott Smedley</author>
14         <titleabbrev>FvwmTabs</titleabbrev>
15         <date>&releasedate;</date>
16 </artheader>
18 <section id="name">
19 <title>Name</title>
20 <para><emphasis remap='B'>FvwmTabs</emphasis> is a generic tabbing module for the fvwm window manager.</para>
21 </section>
24 <section id="synopsis">
25 <title>Synopsis</title>
26 <para><emphasis remap='B'>FvwmTabs</emphasis> is spawned by fvwm, so no command line invocation is possible.</para>
27 </section>
30 <section id="description">
31 <title>Description</title>
32 <para>The <emphasis remap='B'>FvwmTabs</emphasis> module is capable of swallowing any fvwm window &amp; treating it as a tab in a <emphasis>tab-manager</emphasis> window. A tab-manager is sometimes called a <emphasis>tabber</emphasis>. Each tab-manager can store any number of windows, each in its own <emphasis>tab</emphasis>. The number of tab-managers is limited only by system resources. Tab-managers can even be nested/swallowed within other tab-managers. (ie. a tab-manager can be added as an individual tab to another tab-manager.)</para>
34 <para output="html">Here is a screenshot of an FvwmTabs tab-manager with an rxvt window selected. Note the buttons at the top which allow switching between applications.</para>
35 <imageobject output="html"><imagedata output="html" fileref="images/FvwmTabs/screenshot.png"/></imageobject>
37 </section>
39 <section id="invocation">
40 <title>Invocation</title>
41 <para><emphasis remap='B'>FvwmTabs</emphasis> can be invoked by inserting the line:</para>
43 <programlisting>
44 <fvwmref cmd="Module"/> FvwmTabs
45 </programlisting>
47 <para>in your .fvwmrc file. This can be placed on a line by itself, if <emphasis remap='B'>FvwmTabs</emphasis> is to be spawned during fvwm's initialization, or can be bound to a menu, mouse button or keystroke to invoke it later.</para>
48 </section>
50 <section id="dependencies">
51 <title>Installing Dependencies</title>
52 <para><emphasis remap='B'>FvwmTabs</emphasis> requires 2 CPAN modules (that are NOT distributed with fvwm) to be installed on your system. They are <emphasis>Tk</emphasis> and <emphasis>X11::Protocol</emphasis>.</para>
54 <para>They are available at: <ulink>http://search.cpan.org/CPAN/authors/id/N/NI/NI-S/Tk-804.027.tar.gz</ulink> and <ulink>http://search.cpan.org/~smccam/X11-Protocol-0.56/</ulink>.</para>
56 <para>To install either package:</para>
57 <programlisting>
58 tar zxvf $name.tar.gz ; cd $name ; perl Makefile.PL ; make install
59 </programlisting>
61 <para><emphasis remap='B'>FvwmTabs</emphasis> will tell you if you do not have these packages installed when you (try to) start it.</para>
62 </section>
64 <section id="options">
65 <title>Configuration Options</title>
66 <para><emphasis remap='B'>FvwmTabs</emphasis> reads the same config file as fvwm when it starts up.</para>
68 <para>The following options are recognised by <emphasis remap='B'>FvwmTabs</emphasis>:</para>
71 <variablelist>
72 <varlistentry>
73 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="activeFG"/> <emphasis>color</emphasis></term>
74 <listitem><simpara>The text color of the button for the visible tab. The default color is yellow.</simpara></listitem>
75 </varlistentry>
76 <varlistentry>
77 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="activeBG"/> <emphasis>color</emphasis></term>
78 <listitem><simpara>The backgound color of the button for the visible tab. The default color is MidnightBlue.</simpara></listitem>
79 </varlistentry>
80 <varlistentry>
81 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="inactiveFG"/> <emphasis>color</emphasis></term>
82 <listitem><simpara>The text color of the buttons for the invisible tabs. The default color is antiquewhite.</simpara></listitem>
83 </varlistentry>
84 <varlistentry>
85 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="inactiveBG"/> <emphasis>color</emphasis></term>
86 <listitem><simpara>The backgound color of the buttons for the invisible tabs. The default color is royalblue.</simpara></listitem>
87 </varlistentry>
88 <varlistentry>
89 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="activeRelief"/> <emphasis>style</emphasis></term>
90 <listitem><simpara>The relief style to use for active buttons. <emphasis>style</emphasis> can be either <emphasis>raised</emphasis>, <emphasis>flat</emphasis> or <emphasis>sunken</emphasis>. The default style is <emphasis>sunken</emphasis>.</simpara></listitem>
91 </varlistentry>
95 <varlistentry>
96 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="inactiveRelief"/> <emphasis>style</emphasis></term>
97 <listitem><simpara>The relief style to use for inactive buttons. <emphasis>style</emphasis> can be either <emphasis>raised</emphasis>, <emphasis>flat</emphasis> or <emphasis>sunken</emphasis>. The default style is <emphasis>flat</emphasis>.</simpara></listitem>
98 </varlistentry>
100 <varlistentry>
101 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="buttonYPadding"/> <emphasis>pixels</emphasis></term>
102 <listitem><simpara>How much padding to use around top and bottom of tab buttons. The default value is <emphasis>3</emphasis> pixels.</simpara></listitem>
103 </varlistentry>
105 <varlistentry>
106 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="pollRate"/> <emphasis>ms</emphasis></term>
107 <listitem><simpara> Specifies how often to check for X events. <emphasis>ms</emphasis> is time in milliseconds. The default value, <emphasis>250</emphasis>, should be fine for most users. If you are on a very slow machine you may wish to increase this.</simpara></listitem>
108 </varlistentry>
110 <varlistentry>
111 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="buttonFont"/> <emphasis>font</emphasis></term>
112 <listitem><simpara> The font to use on the tab buttons. The default font is <emphasis>Helvetica -12 bold</emphasis>.</simpara></listitem>
113 </varlistentry>
115 <varlistentry>
116 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="titleFont"/> <emphasis>font</emphasis></term>
117 <listitem><simpara> The font to use on the titlebar. The default font is <emphasis>Helvetica -12</emphasis>.</simpara></listitem>
118 </varlistentry>
120 <varlistentry>
121 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="menuFont"/> <emphasis>font</emphasis></term>
122 <listitem><simpara> The font to use on the menus. The default font is <emphasis>Helvetica -12</emphasis>.</simpara></listitem>
123 </varlistentry>
125 <varlistentry>
126 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="fontSelector"/> <emphasis>fontProgram</emphasis></term>
127 <listitem><simpara> The external font chooser program to launch when dynamically changing fonts. The default <emphasis>fontProgram</emphasis> is <emphasis>gfontsel --print -f "%f"</emphasis>. Anti-gnome users might try <emphasis>xfontsel -print -pattern "%f"</emphasis>. If set to <emphasis>none</emphasis>, no font menu options will appear.</simpara></listitem>
128 </varlistentry>
130 <varlistentry>
131 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="autoSwallowClass"/> <emphasis>className</emphasis> [<emphasis>tabManagerId</emphasis>], ...</term>
132 </varlistentry>
133 <varlistentry>
134 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="autoSwallowResource"/> <emphasis>resourceName</emphasis> [<emphasis>tabManagerId</emphasis>], ...</term>
135 </varlistentry>
136 <varlistentry>
137 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="autoSwallowName"/> <emphasis>name</emphasis> [<emphasis>tabManagerId</emphasis>], ...</term>
138 <listitem><simpara> Specify windows to swallow automatically. These are comma-separated lists that specify the class/resource/name of a window and an optional tab-manager id into which the window should be swallowed. By default, the tab-manager id increments from zero - ie. 0 is the first tab-manager created, 1 the second, etc, but it may be overriden by specifying an argument to the <emphasis>NewTabber</emphasis> function. (No whitespace is allowed in tabber ids.) You can alternatively specify 'any' or 'lastFocus' which will put the window in the tab-manager with the least number of tabs or the last focused tab-manager, respectively. If no tab-manager number is specified, an implicit default value of 'any' is used. Note that <emphasis>className</emphasis>/<emphasis>resourceName</emphasis>/<emphasis>name</emphasis> can be a (Perl) regular expression.</simpara></listitem>
139 </varlistentry>
141 <varlistentry>
142 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="balloonBG"/> <emphasis>color</emphasis></term>
143 <listitem><simpara> The backgound color of the balloon popups that appear over the tab buttons. The default color is <emphasis>#C0C080</emphasis>.</simpara></listitem>
144 </varlistentry>
146 <varlistentry>
147 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="balloonFont"/> <emphasis>font</emphasis></term>
148 <listitem><simpara> The font to use on the balloon popups. The default font is <emphasis>Helvetica -12</emphasis>.</simpara></listitem>
149 </varlistentry>
151 <varlistentry>
152 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="balloonWait"/> <emphasis>ms</emphasis></term>
153 <listitem><simpara> How long the mouse cursor must pause (in milliseconds) over a tab button before the balloon pops up. The default value is <emphasis>250</emphasis>. </simpara></listitem>
154 </varlistentry>
156 <varlistentry>
157 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="balloonMsg"/> <emphasis>msg</emphasis></term>
158 <listitem><simpara> Message to display in balloon popups. The default value is <emphasis>%tabNo:\n%iconText\n%title</emphasis>.</simpara></listitem>
159 </varlistentry>
161 <varlistentry>
162 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="autoResize"/> <emphasis>bool</emphasis></term>
163 <listitem><simpara> <emphasis>bool</emphasis> can be either <emphasis>true</emphasis> or <emphasis>false</emphasis>. If true, windows in the tab-manager automatically resize to the dimensions of the largest window in the tab-manager. The default value is <emphasis>false</emphasis>. If the user performs an explicit resize of a tab-manager window, all windows in the tab-manager are resized to the new window size.</simpara></listitem>
164 </varlistentry>
166 <varlistentry>
167 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="stateFile"/> <emphasis>file</emphasis></term>
168 <listitem><simpara><emphasis remap='B'>FvwmTabs</emphasis> has the ability to preserve its state (ie. remember the windows it has swallowed as tabs) b/w fvwm restarts. <emphasis>file</emphasis> specifies the name of a temporary file to record the state in, so it can be reconstructed when <emphasis remap='B'>FvwmTabs</emphasis> restarts. The default file is <envar>$FVWM_USERDIR</envar>/.fvwmtabs.state.</simpara></listitem>
169 </varlistentry>
171 <varlistentry>
172 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="fixedSizeTabs"/> <emphasis>bool</emphasis></term>
173 <listitem><simpara> <emphasis>bool</emphasis> can be either <emphasis>true</emphasis> or <emphasis>false</emphasis>. If true, the tab-manager will ensure each tab-button has the same dimensions. If false, the selected tab is expanded so that it is fully visible. The default value is <emphasis>false</emphasis>.</simpara></listitem>
174 </varlistentry>
176 <varlistentry>
177 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="showTitlebar"/> <emphasis>bool</emphasis></term>
178 <listitem><simpara> Show internal titlebar. If set to <emphasis>true</emphasis> a titlebar appears below the row of tab-buttons and displays the title associated with the current window. This titlebar is capable of displaying long or multi-line titles. The default value is <emphasis>true</emphasis>.</simpara></listitem>
179 </varlistentry>
181 <varlistentry>
182 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="useTMTitlebar"/> <emphasis>bool</emphasis></term>
183 <listitem><simpara> Add the title associated with the selected tab to the tab-manager titlebar. (ie. the titlebar at the top of the window, distinct from the titlebar below the tab-buttons.) Default value is <emphasis>true</emphasis>.</simpara></listitem>
184 </varlistentry>
186 <varlistentry>
187 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="dragDropIcon"/> <emphasis>imageFile</emphasis></term>
188 <listitem><simpara> Specify the icon to display when performing a drag-&amp;-drop operation to reorder the tab-buttons. FvwmTabs will search the ImagePath for this image unless an absolute filename (ie. filename begins with '/') is specified. The default value is <emphasis>none</emphasis>. If <emphasis>none</emphasis> (or an invalid file) is specified a * is used.</simpara></listitem>
189 </varlistentry>
191 <varlistentry>
192 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="bBuggyFocus"/> <emphasis>bool</emphasis></term>
193 <listitem><simpara> FvwmTabs tries to work around a limitation in Perl/Tk (there is no way to access the timestamp associated with WM_TAKE_FOCUS events). On some systems this doesn't work and sometimes tab-managers have trouble acquiring the focus. If this happens to you, try setting this option to <emphasis>true</emphasis>. This can lead to focussing race-conditions (tab-managers temporarily "steal" focus in some situations) but this is less annoying than not being able to focus at all.</simpara></listitem>
194 </varlistentry>
196 <varlistentry>
197 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="enableSwallowDND"/> <emphasis>bool</emphasis></term>
198 <listitem><simpara> Swallow windows that (are moved to) overlap a tabber.</simpara>
199 <simpara>Note: drag-&amp;-drop can be enabled for individual tabbers via the menu.
200 The default value is <emphasis>true</emphasis>.</simpara>
201 </listitem>
202 </varlistentry>
204 <varlistentry>
205 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="swallowDNDTolerance"/> <emphasis>tol</emphasis></term>
206 <listitem><simpara>Determines how much a window must overlap a tabber for it to be swallowed when drag-&amp;-drop is enabled. If the value has a %-sign appended to it, windows must overlap by the specified percentage of the current size of the tabber. If no %-sign is present, the value is treated in units of pixels. The default value is <emphasis>10</emphasis> (pixels).</simpara></listitem>
207 </varlistentry>
209 <varlistentry>
210 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="useIconsOnTabs"/> <emphasis>bool</emphasis></term>
211 <listitem><simpara> Show the mini icon associated with each window on its tab button. Note: mini icons for apps that use EWMH icons look a bit distorted.  This is because of the poor image resizing algorithm used in Tk. This sinactiveBG hould be rectified in the near future. The default value is <emphasis>true</emphasis>.</simpara></listitem>
212 </varlistentry>
214 <varlistentry>
215 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="killIcon"/> <emphasis>image</emphasis></term>
216 <listitem><simpara>Image to use on kill toolbar button. Default is <emphasis>none</emphasis>.</simpara></listitem>
217 </varlistentry>
219 <varlistentry>
220 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="addIcon"/> <emphasis>image</emphasis></term>
221 <listitem><simpara>Image to use on add toolbar button. Default is <emphasis>none</emphasis>.</simpara></listitem>
222 </varlistentry>
224 <varlistentry>
225 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="swallowIcon"/> <emphasis>image</emphasis></term>
226 <listitem><simpara> Image to use on add toolbar button when tabber will swallow next window to popup. Default is <emphasis>none</emphasis>. By using a separate icon to <emphasis>addIcon</emphasis>, this option provides visual feedback on when a tabber will unconditionally swallow the next window to popup.</simpara></listitem>
227 </varlistentry>
229 <varlistentry>
230 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="releaseIcon"/> <emphasis>image</emphasis></term>
231 <listitem><simpara> Image to use on release toolbar button. Default is <emphasis>none</emphasis>.</simpara></listitem>
232 </varlistentry>
234 <varlistentry>
235 <term>*FvwmTabs: <fvwmopt mod="FvwmTabs" opt="menuIcon"/> <emphasis>image</emphasis></term>
236 <listitem><simpara> Image to use on menu toolbar button. Default is <emphasis>none</emphasis>.</simpara></listitem>
237 </varlistentry>
238 </variablelist>
241 <section id="additionalConfiguration">
242 <title>Additional Configuration</title>
244 <para output="html">Images you may wish to use with the FvwmTabs module:
245 <imageobject><imagedata fileref="images/FvwmTabs/logoFvwmTabs.png"/></imageobject>
246 <imageobject><imagedata fileref="images/FvwmTabs/green.png"/></imageobject>
247 <imageobject><imagedata fileref="images/FvwmTabs/yellow.png"/></imageobject>
248 <imageobject><imagedata fileref="images/FvwmTabs/red.png"/></imageobject>
249 </para>
251 <para>If you use a decent shell like zsh, you might like to add these functions to your ~/.zshrc file so that tabs/titles have more meaningful names when executing commands:</para>
253 <programlisting>
254 setTitleAndIcon () {  print -nP '%{\e]2;'$1'\a\e]1;'$2'\a%}' }
255 preexec () { setTitleAndIcon $1 ${1%% *} }
256 precmd () { setTitleAndIcon %n@%m %m }
257 </programlisting>
259 <para>There are likely similar functions for other sh/csh shells.</para>
260 </section>
261 </section>
264 <section id="functions">
265 <title>Functions for Bindings</title>
266 <para>A number of fvwm functions are available once the FvwmTabs module is started.</para>
268 <variablelist>
270 <varlistentry>
271 <term><fvwmopt mod="FvwmTabs" opt="NewTabber"/></term>
272 <listitem><simpara> Create a new tabber. Optional argument is tabber name. No whitespace is allowed in the tabber name. Can also prefix --geometry argument. Example:</simpara>
274 <programlisting>
275 NewTabber --geometry=+200+400 scottie
276 </programlisting>
277 </listitem>
278 </varlistentry>
280 <varlistentry>
281 <term><fvwmopt mod="FvwmTabs" opt="Tabize"/></term>
282 <listitem><simpara> Add a window (as a tab) to a tabber.</simpara></listitem>
283 </varlistentry>
285 <varlistentry>
286 <term><fvwmopt mod="FvwmTabs" opt="NextTab"/></term>
287 <listitem><simpara> Show/select the next tab.</simpara></listitem>
288 </varlistentry>
290 <varlistentry>
291 <term><fvwmopt mod="FvwmTabs" opt="PrevTab"/></term>
292 <listitem><simpara> Show/select the previous tab.</simpara></listitem>
293 </varlistentry>
295 <varlistentry>
296 <term><fvwmopt mod="FvwmTabs" opt="LastTab"/></term>
297 <listitem><simpara> Show/select the last selected tab (if there was one).</simpara></listitem>
298 </varlistentry>
300 <varlistentry>
301 <term><fvwmopt mod="FvwmTabs" opt="ReleaseTab"/></term>
302 <listitem><simpara> Release a tabbed window back to fvwm.</simpara></listitem>
303 </varlistentry>
305 <varlistentry>
306 <term><fvwmopt mod="FvwmTabs" opt="ReleaseIconifyTab"/></term>
307 <listitem><simpara> Release a tabbed window back to fvwm &amp; iconify it.</simpara></listitem>
308 </varlistentry>
310 <varlistentry>
311 <term><fvwmopt mod="FvwmTabs" opt="ReleaseAllTabs"/></term>
312 <listitem><simpara> Release all windows in a tab-manager back to fvwm.</simpara></listitem>
313 </varlistentry>
315 <varlistentry>
316 <term><fvwmopt mod="FvwmTabs" opt="ReleaseIconifyAllTabs"/></term>
317 <listitem><simpara> Release all windows in a tab-manager back to fvwm &amp; iconify them.</simpara></listitem>
318 </varlistentry>
320 <varlistentry>
321 <term><fvwmopt mod="FvwmTabs" opt="CloseTabber"/></term>
322 <listitem><simpara> Destroy a tab-manager. All windows in the tab-manager are released back to fvwm.</simpara></listitem>
323 </varlistentry>
325 <varlistentry>
326 <term><fvwmopt mod="FvwmTabs" opt="AddTab"/></term>
327 <listitem><simpara> Pick a new window to add to a tab-manager. Selecting this option &amp; clicking on a window will add the selected window to the tab-manager.</simpara></listitem>
328 </varlistentry>
330 <varlistentry>
331 <term><fvwmopt mod="FvwmTabs" opt="MultiAddTab"/></term>
332 <listitem><simpara> Pick &amp; add new windows to a tab-manager until ESC is pressed.</simpara></listitem>
333 </varlistentry>
335 <varlistentry>
336 <term><fvwmopt mod="FvwmTabs" opt="ShowTab"/> <emphasis>tabNo</emphasis></term>
337 <listitem><simpara> Show/select tab <emphasis>tabNo</emphasis> in the tab-manager. <emphasis>tabNo</emphasis> is zero-based. ie. 0 is the first tab, 1 is the second, etc.</simpara></listitem>
338 </varlistentry>
340 <varlistentry>
341 <term><fvwmopt mod="FvwmTabs" opt="AddToTabber"/></term>
342 <listitem><simpara> Add a window (as a tab) to a tab-manager.</simpara></listitem>
343 </varlistentry>
345 <varlistentry>
346 <term><fvwmopt mod="FvwmTabs" opt="SwapLeft"/></term>
347 <listitem><simpara> Swap the selected window with the window on its immediate left.</simpara></listitem>
348 </varlistentry>
350 <varlistentry>
351 <term><fvwmopt mod="FvwmTabs" opt="SwapRight"/></term>
352 <listitem><simpara> Swap the selected window with the window on its immediate right.</simpara></listitem>
353 </varlistentry>
355 <varlistentry>
356 <term><fvwmopt mod="FvwmTabs" opt="SelectTabber"/></term>
357 <listitem><simpara> Select a tab-manager for a new window to be added to.</simpara></listitem>
358 </varlistentry>
360 <varlistentry>
361 <term><fvwmopt mod="FvwmTabs" opt="EnableDND"/></term>
362 <listitem><simpara> Swallow windows that (are moved to) overlap a tabber.</simpara></listitem>
363 </varlistentry>
364 </variablelist>
365 </section>
369 <section id="keyBindings">
370 <title>Key Bindings</title>
371 <para>By default, <emphasis remap='B'>FvwmTabs</emphasis> reads a default user configuration file <filename>FvwmTabs-DefaultSetup</filename> which defines several useful key-bindings for <emphasis remap='B'>FvwmTabs</emphasis>. You can tell <emphasis remap='B'>FvwmTabs</emphasis> NOT to read this file with:</para>
372 <programlisting>
373 <fvwmref cmd="SetEnv"/> FvwmTabs_NoDefaultSetup
374 </programlisting>
375 <para>This environment variable must be set <emphasis>before</emphasis> starting the module.
376 </para>Then, pressing Ctrl-Alt-a (when the focus is in a tab-manager) will allow you to click on a window to add to the tab-manager.
378 <para>All of the key bindings can be changed using the standard fvwm <fvwmref cmd="Key"/> command and making use of the aforementioned fvwm functions. ie.</para>
379 <programlisting>
380 <fvwmref cmd="Key"/> (FvwmTabs*) A A CM <fvwmref cmd="Function"/> AddTab
381 </programlisting>
383 <para>Then, pressing Ctrl-Alt-a (when the focus is in a tab-manager) will allow you to click on a window to add to the tab-manager.</para>
385 <para>The default key bindings (set in the <filename>FvwmTabs-DefaultSetup</filename> file) are:</para>
388 <variablelist>
389 <varlistentry>
390 <term><keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>a</keycap></keycombo></term>
391 <listitem><simpara>AddTab</simpara></listitem>
392 </varlistentry>
393 <varlistentry>
394 <term>Ctrl-Alt-c</term>
395 <listitem><simpara>CloseTabber</simpara></listitem>
396 </varlistentry>
397 <varlistentry>
398 <term>Ctrl-Alt-i</term>
399 <listitem><simpara>ReleaseIconifyTab</simpara></listitem>
400 </varlistentry>
401 <varlistentry>
402 <term>Ctrl-Alt-Shift-I</term>
403 <listitem><simpara>ReleaseIconifyAllTabs</simpara></listitem>
404 </varlistentry>
405 <varlistentry>
406 <term>Ctrl-Alt-l</term>
407 <listitem><simpara>LastTab</simpara></listitem>
408 </varlistentry>
409 <varlistentry>
410 <term>Ctrl-Alt-m</term>
411 <listitem><simpara>MultiAddTab</simpara></listitem>
412 </varlistentry>
413 <varlistentry>
414 <term>Ctrl-Alt-n &amp; Ctrl-Alt-Tab</term>
415 <listitem><simpara>NextTab</simpara></listitem>
416 </varlistentry>
417 <varlistentry>
418 <term>Ctrl-Alt-p</term>
419 <listitem><simpara>PrevTab</simpara></listitem>
420 </varlistentry>
421 <varlistentry>
422 <term>Ctrl-Alt-r</term>
423 <listitem><simpara>ReleaseTab</simpara></listitem>
424 </varlistentry>
425 <varlistentry>
426 <term>Ctrl-Alt-Shift-R</term>
427 <listitem><simpara>ReleaseAllTabs</simpara></listitem>
428 </varlistentry>
429 <varlistentry>
430 <term>Ctrl-Alt-t</term>
431 <listitem><simpara>NewTabber</simpara></listitem>
432 </varlistentry>
433 <varlistentry>
434 <term>Ctrl-Alt-<emphasis>&lt;num&gt;</emphasis></term>
435 <listitem><simpara>ShowTab <emphasis>&lt;num&gt;</emphasis></simpara></listitem>
436 </varlistentry>
437 <varlistentry>
438 <term>Ctrl-Alt-Left</term>
439 <listitem><simpara>SwapLeft</simpara></listitem>
440 </varlistentry>
441 <varlistentry>
442 <term>Ctrl-Alt-Right</term>
443 <listitem><simpara>SwapRight</simpara></listitem>
444 </varlistentry>
445 </variablelist>
447 </section>
452 <section id="mouseBindings">
453 <title>Mouse Bindings</title>
454 <section id="tabMouseBindings">
455 <title>Mouse Bindings on Tab Buttons</title>
457 <informaltable>
458 <tgroup cols='2'>
459 <thead>
460 <row>
461 <entry>Mouse Button</entry>
462 <entry>Action</entry>
463 </row>
464 </thead>
465 <tbody>
466 <row>
467 <entry align="center">1</entry>
468 <entry>display the window associated with the tab.</entry>
469 </row>
470 <row>
471 <entry align="center">2</entry>
472 <entry>release the window associated with the tab back to the window manager as a standalone window.</entry>
473 </row>
474 <row>
475 <entry align="center">Ctrl + 2</entry>
476 <entry>tab-buttons can be reordered with a drag-&amp;-drop operation initiated by holding down the Ctrl key and dragging with Mouse-2. A dragged tab is inserted before the tab-button onto which it is dropped.</entry>
477 </row>
478 <row>
479 <entry align="center">3</entry>
480 <entry>release the window associated with the tab back to the window manager as a standalone window.</entry>
481 </row>
482 </tbody>
483 </tgroup>
484 </informaltable>
485 </section>
488 <section id="toolbarMouseBindings">
489 <title>Mouse Bindings on Toolbar Icons</title>
490 <para>There are 4 toolbar icons named (L-to-R): menu, release, add and kill.</para>
492 <informaltable>
493 <tgroup cols='3'>
494 <thead>
495 <row>
496 <entry>Icon</entry>
497 <entry>Mouse Button</entry>
498 <entry>Action</entry>
499 </row>
500 </thead>
501 <tbody>
502 <row>
503 <entry>menu</entry>
504 <entry align="center">1</entry>
505 <!--
506 <entry>Display main menu. See <fvwmref sect="FvwmTabs" opt="menu" name="Menu Options"/>.</entry>
508 <entry>Display main menu. See <fvwmref mod="FvwmTabs" opt="menu" name="Menu Options"/>.</entry>
509 </row>
510 <row>
511 <entry>release</entry>
512 <entry align="center">1</entry>
513 <entry>release the selected window from the tabber.</entry>
514 </row>
515 <row>
516 <entry>release</entry>
517 <entry align="center">2</entry>
518 <entry>release all windows from the tabber, and iconify them.</entry>
519 </row>
520 <row>
521 <entry>release</entry>
522 <entry align="center">3</entry>
523 <entry>will release all windows from the tabber.</entry>
524 </row>
525 <row>
526 <entry>add</entry>
527 <entry align="center">1</entry>
528 <entry>add the next window you click on to the tabber.</entry>
529 </row>
530 <row>
531 <entry>add</entry>
532 <entry align="center">2</entry>
533 <entry>add the next window to popup to the tabber.</entry>
534 </row>
535 <row>
536 <entry>add</entry>
537 <entry align="center">3</entry>
538 <entry>add every window you click on (until you press Esc) to the tabber.</entry>
539 </row>
540 <row>
541 <entry>kill</entry>
542 <entry align="center">1</entry>
543 <entry><fvwmref cmd="Close"/> the selected window.</entry>
544 </row>
545 <row>
546 <entry>kill</entry>
547 <entry align="center">2</entry>
548 <entry>causes FvwmTabs to try to kill the selected window itself.</entry>
549 </row>
550 <row>
551 <entry>kill</entry>
552 <entry align="center">3</entry>
553 <entry><fvwmref cmd="Destroy"/> the selected window.</entry>
554 </row>
556 </tbody>
557 </tgroup>
558 </informaltable>
559 </section>
560 </section>
563 <section id="menu">
564 <title>Menu Options</title>
565 <para>Mouse-1 on the "menu" button will bring up a menu of options:</para>
567 <para output="html"><imagedata fileref="images/FvwmTabs/menu.png"/></para>
570 <informaltable>
571 <tgroup cols='2'>
572 <thead>
573 <row>
574 <entry>Menu option</entry>
575 <entry>Description</entry>
576 </row>
577 </thead>
578 <tbody>
579 <row>
580 <entry>Release All</entry>
581 <entry>release all tabbed programs back to the window manager as standalone windows.</entry>
582 </row>
583 <row>
584 <entry>Release All (Iconify)</entry>
585 <entry>release all tabbed programs back to the window manager as iconised standalone windows.</entry>
586 </row>
587 <row>
588 <entry>Add</entry>
589 <entry>add the next mouse-clicked window to the tab-manager.</entry>
590 </row>
591 <row>
592 <entry>Add Next</entry>
593 <entry>add the next window that is created to the tab-manager.</entry>
594 </row>
595 <row>
596 <entry>Multi Add</entry>
597 <entry>keep adding mouse-clicked windows to a tab-manager until the escape key is pressed. Useful for adding multiple windows to a tab-manager at once.</entry>
598 </row>
599 <row>
600 <entry>Font</entry>
601 <entry>shows a sub-menu enabling you to dynamically configure the button/title/menu fonts, using the external program identified by the <emphasis>fontSelector</emphasis> option.</entry>
602 </row>
603 <row>
604 <entry>Options</entry>
605 <entry>shows a sub-menu with the following items:
606 <variablelist>
607 <varlistentry>
608 <term>Show Internal Titlebar</term>
609 <listitem><simpara>toggle the display of the titlebar below the tab-buttons.</simpara></listitem>
610 </varlistentry>
611 <varlistentry>
612 <term>Use Main Titlebar</term>
613 <listitem><simpara>set the titlebar of the FvwmTabs window to the title of the selected tab.</simpara></listitem>
614 </varlistentry>
615 <varlistentry>
616 <term>Auto Resize</term>
617 <listitem><simpara>Automatically resize all windows to the dimensions of the largest window in the tab-manager..</simpara></listitem>
618 </varlistentry>
619 <varlistentry>
620 <term>Swallow Overlapping (D&amp;D)</term>
621 <listitem><simpara>toggle the swallowing of overlapping windows.</simpara></listitem>
622 </varlistentry>
623 </variablelist>
624 </entry>
628 </row>
629 <row>
630 <entry>Window Tabizer Dialog</entry>
631 <entry>popup a dialog box for specifying windows to swallow. Windows can be specified explicitly (by name) or by using a (Perl) regular expression matcher. (Note: / character is automatically escaped.)</entry>
632 </row>
633 <row>
634 <entry><emphasis>window</emphasis></entry>
635 <entry>The menu options between the seperators will display the window/tab associated with the text. (The menu text is actually the title associated with the window. The text on each tab-button is the icon name.)</entry>
636 </row>
637 <row>
638 <entry>About</entry>
639 <entry>pops up a dialog with version/developer information.</entry>
640 </row>
641 <row>
642 <entry>Close</entry>
643 <entry>close the FvwmTabs window, invoking Release All in the process.</entry>
644 </row>
645 </tbody>
646 </tgroup>
647 </informaltable>
649 </section>
651 <section id="tutorial" output="html">
652 <title>Tutorial</title>
654 <section id="creating">
655 <title>Creating a tabber</title>
656 <para>If the FvwmTabs module is correctly installed/configured, press Ctrl-Alt-t and a little window that looks something like this should appear:</para>
657 <imagedata fileref="images/FvwmTabs/fvwmTabsEmpty.png"/>
658 <para>A new tabber is created every time Ctrl-Alt-t is pressed.</para>
659 </section>
661 <section id="adding">
662 <title>Adding windows to a tabber</title>
663 <para>There are a number of ways to add windows to a tabber:</para>
665 <itemizedlist>
666 <listitem>To add a <emphasis role="bold">single</emphasis> window to a tabber, click the <emphasis>add</emphasis> (orange) icon (or press <keysym>Ctrl-Alt-a</keysym> when the tabber is focussed). The mouse cursor will change to a crosshair. The next window selected (clicked on) will be swallowed by the tabber.
667 To cancel an add-window operation, press <keysym>Esc</keysym>.</listitem>
668 <listitem>To add <emphasis role="bold">multiple</emphasis> windows to a tabber, click the <emphasis>add</emphasis> (orange) icon with the right mouse button (or press <keysym>Ctrl-Alt-m</keysym> when the tabber is focussed). All windows that are selected (clicked on) until <keysym>Esc</keysym> is pressed, will be swallowed by the tabber.</listitem>
670 <listitem>Invoke the <ulink url="http://members.optusnet.com.au/~scottsmedley/fvwmtabs/tab.zsh">tab.zsh</ulink> script from a shell to swallow the next window that pops up. For example:
671 <para>
672 <command>
673 tab.zsh xterm -bg blue -fg white
674 tab.zsh gnome-calculator
675 </command>
676 </para>
678 The xterm and calculator window will automatically be swallowed into the tabber that last had the focus.
679 </listitem>
681 <listitem>Invoke the fvwm SwallowNew function. Syntax is:
682 <programlisting>
683 <fvwmref cmd="Function"/> SwallowNew tabberId <emphasis>fvwmCommand</emphasis>
684 </programlisting>
685 For example:
686 <programlisting>
687 <fvwmref cmd="Function"/> SwallowNew any <fvwmref cmd="Function"/> StartupBrowser
688 <fvwmref cmd="Function"/> SwallowNew lastFocus <fvwmref cmd="Exec"/> exec rxvt
689 <fvwmref cmd="Function"/> SwallowNew 2 <fvwmref cmd="Exec"/> exec gvim header.hh
690 </programlisting>
691 The fvwm command is executed when the tabber is ready to swallow the next window that is created.
692 </listitem>
693 </itemizedlist>
695 </section>
698 <section id="releasing">
699 <title>Releasing windows from a tabber</title>
700 <para>There are a number of ways to release windows from a tabber.</para>
702 <para>To release a <emphasis role="bold">single</emphasis> window from a tabber: </para>
704 <itemizedlist>
705 <listitem>Click the release (middle green) icon with the left mouse button.</listitem>
706 <listitem>Press <keysym>Ctrl-Alt-r</keysym> when the tabber is focussed.</listitem>
707 <listitem>Click the tab button for the window with the middle mouse button.</listitem>
708 <listitem>To release and iconify a window, click the tab button for the window with the right mouse button.</listitem>
709 </itemizedlist>
710 The first two release the selected window. The last two release the window the tab button is associated with.
712 <para>To release all windows from a tabber:</para>
713 <itemizedlist>
714 <listitem>Click the release (left green) icon with the middle mouse button.</listitem>
715 <listitem>To release and iconify all windows, click the release (left green) icon with the right mouse button.</listitem>
716 </itemizedlist>
718 </section>
719 </section>
721 <section id="bugs">
722 <title>Known Bugs</title>
723 <simpara>Tab-managers don't take focus when iconified.</simpara>
724 <simpara>FvwmTabs doesn't obey <fvwmref cmd="Style" opt="ClickToFocus"/> mode.</simpara>
725 <simpara>FvwmTabs has a problem swallowing shaded windows.</simpara>
726 <simpara>Using <fvwmref cmd="Maximize"/> to resize tab-manager windows prevents dynamic resizing from working.</simpara>
727 <para>Please send bug reports, feature requests and queries about FvwmTabs to the fvwm mailing list: <email>fvwm@fvwm.org</email>. Be sure to include the word "FvwmTabs" somewhere in the subject line.</para>
728 </section>
730 <section id="licence">
731 <title>Licence</title>
732 <para>FvwmTabs is GPL software.</para>
733 </section>
735 <section id="author">
736 <title>Author</title>
737 <para>Scott Smedley <email>ss@aao.gov.au</email></para>
738 </section>
740 </article>