FVWMWINDOWMENU(1)

DESCRIPTION
A substitute for fvwm builtin WindowList, but written in Perl and easy to customize. Unlike FvwmIconMan or FvwmWinList the module does not draw its own window, but instead creates an fvwm menu and asks fvwm to pop it up.

By defining a set of regular expressions using Show, windows may be sorted into sections based on the regexp matching their name, icon name, class or resource.

Similarly, matches in DontShow will be excluded from the list.

Any windows not matching an instance of Show or DontShow will be placed in the last section of the menu.

USAGE
Place this line in e.g. your StartFunction in .fvwm2rc:

    Module FvwmWindowMenu

To actually invoke the menu add something like:

    Key Menu A N SendToModule FvwmWindowMenu \
        Post Root c c SelectOnRelease Menu

or:

    Mouse 2 A N SendToModule FvwmWindowMenu Popup

The additional parameters are any valid Menu command parameters without a menu name, see fvwm.

Recognized actions are Post (or its alias Menu) and Popup, they create fvwm menus and invoke them using the corresponding commands Menu and Popup. If the module was started with "-g" switch, it additionally supports PostBar.

Set module options for windows to show or not show. The syntax is:

    *FvwmWindowMenu: Show type = pattern
    *FvwmWindowMenu: DontShow type = pattern

where type is one of name, icon, class or resource. Pattern is a perl regular expression that will be evaluated in m// context. See perlre(1).

For example:

    *FvwmWindowMenu: Show resource = Galeon|Navigator|mozilla-bin
    *FvwmWindowMenu: Show name = ^emacs

will define two sections containing respectively browsers, and emacs. Number of sections is unlimited. The strings are perl regular expressions that will be evaluated in m// context. See perlre(1).

Similarly:

    *FvwmWindowMenu: DontShow name = ^Fvwm
    *FvwmWindowMenu: DontShow class = Gkrellm

will cause the menu to ignore windows with name beginning with Fvwm or class gkrellm.

Other options:

*FvwmWindowMenu: OnlyIconic {on|off}
    show only iconified windows

*FvwmWindowMenu: AllDesks {on|off}
    show windows from all desks

*FvwmWindowMenu: AllPages {on|off}
    show windows from all pages

*FvwmWindowMenu: Maxlen 32
    max length in chars of entry

*FvwmWindowMenu: MenuName MyMenu
    name of menu to popup

*FvwmWindowMenu: MenuStyle MyMenuStyle
    name of MenuStyle to apply

*FvwmWindowMenu: Debug {0,1,2,3}
    level of debug info output, 0 means no debug

*FvwmWindowMenu: Function MyWindowListFunc
    function to invoke on menu entries; defaults to WindowListFunc

*FvwmWindowMenu: ItemFormat formatstring
    how to format menu entries; substitutions are made as follows:

    %n, %i, %c, %r
        the window name, icon name, class or resource

    %x, %y
        the window x or y coordinates on current page

    %d  the window desk number

    %m  the window's mini-icon

    %M  the window's mini-icon only for iconified windows, otherwise empty

    %t  a tab

    %%  a literal %

    The format string must be quoted. The default string is "%m%n%t%t(+%x+%y) - Desk %d".

MORE EXAMPLES
Fancy binding of the window menu to the right windows key on some keyboards. Hold this button while navigating using cursor keys, then release it.

    CopyMenuStyle * WindowMenu
    MenuStyle WindowMenu SelectOnRelease Super_R
    *FvwmWindowMenu: MenuStyle WindowMenu

    AddToFunc StartFunction I Module FvwmWindowMenu

    Key Super_R A A SendToModule FvwmWindowMenu Post Root c c WarpTitle

AUTHOR
Ric Lister <http://cns.georgetown.edu/~ric/>