NAME¶
FvwmTabs - a generic tabbing module for the fvwm window manager.
SYNOPSIS¶
FvwmTabs is spawned by fvwm, so no command line invocation is possible.
DESCRIPTION¶
The
FvwmTabs module is capable of swallowing any fvwm window &
treating it as a tab in a
tab-manager window. A tab-manager is
sometimes called a
tabber.
Each tab-manager can store any number of windows, each in its own
tab.
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.)
INVOCATION¶
FvwmTabs can be invoked by inserting the line "Module FvwmTabs"
in your .fvwmrc file. This can be placed on a line by itself, if
FvwmTabs is to be spawned during fvwm's initialization, or can be bound
to a menu or mouse button or keystroke to invoke it later.
INSTALLING DEPENDENCIES¶
FvwmTabs requires 2 CPAN modules (that are NOT distributed with fvwm) to
be installed on your system. They are
Tk and
X11::Protocol.
They are available at:
<
http://search.cpan.org/CPAN/authors/id/N/NI/NI-S/Tk-804.027.tar.gz> and
<
http://search.cpan.org/~smccam/X11-Protocol-0.56/>.
To install either package:
tar zxvf $name.tar.gz ; cd $name ; perl Makefile.PL ; make install
FvwmTabs will tell you if you do not have these packages installed when
you (try to) start it.
CONFIGURATION OPTIONS¶
FvwmTabs reads the same config file as fvwm when it starts up.
The following options are recognised by
FvwmTabs:
- *FvwmTabs: activeFG color
- The text color of the button for the visible tab. The
default color is yellow.
- *FvwmTabs: activeBG color
- The backgound color of the button for the visible tab. The
default color is MidnightBlue.
- *FvwmTabs: inactiveFG color
- The text color of the buttons for the invisible tabs. The
default color is antiquewhite.
- *FvwmTabs: inactiveBG color>
- The backgound color of the buttons for the invisible tabs.
The default color is royalblue.
- *FvwmTabs: titleFG color
- The text color used in the titlebar. The default color is
black.
- *FvwmTabs: titleBG color
- The background color used in the titlebar. The default
color is antiquewhite.
- *FvwmTabs: activeRelief style
- The relief style to use for active buttons. style
can be either raised, flat or sunken. The default
style is sunken.
- *FvwmTabs: inactiveRelief style
- The relief style to use for inactive buttons. style
can be either raised, flat or sunken. The default
style is flat.
- *FvwmTabs: buttonYPadding pixels
- How much padding to use around top and bottom of tab
buttons. The default value is 3 pixels.
- *FvwmTabs: pollRate ms
- Specifies how often to check for X events. ms is
time in milliseconds. The default value, 250, should be fine for
most users. If you are on a very slow machine you may wish to increase
this.
- *FvwmTabs: buttonFont font
- The font to use on the tab buttons. The default font is
Helvetica -12 bold.
- *FvwmTabs: titleFont font
- The font to use on the titlebar. The default font is
Helvetica -12.
- *FvwmTabs: menuFont font
- The font to use on the menus. The default font is
Helvetica -12.
- *FvwmTabs: fontSelector fontProgram
- The external font chooser program to launch when
dynamically changing fonts. The default fontProgram is gfontsel
--print -f "%f". Anti-gnome users might try xfontsel
-print -pattern "%f". If set to none, no font menu
options will appear.
- *FvwmTabs: autoSwallowClass className
[tabManagerId], ...
- *FvwmTabs: autoSwallowResource resourceName
[tabManagerId], ...
- *FvwmTabs: autoSwallowName name
[tabManagerId], ...
- Specify windows to swallow automatically. These are
comma-separated lists that specify the class/resource/name of a window
& 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 NewTabber 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 className/resourceName/name can be a
(Perl) regular expression.
- *FvwmTabs: balloonBG color
- The backgound color of the balloon popups that appear over
the tab buttons. The default color is #C0C080.
- *FvwmTabs: balloonFont font
- The font to use on the balloon popups. The default font is
Helvetica -12.
- *FvwmTabs: balloonWait ms
- How long the mouse cursor must pause (in milliseconds) over
a tab button before the balloon pops up. The default value is
250.
- *FvwmTabs: balloonMsg msg
- Message to display in balloon popups. The default value is
%tabNo:\n%iconText\n%title.
- *FvwmTabs: autoResize bool
- bool can be either true or false. If
true, windows in the tab-manager automatically resize to the dimensions of
the largest window in the tab-manager. The default value is false.
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.
- *FvwmTabs: stateFile file
- FvwmTabs has the ability to preserve its state (ie.
remember the windows it has swallowed as tabs) b/w fvwm restarts.
file specifies the name of a temporary file to record the state in,
so it can be reconstructed when FvwmTabs restarts. The default file
is "$FVWM_USERDIR/.fvwmtabs.state".
- *FvwmTabs: fixedSizeTabs bool
- bool can be either true or false. 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 false.
- *FvwmTabs: showTitlebar bool
- Show internal titlebar. If set to true a titlebar
appears below the row of tab-buttons & displays the title associated
with the current window. This titlebar is capable of displaying long or
multi-line titles. The default value is true.
- *FvwmTabs: useTMTitlebar bool
- 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
true.
- *FvwmTabs: dragDropIcon imageFile
- Specify the icon to display when performing a
drag-&-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 none. If
none (or an invalid file) is specified a * is used.
- *FvwmTabs: bBuggyFocus bool
- 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 true. 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.
- *FvwmTabs: enableSwallowDND bool
- Swallow windows that (are moved to) overlap a tabber. Note:
drag-&-drop can be enabled for individual tabbers via the menu. The
default value is true.
- *FvwmTabs: swallowDNDTolerance tol
- Determines how much a window must overlap a tabber for it
to be swallowed when drag-&-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 10 (pixels).
- *FvwmTabs: useIconsOnTabs bool
- 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 should be rectified in the near future. The default value is
true.
- *FvwmTabs: killIcon image
- Image to use on kill toolbar button. Default is
none.
- *FvwmTabs: addIcon image
- Image to use on add toolbar button. Default is
none.
- *FvwmTabs: swallowIcon image
- Image to use on add toolbar button when tabber will swallow
next window to popup. Default is none. By using a separate icon to
addIcon, this option provides visual feedback on when a tabber will
unconditionally swallow the next window to popup.
- *FvwmTabs: releaseIcon image
- Image to use on release toolbar button. Default is
none.
- *FvwmTabs: menuIcon image
- Image to use on menu toolbar button. Default is
none.
FVWM FUNCTIONS FOR KEY BINDINGS¶
A number of fvwm functions are available once the
FvwmTabs module is
started.
- NewTabber
- Create a new tabber. Optional argument is tabber name. No
whitespace is allowed in the tabber name. Can also prefix --geometry
argument.
Example: NewTabber --geometry=+200+400 scottie
- Tabize
- Add a window (as a tab) to a tabber.
- NextTab
- Show/select the next tab.
- PrevTab
- Show/select the previous tab.
- LastTab
- Show/select the last selected tab (if there was one).
- ReleaseTab
- Release a tabbed window back to fvwm.
- ReleaseIconifyTab
- Release a tabbed window back to fvwm & iconify it.
- ReleaseAllTabs
- Release all windows in a tab-manager back to fvwm.
- ReleaseIconifyAllTabs
- Release all windows in a tab-manager back to fvwm &
iconify them.
- CloseTabber
- Destroy a tab-manager. All windows in the tab-manager are
released back to fvwm.
- AddTab
- Pick a new window to add to a tab-manager. Selecting this
option & clicking on a window will add the selected window to the
tab-manager.
- MultiAddTab
- Pick & add new windows to a tab-manager until ESC is
pressed.
- ShowTab tabNo
- Show/select tab tabNo in the tab-manager.
tabNo is zero-based. ie. 0 is the first tab, 1 is the second,
etc.
- AddToTabber
- Add a window (as a tab) to a tab-manager.
- SwapLeft
- Swap the selected window with the window on its immediate
left.
- SwapRight
- Swap the selected window with the window on its immediate
right.
- SelectTabber
- Select a tab-manager for a new window to be added to.
- EnableDND
- Swallow windows that (are moved to) overlap a tabber.
KEY BINDINGS¶
By default,
FvwmTabs reads a default user configuration file
FvwmTabs-DefaultSetup which defines several useful key-bindings for
FvwmTabs. You can tell
FvwmTabs NOT to read this file with
"SetEnv FvwmTabs_NoDefaultSetup" - this environment variable must be
set
before starting the module.
All of the key bindings can be changed using the standard fvwm
Key
command & making use of the aforementioned fvwm functions. ie.
Key (FvwmTabs*) A A CM Function AddTab
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.
The default key bindings (set in the
FvwmTabs-DefaultSetup file) are:
- Ctrl-Alt-a
- AddTab
- Ctrl-Alt-c
- CloseTabber
- Ctrl-Alt-i
- ReleaseIconifyTab
- Ctrl-Alt-Shift-I
- ReleaseIconifyAllTabs
- Ctrl-Alt-l
- LastTab
- Ctrl-Alt-m
- MultiAddTab
- Ctrl-Alt-n & Ctrl-Alt-Tab
- NextTab
- Ctrl-Alt-p
- PrevTab
- Ctrl-Alt-r
- ReleaseTab
- Ctrl-Alt-Shift-R
- ReleaseAllTabs
- Ctrl-Alt-t
- NewTabber
- Ctrl-Alt-num
- ShowTab num.
- Ctrl-Alt-Left
- SwapLeft
- Ctrl-Alt-Right
- SwapRight
MOUSE BINDINGS¶
Mouse bindings on Tab Buttons
Mouse-1 on a tab-button displays the window associated with the tab.
Mouse-2 on a tab-button releases the window associated with the tab back
to the window manager as a standalone window.
Mouse-3 on a tab-button releases the window associated with the tab back
to the window manager & iconifies it.
The tab-buttons can be reordered with a drag-&-drop operation initiated with
Ctrl-Mouse-2. A dragged tab is inserted before the tab-button onto
which it is dropped.
Mouse bindings on Toolbar Icons
Mouse-1 on the "menu" button will bring up a menu of options.
See MENU BINDINGS.
Mouse-1 on the "release" button will release the selected
window from the tabber.
Mouse-2 on the "release" button will release all windows from
the tabber, and iconify them.
Mouse-3 on the "release" button will release all windows from
the tabber.
Mouse-1 on the "add" button will add the next window you click
on to the tabber.
Mouse-2 on the "add" button will add the next window to popup
to the tabber.
Mouse-3 on the "add" button will add every window you click on
(until you press Esc) to the tabber.
Mouse-1 on the "kill" button will
Close the selected
window.
Mouse-2 on the "kill" button causes
FvwmTabs to try to
kill the selected window itself.
Mouse-3 on the "kill" button will
Kill the selected
window.
Mouse-1 on the "menu" button will bring up a menu of options:
Release All will release all tabbed programs back to the window manager
as standalone windows.
Release All (Iconify) will release all tabbed programs back to the window
manager as iconised standalone windows.
Add will add the next mouse-clicked window to the tab-manager.
Add Next will add the next window that is created to the tab-manager.
Multi Add keeps 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.
Font shows a sub-menu enabling you to dynamically configure the
button/title/menu fonts, using the external program identified by the
fontSelector option.
Show Titlebar toggles the display of the titlebar below the tab-buttons.
Window Tabizer Dialog will 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.)
The menu options between the separators 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.)
About pops up a dialog with version/developer information.
Close will close the
FvwmTabs window, invoking Release All in the
process.
BUGS¶
- •
- Tab-managers don't take focus when iconified.
- •
- FvwmTabs doesn't obey "ClickToFocus" mode.
- •
- FvwmTabs has a problem swallowing shaded windows.
- •
- Using "Maximise" to resize tab-manager windows
prevents dynamic resizing from working.
Please send bug reports, feature requests & queries about
FvwmTabs to
the fvwm mailing list:
fvwm@fvwm.org. Be sure to include the word
"FvwmTabs" somewhere in the subject line.
TODO¶
Features to be added to
FvwmTabs in the future (in no particular order):
- •
- Colorset support. (use Colorset tracker from
fvwm-perllib)
- •
- Use Ctrl-Mouse-1 instead of Ctrl-Mouse-2 to reorder
(drag-&-drop) windows.
- •
- option: menu item to sort tabs by name, file extension,
etc.
- •
- For autoSwallow options that specify a tab-manager, create
the tab-manager if it doesn't already exist. (default behaviour is not to
swallow it)
FVWMTABS HOMEPAGE¶
There is some useful information about FvwmTabs, including a short tutorial, on
the authors website:
<
http://members.optusnet.com.au/~scottsmedley/fvwmtabs/>.
LICENSING¶
FvwmTabs is GPL software.
See <
http://www.gnu.org/licenses/gpl.html>
AUTHOR¶
Scott Smedley <ss@aao.gov.au>