1FvwmProxy(1)                     Fvwm Modules                     FvwmProxy(1)
2
3
4

NAME

6       FvwmProxy - the fvwm proxy module
7

SYNOPSIS

9       FvwmProxy is spawned by fvwm, so no command line invocation will work.
10
11

DESCRIPTION

13       The FvwmProxy allows the user to locate and control windows obscured by
14       other windows by using small non-overlapping proxy  windows.   The  de‐
15       fault capabilities include raising and lowering the proxied windows.
16
17       Using  the  sample  configuration,  pressing Alt-Tab cycles through the
18       windows and allows the use of assignable click actions on the  proxies.
19       Releasing  the  Alt  key  deactivates  the  proxy windows.  By default,
20       pressing the left or right mouse buttons on a proxy  window  raises  or
21       lowers  the associated proxied window respectively.  An additional map‐
22       ping can have the proxies automatically appear by just holding the  Alt
23       key.
24
25       Proxy windows are always on top and try to center on the regular window
26       they proxy.  A simple collision algorithm tweaks the positions  of  the
27       proxy windows to prevent them from overlapping.
28
29

COPYRIGHTS

31       The FvwmProxy program is original work by Jason Weber.
32
33       Copyright  2002,  Jason  Weber. No guarantees or warranties or anything
34       are provided or implied in any way whatsoever. Use this program at your
35       own risk.
36
37

INVOCATION

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

CONFIGURATION OPTIONS

