FvwmProxy(1)

NAME
FvwmProxy - the FVWM Proxy module

SYNOPSIS
FvwmProxy is spawned by fvwm, so no command line invocation will work.

DESCRIPTION
The FvwmProxy allows the user to locate and control windows obscured by other windows by using small non-overlapping proxy windows. The default capabilites include raising and lowering the proxied windows. Using the sample configuration, pressing Alt-Tab cycles through the windows and allows the use of assignable click actions on the proxies. Releasing the Alt key deactivates the proxy windows. By default, pressing the left or right mouse buttons on a proxy window raises or lowers the associated proxied window respectively. An additional mapping can have the proxies automatically appear by just holding the Alt key. Proxy windows are always on top and try to center on the regular window they proxy. A simple collision algorithm tweaks the positions of the proxy windows to prevent them from overlapping.

COPYRIGHTS
The FvwmProxy program is original work by Jason Weber. Copyright 2002, Jason Weber. No guarantees or warranties or anything are provided or implied in any way whatsoever. Use this program at your own risk.

INVOCATION
FvwmProxy can be invoked by inserting the line 'Module FvwmProxy' in the .fvwm2rc file. This can be placed on a line by itself, if FvwmProxy is to be spawned during fvwm's initialization, or can be bound to a menu or mouse button or keystroke to invoke it later. Fvwm will search directory specified in the ModulePath configuration option to attempt to locate FvwmProxy.

CONFIGURATION OPTIONS

*FvwmProxy: Colorset n
    Specifies the color theme for unselected proxy windows.

*FvwmProxy: SelectColorset n
    Specifies the color theme for the selected proxy window.

*FvwmProxy: IconifiedColorset n
    Specifies the color theme for proxy windows of iconified windows. This is only meaningful in conjuction with the ProxyIconified option on.

*FvwmProxy: Font font
    Specifies the font used for all proxy window text.

*FvwmProxy: Width w
    Specifies the size in X of each proxy window.

*FvwmProxy: Height h
    Specifies the size in Y of each proxy window.

*FvwmProxy: Separation d
    Specifies the minimum distance between proxy windows when adjusting for collisions.

*FvwmProxy: ShowMiniIcons bool
    If true, proxy windows show the mini icon for the window they represent, if it has a mini icon. The default is true.

*FvwmProxy: EnterSelect bool
    If true, a proxy is automatically selected when the mouse is moved over the proxy, even if no mouse buttons are pressed. The default is false.

*FvwmProxy: ProxyMove bool
    If true, moving a proxy window will move the window it represents. Currently, the proxied window doesn't recognize snap effects during this operation.

*FvwmProxy: ProxyIconified bool
    If true, continue to proxy windows when they are iconified. In addition, consider adding click actions that Iconify on and off, such as on the middlemouse button.

*FvwmProxy: Action mouseaction response
    Tells FvwmProxy to do the specified response when the given action is done. The currently supported mouse actions are: Click1, Click2, Click3 and so on, representing mouse clicks with various buttons. By default, the module supports 3 mouse buttons, but it can be compiled to support more. The default responses are Raise, Nop, and Lower for Click1, Click2, and Click3, respectively.

*FvwmProxy: Action Select command
    This selects an fvwm function to be called during a FvwmProxy Hide command for the window whose proxy was selected. The default is WindowListFunc. WindowListFunc is predefined by the fvwm install. You can replace it, add to it, or supply an independent function.

*FvwmProxy: Action Show command
    This selects an fvwm function to be called during a FvwmProxy Show command. The default is Nop.

*FvwmProxy: Action Hide command
    This selects an fvwm function to be called during a FvwmProxy Hide command. The default is Nop.

*FvwmProxy: Action Abort command
    This selects an fvwm function to be called during a FvwmProxy Abort command. The default is Nop.

*FvwmProxy: Action Mark command
    This selects an fvwm function to be called on a window after it is marked. The default is Nop.

*FvwmProxy: Action Unmark command
    This selects an fvwm function to be called on a marked window just after another window gets the mark. The default is Nop.

