1FvwmProxy(1) Fvwm Modules FvwmProxy(1)
2
3
4
6 FvwmProxy - the fvwm proxy module
7
9 FvwmProxy is spawned by fvwm, so no command line invocation will work.
10
11
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 capabilites 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
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
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
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 conjuction 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 auxillary 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 proxy windows when they are iconified. In
114 addition, consider adding click actions that Iconify on and off,
115 such as on the middlemouse button. The default is false.
116
117
118 *FvwmProxy: Action mouseaction response
119 Tells FvwmProxy to do the specified response when the given
120 action is done. The currently supported mouse actions are:
121 Click1, Click2, Click3 and so on, representing mouse clicks with
122 various buttons. By default, the module supports 3 mouse but‐
123 tons, but it can be compiled to support more. The default
124 responses are Raise, Nop, and Lower for Click1, Click2, and
125 Click3, respectively.
126
127
128 *FvwmProxy: Action Select command
129 This selects an fvwm function to be called during a FvwmProxy
130 Hide command for the window whose proxy was selected. The
131 default is WindowListFunc. WindowListFunc is predefined by the
132 fvwm install. You can replace it, add to it, or supply an inde‐
133 pendent function.
134
135
136 *FvwmProxy: Action Show command
137 This selects an fvwm function to be called during a FvwmProxy
138 Show command. The default is Nop.
139
140
141 *FvwmProxy: Action Hide command
142 This selects an fvwm function to be called during a FvwmProxy
143 Hide command. The default is Nop.
144
145
146 *FvwmProxy: Action Abort command
147 This selects an fvwm function to be called during a FvwmProxy
148 Abort command. The default is Nop.
149
150
151 *FvwmProxy: Action Mark command
152 This selects an fvwm function to be called on a window after it
153 is marked. The default is Nop.
154
155
156 *FvwmProxy: Action Unmark command
157 This selects an fvwm function to be called on a marked window
158 just after another window gets the mark. The default is Nop.
159
160
161 *FvwmProxy: Action ModifierRelease modifiers command
162 This selects an fvwm function to be called while proxies are
163 shown and the specified modifiers are all released. The modi‐
164 fiers are specified using the same syntax as in the Mouse com‐
165 mand. The default is Nop.
166
167
168 *FvwmProxy: Group groupname command pattern
169 For the given named group, adjust inclusion of the windows
170 matching the pattern. The groupname is a string identifier used
171 to associate windows. The window pattern uses the same format
172 as the Style command. The supported commands are Include, Soft‐
173 Include, and Exclude. Include and SoftInclude identifies a pat‐
174 tern to add windows to the group. Exclude identifies pattern to
175 counteract inclusion pattern or auto-inclusion (see flags
176 below). All exclusion checks follow all inclusion checks. Soft
177 inclusion limits the windows in that pattern to only move when
178 an non-soft window in the group moves. Moving or resizing these
179 windows does not affect any other windows. They are also immune
180 to edge effects.
181
182
183 *FvwmProxy: Group groupname flag
184 For the given named group, activate the given flag. The sup‐
185 ported flags are AutoInclude, AutoSoft, and IgnoreIDs. All win‐
186 dow grouping is normally checked to only group windows that are
187 in the same process or that have the same X11 client leader.
188 IgnoreIDs deactivates this mechanism. AutoInclude automatically
189 includes any window that matches the same process or client
190 leader, without having to name them specifically. AutoSoft
191 makes all AutoInclusions soft (see inclusion description above).
192
193
194 *FvwmProxy: SlotWidth w
195 This specifies the width of the icons used in slots. The
196 default is 16.
197
198
199 *FvwmProxy: SlotHeight h
200 This specifies the height of the icons used in slots. The
201 default is 16.
202
203
204 *FvwmProxy: SlotSpace d
205 This specifies the space between icons used in slots. The
206 default is 4.
207
208
209 *FvwmProxy: GroupSlot n
210 This specifies the first slot that represent a colored group.
211 Group slots don't need icons as the are drawn by predetermined
212 means. The default is 2.
213
214
215 *FvwmProxy: GroupCount n
216 This specifies the number of group slots. The default is 6.
217
218
219 *FvwmProxy: SlotStyle n style
220 For non-group slots, this defines the appears of the indicated
221 slot. The style format matches ButtonStyle command. The
222 default is nothing.
223
224
225 *FvwmProxy: SlotAction n mouseaction response
226 For non-group slots, this defines the behavior of the indicated
227 slot. The mouse action and response is used the same as the
228 FvwmProxy Action configuration. The default is Nop.
229
230
231 *FvwmProxy: UndoLimit n
232 This specifies the number of entries in the undo buffer. this
233 limits how far back you can undo. The default is 8.
234
235
237 SendToModule FvwmProxy Show
238 Activate proxy windows for all windows on the current desk that
239 do not use the WindowListSkip option. If the desk is switched,
240 new proxies are automatically generated.
241
242
243 SendToModule FvwmProxy Hide
244 Deactivate all proxy windows. If a proxy is selected (such as
245 with the Next and Prev commands), the Select Action is call on
246 the window that the proxy represents. The default action
247 includes raising the window and warping the mouse to a position
248 over that window.
249
250
251 SendToModule FvwmProxy ShowToggle
252 If shown, hide. If hidden, show.
253
254
255 SendToModule FvwmProxy Abort
256 Deactivate all proxy windows. This differs from the Hide com‐
257 mand in that no action is taken on any selected window.
258
259
260 SendToModule FvwmProxy Circulate command
261 Tell FvwmProxy to run a conditional command and mark the result.
262 The imbedded command SendToModule FvwmProxy Mark is automati‐
263 cally appended after the optional condition, so supplying your
264 own imbedded command will probably fail. An example argument to
265 Circulate is ScanForWindow East South (CurrentPage). If the
266 proxies aren't already shown (such as with the Show command),
267 any Circulate command will automatically show the proxies.
268
269
270 SendToModule FvwmProxy Next (obsolete)
271 If a proxy window is selected, the next proxy is selected. Win‐
272 dows with the WindowListSkip option are ignored. The proxies
273 are sorted left to right during the Show command. If no proxy
274 is currently selected, but a proxy on this desk was selected on
275 a recent show, that proxy is selected. If no proxy on this desk
276 was recently selected, the leftmost proxy is used. This nearly
277 duplicates the functionality of Circulate ScanForWindow East
278 South (CurrentPage).
279
280
281 SendToModule FvwmProxy Prev (obsolete)
282 If a proxy window is selected, the previous proxy is selected.
283 The starting point is the same as with the Next command, except
284 that the choice with no recent selection is the rightmost proxy.
285 This nearly duplicates the functionality of Circulate ScanFor‐
286 Window West North (CurrentPage).
287
288
289 SendToModule FvwmProxy SoftToggle
290 Toggle the soft group inclusion setting for the selected window.
291 This setting is the same that can be activated using the SoftIn‐
292 clude and AutoSoft commands inside the FvwmProxy Group configu‐
293 ration.
294
295
296 SendToModule FvwmProxy IsolateToggle
297 Toggle the isolation setting for the selected window's group.
298 Isolated groups only allow one member to not be iconified at a
299 time. The members are also coerced to the same position and
300 size, constrained by their size increment.
301
302
303 SendToModule FvwmProxy PrevIsolated
304 If focused on a member of a isolating group, deiconify the mem‐
305 ber higher on list. If no member is higher, deiconify the last
306 member.
307
308
309 SendToModule FvwmProxy NextIsolated
310 If focused on a member of a isolating group, deiconify the mem‐
311 ber lower on list. If no member is higher, deiconify the first
312 member.
313
314
315 SendToModule FvwmProxy Undo
316 Attempt to undo the last window move and/or resize.
317
318
319 SendToModule FvwmProxy Redo
320 Attempt to redo the most recent Undo. If another move or resize
321 occurs since the previous undo, the redo buffer will be cleared.
322
323
325 The following are excerpts from a .fvwm2rc file which describe Fvwm‐
326 Proxy initialization commands:
327
328 Key Tab A M SendToModule FvwmProxy Circulate \
329 ScanForWindow East South (CurrentPage)
330 Key Tab A SM SendToModule FvwmProxy Circulate \
331 ScanForWindow West North (CurrentPage)
332
333 *FvwmProxy: Action ModifierRelease M SendToModule FvwmProxy Hide
334
335 But Meta-Shift-Tab can be awkward, so Meta-Q may be a better alterna‐
336 tive.
337
338 Key Q A M SendToModule FvwmProxy Circulate \
339 ScanForWindow West North (CurrentPage)
340
341
342 You might consider adding !Sticky to the (CurrentPage) conditional if
343 you use Sticky for low-interactivity programs, like load meters and
344 music players.
345
346 To have the proxies immediately pop up when you hold the Alt key, add
347
348 Key Meta_L A N SendToModule FvwmProxy Show
349
350 If that's too intrusive, you can assign Alt-Esc to switch the proxies
351 on and off by adding
352
353 Key Escape A M SendToModule FvwmProxy ShowToggle
354
355 Some platforms have problems where general Alt key combinations becom‐
356 ing otherwise dysfunctional after defining these mappings. If this
357 happens, it might be difficult to take full advantage of this module.
358
359 To have the mouse jump to the center instead of the upper left corner,
360 try adding
361
362 AddToFunc WindowListFunc
363 + I WarpToWindow 50 50
364
365 or just make your own list function from scratch, for example
366
367 DestroyFunc WindowListFunc
368 AddToFunc WindowListFunc
369 + I WindowId $[w.id] Raise
370 + I WindowId $[w.id] WarpToWindow 50 50
371
372
373 Note that the default configuration does not activate any Next/Prev
374 operations for Alt-Tab since that sequence is, by default, used by
375 another module. Adding appropriate key mappings to your .fvwm2rc will
376 switch this responsibility to FvwmProxy.
377
378 If you use ProxyIconified, you might consider adding Iconify actions.
379
380 AddToFunc WindowListFunc
381 + I WindowId $[w.id] Iconify Off
382
383 AddToFunc Raise-and-Deiconify
384 + I WindowId $[w.id] Raise
385 + I WindowId $[w.id] Iconify Off
386
387 *FvwmProxy: Action Click1 Raise-and-Deiconify
388 *FvwmProxy: Action Click2 Iconify
389
390
391 You can set up some basic slots fairly easily.
392
393 *FvwmProxy: GroupSlot 2
394 *FvwmProxy: GroupCount 5
395
396 *FvwmProxy: SlotStyle 1 MiniIcon
397 *FvwmProxy: SlotStyle 7 Pixmap "squeeze.xpm"
398 *FvwmProxy: SlotStyle 8 Pixmap "mini-up.xpm"
399 *FvwmProxy: SlotStyle 9 Pixmap "mini-bball.xpm"
400 *FvwmProxy: SlotStyle 10 Pixmap "mini-cross.xpm"
401
402 *FvwmProxy: SlotAction 1 Click1 Popup WindowMenu
403 *FvwmProxy: SlotAction 7 Click1 SendToModule FvwmProxy IsolateToggle
404 *FvwmProxy: SlotAction 8 Click1 SendToModule FvwmProxy SoftToggle
405 *FvwmProxy: SlotAction 9 Click1 Iconify
406 *FvwmProxy: SlotAction 10 Click1 Delete
407
408 In this example, WindowMenu is something you would have to define. If
409 your proxy width is too small, some slots can get cut off.
410
411 Undo and redo can be easily mapped to any keys.
412
413 Key Z A 3 SendToModule FvwmProxy Undo
414 Key R A 3 SendToModule FvwmProxy Redo
415
416
417 You can rotate through an isolated group using any keys. For example,
418 meta cursor-up and cursor-down could traverse the group.
419
420 Key Up A 3 SendToModule FvwmProxy PrevIsolated
421 Key Down A 3 SendToModule FvwmProxy NextIsolated
422
423
424 A somewhat impractical example of a group definition using GIMP is as
425 follows:
426
427 *FvwmProxy: Group "GIMP" Include "The GIMP"
428 *FvwmProxy: Group "GIMP" Include "Module Manager"
429 *FvwmProxy: Group "GIMP" SoftInclude "Unit Editor"
430 *FvwmProxy: Group "GIMP" AutoInclude
431 *FvwmProxy: Group "GIMP" AutoSoft
432 *FvwmProxy: Group "GIMP" Exclude "Preferences"
433
434
435 This sets up a hard attachment between the windows "The GIMP" and "Mod‐
436 ule Manager". The "Unit Editor" is also in the group, but only
437 responds to movement of one of the hard inclusions. Any window in the
438 same process or with the same client leader is also associated, but
439 they default to soft inclusion, except "Preferences" which is explic‐
440 itly excluded. Note that in this case, the explicit soft inclusion of
441 "Unit Editor" is redundant with the combination of AutoInclude and
442 AutoSoft. However, if AutoSoft was not specified, the explicit SoftIn‐
443 clude would distinguish that pattern from the otherwise hard inclusion
444 under just AutoInclude.
445
446
448 Jason Weber
449
450
451
4523rd Berkeley Distribution 24 November 2007 (2.5.24) FvwmProxy(1)