48       *FvwmProxy: Colorset n
49              Specifies the color theme for unselected proxy windows.
50
51
52       *FvwmProxy: SelectColorset n
53              Specifies the color theme for the selected proxy window.
54
55
56       *FvwmProxy: IconifiedColorset n
57              Specifies the color theme for proxy windows  of  iconified  win‐
58              dows.   This  is only meaningful in conjunction with the ProxyI‐
59              conified option on.
60
61
62       *FvwmProxy: Font font
63              Specifies the font used for large proxy window text.  This  usu‐
64              ally  contains the icon string and is nearly vertically centered
65              in the proxy.  If there is no icon string, the title bar  string
66              is  used.   If  this  text exceeds the width of the proxy, it is
67              cropped on the right.  If no Font is  specified,  a  default  is
68              used.
69
70
71       *FvwmProxy: SmallFont font
72              Specifies  the  font  used  for the auxiliary proxy window text.
73              This usually contains the title bar string, but is omitted if it
74              is  identical  to the icon string and that text was not cropped.
75              The text is drawn close to the bottom of the  proxy  and  should
76              probably  be  the smallest legible font available.  If this text
77              exceeds the width of the proxy, it is cropped on the  left.   If
78              no SmallFont is specified, this text is never drawn.
79
80
81       *FvwmProxy: Width w
82              Specifies  the  size  in  X of each proxy window. The default is
83              180.
84
85
86       *FvwmProxy: Height h
87              Specifies the size in Y of each proxy window. The default is 60.
88
89
90       *FvwmProxy: Separation d
91              Specifies the minimum distance between proxy  windows  when  ad‐
92              justing for collisions. The default is 10.
93
94
95       *FvwmProxy: ShowMiniIcons bool
96              If  true,  proxy  windows show the mini icon for the window they
97              represent, if it has a mini icon.  The default is true.
98
99
100       *FvwmProxy: EnterSelect bool
101              If true, a proxy is automatically selected  when  the  mouse  is
102              moved over the proxy, even if no mouse buttons are pressed.  The
103              default is false.
104
105
106       *FvwmProxy: ProxyMove bool
107              If true, moving a proxy window will move the  window  it  repre‐
108              sents.  Currently, the proxied window doesn't recognize snap ef‐
109              fects during this operation. The default is false.
110
111
112       *FvwmProxy: ProxyIconified bool
113              If true, continue to show proxy windows when they are iconified.
114              In  addition,  consider adding click actions that Iconify on and
115              off, such as on the middlemouse button. The default is false.
116
117
118       *FvwmProxy: ShowOnly mode
119              Limits the appearance of proxy windows during the  Show  action.
120              The  supported  modes  are  Selected, Covered, Grouped, and All.
121              The default is All which shows every proxy window on the current
122              desk.   Select  mode will only show the proxy window for the se‐
123              lected window.  If no window is selected, the currently  focused
124              window  is  treated as the select window for ShowOnly filtering.
125              Covered mode extends Select mode to add proxy windows that over‐
126              lap the select real window.  Just using Selected mode can result
127              in untouchable proxy windows that disappear before you can reach
128              them.   Grouped  mode extends Covered mode to show proxy windows
129              in the same window group as the selected window.  In all  cases,
130              iconified proxy windows never appear if ProxyIconified is false.
131
132
133       *FvwmProxy: Action mouseaction response
134              Tells  FvwmProxy to do the specified response when the given ac‐
135              tion is  done.   The  currently  supported  mouse  actions  are:
136              Click1, Click2, Click3 and so on, representing mouse clicks with
137              various buttons.  By default, the module supports 3  mouse  but‐
138              tons,  but  it can be compiled to support more.  The default re‐
139              sponses are Raise,  Nop,  and  Lower  for  Click1,  Click2,  and
140              Click3, respectively.
141
142
143       *FvwmProxy: Action Select command
144              This  selects  an  fvwm function to be called during a FvwmProxy
145              Hide command for the window whose proxy was selected.   The  de‐
146              fault  is  WindowListFunc.   WindowListFunc is predefined by the
147              fvwm install.  You can replace it, add to it, or supply an inde‐
148              pendent function.
149
150
151       *FvwmProxy: Action Show command
152              This  selects  an  fvwm function to be called during a FvwmProxy
153              Show command.  The default is Nop.
154
155
156       *FvwmProxy: Action Hide command
157              This selects an fvwm function to be called  during  a  FvwmProxy
158              Hide command.  The default is Nop.
159
160
161       *FvwmProxy: Action Abort command
162              This  selects  an  fvwm function to be called during a FvwmProxy
163              Abort command.  The default is Nop.
164
165
166       *FvwmProxy: Action Mark command
167              This selects an fvwm function to be called on a window after  it
168              is marked.  The default is Nop.
169
170
171       *FvwmProxy: Action Unmark command
172              This  selects  an  fvwm function to be called on a marked window
173              just after another window gets the mark.  The default is Nop.
174
175
176       *FvwmProxy: Action ModifierRelease modifiers command
177              This selects an fvwm function to be  called  while  proxies  are
178              shown  and  the specified modifiers are all released.  The modi‐
179              fiers are specified using the same syntax as in the  Mouse  com‐
180              mand.  The default is Nop.
181
182
183       *FvwmProxy: Group groupname command pattern
184              For  the  given  named  group,  adjust  inclusion of the windows
185              matching the pattern.  The groupname is a string identifier used
186              to  associate  windows.  The window pattern uses the same format
187              as the Style command.  The supported commands are Include, Soft‐
188              Include,  WeakInclude,  WeakSoftInclude,  and Exclude.  The com‐
189              mands ending in Include identify a pattern to add windows to the
190              group.   Exclude identifies pattern to counteract inclusion pat‐
191              tern or auto-inclusion (see flags below).  All exclusion  checks
192              follow  all inclusion checks.  Soft inclusion limits the windows
193              in that pattern to only move when  an  non-soft  window  in  the
194              group  moves.   Moving or resizing these windows does not affect
195              any other windows.  They are also immune to edge effects.   Soft
196              inclusion  also  affects  provocation effects (see below).  Weak
197              inclusion prevents inclusion purely on name, instead relying  on
198              X11  leader  or process id matching.  Weakly included names will
199              not start a group, but will join  a  group  in  the  same  known
200              process  or  with  the same leader.  Once the window has joined,
201              the name is just used to determine if the inclusion is soft.
202
203
204       *FvwmProxy: Group groupname flag
205              For the given named group, activate the given  flag.   The  sup‐
206              ported flags are AutoInclude, AutoSoft, and IgnoreIDs.  All win‐
207              dow grouping is normally checked to only group windows that  are
208              in  the  same  process  or that have the same X11 client leader.
209              IgnoreIDs deactivates this mechanism.  AutoInclude automatically
210              includes  any  window  that  matches  the same process or client
211              leader, without having  to  name  them  specifically.   AutoSoft
212              makes all AutoInclusions soft (see inclusion description above).
213
214
215       *FvwmProxy: Group groupname provocation pattern
216              The  provocation  flags  allow  you to customize whether grouped
217              windows provoke each other in response to  a  raise/lower,  desk
218              move,  drag,  or iconification change.  The compound provocation
219              flag        is        of        the         form         (No|In‐
220              herit)(Hard|Soft)(Raise|Desk|Drag|Icon|All).  The pattern is op‐
221              tional and should already have been included.  The pattern  lim‐
222              its the change to only affect that part of the group.  The first
223              element of the flag is optional and can turn off the effect, or,
224              with  a  pattern,  can  dynamically  inherit the setting for the
225              group.  The default is to turn the effect on.  The  second  ele‐
226              ment  can  be  used to only apply the change to windows with the
227              soft state either on or off.  The default  is  to  change  both.
228              The  third  element  specifies  what  provoking  effect is being
229              changed: window raise/lower, moving to  another  desk,  dragging
230              windows  together,  toggling iconification, or all of these.  If
231              either the provoking window or a potentially provoked window has
232              an effect turned off, the provocation does not occur.
233
234
235       *FvwmProxy: SlotWidth w
236              This  specifies  the  width of the icons used in slots.  The de‐
237              fault is 16.
238
239
240       *FvwmProxy: SlotHeight h
241              This specifies the height of the icons used in slots.   The  de‐
242              fault is 16.
243
244
245       *FvwmProxy: SlotSpace d
246              This  specifies  the space between icons used in slots.  The de‐
247              fault is 4.
248
249
250       *FvwmProxy: GroupSlot n
251              This specifies the first slot that represent  a  colored  group.
252              Group  slots  don't need icons as the are drawn by predetermined
253              means.  The default is 2.
254
255
256       *FvwmProxy: GroupCount n
257              This specifies the number of group slots.  The default is 6.
258
259
260       *FvwmProxy: SlotStyle n style
261              For non-group slots, this defines the appears of  the  indicated
262              slot.   The  style  format matches ButtonStyle command.  The de‐
263              fault is nothing.
264
265
266       *FvwmProxy: SlotAction n mouseaction response
267              For non-group slots, this defines the behavior of the  indicated
268              slot.   The  mouse  action  and response is used the same as the
269              FvwmProxy Action configuration.  The default is Nop.
270
271
272       *FvwmProxy: UndoLimit n
273              This specifies the number of entries in the undo  buffer.   this
274              limits how far back you can undo.  The default is 8.
275
276

