FvwmIconMan

The FvwmIconMan module provides a grid of Icons (Buttons) that represent the running windows on the system. FvwmIconMan can be configured to display different collections of windows and the buttons provides an interface to interact with the widows, such as giving them Focus to Iconify them.

Example Configuration

Here is an example configuration which lists running windows in a vertical list whose window grows and shrinks with the number of running apps. Below is a brief description of what the various parts configure. For a full list of options see the FvwmIconMan manpage.

DestroyModuleConfig FvwmIconMan: *
*FvwmIconMan: UseWinList true
*FvwmIconMan: Resolution global
*FvwmIconMan: Tips needed
*FvwmIconMan: Sort id

# Manager Size
*FvwmIconMan: ButtonGeometry 120x20
*FvwmIconMan: ManagerGeometry 1x0-5+260

# Button Styles
*FvwmIconMan: Colorset 10
*FvwmIconMan: FocusColorset 11
*FvwmIconMan: SelectColorset 12
*FvwmIconMan: FocusAndSelectColorset 12
*FvwmIconMan: IconColorset 14
*FvwmIconMan: IconAndSelectColorset 15
*FvwmIconMan: DrawIcons always
*FvwmIconMan: ReliefThickness 0
*FvwmIconMan: Format "%t"
*FvwmIconMan: Font "xft:Sans:Bold:size=8:antialias=True"

# Button Actions
*FvwmIconMan: Action Mouse 0 N sendcommand Nop
*FvwmIconMan: Action Mouse 1 A sendcommand IconManClick
*FvwmIconMan: Action Mouse 3 A sendcommand "Menu MenuIconOps"

Manager Size

The manager can be configured to be a fixed size, or to grow and shrink as windows are added and removed. The size and this behavior can be configured through a combination of:

Button Styles

The buttons in the list can have different styles (colorset/relief effect) depending on if they have Focus, are Iconified or are Selected (by the mouse or keyboard in the manager) and the various combinations of these.

There are two related options to set these. For example for the Selected button you could use

*FvwmIconMan: SelectButton style forecolor backcolor
*FvwmIconMan: SelectColorset colorset

Style is one of flat, up, down, raisededge or sunkedge and the forecolor and backcolor set the respective color. The color settings are optional and additionally you can set Colorset of the button, but still have to use SelectButton to set the style.

The list of different combinations are

PlainButton/PlainColorset, SelectButton/SelectColorset,
FocusButton/FocusColorset, IconButton/IconColorset,
FocusAndSelectButton/FocusAndSelectColorset,
IconAndSelectButton/IconAndSelectColorset,
TitleButton/TitleClorset

In addition to configuring the different button types, some other settings related to the style of the buttons are

Button Actions

FvwmIconMan can have actions bound to the buttons via Mouse or Key bindings. These can be configured to control what happens when a selected button is clicked on to how to move through and control the buttons with a keyboard.

The basic configuration settings are

*FvwmIconMan: Action Mouse Button Modifier Command
*FvwmIconMan: Action Key Key Modifier Command

Here command are commands for FvwmIcon man. See the man page for a full list. The ones used in the example use sendcommand which will send the command to Fvwm to act on the selected window.

The default is to Iconify the window no matter what mouse button is pressed, which can be disabled with

*FvwmIconMan: Action Mouse 0 N sendcommand Nop

The other actions then bind a custom Iconfiy like function to a left click and opens a Window Operations Menu when right clicked to preform various operations.

The custom function used, which will bring make a window Visable if it is not, and Iconify it otherwise is

DestroyFunc IconManClick
AddToFunc   IconManClick
+ I ThisWindow (Raised, !Shaded, !Iconic, CurrentPage) Iconify
+ I TestRc (Match) Break
+ I ThisWindow (!Raised) Raise
+ I ThisWindow (Shaded) WindowShade
+ I ThisWindow (Iconic) Iconify
+ I ThisWindow (AcceptsFocus) FlipFocus

Resolution (fvwm3)

New in fvwm3, the resolution setting (which configures which windows are shown) has been changed into a set of filters. There are four filters:

*FvwmIconMan: Resolution [!]desk [n]
*FvwmIconMan: Resolution [!]page [x] [y]
*FvwmIconMan: Resolution [!]screen [S]
*FvwmIconMan: Resolution invert

These filters will either show (or not show) windows on the stated desk, page, or screen. If no parameters are provided the current desk, or page are used. Multiple filters can be given to control which desk, page, and screen are shown. The invert filter inverts the whole filter.

No filters will show all windows (equivalent to global in fvwm2). You can then list up to one of each of the filters to control which windows are shown. For example:

*FvwmIconMan: Resolution screen p desk 1 !page 0 2

Shows all windows on the primary monitor, on desk 1, and not on page 0 2.