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
15       default 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
92              adjusting 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
109              effects 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
123              selected window.   If  no  window  is  selected,  the  currently
124              focused window is treated as the select window for ShowOnly fil‐
125              tering.  Covered mode extends Select mode to add  proxy  windows
126              that  overlap  the select real window.  Just using Selected mode
127              can result in untouchable proxy windows  that  disappear  before
128              you  can  reach them.  Grouped mode extends Covered mode to show
129              proxy windows in the same window group as the  selected  window.
130              In  all  cases,  iconified proxy windows never appear if ProxyI‐
131              conified is false.
132
133
134       *FvwmProxy: Action mouseaction response
135              Tells FvwmProxy to do the  specified  response  when  the  given
136              action  is  done.   The  currently  supported mouse actions are:
137              Click1, Click2, Click3 and so on, representing mouse clicks with
138              various  buttons.   By default, the module supports 3 mouse but‐
139              tons, but it can be  compiled  to  support  more.   The  default
140              responses  are  Raise,  Nop,  and  Lower for Click1, Click2, and
141              Click3, respectively.
142
143
144       *FvwmProxy: Action Select command
145              This selects an fvwm function to be called  during  a  FvwmProxy
146              Hide  command  for  the  window  whose  proxy was selected.  The
147              default is WindowListFunc.  WindowListFunc is predefined by  the
148              fvwm install.  You can replace it, add to it, or supply an inde‐
149              pendent function.
150
151
152       *FvwmProxy: Action Show command
153              This selects an fvwm function to be called  during  a  FvwmProxy
154              Show command.  The default is Nop.
155
156
157       *FvwmProxy: Action Hide command
158              This  selects  an  fvwm function to be called during a FvwmProxy
159              Hide command.  The default is Nop.
160
161
162       *FvwmProxy: Action Abort command
163              This selects an fvwm function to be called  during  a  FvwmProxy
164              Abort command.  The default is Nop.
165
166
167       *FvwmProxy: Action Mark command
168              This  selects an fvwm function to be called on a window after it
169              is marked.  The default is Nop.
170
171
172       *FvwmProxy: Action Unmark command
173              This selects an fvwm function to be called on  a  marked  window
174              just after another window gets the mark.  The default is Nop.
175
176
177       *FvwmProxy: Action ModifierRelease modifiers command
178              This  selects  an  fvwm  function to be called while proxies are
179              shown and the specified modifiers are all released.   The  modi‐
180              fiers  are  specified using the same syntax as in the Mouse com‐
181              mand.  The default is Nop.
182
183
184       *FvwmProxy: Group groupname command pattern
185              For the given named  group,  adjust  inclusion  of  the  windows
186              matching the pattern.  The groupname is a string identifier used
187              to associate windows.  The window pattern uses the  same  format
188              as the Style command.  The supported commands are Include, Soft‐
189              Include, WeakInclude, WeakSoftInclude, and  Exclude.   The  com‐
190              mands ending in Include identify a pattern to add windows to the
191              group.  Exclude identifies pattern to counteract inclusion  pat‐
192              tern  or auto-inclusion (see flags below).  All exclusion checks
193              follow all inclusion checks.  Soft inclusion limits the  windows
194              in  that  pattern  to  only  move when an non-soft window in the
195              group moves.  Moving or resizing these windows does  not  affect
196              any  other windows.  They are also immune to edge effects.  Soft
197              inclusion also affects provocation effects  (see  below).   Weak
198              inclusion  prevents inclusion purely on name, instead relying on
199              X11 leader or process id matching.  Weakly included  names  will
200              not  start  a  group,  but  will  join a group in the same known
201              process or with the same leader.  Once the  window  has  joined,
202              the name is just used to determine if the inclusion is soft.
203
204
205       *FvwmProxy: Group groupname flag
206              For  the  given  named group, activate the given flag.  The sup‐
207              ported flags are AutoInclude, AutoSoft, and IgnoreIDs.  All win‐
208              dow  grouping is normally checked to only group windows that are
209              in the same process or that have the  same  X11  client  leader.
210              IgnoreIDs deactivates this mechanism.  AutoInclude automatically
211              includes any window that matches  the  same  process  or  client
212              leader,  without  having  to  name  them specifically.  AutoSoft
213              makes all AutoInclusions soft (see inclusion description above).
214
215
216       *FvwmProxy: Group groupname provocation pattern
217              The provocation flags allow you  to  customize  whether  grouped
218              windows  provoke  each  other in response to a raise/lower, desk
219              move, drag, or iconification change.  The  compound  provocation
220              flag             is            of            the            form
221              (No|Inherit)(Hard|Soft)(Raise|Desk|Drag|Icon|All).  The  pattern
222              is  optional and should already have been included.  The pattern
223              limits the change to only affect that part of  the  group.   The
224              first  element  of  the  flag  is  optional and can turn off the
225              effect, or, with a pattern, can dynamically inherit the  setting
226              for  the group.  The default is to turn the effect on.  The sec‐
227              ond element can be used to only apply the change to windows with
228              the soft state either on or off.  The default is to change both.
229              The third element  specifies  what  provoking  effect  is  being
230              changed:  window  raise/lower,  moving to another desk, dragging
231              windows together, toggling iconification, or all of  these.   If
232              either the provoking window or a potentially provoked window has
233              an effect turned off, the provocation does not occur.
234
235
236       *FvwmProxy: SlotWidth w
237              This specifies the width  of  the  icons  used  in  slots.   The
238              default is 16.
239
240
241       *FvwmProxy: SlotHeight h
242              This  specifies  the  height  of  the  icons used in slots.  The
243              default is 16.
244
245
246       *FvwmProxy: SlotSpace d
247              This specifies the space  between  icons  used  in  slots.   The
248              default is 4.
249
250
251       *FvwmProxy: GroupSlot n
252              This  specifies  the  first slot that represent a colored group.
253              Group slots don't need icons as the are drawn  by  predetermined
254              means.  The default is 2.
255
256
257       *FvwmProxy: GroupCount n
258              This specifies the number of group slots.  The default is 6.
259
260
261       *FvwmProxy: SlotStyle n style
262              For  non-group  slots, this defines the appears of the indicated
263              slot.   The  style  format  matches  ButtonStyle  command.   The
264              default is nothing.
265
266
267       *FvwmProxy: SlotAction n mouseaction response
268              For  non-group slots, this defines the behavior of the indicated
269              slot.  The mouse action and response is used  the  same  as  the
270              FvwmProxy Action configuration.  The default is Nop.
271
272
273       *FvwmProxy: UndoLimit n
274              This  specifies  the number of entries in the undo buffer.  this
275              limits how far back you can undo.  The default is 8.
276
277

COMMANDS

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

SAMPLE CONFIGURATION

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

AUTHOR

490       Jason Weber
491
492
493
4943rd Berkeley Distribution  05 September 2019 (2.6.9)              FvwmProxy(1)
Impressum