COMMANDS

278       SendToModule FvwmProxy Show
279              Activate  proxy windows for all windows on the current desk that
280              do not use the WindowListSkip option.  If the desk is  switched,
281              new proxies are automatically generated.
282
283
284       SendToModule FvwmProxy Hide
285              Deactivate  all  proxy windows.  If a proxy is selected (such as
286              with the Next and Prev commands), the Select Action is  call  on
287              the  window  that  the proxy represents.  The default action in‐
288              cludes raising the window and warping the mouse  to  a  position
289              over that window.
290
291
292       SendToModule FvwmProxy ShowToggle
293              If shown, hide.  If hidden, show.
294
295
296       SendToModule FvwmProxy Abort
297              Deactivate  all  proxy windows.  This differs from the Hide com‐
298              mand in that no action is taken on any selected window.
299
300
301       SendToModule FvwmProxy Circulate command
302              Tell FvwmProxy to run a conditional command and mark the result.
303              The  imbedded  command  SendToModule FvwmProxy Mark is automati‐
304              cally appended after the optional condition, so  supplying  your
305              own imbedded command will probably fail.  An example argument to
306              Circulate is ScanForWindow East  South  (CurrentPage).   If  the
307              proxies  aren't  already  shown (such as with the Show command),
308              any Circulate command will automatically show the proxies.
309
310
311       SendToModule FvwmProxy Next (obsolete)
312              If a proxy window is selected, the next proxy is selected.  Win‐
313              dows  with  the  WindowListSkip option are ignored.  The proxies
314              are sorted left to right during the Show command.  If  no  proxy
315              is  currently selected, but a proxy on this desk was selected on
316              a recent show, that proxy is selected.  If no proxy on this desk
317              was  recently selected, the leftmost proxy is used.  This nearly
318              duplicates the functionality  of  Circulate  ScanForWindow  East
319              South (CurrentPage).
320
321
322       SendToModule FvwmProxy Prev (obsolete)
323              If  a  proxy window is selected, the previous proxy is selected.
324              The starting point is the same as with the Next command,  except
325              that the choice with no recent selection is the rightmost proxy.
326              This nearly duplicates the functionality of  Circulate  ScanFor‐
327              Window West North (CurrentPage).
328
329
330       SendToModule FvwmProxy SoftToggle
331              Toggle the soft group inclusion setting for the selected window.
332              This setting is the same that can be activated using the SoftIn‐
333              clude  and AutoSoft commands inside the FvwmProxy Group configu‐
334              ration.
335
336
337       SendToModule FvwmProxy IsolateToggle
338              Toggle the isolation setting for the  selected  window's  group.
339              Isolated  groups  only allow one member to not be iconified at a
340              time.  The members are also coerced to  the  same  position  and
341              size, constrained by their size increment.
342
343
344       SendToModule FvwmProxy PrevIsolated
345              If  focused on a member of a isolating group, deiconify the mem‐
346              ber higher on list.  If no member is higher, deiconify the  last
347              member.
348
349
350       SendToModule FvwmProxy NextIsolated
351              If  focused on a member of a isolating group, deiconify the mem‐
352              ber lower on list.  If no member is higher, deiconify the  first
353              member.
354
355
356       SendToModule FvwmProxy Undo
357              Attempt to undo the last window move and/or resize.
358
359
360       SendToModule FvwmProxy Redo
361              Attempt to redo the most recent Undo.  If another move or resize
362              occurs since the previous undo, the redo buffer will be cleared.
363
364

