Home ⋅ All Commands ⋅ Grouped Commands ⋅ Modules ⋅ FAQ |
Table of Contents
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.)
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.
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, mouse button or keystroke to invoke it later.
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.
FvwmTabs reads the same config file as fvwm when it starts up.
The following options are recognised by FvwmTabs:
$FVWM_USERDIR
/.fvwmtabs.state.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.
Images you may wish to use with the FvwmTabs module:
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:
setTitleAndIcon () { print -nP '%{\e]2;'$1'\a\e]1;'$2'\a%}' } preexec () { setTitleAndIcon $1 ${1%% *} } precmd () { setTitleAndIcon %n@%m %m }
There are likely similar functions for other sh/csh shells.
A number of fvwm functions are available once the FvwmTabs module is started.
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
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.
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.All of the key bindings can be changed using the standard fvwm Key command and 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:
Mouse Button | Action |
---|---|
1 | display the window associated with the tab. |
2 | release the window associated with the tab back to the window manager as a standalone window. |
Ctrl + 2 | tab-buttons can be reordered with a drag-&-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. |
3 | release the window associated with the tab back to the window manager as a standalone window. |
There are 4 toolbar icons named (L-to-R): menu, release, add and kill.
Icon | Mouse Button | Action |
---|---|---|
menu | 1 | Display main menu. See menu. |
release | 1 | release the selected window from the tabber. |
release | 2 | release all windows from the tabber, and iconify them. |
release | 3 | will release all windows from the tabber. |
add | 1 | add the next window you click on to the tabber. |
add | 2 | add the next window to popup to the tabber. |
add | 3 | add every window you click on (until you press Esc) to the tabber. |
kill | 1 | Close the selected window. |
kill | 2 | causes FvwmTabs to try to kill the selected window itself. |
kill | 3 | Destroy the selected window. |
Mouse-1 on the "menu" button will bring up a menu of options:
Menu option | Description |
---|---|
Release All | release all tabbed programs back to the window manager as standalone windows. |
Release All (Iconify) | release all tabbed programs back to the window manager as iconised standalone windows. |
Add | add the next mouse-clicked window to the tab-manager. |
Add Next | add the next window that is created to the tab-manager. |
Multi Add | 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. |
Font | shows a sub-menu enabling you to dynamically configure the button/title/menu fonts, using the external program identified by the fontSelector option. |
Options | shows a sub-menu with the following items:
|
Window Tabizer Dialog | 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.) |
window | 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.) |
About | pops up a dialog with version/developer information. |
Close | close the FvwmTabs window, invoking Release All in the process. |
If the FvwmTabs module is correctly installed/configured, press Ctrl-Alt-t and a little window that looks something like this should appear:
A new tabber is created every time Ctrl-Alt-t is pressed.
There are a number of ways to add windows to a tabber:
tab.zsh xterm -bg blue -fg white tab.zsh gnome-calculator
The xterm and calculator window will automatically be swallowed into the tabber that last had the focus.Function SwallowNew tabberId fvwmCommandFor example:
Function SwallowNew any Function StartupBrowser Function SwallowNew lastFocus Exec exec rxvt Function SwallowNew 2 Exec exec gvim header.hhThe fvwm command is executed when the tabber is ready to swallow the next window that is created.
There are a number of ways to release windows from a tabber.
To release a single window from a tabber:
To release all windows from a tabber:
Tab-managers don't take focus when iconified.
FvwmTabs doesn't obey ClickToFocus mode.
FvwmTabs has a problem swallowing shaded windows.
Using Maximize to resize tab-manager windows prevents dynamic resizing from working.
Please send bug reports, feature requests and queries about FvwmTabs to the fvwm mailing list: <fvwm@fvwm.org>
. Be sure to include the word "FvwmTabs" somewhere in the subject line.
Scott Smedley <ss@aao.gov.au>
fvwm 2.6.5