Unlike the TWM icon manager, FvwmIconMan is limited in only having the icons listed vertically. Also unlike the TWM icon manager, it sports a three dimensional look (when the display depth is sufficient).
You may bind fvwm functions to mouse buttondown events, and to the event where the mouse enters one of the buttons. For example, you could bind the first mouse button to the Iconify function, and the second mouse button to the Identify function.
FvwmIconMan can be set to display which window currently has the keyboard focus, and by binding the select event (see below) to the fvwm Focus function, you can emulate the TWM icon manager's behavior.
If you wish to run FvwmIconMan in a transient mode, such as with the built in window list, then pass Transient as an argument. The invocation "Module FvwmIconMan Transient" will do nicely. In this mode, FvwmIconMan will pop up one manager window directly under the cursor. When the mouse button is released, it will execute the appropriate action, and then exit. Things are somewhat complicated by the fact that you can specify that FvwmIconMan create multiple manager windows, behavior which is unsuitable when running transiently. So, when running transiently, FvwmIconMan will only create one manager window. Use the manager id 'transient' to specify options for this manager window.
Name Description Default
action binds command to event Mouse 0 N sendcommand select select Iconify
background default background gray
dontshow list of windows to ignore
drawicons use miniicons false
focusandselectbutton flat,black,white
focusbutton style for focused buttons up,black,white
followfocus show which win has focus false
font 8x13
foreground default text color white
format describes button label "%c: %i"
geometry 100x100
iconname manger icon name FvwmIconMan
nummanagers number of managers 1
plainbutton style for normal buttons up,white,gray
resolution global, desk, or page global
selectbutton style for selected buttons flat,white,gray
show list of windows to show
sort keep managers sorted true
title manager title FvwmIconMan
usewinlist honor WinListSkip? true
The following options may be specified:
The two following options control which windows get handled by which managers. A manager can get two lists, one of windows to show, and one of windows to ignore. If only the show list is given, then that manager will show only the windows in the list. If only the dontshow list is given, then the manager will show all windows except those in the list. If both lists are given, then a window will be shown if it is not in the dontshow list, and in the show list. And finally, if neither list is given, then the manager will handle all windows. Each list is made up of patterns of the form type=pattern, where type is one of class, resource, title, or icon, and pattern is a regular expression of the same format used in the fvwm style command. Quotes around the pattern will be taken as part of the regular expression. If a window could be handled by more than one manager, then the manager with the lowest id gets it.
Normally, actions bound to a mouse click are executed when the button is pressed. In transient mode, the action is executed when the button is released, since it is assumed that FvwmIconMan was bound to some mouse event. A tip/warning: FvwmIconMan still keeps track of the mouse button and any modifier keys in this case, so if you bind FvwmIconMan to say, meta-button3, then it would be wise to ensure that the action you want to execute will be executed when the meta-button3 event occurs (which would be the button release, assuming you kept your finger on the meta key).
The syntax for actions are:
Commands take four types of arguments: Manager, Window, Button, and String. A String is a string specifed exactly as for fvwm - either in quotes or as a single word not in quotes.
Manager, Window, and Button types all look exactly the same in the .fvwmrc file, but are interpreted either as specifing a manager, a window, or a window manager button corresponding to a window. They can either be an integer (which is intepreted module N where N is the number of nonempty managers or buttons - so 0 is the first and -1 is the last), or a simple additive expression of the form "button [+-] integer" where button can be select or focus to specify the manager or button which is currently selected or focused. If select or focus is used in a command, then whenever it is executed it will do nothing if there is in fact no selected (or focused) window. FvwmIconMan uses the same rules to tokenize as fvwm, so you must seperate all tokens with whitespace.
The following functions are currently defined:
Examples:
In addition to being bound to keys and mice, actions can be sent from fvwm to FvwmIconMan via the SendToModule command. Don't quote the command when using SendToModule.
When parsing commands which use Button type arguments, FvwmIconMan first determines the manager, and then finds the button or window. This has the potential for confusing effects.
Again: if you use select or focus in an argument to a command, then that command will only be executed when it can find such a window. For example, when the mouse leaves a manager window, there is no selected button, so sending a command with SendToModule which expects one will result in nothing happening. Sending "selectbutton 0 0" or similar will work fine.
##############################################################
# Load any modules which should be started during
# fvwm initialization
ModulePath /usr/lib/X11/fvwm:/usr/bin/X11
Module FvwmIconMan
# Make FvwmIconMan title-bar-less, sticky, and give it an icon
Style "Fvwm*" Icon toolbox.xpm,NoTitle,NoHandles,Sticky
Style "FvwmIconMan" HandleWidth 5, Handles, BorderWidth 5
##############################################################
##############################################################
#Definitions used by the modules
*FvwmIconMan*nummanagers 1
*FvwmIconMan*resolution global
*FvwmIconMan*background slategrey
*FvwmIconMan*foreground white
*FvwmIconMan*font 7x13
*FvwmIconMan*geometry 194x100-0+73
This example is my personal configuration. It has two managers, one for emacs and one for everything else, minus things with no icon title. Only windows on the current page are displayed. Note how the geometry and show options are specified per manager, and the others are common to all:
*FvwmIconMan*numManagers 2
*FvwmIconMan*Resolution page
*FvwmIconMan*background steelblue
*FvwmIconMan*foreground white
*FvwmIconMan*font 7x13
*FvwmIconMan*action Mouse 1 N sendcommand select select Iconify
*FvwmIconMan*action Mouse 2 N sendcommand select select Iconify
*FvwmIconMan*action Mouse 3 N sendcommand select select "Module FvwmIdent FvwmIdent"
*FvwmIconMan*action Select sendcommand select select Focus
*FvwmIconMan*action Key q N quit
*FvwmIconMan*followfocus true
*FvwmIconMan*sort true
*FvwmIconMan*format "%i"
*FvwmIconMan*plainbutton up white steelblue
*FvwmIconMan*selectbutton down white steelblue
*FvwmIconMan*focusbutton up white brown
*FvwmIconMan*focusandselectButton down white brown
*FvwmIconMan*1*geometry 194x100-204-90
*FvwmIconMan*1*show resource=emacs resource=gemacs
*FvwmIconMan*1*title "Emacs windows"
*FvwmIconMan*1*iconname "FvwmIconMan: Emacs"
*FvwmIconMan*2*geometry 194x100-0-90
*FvwmIconMan*2*dontshow icon=Untitled
*FvwmIconMan*2*title "All windows"
*FvwmIconMan*2*iconname "FvwmIconMan: all"
*FvwmIconMan*transient*geometry 194x100
*FvwmIconMan*transient*dontshow icon=Untitled
*FvwmIconMan*transient*action Mouse 0 A sendcommand select select Iconify
For mouseless operation, these actions could be useful:
*FvwmIconMan*action Key Down S warp select select + 1
*FvwmIconMan*action Key Up S warp select select - 1
*FvwmIconMan*action Key Left S warp select - 1 0
*FvwmIconMan*action Key Right S warp select + 1 0
*FvwmIconMan*action Key Down N selectbutton select select + 1
*FvwmIconMan*action Key Up N selectbutton select select - 1
*FvwmIconMan*action Key Left N selectbutton select - 1 0
*FvwmIconMan*action Key Right N selectbutton select + 1 0
*FvwmIconMan*action Key Return N sendcommand select select Iconify
*FvwmIconMan*action Key space N sendcommand select select Focus
*FvwmIconMan*action Key End N selectbutton select -1
*FvwmIconMan*action Key Home N selectbutton select 0
Key Down A M SendToModule FvwmIconMan sendcommand focus focus + 1 Focus
Key Up A M SendToModule FvwmIconMan sendcommand focus focus - 1 Focus
Key Left A M SendToModule FvwmIconMan sendcommand focus - 1 0 Focus
Key Right A M SendToModule FvwmIconMan sendcommand focus + 1 0 Focus
When a manager is in page resolution, and the page is switched, the manager updates the windows after every fvwm event comes in, causing it to rapidly grow and shrink until it finally settles into the new configuration. This doesn't happen when in desk resolution.
It doesn't handle windows without resource names as gracefully as it should.
Actions need to be refined.