Hello all,
Please see the file attached. It's nothing exciting I'm sorry to
say, but it cleans up some of the questions, correcting not only typos
but some stylistic features such as DestroyFunc before function
declarations, etc.
I would have been more thorough, to remove things like first-person
attribution in some of the answers to passive-voice, but I am too much
of whimp to make such changes. :P
I've not amended NEWS or AUTHORS as part of this -- it seems such
corrections to the documentation where trivial are ever recorded in
that way, but if you really want that addition, just say.
Kindly,
-- Thomas Adam
Index: docs/FAQ
===================================================================
RCS file: /home/cvs/fvwm/fvwm/docs/FAQ,v
retrieving revision 1.162
diff -u -r1.162 FAQ
--- docs/FAQ 7 Aug 2007 20:17:42 -0000 1.162
+++ docs/FAQ 20 Jan 2009 18:24:55 -0000
@@ -321,9 +321,9 @@
1.4 Where do I ask questions about fvwm?
-A: If your local fvwm maintainer can't help you, then the newsgroup
- comp.windows.x.apps is a good place, but the fvwm mailing list is
- usually better. The new fvwm discussion mailing list address is:
+A: If your local fvwm maintainer can't help you, then the fvwm
+ mailing list is usually better. The new fvwm discussion mailing list
+ address is:
[email protected]
@@ -351,7 +351,7 @@
This list is for discussion relating to the fvwm window manager,
which is intended to have a small memory footprint and a rich
- feature set, be extremely customizable and extendable and have a
+ feature set, be extremely customizable and extendible and have a
high degree of Motif MWM compatibility. All relevant discussion
is encouraged. Posting of binaries or irrelevant discussion is
strongly frowned upon. Posting of short patches (less than 200
@@ -432,8 +432,7 @@
1.7 Why the rename of the various files (fvwm2, .fvwm2rc, fvwm2.man)?
-A: Some people find this annoying, but let me say that I did that for
- several reasons:
+A: Some people find this annoying, but it was done for several reasons:
- so both 1.xx and 2.xx can be installed for use, in case some
people at the same site would rather stay at 1.xx
@@ -812,8 +811,8 @@
The Focus command is very useful in conjunction with the Next and
Prev commands. e.g.
- Key KP_Add A M Next (AcceptsFocus CurrentDesk !Iconic) Focus
- Key KP_Subtract A M Prev (AcceptsFocus CurrentDesk !Iconic) Focus
+ Key KP_Add A M Next (AcceptsFocus, CurrentDesk, !Iconic) Focus
+ Key KP_Subtract A M Prev (AcceptsFocus, CurrentDesk. !Iconic) Focus
Or for fvwm versions earlier than 2.4.1:
@@ -960,8 +959,8 @@
# Keys on the function keypad on the Left of the Sun Keyboard:
# F11 = Stop, F12 = Again, ..., F20 = Cut
- Key F11 AWF N Next (!iconic CurrentPage) Focus
- Key F12 AWF N Prev (!iconic CurrentPage) Focus
+ Key F11 AWF N Next (!iconici, CurrentPage) Focus
+ Key F12 AWF N Prev (!iconic, CurrentPage) Focus
Key F13 WF N Maximize 100 100
Key F15 WF N RaiseLower ""
Key F17 WIF N Iconify ""
@@ -1200,16 +1199,18 @@
this can be done with a tricky fvwm function. Put the
DeiconifyAndRearrange function below in your configuration file:
+ DestroyFunc DeiconifyAndRearrange
AddToFunc DeiconifyAndRearrange
+ C Iconify off
- + C All (CurrentPage Iconic) PlaceAgain Icon
+ + C All (CurrentPage, Iconic) PlaceAgain Icon
This works with fvwm-2.5.3 and later. Older fvwm releases can
- achieve the same effect with
+ achieve the same effect with:
+ DestroyFunc DeiconifyAndRearrange
AddToFunc DeiconifyAndRearrange
+ C Iconify off
- + C All (CurrentPage Iconic) RecaptureWindow
+ + C All (CurrentPage, Iconic) RecaptureWindow
However, as the Recapture and RecaptureWindow commands may be
removed in the future, please use PlaceAgain instead of
@@ -1264,14 +1265,14 @@
A: Excerpt from the man page:
There are many commands that affect look and feel of specific,
- some or all windows, like Style, Mouse, the FvwmTheme module and
- many others. For performance reasons such changes are not applied
- immediately but only when fvwm is idle, i.e. no user interaction
- or module input is pending. Specifically, new Style options that
- are set in a function are not applied until after the function has
- completed. This can sometimes lead to unwanted effects. To force
- that all pending changes are applied immediately, use the
- UpdateStyles, Refresh or RefreshWindow commands.
+ some or all windows, like Style, Mouse, the FvwmTheme module (for
+ fvwm 2.4.x), Colorsets and many others. For performance reasons
+ such changes are not applied immediately but only when fvwm is idle,
+ i.e. no user interaction or module input is pending. Specifically,
+ new Style options that are set in a function are not applied until
+ after the function has completed. This can sometimes lead to
+ unwanted effects. To force that all pending changes are applied
+ immediately, use the UpdateStyles, Refresh or RefreshWindow commands.
----------------------------------------------------------------------
@@ -1288,7 +1289,7 @@
DestroyFunc StartKedit
AddToFunc StartKedit
- + I Exec kedit
+ + I Exec exec kedit
+ I Wait kedit
+ I Next (kedit) Resize 100p 200p
@@ -1311,6 +1312,7 @@
+ I Exec exec $0 $1
+ I Wait $0
+ I Style $0 StartNormal
+ + I UpdateStyles
StartAppIconic kedit /tmp/my.txt
@@ -1744,7 +1746,7 @@
To force synchronous execution of FvwmM4/Cpp use:
- ModuleSunchronous FvwmM4/Cpp -lock filename
+ ModuleSynchronous FvwmM4/Cpp -lock filename
See the man page for more details.
@@ -1793,6 +1795,7 @@
fvwm-2.5.1 or later (moves the pointer back to the original
position):
+ DestroyFunc press_fvwmbuttons
AddToFunc press_fvwmbuttons
+ I SetEnv pointer_x $[pointer.x]
+ I SetEnv pointer_y $[pointer.y]
@@ -1822,6 +1825,19 @@
Note that this solution does not work well if the mouse is moved at
the same time.
+ With fvwm-2.5.24 or later (using SendToModule) a much better
+ solution is:
+
+ SendToModule buttons-alias PressButton A 1
+
+ This would send the FvwmButtons instance "button-alias" a command
+ to invoke the action that button "A" has as though the button were
+ clicked with mouse button 1. For instance:
+
+ *button-alias: (Id A, Title "My Button", Action (Mouse 1) \
+ `Exec exec xcalc`)
+
+
======================================================================
5 - Development, Known Problems & Bug Reports
======================================================================
@@ -2433,13 +2449,13 @@
There is a program shipped with fvwm (fvwm-root, previously known
as xpmroot) that you can use to set the background to an XPM or PNG
- image. Other programs like "xv", "xli", "xloadimage", "display"
- and "Esetroot", may be used too, they support some image formats
- that fvwm-root does not.
+ image. Other programs like "xv", "xli", "xloadimage", "display",
+ "feh" and "Esetroot", may be used too, they support some image
+ formats that fvwm-root does not.
If you just want a static image on your background, you might
invoke one of these programs from your .xsession or .xinitrc file.
- You can also invoke one of these programs from the InitFunction in
+ You can also invoke one of these programs from the StartFunction in
your config.
The fvwm module FvwmBacker can be used to change the background
@@ -2604,27 +2620,30 @@
Example from my config:
# make the background menu
- AddToFunc MakeBackgroundMenu
- + "I" DestroyMenu BackgroundMenu
- + "I" AddToMenu BackgroundMenu Backgrounds Title
- + "I" PipeRead 'for i in `/bin/ls $HOME/.fvwm/backgrounds/*.bg.*`; \
+ DestroyFunc MakeBackgroundMenu
+ AddToFunc MakeBackgroundMenu
+ + I DestroyMenu BackgroundMenu
+ + I AddToMenu BackgroundMenu Backgrounds Title
+ + I PipeRead 'for i in `/bin/ls $HOME/.fvwm/backgrounds/*.bg.*`; \
do echo -e AddToMenu BackgroundMenu `basename $i | sed -e \
"s/\.bg\..*$//"` Function SetDefaultBackground $i; done'
# set the default background
+ DestroyFunc SetDefaultBackground
AddToFunc SetDefaultBackground
- + "I" Exec echo -e $0 > $HOME/.fvwm/background
- + "I" Function SetBackground
+ + I Exec echo -e $0 > $HOME/.fvwm/background
+ + I SetBackground
# set a new background
+ DestroyFunc SetBackground
AddToFunc SetBackground
- + "I" Exec test -r $HOME/.fvwm/background && xv -root -quit -viewonly \
+ + I Exec test -r $HOME/.fvwm/background && xv -root -quit -viewonly \
`cat $HOME/.fvwm/background|tr -d "\n"`
# activate setting from last session and build the menu
- AddToFunc InitFunction
- + "I" Function SetBackground
- + "I" Function MakeBackgroundMenu
+ AddToFunc StartFunction
+ + I SetBackground
+ + I MakeBackgroundMenu
The MakeBackgroundMenu function builds a menu that contains an item
@@ -2796,14 +2815,14 @@
or to change the focus to a window in a specific direction:
# number keys on keypad to move the focus
- Key KP_1 A C Direction SouthWest Focus
- Key KP_2 A C Direction South Focus
- Key KP_3 A C Direction SouthEast Focus
- Key KP_4 A C Direction West Focus
- Key KP_6 A C Direction East Focus
- Key KP_7 A C Direction NorthWest Focus
- Key KP_8 A C Direction North Focus
- Key KP_9 A C Direction NorthEast Focus
+ Key KP_1 A C Direction SouthWest (AcceptsFocus) Focus
+ Key KP_2 A C Direction South (AcceptsFocus) Focus
+ Key KP_3 A C Direction SouthEast (AcceptsFocus) Focus
+ Key KP_4 A C Direction West (AcceptsFocus) Focus
+ Key KP_6 A C Direction East (AcceptsFocus) Focus
+ Key KP_7 A C Direction NorthWest (AcceptsFocus) Focus
+ Key KP_8 A C Direction North (AcceptsFocus) Focus
+ Key KP_9 A C Direction NorthEast (AcceptsFocus) Focus
----------------------------------------------------------------------
@@ -2831,11 +2850,12 @@
Mouse 2 T A Function MoveOrLower
+ DestroyFunc MoveOrLower
AddToFunc MoveOrLower
- + "Click" Lower
- + "Motion" Lower
- + "Motion" Move
- + "DoubleClick" Lower
+ + C Lower
+ + M Lower
+ + M Move
+ + D Lower
----------------------------------------------------------------------
@@ -2856,6 +2876,7 @@
# Application toggling function
# First argument is the window name, second argument is the
# command to start the application.
+ DestroyFunc ToggleWindow
AddToFunc ToggleWindow
+ I None ($$0, CirculateHit) $$1
+ I TestRc (Match) Break
@@ -2864,6 +2885,7 @@
+ I Next ($$0, CirculateHit) Function MakeVisible
# Helper function
+ DestroyFunc MakeVisible
AddToFunc MakeVisible
+ I MoveToDesk
+ I MoveToPage
@@ -2890,13 +2912,14 @@
still want to have other xterms that are not toggled, you must
give the window an unique name:
-
+ DestroyFunc RunXMessages
AddToFunc RunXMessages
+ I Exec exec xterm -T XMessages -n XMessages \
-e tail -f /var/adm/?* ~/.X.err
+ DestroyFunc ToggleXMessages
AddToFunc ToggleXMessages
- + I ToggleWindow XMessages "Function RunXMessages"
+ + I ToggleWindow XMessages RunXMessages
Keep in mind that these functions simply check if a window with
the specified name exists. They will happily close manually
@@ -2905,13 +2928,15 @@
For fvwm-2.5.10 or earlier, these functions should work too:
+ DestroyFunc ToggleFvwmConsole
AddToFunc ToggleFvwmConsole
- + I None (FvwmConsole, CirculateHit) Module FvwmConsole
+ + I None (FvwmConsole, CirculateHit) FvwmConsole
+ I Next (FvwmConsole, CirculateHit, CurrentPage, Visible) Close
+ I Next (FvwmConsole, CirculateHit) MoveToDesk
+ I Next (FvwmConsole, CirculateHit) MoveToPage
+ I Next (FvwmConsole, CirculateHit) Raise
+ DestroyFunc ToggleXMessages
AddToFunc ToggleXMessages
+ I None (XMessages, CirculateHit) Exec exec \
xterm -T XMessages -n XMessages -e tail -f /var/adm/?* ~/.X.err
@@ -2970,11 +2995,20 @@
Next (MyWindow) CenterWindow
ThisWindow may be removed, it is only needed to avoid errors when
- CenterWindow is called without a window context.
+ CenterWindow is called without a window context. (In which case
+ see the Pick command.)
With fvwm release 2.5.11, you can place windows in the center of
the screen using "Style X CenterPlacement".
+ But with fvwm release 2.5.22 and greater CenterPlacement is
+ deprecated over the use of PositionPlacement style which allows for
+ not only centering windows, but positioning windows anywhere on the
+ screen using the same arguments as the Move command. But in terms of
+ centering windows:
+
+ Style MyWindow PositionPlacement Center
+
----------------------------------------------------------------------
7.15 Hiding the mouse pointer.
@@ -3011,11 +3045,13 @@
fvwm-2.5.11 or later:
# The autohiding functions
+ DestroyFunc autohide
AddToFunc autohide
+ I ThisWindow ($0) Deschedule $[w.id]
+ I ThisWindow ($0) KeepRc ThisWindow (shaded) WindowShade off
+ I TestRc (!Match) All ($0, !shaded) autohide_hide $1 $2
+ DestroyFunc autohide_hide
AddToFunc autohide_hide
+ I Schedule $0 $[w.id] WindowShade $1
+ I Schedule $0 $[w.id] Deschedule $[w.id]
@@ -3046,6 +3082,7 @@
fvwm-2.5.11 or later:
+ DestroyFunc autohide
AddToFunc autohide
+ I ThisWindow ($0) Deschedule $[w.id]
+ I TestRc (!Match) Deschedule -$[w.id]
@@ -3053,11 +3090,13 @@
autohide_show $1 $3
+ I TestRc (!Match) All ($0, !shaded) autohide_hide $2 $3
+ DestroyFunc autohide_show
AddToFunc autohide_show
+ I Schedule $0 -$[w.id] WindowShade $1 off
+ I Schedule $0 -$[w.id] Deschedule $[w.id]
+ I Schedule $0 -$[w.id] Deschedule -$[w.id]
+ DestroyFunc autohide_hide
AddToFunc autohide_hide
+ I Schedule $0 $[w.id] WindowShade $1 on
+ I Schedule $0 $[w.id] Deschedule $[w.id]
@@ -3066,6 +3105,7 @@
AddToFunc StartFunction
+ I Module FvwmAuto 1 -menter enter_handler
+ DestroyFunc enter_handler
AddToFunc enter_handler
+ I autohide FvwmButtons 250 500 S
# ^ ^ ^ ^