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
      #            ^           ^   ^   ^

Reply via email to