*FvwmProxy: Action ModifierRelease modifiers command
    This selects an fvwm function to be called while proxies are shown and the specified modifiers are all released. The modifiers are specified using the same syntax as in the Mouse command. The default is Nop.

COMMANDS

SendToModule FvwmProxy Show
    Activate proxy windows for all windows on the current desk that do not use the WindowListSkip option. If the desk is switched, new proxies are automatically generated.

SendToModule FvwmProxy Hide
    Deactivate all proxy windows. If a proxy is selected (such as with the Next and Prev commands), the Select Action is call on the window that the proxy represents. The default action includes raising the window and warping the mouse to a position over that window.

SendToModule FvwmProxy ShowToggle
    If shown, hide. If hidden, show.

SendToModule FvwmProxy Abort
    Deactivate all proxy windows. This differs from the Hide command in that no action is taken on any selected window.

SendToModule FvwmProxy Circulate command
    Tell FvwmProxy to run a conditional command and mark the result. The imbedded command SendToModule FvwmProxy Mark is automatically appended after the optional condition, so supplying your own imbedded command will probably fail. An example argument to Circulate is ScanForWindow East South (CurrentPage). If the proxies aren't already shown (such as with the Show command), any Circulate command will automatically show the proxies.

SendToModule FvwmProxy Next (temporary)
    If a proxy window is selected, the next proxy is selected. Windows with the WindowListSkip option are ignored. The proxies are sorted left to right during the Show command. If no proxy is currently selected, but a proxy on this desk was selected on a recent show, that proxy is selected. If no proxy on this desk was recently selected, the leftmost proxy is used. This nearly duplicates the functionality of Circulate ScanForWindow East South (CurrentPage).

SendToModule FvwmProxy Prev (temporary)
    If a proxy window is selected, the previous proxy is selected. The starting point is the same as with the Next command, except that the choice with no recent selection is the rightmost proxy. This nearly duplicates the functionality of Circulate ScanForWindow West North (CurrentPage).

SAMPLE CONFIGURATION
The following are excerpts from a .fvwm2rc file which describe FvwmProxy initialization commands:

    Key Tab A M SendToModule FvwmProxy Circulate \
        ScanForWindow East South (CurrentPage)
    Key Tab A SM SendToModule FvwmProxy Circulate \
        ScanForWindow West North (CurrentPage)
    *FvwmProxy: Action ModifierRelease M SendToModule FvwmProxy Hide

But Meta-Shift-Tab can be awkward, so Meta-Q may be a better alternative.

    Key Q A M SendToModule FvwmProxy Circulate \
        ScanForWindow West North (CurrentPage)

You might consider adding !Sticky to the (CurrentPage) conditional if you use Sticky for low-interactivity programs, like load meters and music players. To have the proxies immediately pop up when you hold the Alt key, add

    Key Meta_L A N SendToModule FvwmProxy Show

If that's too intrusive, you can assign Alt-Esc to switch the proxies on and off by adding

    Key Escape A M SendToModule FvwmProxy ShowToggle

Some platforms have problems where general Alt key combinations becoming otherwise dysfunctional after defining these mappings. If this happens, it might be difficult to take full advantage of this module. To have the mouse jump to the center instead of the upper left corner, try adding

    AddToFunc WindowListFunc
    + I WarpToWindow 50 50

or just make your own list function from scratch, for example

    DestroyFunc WindowListFunc
    AddToFunc WindowListFunc
    + I WindowId $[w.id] Raise
    + I WindowId $[w.id] WarpToWindow 50 50

Note that the default configuration does not activate any Next/Prev operations for Alt-Tab since that sequence is, by default, used by another module. Adding appropriate key mappings to your .fvwm2rc will switch this responsibility to FvwmProxy. If you use ProxyIconified, you might consider adding Iconify actions.

    AddToFunc WindowListFunc
    + I WindowId $[w.id] Iconify Off
    AddToFunc Raise-and-Deiconify
    + I WindowId $[w.id] Raise
    + I WindowId $[w.id] Iconify Off
    *FvwmProxy: Action Click1 Raise-and-Deiconify
    *FvwmProxy: Action Click2 Iconify

AUTHOR
Jason Weber