SAMPLE CONFIGURATION

366       The following are excerpts from a .fvwm2rc file  which  describe  Fvwm‐
367       Proxy initialization commands:
368
369           Key Tab A M SendToModule FvwmProxy Circulate \
370               ScanForWindow East South (CurrentPage)
371           Key Tab A SM SendToModule FvwmProxy Circulate \
372               ScanForWindow West North (CurrentPage)
373
374           *FvwmProxy: Action ModifierRelease M SendToModule FvwmProxy Hide
375
376       But  Meta-Shift-Tab  can be awkward, so Meta-Q may be a better alterna‐
377       tive.
378
379           Key Q A M SendToModule FvwmProxy Circulate \
380               ScanForWindow West North (CurrentPage)
381
382
383       You might consider adding !Sticky to the (CurrentPage)  conditional  if
384       you use Sticky for low-interactivity programs, like load meters and mu‐
385       sic players.
386
387       To have the proxies immediately pop up when you hold the Alt key, add
388
389           Key Meta_L A N SendToModule FvwmProxy Show
390
391       If that's too intrusive, you can assign Alt-Esc to switch  the  proxies
392       on and off by adding
393
394           Key Escape A M SendToModule FvwmProxy ShowToggle
395
396       Some  platforms have problems where general Alt key combinations becom‐
397       ing otherwise dysfunctional after defining  these  mappings.   If  this
398       happens, it might be difficult to take full advantage of this module.
399
400       To  have the mouse jump to the center instead of the upper left corner,
401       try adding
402
403           AddToFunc WindowListFunc
404           + I WarpToWindow 50 50
405
406       or just make your own list function from scratch, for example
407
408           DestroyFunc WindowListFunc
409           AddToFunc WindowListFunc
410           + I WindowId $[w.id] Raise
411           + I WindowId $[w.id] WarpToWindow 50 50
412
413
414       Note that the default configuration does not activate any Next/Prev op‐
415       erations  for  Alt-Tab  since that sequence is, by default, used by an‐
416       other module.  Adding appropriate key mappings to  your  .fvwm2rc  will
417       switch this responsibility to FvwmProxy.
418
419       If you use ProxyIconified, you might consider adding Iconify actions.
420
421           AddToFunc WindowListFunc
422           + I WindowId $[w.id] Iconify Off
423
424           AddToFunc Raise-and-Deiconify
425           + I WindowId $[w.id] Raise
426           + I WindowId $[w.id] Iconify Off
427
428           *FvwmProxy: Action Click1 Raise-and-Deiconify
429           *FvwmProxy: Action Click2 Iconify
430
431
432       You can set up some basic slots fairly easily.
433
434       *FvwmProxy: GroupSlot 2
435       *FvwmProxy: GroupCount 5
436
437       *FvwmProxy: SlotStyle 1 MiniIcon
438       *FvwmProxy: SlotStyle 7 Pixmap "squeeze.xpm"
439       *FvwmProxy: SlotStyle 8 Pixmap "mini-up.xpm"
440       *FvwmProxy: SlotStyle 9 Pixmap "mini-bball.xpm"
441       *FvwmProxy: SlotStyle 10 Pixmap "mini-cross.xpm"
442
443       *FvwmProxy: SlotAction 1 Click1 Popup WindowMenu
444       *FvwmProxy: SlotAction 7 Click1 SendToModule FvwmProxy IsolateToggle
445       *FvwmProxy: SlotAction 8 Click1 SendToModule FvwmProxy SoftToggle
446       *FvwmProxy: SlotAction 9 Click1 Iconify
447       *FvwmProxy: SlotAction 10 Click1 Delete
448
449       In  this example, WindowMenu is something you would have to define.  If
450       your proxy width is too small, some slots can get cut off.
451
452       Undo and redo can be easily mapped to any keys.
453
454       Key Z A 3 SendToModule FvwmProxy Undo
455       Key R A 3 SendToModule FvwmProxy Redo
456
457
458       You can rotate through an isolated group using any keys.  For  example,
459       meta cursor-up and cursor-down could traverse the group.
460
461       Key Up A 3 SendToModule FvwmProxy PrevIsolated
462       Key Down A 3 SendToModule FvwmProxy NextIsolated
463
464
465       A  somewhat  impractical example of a group definition using GIMP is as
466       follows:
467
468       *FvwmProxy: Group "GIMP" Include "The GIMP"
469       *FvwmProxy: Group "GIMP" Include "Module Manager"
470       *FvwmProxy: Group "GIMP" SoftInclude "Unit Editor"
471       *FvwmProxy: Group "GIMP" AutoInclude
472       *FvwmProxy: Group "GIMP" AutoSoft
473       *FvwmProxy: Group "GIMP" Exclude "Preferences"
474
475
476       This sets up a hard attachment between the windows "The GIMP" and "Mod‐
477       ule  Manager".   The  "Unit  Editor" is also in the group, but only re‐
478       sponds to movement of one of the hard inclusions.  Any  window  in  the
479       same  process  or  with  the same client leader is also associated, but
480       they default to soft inclusion, except "Preferences" which  is  explic‐
481       itly  excluded.  Note that in this case, the explicit soft inclusion of
482       "Unit Editor" is redundant with the combination of AutoInclude and  Au‐
483       toSoft.   However,  if AutoSoft was not specified, the explicit SoftIn‐
484       clude would distinguish that pattern from the otherwise hard  inclusion
485       under just AutoInclude.
486
487

AUTHOR

489       Jason Weber
490
491
492
4933rd Berkeley Distribution   19 October 2022 (2.7.0)               FvwmProxy(1)
Impressum