diff -Naru fvwm/fvwm.SlackBuild fvwm.new/fvwm.SlackBuild
--- fvwm/fvwm.SlackBuild	2018-09-19 00:04:14.365104000 +0200
+++ fvwm.new/fvwm.SlackBuild	2018-11-29 12:19:41.073652772 +0100
@@ -24,7 +24,7 @@
 
 PKGNAM=fvwm
 VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
 
 # Automatically determine the architecture we're building on:
 if [ -z "$ARCH" ]; then
@@ -83,6 +83,7 @@
   --libdir=/usr/lib${LIBDIRSUFFIX} \
   --sysconfdir=/etc \
   --mandir=/usr/man \
+  --enable-htmldoc \
   --docdir=/usr/doc/$PKGNAM-$VERSION \
   --program-prefix= \
   --program-suffix= \
@@ -98,9 +99,6 @@
 zcat $CWD/startfvwm2.gz > $PKG/usr/bin/startfvwm2
 chmod 755 $PKG/usr/bin/startfvwm2
 
-# This stuff appears to be misplaced junk:
-rm -rf $PKG/usr/share/doc
-
 # Add a few more things:
 mkdir -p $PKG/etc/X11/xinit
 zcat $CWD/xinitrc.fvwm2.gz > $PKG/etc/X11/xinit/xinitrc.fvwm2
@@ -128,9 +126,31 @@
 # Install some documentation:
 mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
 cp -a \
-  AUTHORS COPYING* NEWS README* \
+  COPYING* NEWS \
   $PKG/usr/doc/$PKGNAM-$VERSION
 
+# Move the html doc into place, as the htmldir configure option is not
+# honored (will be in version 2.6.9). Some edit is done in the source
+# files to avoid dead links and provide current useful documentation.
+# Acces to all the documentation is provided through this command:
+# <browser> /usr/doc/$PKGNAM-$VERSION/index.html
+mv $PKG/usr/share/doc/fvwm/* $PKG/usr/doc/$PKGNAM-$VERSION
+rm -r $PKG/usr/share/doc
+(  cd $PKG/usr/doc/$PKGNAM-$VERSION
+   for i in $(find -name "*.html"); do
+     sed -i "s,faq.html,faq/,;s,links.php,links/,;/.php/d" $i
+   done
+   sed -i "s,>Modules<,>List of all modules<,;s,>FAQ<,>FAQ (on line)<," commands/*.html
+   # Remove the links to non existing files, but highligt the module
+   # names as if they were options, to not modify style.css
+   sed -i 's@<a href="../modules/[^"]*">\([^<]*\)</a>@<font class="fvwmopt">\1</font>@g' commands/*.html
+   # Provide edited files to avoid broken links and insure the
+   # documentation correspond to what is actually installed
+   rm -f *.html fvwm/*.html
+   cp -a $CWD/htmlpages/* .
+)
+
+
 # If there's a ChangeLog, installing at least part of the recent history
 # is useful, but don't let it get totally out of control:
 if [ -r ChangeLog ]; then
diff -Naru fvwm/htmlpages/allCommands.html fvwm.new/htmlpages/allCommands.html
--- fvwm/htmlpages/allCommands.html	1970-01-01 01:00:00.000000000 +0100
+++ fvwm.new/htmlpages/allCommands.html	2018-11-29 00:32:55.737708000 +0100
@@ -0,0 +1,337 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
+<title>Fvwm: All Commands</title>
+<link href="style.css" rel="stylesheet" type="text/css"></head>
+
+<body>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tbody>
+<tr>
+<td align="left" valign="top"><a href="http://www.fvwm.org"><img src="images/m.logo.png" align="left" border="0"></a></td>
+<td class="postheader" valign="top">
+	<a href="index.html"><font class="header">Home</font></a> &sdot;
+	<a href="allCommands.html"<font class="header">All Commands</font> &sdot;
+	<a href="groupedCommands.html"><font class="header">Grouped Commands</font></a> &sdot;
+	<a href="manpages.html"><font class="header">List of all modules</font></a> &sdot;
+	<a href="http://www.fvwm.org/documentation/faq/"><font class="header">FAQ on line</font></a>
+</td>
+
+<td align="right" valign="top"><a href="http://www.fvwm.org/"><img src="images/fvwm.logo2.png" align="right" border="0"></a></td>
+</tr>
+</tbody>
+</table>
+
+
+<h1 align="center"> All<img src="images/fvwm.logo.png" alt="fvwm"> &nbsp;&nbsp;Commands</h1>
+
+<table width="100%">
+
+<!-- Use the util/genAllCommands.pl script to generate the following HTML code. -->
+
+<tr>
+<td align="right"><b>A&nbsp;</b></td><td><a href="commands/AddButtonStyle.html">AddButtonStyle</a></td>
+<td align="right"><b>D&nbsp;</b></td><td><a href="commands/DefaultColors.html">DefaultColors</a></td>
+<td align="right"><b>H&nbsp;</b></td><td><a href="commands/HideGeometryWindow.html">HideGeometryWindow</a></td>
+<td align="right"><b>Q&nbsp;</b></td><td><a href="commands/Quit.html">Quit</a></td>
+<td align="right"><b>T&nbsp;</b></td><td><a href="commands/TearMenuOff.html">TearMenuOff</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/AddTitleStyle.html">AddTitleStyle</a></td>
+<td></td><td><a href="commands/DefaultColorset.html">DefaultColorset</a></td>
+<td></td><td><a href="commands/HilightColor.html"><font class="obsolete">HilightColor</font></a></td>
+<td></td><td><a href="commands/QuitScreen.html">QuitScreen</a></td>
+<td></td><td><a href="commands/Test.html">Test</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/AddToDecor.html">AddToDecor</a></td>
+<td></td><td><a href="commands/DefaultFont.html">DefaultFont</a></td>
+<td></td><td><a href="commands/HilightColorset.html"><font class="obsolete">HilightColorset</font></a></td>
+<td></td><td><a href="commands/QuitSession.html">QuitSession</a></td>
+<td></td><td><a href="commands/TestRc.html">TestRc</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/AddToFunc.html">AddToFunc</a></td>
+<td></td><td><a href="commands/DefaultIcon.html">DefaultIcon</a></td>
+<td align="right"><b>I&nbsp;</b></td><td><a href="commands/IconFont.html"><font class="obsolete">IconFont</font></a></td>
+<td align="right"><b>R&nbsp;</b></td><td><a href="commands/Raise.html">Raise</a></td>
+<td></td><td><a href="commands/ThisWindow.html">ThisWindow</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/AddToMenu.html">AddToMenu</a></td>
+<td></td><td><a href="commands/DefaultLayers.html">DefaultLayers</a></td>
+<td></td><td><a href="commands/Iconify.html">Iconify</a></td>
+<td></td><td><a href="commands/RaiseLower.html">RaiseLower</a></td>
+<td></td><td><a href="commands/Title.html">Title</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/All.html">All</a></td>
+<td></td><td><a href="commands/Delete.html">Delete</a></td>
+<td></td><td><a href="commands/IconPath.html"><font class="obsolete">IconPath</font></a></td>
+<td></td><td><a href="commands/Read.html">Read</a></td>
+<td></td><td><a href="commands/TitleStyle.html">TitleStyle</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/AnimatedMove.html">AnimatedMove</a></td>
+<td></td><td><a href="commands/Deschedule.html">Deschedule</a></td>
+<td></td><td><a href="commands/IgnoreModifiers.html">IgnoreModifiers</a></td>
+<td></td><td><a href="commands/Recapture.html"><font class="obsolete">Recapture</font></a></td>
+<td align="right"><b>U&nbsp;</b></td><td><a href="commands/UnsetEnv.html">UnsetEnv</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/Any.html">Any</a></td>
+<td></td><td><a href="commands/Desk.html">Desk</a></td>
+<td></td><td><a href="commands/ImagePath.html">ImagePath</a></td>
+<td></td><td><a href="commands/RecaptureWindow.html"><font class="obsolete">RecaptureWindow</font></a></td>
+<td></td><td><a href="commands/UpdateDecor.html">UpdateDecor</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/Asterisk.html">Asterisk</a></td>
+<td></td><td><a href="commands/DesktopName.html">DesktopName</a></td>
+<td align="right"><b>K&nbsp;</b></td><td><a href="commands/Key.html">Key</a></td>
+<td></td><td><a href="commands/Refresh.html">Refresh</a></td>
+<td></td><td><a href="commands/UpdateStyles.html">UpdateStyles</a></td>
+</tr>
+<tr>
+<td align="right"><b>B&nbsp;</b></td><td><a href="commands/Beep.html">Beep</a></td>
+<td></td><td><a href="commands/DesktopSize.html">DesktopSize</a></td>
+<td></td><td><a href="commands/KeepRc.html">KeepRc</a></td>
+<td></td><td><a href="commands/RefreshWindow.html">RefreshWindow</a></td>
+<td align="right"><b>W&nbsp;</b></td><td><a href="commands/Wait.html">Wait</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/BorderStyle.html">BorderStyle</a></td>
+<td></td><td><a href="commands/Destroy.html">Destroy</a></td>
+<td></td><td><a href="commands/KillModule.html">KillModule</a></td>
+<td></td><td><a href="commands/Repeat.html">Repeat</a></td>
+<td></td><td><a href="commands/WarpToWindow.html">WarpToWindow</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/Break.html">Break</a></td>
+<td></td><td><a href="commands/DestroyDecor.html">DestroyDecor</a></td>
+<td align="right"><b>L&nbsp;</b></td><td><a href="commands/Layer.html">Layer</a></td>
+<td></td><td><a href="commands/Resize.html">Resize</a></td>
+<td></td><td><a href="commands/WindowFont.html"><font class="obsolete">WindowFont</font></a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/BugOpts.html">BugOpts</a></td>
+<td></td><td><a href="commands/DestroyFunc.html">DestroyFunc</a></td>
+<td></td><td><a href="commands/LocalePath.html">LocalePath</a></td>
+<td></td><td><a href="commands/ResizeMaximize.html">ResizeMaximize</a></td>
+<td></td><td><a href="commands/WindowId.html">WindowId</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/BusyCursor.html">BusyCursor</a></td>
+<td></td><td><a href="commands/DestroyMenu.html">DestroyMenu</a></td>
+<td></td><td><a href="commands/Lower.html">Lower</a></td>
+<td></td><td><a href="commands/ResizeMove.html">ResizeMove</a></td>
+<td></td><td><a href="commands/WindowList.html">WindowList</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/ButtonState.html">ButtonState</a></td>
+<td></td><td><a href="commands/DestroyMenuStyle.html">DestroyMenuStyle</a></td>
+<td align="right"><b>M&nbsp;</b></td><td><a href="commands/Maximize.html">Maximize</a></td>
+<td></td><td><a href="commands/ResizeMoveMaximize.html">ResizeMoveMaximize</a></td>
+<td></td><td><a href="commands/WindowsDesk.html"><font class="obsolete">WindowsDesk</font></a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/ButtonStyle.html">ButtonStyle</a></td>
+<td></td><td><a href="commands/DestroyModuleConfig.html">DestroyModuleConfig</a></td>
+<td></td><td><a href="commands/Menu.html">Menu</a></td>
+<td></td><td><a href="commands/RestackTransients.html">RestackTransients</a></td>
+<td></td><td><a href="commands/WindowShade.html">WindowShade</a></td>
+</tr>
+<tr>
+<td align="right"><b>C&nbsp;</b></td><td><a href="commands/ChangeDecor.html">ChangeDecor</a></td>
+<td></td><td><a href="commands/DestroyStyle.html">DestroyStyle</a></td>
+<td></td><td><a href="commands/MenuStyle.html">MenuStyle</a></td>
+<td></td><td><a href="commands/Restart.html">Restart</a></td>
+<td></td><td><a href="commands/WindowShadeAnimate.html"><font class="obsolete">WindowShadeAnimate</font></a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/ChangeMenuStyle.html">ChangeMenuStyle</a></td>
+<td></td><td><a href="commands/DestroyWindowStyle.html">DestroyWindowStyle</a></td>
+<td></td><td><a href="commands/Module.html">Module</a></td>
+<td align="right"><b>S&nbsp;</b></td><td><a href="commands/SaveQuitSession.html">SaveQuitSession</a></td>
+<td></td><td><a href="commands/WindowStyle.html">WindowStyle</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/CleanupColorsets.html">CleanupColorsets</a></td>
+<td></td><td><a href="commands/Direction.html">Direction</a></td>
+<td></td><td><a href="commands/ModuleListenOnly.html">ModuleListenOnly</a></td>
+<td></td><td><a href="commands/SaveSession.html">SaveSession</a></td>
+<td align="right"><b>X&nbsp;</b></td><td><a href="commands/Xinerama.html">Xinerama</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/ClickTime.html">ClickTime</a></td>
+<td align="right"><b>E&nbsp;</b></td><td><a href="commands/Echo.html">Echo</a></td>
+<td></td><td><a href="commands/ModulePath.html">ModulePath</a></td>
+<td></td><td><a href="commands/ScanForWindow.html">ScanForWindow</a></td>
+<td></td><td><a href="commands/XineramaPrimaryScreen.html">XineramaPrimaryScreen</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/Close.html">Close</a></td>
+<td></td><td><a href="commands/EchoFuncDefinition.html">EchoFuncDefinition</a></td>
+<td></td><td><a href="commands/ModuleSynchronous.html">ModuleSynchronous</a></td>
+<td></td><td><a href="commands/Schedule.html">Schedule</a></td>
+<td></td><td><a href="commands/XineramaSls.html">XineramaSls</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/ColorLimit.html"><font class="obsolete">ColorLimit</font></a></td>
+<td></td><td><a href="commands/EdgeCommand.html">EdgeCommand</a></td>
+<td></td><td><a href="commands/ModuleTimeout.html">ModuleTimeout</a></td>
+<td></td><td><a href="commands/Scroll.html">Scroll</a></td>
+<td></td><td><a href="commands/XineramaSlsScreens.html">XineramaSlsScreens</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/ColormapFocus.html">ColormapFocus</a></td>
+<td></td><td><a href="commands/EdgeLeaveCommand.html">EdgeLeaveCommand</a></td>
+<td></td><td><a href="commands/Mouse.html">Mouse</a></td>
+<td></td><td><a href="commands/SendToModule.html">SendToModule</a></td>
+<td></td><td><a href="commands/XineramaSlsSize.html">XineramaSlsSize</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/Colorset.html">Colorset</a></td>
+<td></td><td><a href="commands/EdgeResistance.html">EdgeResistance</a></td>
+<td></td><td><a href="commands/Move.html">Move</a></td>
+<td></td><td><a href="commands/SetAnimation.html">SetAnimation</a></td>
+<td></td><td><a href="commands/XorPixmap.html">XorPixmap</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/CopyMenuStyle.html">CopyMenuStyle</a></td>
+<td></td><td><a href="commands/EdgeScroll.html">EdgeScroll</a></td>
+<td></td><td><a href="commands/MoveThreshold.html">MoveThreshold</a></td>
+<td></td><td><a href="commands/SetEnv.html">SetEnv</a></td>
+<td></td><td><a href="commands/XorValue.html">XorValue</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/Current.html">Current</a></td>
+<td></td><td><a href="commands/EdgeThickness.html">EdgeThickness</a></td>
+<td></td><td><a href="commands/MoveToDesk.html">MoveToDesk</a></td>
+<td></td><td><a href="commands/ShellCmd.html">ShellCmd</a></td>
+<td></td><td><a href="commands/XSync.html">XSync</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/CursorMove.html">CursorMove</a></td>
+<td></td><td><a href="commands/Emulate.html">Emulate</a></td>
+<td></td><td><a href="commands/MoveToPage.html">MoveToPage</a></td>
+<td></td><td><a href="commands/Silent.html">Silent</a></td>
+<td></td><td><a href="commands/XSynchronize.html">XSynchronize</a></td>
+</tr>
+<tr>
+<td></td><td><a href="commands/CursorStyle.html">CursorStyle</a></td>
+<td></td><td><a href="commands/EscapeFunc.html">EscapeFunc</a></td>
+<td></td><td><a href="commands/MoveToScreen.html">MoveToScreen</a></td>
+<td></td><td><a href="commands/SnapAttraction.html">SnapAttraction</a></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td></td><td><a href="commands/EwmhBaseStruts.html">EwmhBaseStruts</a></td>
+<td align="right"><b>N&nbsp;</b></td><td><a href="commands/Next.html">Next</a></td>
+<td></td><td><a href="commands/SnapGrid.html">SnapGrid</a></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td></td><td><a href="commands/EwmhNumberOfDesktops.html">EwmhNumberOfDesktops</a></td>
+<td></td><td><a href="commands/None.html">None</a></td>
+<td></td><td><a href="commands/State.html">State</a></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td></td><td><a href="commands/Exec.html">Exec</a></td>
+<td></td><td><a href="commands/Nop.html">Nop</a></td>
+<td></td><td><a href="commands/Stick.html">Stick</a></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td></td><td><a href="commands/ExecUseShell.html">ExecUseShell</a></td>
+<td></td><td><a href="commands/NoWindow.html">NoWindow</a></td>
+<td></td><td><a href="commands/StickAcrossDesks.html">StickAcrossDesks</a></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td align="right"><b>F&nbsp;</b></td><td><a href="commands/FakeClick.html">FakeClick</a></td>
+<td align="right"><b>O&nbsp;</b></td><td><a href="commands/OpaqueMoveSize.html">OpaqueMoveSize</a></td>
+<td></td><td><a href="commands/StickAcrossPages.html">StickAcrossPages</a></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td></td><td><a href="commands/FakeKeypress.html">FakeKeypress</a></td>
+<td align="right"><b>P&nbsp;</b></td><td><a href="commands/Pick.html">Pick</a></td>
+<td></td><td><a href="commands/Stroke.html">Stroke</a></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td></td><td><a href="commands/FlipFocus.html">FlipFocus</a></td>
+<td></td><td><a href="commands/PipeRead.html">PipeRead</a></td>
+<td></td><td><a href="commands/StrokeFunc.html">StrokeFunc</a></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td></td><td><a href="commands/Focus.html">Focus</a></td>
+<td></td><td><a href="commands/PixmapPath.html"><font class="obsolete">PixmapPath</font></a></td>
+<td></td><td><a href="commands/Style.html">Style</a></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td></td><td><a href="commands/FocusStyle.html">FocusStyle</a></td>
+<td></td><td><a href="commands/PlaceAgain.html">PlaceAgain</a></td>
+<td></td><td></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td></td><td><a href="commands/Function.html">Function</a></td>
+<td></td><td><a href="commands/PointerKey.html">PointerKey</a></td>
+<td></td><td></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td align="right"><b>G&nbsp;</b></td><td><a href="commands/GlobalOpts.html"><font class="obsolete">GlobalOpts</font></a></td>
+<td></td><td><a href="commands/PointerWindow.html">PointerWindow</a></td>
+<td></td><td></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td></td><td><a href="commands/GotoDesk.html">GotoDesk</a></td>
+<td></td><td><a href="commands/PrintInfo.html">PrintInfo</a></td>
+<td></td><td></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td></td><td><a href="commands/GotoDeskAndPage.html">GotoDeskAndPage</a></td>
+<td></td><td></td>
+<td></td><td></td>
+<td></td><td></td>
+</tr>
+<tr>
+<td></td><td></td>
+<td></td><td><a href="commands/GotoPage.html">GotoPage</a></td>
+<td></td><td></td>
+<td></td><td></td>
+<td></td><td></td>
+</tr>
+
+<!-- end of auto-generated HTML -->
+
+</table>
+
+<p><b>Note:</b> Some commands are <font class="obsolete">obsolete</font>.</p>
+
+
+<table border="0" cellspacing="0" width="100%"><tbody><tr class="address">
+<td width="30%"><img src="images/fvwm.logo2.png"></td>
+<td align="right" width="30%"><div align="right">fvwm 2.6.8</div></td>
+</tr></tbody></table></div></body></html>
diff -Naru fvwm/htmlpages/fvwm/fvwm.man.html fvwm.new/htmlpages/fvwm/fvwm.man.html
--- fvwm/htmlpages/fvwm/fvwm.man.html	1970-01-01 01:00:00.000000000 +0100
+++ fvwm.new/htmlpages/fvwm/fvwm.man.html	2018-11-29 00:32:55.748708000 +0100
@@ -0,0 +1,9099 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Fvwm 2.6.8</title><link rel="stylesheet" href="../style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_6661"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr>
+<td align="left" valign="top"><a href="http://www.fvwm.org"><img src="../images/m.logo.png" align="left" border="0"></a></td>
+<td class="postheader" valign="top">
+	<a href="../index.html"><font class="header">Home</font></a> ⋅
+	<a href="../allCommands.html"><font class="header">All Commands</font></a> ⋅
+	<a href="../groupedCommands.html"><font class="header">Grouped Commands</font></a> ⋅
+	<a href="../manpages.html"><font class="header">List of all man pages</font></a> ⋅
+	<a href="http://www.fvwm.org/documentation/faq/"><font class="header">FAQ on line</font></a>
+</td>
+
+<td align="right" valign="top"><a href="http://www.fvwm.org/"><img src="../images/fvwm.logo2.png" align="right" border="0"></a></td>
+</tr></tbody></table>
+<div class="article" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="idm23377456304832"></a>Fvwm 2.6.8</h1></div><div><div class="author"><h3 class="author"></h3></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#name">1. Name</a></span></dt><dt><span class="section"><a href="#synopsis">2. Synopsis</a></span></dt><dt><span class="section"><a href="#description">3. Description</a></span></dt><dt><span class="section"><a href="#Options">4. Options</a></span></dt><dt><span class="section"><a href="#anatomy_of_a_window">5. Anatomy of a Window</a></span></dt><dt><span class="section"><a href="#virtual_desktop">6. The Virtual Desktop</a></span></dt><dt><span class="section"><a href="#use_on_multiscreen_displays">7. Use on Multi-Screen Displays</a></span></dt><dt><span class="section"><a href="#xinerama_support">8. Xinerama Support</a></span></dt><dt><span class="section"><a href="#initialization">9. Initialization</a></span></dt><dt><span class="section"><a href="#compilation">10. Compilation Options</a></span></dt><dt><span class="section"><a href="#icons_and_images">11. Icons and Images</a></span></dt><dd><dl><dt><span class="section"><a href="#svg_rendering_options">11.1. SVG rendering options</a></span></dt></dl></dd><dt><span class="section"><a href="#modules">12. Modules</a></span></dt><dt><span class="section"><a href="#icccm_compliance">13. ICCCM Compliance</a></span></dt><dt><span class="section"><a href="#gnome">14. Gnome Compliance</a></span></dt><dt><span class="section"><a href="#extended_window_manager_hints">15. Extended Window Manager Hints</a></span></dt><dt><span class="section"><a href="#mwm_compatibility">16. MWM Compatibility</a></span></dt><dt><span class="section"><a href="#open_look_and_xview_compatibility">17. Open Look and XView Compatibility</a></span></dt><dt><span class="section"><a href="#m4_preprocessing">18. M4 Preprocessing</a></span></dt><dt><span class="section"><a href="#cpp_preprocessing">19. CPP Preprocessing</a></span></dt><dt><span class="section"><a href="#configuration">20. Configuration</a></span></dt><dd><dl><dt><span class="section"><a href="#configuration_files">20.1. Configuration Files</a></span></dt><dt><span class="section"><a href="#supplied_configuration">20.2. Supplied Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="#fonts">21. Fonts</a></span></dt><dd><dl><dt><span class="section"><a href="#font_names_and_font_loading">21.1. Font names and font loading</a></span></dt><dt><span class="section"><a href="#font_and_string_encoding">21.2. Font and string encoding</a></span></dt><dt><span class="section"><a href="#font_shadow_effects">21.3. Font Shadow Effects</a></span></dt></dl></dd><dt><span class="section"><a href="#bidirectional_text">22. Bi-directional Text</a></span></dt><dt><span class="section"><a href="#keyboard_shortcuts">23. Keyboard Shortcuts</a></span></dt><dt><span class="section"><a href="#session_management">24. Session Management</a></span></dt><dt><span class="section"><a href="#boolean_args">25. Boolean Arguments</a></span></dt><dt><span class="section"><a href="#builtin_key_and_mouse_bindings">26. Builtin Key and Mouse Bindings</a></span></dt><dt><span class="section"><a href="#command_execution">27. Command Execution</a></span></dt><dd><dl><dt><span class="section"><a href="#module_and_function_commands">27.1. Module and Function Commands</a></span></dt><dt><span class="section"><a href="#delayed_execution_of_commands">27.2. Delayed Execution of Commands</a></span></dt></dl></dd><dt><span class="section"><a href="#quoting">28. Quoting</a></span></dt><dt><span class="section"><a href="#command_expansion">29. Command Expansion</a></span></dt><dt><span class="section"><a href="#scripting_and_complex_functions">30. Scripting &amp; Complex Functions</a></span></dt><dt><span class="section"><a href="#list_of_fvwm_commands">31. List of Fvwm Commands</a></span></dt><dd><dl><dt><span class="section"><a href="#menus">31.1. Menus</a></span></dt><dt><span class="section"><a href="#miscellaneous_commands">31.2. Miscellaneous Commands</a></span></dt><dt><span class="section"><a href="#window_movement_and_placement">31.3. Window Movement and Placement</a></span></dt><dt><span class="section"><a href="#focus_and_mouse_movement">31.4. Focus &amp; Mouse Movement</a></span></dt><dt><span class="section"><a href="#window_state">31.5. Window State</a></span></dt><dt><span class="section"><a href="#mouse_key_and_stroke_bindings">31.6. Mouse, Key &amp; Stroke Bindings</a></span></dt><dt><span class="section"><a href="#controlling_window_styles">31.7. Controlling Window Styles</a></span></dt><dt><span class="section"><a href="#window_styles">31.8. Window Styles</a></span></dt><dt><span class="section"><a href="#virtual_desktop_commands">31.9. Controlling the Virtual Desktop</a></span></dt><dt><span class="section"><a href="#user_functions_and_shell_commands">31.10. User Functions and Shell Commands</a></span></dt><dt><span class="section"><a href="#conditional_commands">31.11. Conditional Commands</a></span></dt><dt><span class="section"><a href="#module_commands">31.12. Module Commands</a></span></dt><dt><span class="section"><a href="#session_management_commands">31.13. Session Management Commands</a></span></dt><dt><span class="section"><a href="#colorsets">31.14. Colorsets</a></span></dt></dl></dd><dt><span class="section"><a href="#environment">32. Environment</a></span></dt><dt><span class="section"><a href="#authors">33. Authors</a></span></dt><dt><span class="section"><a href="#copyright">34. Copyright</a></span></dt><dt><span class="section"><a href="#bugs">35. Bugs</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="name"></a>1. Name</h2></div></div></div><p>Fvwm - F? Virtual Window Manager for X11</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="synopsis"></a>2. Synopsis</h2></div></div></div><div class="cmdsynopsis"><p><code class="command">fvwm</code>  [<code class="option">-c</code>  <em class="replaceable"><code>config-command</code></em> ] [<code class="option">-d</code>  <em class="replaceable"><code>displayname</code></em> ] [<code class="option">-f</code>  <em class="replaceable"><code>config-file</code></em> ] [<code class="option">-r</code>] [<code class="option">-s</code> [<em class="replaceable"><code>screen_num</code></em>]] [<code class="option">-V</code>] [ <code class="option">-C</code>  <em class="replaceable"><code>visual-class</code></em>   |   <code class="option">-I</code>  <em class="replaceable"><code>visual-id</code></em>  ] [<code class="option">-l</code>  <em class="replaceable"><code>colors</code></em>  [<code class="option">-L</code>] [<code class="option">-A</code>] [<code class="option">-S</code>] [<code class="option">-P</code>]] [<code class="option">-D</code>] [<code class="option">-h</code>] [<code class="option">-i</code>  <em class="replaceable"><code>client-id</code></em> ] [<code class="option">-F</code>  <em class="replaceable"><code>state-file</code></em> ] [<code class="option">--debug-stack-ring</code>] [<code class="option">-blackout</code>]</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="description"></a>3. Description</h2></div></div></div><p>Fvwm is a window manager for X11.  It is designed to minimize
+memory consumption, provide a 3D look to window frames, and a
+virtual desktop.</p><p>Note that there are several window managers around that have
+"fvwm" in their name.  In the past, version 2.x of fvwm was
+commonly called fvwm2 to distinguish it from the former version
+1.x (fvwm or even fvwm1).  Since version 1.x has been replaced by
+version 2.x a long time ago we simply call version 2.x and all
+versions to come, fvwm, throughout this document, and the
+executable program is named fvwm.  There is an fvwm offspring
+called fvwm95, it is mostly a patched version of fvwm-2.0.43.  The
+main goal of fvwm95 was to supply a Windows 95 like look and
+feel. Since then, fvwm has been greatly enhanced and practically
+all fvwm95 features can be achieved by fvwm.</p><p>Fvwm provides both a large
+<span class="emphasis"><em>virtual desktop</em></span>
+and
+<span class="emphasis"><em>multiple disjoint desktops</em></span>
+which can be used separately or together.  The virtual desktop
+allows you to pretend that your video screen is really quite
+large, and you can scroll around within the desktop.  The multiple
+disjoint desktops allow you to pretend that you really have
+several screens to work at, but each screen is completely
+unrelated to the others.</p><p>Fvwm provides
+<span class="emphasis"><em>keyboard accelerators</em></span>
+that allow you to perform most window manager functions,
+including moving and resizing windows and operating the menus,
+using keyboard shortcuts.</p><p>Fvwm has also overcome the distinction between configuration
+commands and action commands that most window managers
+make. Configuration commands typically set fonts, colors, menu
+contents, and key and mouse function bindings, while action commands
+do things like raise and lower windows.  Fvwm makes no such
+distinction and allows anything to be changed at any time.</p><p>Other noteworthy differences between fvwm and other X11 window
+managers are the introduction of the <a href="#Style_SloppyFocus">SloppyFocus</a> and <a href="#Style_NeverFocus">NeverFocus</a>
+focus methods.  Focus policy can be separately specified for
+different window groups.  Windows using <a href="#Style_SloppyFocus">SloppyFocus</a> acquire focus when the pointer moves into them and retain focus
+until some other window acquires it.  Such windows do not lose
+focus when the pointer moves into the root window.  The
+<a href="#Style_NeverFocus">NeverFocus</a>
+policy is provided for use with windows into which one never types
+(e.g. xclock, oclock, xbiff, xeyes, tuxeyes) - for example, if a
+SloppyFocus terminal window has focus, moving the pointer over a
+NeverFocus
+decoration window does not deprive the terminal of focus.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Options"></a>4. Options</h2></div></div></div><p>These are the command line options that are recognized by fvwm:</p><div class="variablelist"><dl><dt><span class="term">
+    <code class="option">-i</code> | <code class="option">--clientid</code>
+    <em class="replaceable"><code>id</code></em>
+  </span></dt><dd><p>
+This option is used when fvwm is started by a session
+manager. Should not be used by a user.</p></dd><dt><span class="term">
+    <code class="option">-c</code> | <code class="option">--cmd</code>
+    <em class="replaceable"><code>config-command</code></em>
+  </span></dt><dd><p>
+Causes fvwm to use
+<em class="replaceable"><code>config-command</code></em>
+instead of
+'<a href="#Read">Read</a>
+<span class="emphasis"><em>config</em></span>'
+(or '<a href="#Read">Read</a>
+<span class="emphasis"><em>.fvwm2rc</em></span>')
+as its initialization command.  (Note that up to 10
+<code class="option">-f</code> and <code class="option">-c</code>
+parameters can be given, and they are executed in the order
+specified.)</p><p>Any module started by command line arguments is assumed to be a
+module that sends back config commands.  All command line modules
+have to quit before fvwm proceeds on to the StartFunction and
+setting border decorations and styles.  There is a potential
+deadlock if you start a module other than <a href="../modules/FvwmCpp.html">FvwmCpp</a>/<a href="../modules/FvwmM4.html">FvwmM4</a>/<a href="../modules/FvwmPerl.html">FvwmPerl</a>
+but there is a timeout so fvwm eventually gets going.</p><p>As an example, starting the pager this way hangs fvwm until
+the timeout, but the following should work well:</p><pre class="programlisting">
+fvwm -c "<a href="#AddToFunc">AddToFunc</a> StartFunction I <a href="#Module">Module</a> <a href="../modules/FvwmPager.html">FvwmPager</a>"
+</pre></dd><dt><span class="term">
+    <code class="option">-d</code> | <code class="option">--display</code>
+    <em class="replaceable"><code>displayname</code></em>
+  </span></dt><dd><p>
+Manage the display called
+<em class="replaceable"><code>displayname</code></em>
+instead of the name obtained from the environment variable
+<code class="envar">$DISPLAY</code>.</p></dd><dt><span class="term">
+    <code class="option">-D</code> | <code class="option">--debug</code>
+  </span></dt><dd><p>Puts X transactions in synchronous mode, which dramatically slows
+things down, but guarantees that fvwm's internal error messages
+are correct. Also causes fvwm to output debug messages while
+running.</p></dd><dt><span class="term">
+    <code class="option">-f</code>
+    <em class="replaceable"><code>config-file</code></em>
+  </span></dt><dd><p>Causes fvwm to read
+<em class="replaceable"><code>config-file</code></em>
+instead of
+<code class="filename">~/.fvwm/config</code>
+as its initialization file.  This is equivalent to
+-c '<a href="#Read">Read</a>
+<em class="replaceable"><code>config-file</code></em>'.</p></dd><dt><span class="term"><code class="option">-h</code> | <code class="option">--help</code></span></dt><dd><p>A short usage description is printed.</p></dd><dt><span class="term"><code class="option">-r</code> | <code class="option">--replace</code></span></dt><dd><p>Try to take over from a previously running wm.  This does not work
+unless the other wm is
+<acronym class="acronym">ICCCM2</acronym>
+2.0 compliant.</p></dd><dt><span class="term">
+    <code class="option">-F</code> | <code class="option">--restore</code>
+    <em class="replaceable"><code>state-file</code></em>
+  </span></dt><dd><p>
+This option is used when fvwm is started by a session manager.
+Should not be used by a user.</p></dd><dt><span class="term">
+    <code class="option">-s</code> | <code class="option">--single-screen</code>
+    [<span class="optional"><em class="replaceable"><code>screen_num</code></em></span>]
+  </span></dt><dd><p>
+On a multi-screen display, run fvwm only on the screen named in
+the
+<code class="envar">$DISPLAY</code>
+environment variable or provided through the
+<code class="option">-d</code>
+option. The optional argument
+<em class="replaceable"><code>screen_num</code></em>
+should be positive or null and override the screen number.
+Normally, fvwm attempts to start up on all screens of a
+multi-screen display.</p></dd><dt><span class="term"><code class="option">-V</code> | <code class="option">--version</code></span></dt><dd><p>Prints the version of fvwm to
+<code class="filename">stderr</code>.
+Also prints an information about the compiled in support for
+readline, rplay, stroke, xpm, png, svg, <acronym class="acronym">GNOME</acronym> hints, <acronym class="acronym">EWMH</acronym> hints,
+session management, bidirectional text, multibyte characters,
+xinerama and Xft aa font rendering.</p></dd><dt><span class="term">
+    <code class="option">-C</code> | <code class="option">--visual</code>
+    <em class="replaceable"><code>visual-class</code></em>
+  </span></dt><dd><p>
+Causes fvwm to use
+<em class="replaceable"><code>visual-class</code></em>
+for the window borders and menus.
+<em class="replaceable"><code>visual-class</code></em>
+can be "StaticGray", "GrayScale", "StaticColor", "PseudoColor",
+"TrueColor" or "DirectColor".</p></dd><dt><span class="term">
+    <code class="option">-I</code> | <code class="option">--visualid</code>
+    <em class="replaceable"><code>id</code></em>
+  </span></dt><dd><p>
+Causes fvwm to use
+<em class="replaceable"><code>id</code></em>
+as the visual id for the window borders and menus.
+<em class="replaceable"><code>id</code></em>
+can be specified as N for decimal or 0xN for hexadecimal. See man
+page of xdpyinfo for a list of supported visuals.</p></dd><dt><span class="term">
+    <code class="option">-l</code> | <code class="option">--color-limit</code>
+    <em class="replaceable"><code>limit</code></em>
+  </span></dt><dd><p>Specifies a <em class="replaceable"><code>limit</code></em> on the colors
+used in image, gradient and possibly simple colors used by
+fvwm. In fact, fvwm (and all the modules) uses a palette with at
+most <em class="replaceable"><code>limit</code></em> colors. This option is only
+useful with screens that display 256 colors (or less) with a
+dynamic visual (PseudoColor, GrayScale or DirectColor). The
+default depends on your X server and how you run fvwm. In most
+case this default is reasonable. The <code class="option">-l</code> option
+should be used only if you encounter problems with colors.  By
+default, fvwm tries to detect large pre-allocated palettes. If
+such a palette is detected fvwm uses it and a priori the
+<code class="option">-l</code> must not be used. Moreover, in this case the
+<code class="option">-A</code> and <code class="option">-S</code> options are
+forced. Note that XFree-4.2 pre-allocates 244 colors (if you use a
+driver with Render support) leaving only a few free colors. This
+may lead to some color problems (and nothing can be
+done). XFree-4.3 or better pre-allocate only 85 colors.  If no
+pre-allocated palette is auto detected the defaults are as
+follow:</p><div class="variablelist"><dl><dt><span class="term">Display depth 8 (256 colors)</span></dt><dd><table class="simplelist" border="0" summary="Simple list"><tr><td>PseudoColor: 68 (4x4x4 color cube + 4 grey)</td></tr><tr><td>GrayScale: 64 regular grey</td></tr><tr><td>DirectColor: 32 (3x3x3 color cube + 5 grey)</td></tr></table></dd><dt><span class="term">Display depth 4 (16 colors)</span></dt><dd><table class="simplelist" border="0" summary="Simple list"><tr><td>PseudoColor: 10 (2x2x2 color cube + 2 grey)</td></tr><tr><td>GrayScale: 8 regular grey</td></tr><tr><td>DirectColor: 10 (2x2x2 color cube + 2 grey)</td></tr></table></dd></dl></div><p>These defaults may change before version 2.6. Note that if
+you use a private color map (i.e., fvwm is started with the
+<code class="option">-C</code> or the <code class="option">-I</code> options), then
+other defaults are used.</p><p>Now what to do if you encounter problems with colors? The first
+thing to do is to check if you really cannot run your X server
+with depth 15, 16 or better.  Check your X server
+documentation. Note that some hardware can support two different
+depths on the same screen (typically depth 8 and depth 24). If
+depth 8 is the default, you can force fvwm to use the best depth
+by using the
+<code class="option">-C</code>
+option with
+<span class="emphasis"><em>TrueColor</em></span>
+as argument.  So now we assume that you are forced to run in depth
+8 with a dynamic visual because your hardware/driver cannot do
+better or because you need to use an application which needs to
+run under this mode (e.g., because this application needs
+read-write colors). What it should be understand is that you have
+only 256 colors and that all the applications which use the
+default color map must share these colors. The main problem is
+that there are applications which use a lot or even all the
+colors.  If you use such application you may have no more free
+colors and some applications (which used only a few colors) may
+fail to start or are unusable. There are three things that can be
+done (and fvwm does not really play a particular role, all
+applications are concerned). The first is to run the applications
+which waste your (default) color map with a private color map. For
+example, run netscape with the -install option, run <acronym class="acronym">KDE</acronym>
+or <acronym class="acronym">QT</acronym>
+applications with the --cmap option, use the
+<code class="option">-C</code>
+option for fvwm. The disadvantage of this method is that it is
+visually disturbing (see the
+<a href="#ColormapFocus">ColormapFocus</a>
+command for a better control of the color maps switching). The
+second method is to limit the number of colors that the
+applications use. Again, some applications have options to
+specify a given color limit. With fvwm you may try various values,
+61 (a special "visual" palette), 56 (a 4x4x3 color cube plus 6
+grey), 29 (a 3x3x3 color cube plus 2 grey), 10 or 9. Also, you may
+use the
+<code class="option">-L</code>
+option.  However, limiting the number of colors is not the
+definitive solution. The definitive solution is to try cause
+applications which use a lot of colors use the same colors. This
+is a difficult task as there are no formal standards for this
+goal. However, some toolkits as <acronym class="acronym">QT</acronym> and
+<acronym class="acronym">GTK</acronym> use color cubes as
+palettes. So, the idea is to configure your applications/toolkits
+to all use the same color cube. Moreover, you can use the colors
+in this color cube in your X resources configuration files and/or
+as arguments to colors options.
+Fvwm can use any color cube of the form RxGxB with 2 &lt;= R &lt;= 6, R
+= G, R-1 =&lt; B &lt;= R and B &gt;= 2. To get an RxGxB color cube give an
+argument to
+<code class="option">-l</code>
+an integer c &gt;= R*G*B and &lt; (R+1)*(G+1)*B if B=R and &lt; R*G*(B+1)
+if B &lt; R (and different from 61). If c &gt; R*G*B, then some grey may
+be added to the color cube. You can use the
+<a href="#PrintInfo">PrintInfo</a>
+<span class="emphasis"><em>Colors</em></span>
+[<span class="optional"><span class="emphasis"><em>1</em></span></span>]
+command to get information on your fvwm colors setting. In
+particular, this command prints the palette used by fvwm in rgb
+format (the last integer gives the number of times fvwm has
+allocated the colors).</p></dd><dt><span class="term"><code class="option">-L</code> | <code class="option">--strict-color-limit</code></span></dt><dd><p>If the screen displays 256 colors (or less) and has a dynamic visual,
+causes fvwm to use its palette for all the colors. By default, the
+palette is used only for images and gradients.</p></dd><dt><span class="term"><code class="option">-P</code> | <code class="option">--visual-palette</code></span></dt><dd><p>If the screen displays 256 colors (or less) and has a dynamic
+visual, this option causes fvwm to use a palette designed for
+limiting the "visual" color distance between the points of the
+palette. Moreover, for better color sharing, if possible colors
+with a name in the X rgb data base are used for defining the
+colors (with the hope that applications and images prefer to
+use named colors). If the
+<code class="option">-l</code>
+option is not used this palette has 61 colors. This palette is
+also automatically selected if  61 or 9 is used as argument to the
+<code class="option">-l</code>
+option.</p></dd><dt><span class="term"><code class="option">-A</code> | <code class="option">--allocate-palette</code></span></dt><dd><p>If the screen displays 256 colors (or less) and has a dynamic
+visual this option causes fvwm to allocate all the colors of its
+palette at start up for reserving these colors for future
+use. This option forces the
+<code class="option">-static-palette</code>
+option. By default, fvwm allocates (reserves) a color in its palette
+only if it needs this color.</p></dd><dt><span class="term"><code class="option">-S</code> | <code class="option">--static-palette</code></span></dt><dd><p>If the screen displays 256 colors (or less) and has a dynamic
+visual this option causes fvwm to never free the colors in its
+palette. By default, when fvwm does not need a color any more it
+frees this color so that a new color can be used. This option may
+speed up image loading and save a few bits of memory.</p></dd><dt><span class="term"><code class="option">-blackout</code></span></dt><dd><p>This option is provided for backward compatibility only.  Blacking
+out the screen during startup is not necessary (and doesn't work)
+anymore. This option will be removed in the future.</p></dd><dt><span class="term"><code class="option">--debug-stack-ring</code></span></dt><dd><p>Enables stack ring debugging.  This option is only intended for
+internal debugging and should only be used by developers.</p></dd></dl></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="anatomy_of_a_window"></a>5. Anatomy of a Window</h2></div></div></div><p>Fvwm puts a decorative border around most windows.  This border
+consists of a bar on each side and a small L-shaped section on
+each corner.  There is an additional top bar called the title-bar
+which is used to display the name of the window.  In addition,
+there are up to 10 title-bar buttons.  The top, side, and bottom
+bars are collectively known as the side-bars.  The corner pieces
+are called the frame.</p><p>With the built-in minimal configuration, dragging mouse button 1
+in the frame or side-bars begins a resize operation on the window.
+Dragging mouse button 2 in the frame or side-bars begins a move
+operation.  There are raise/lower operations bound to a single
+clicking on borders.  Similarly for the window title.</p><p>Up to ten title-bar buttons may exist.  Their use is completely
+user definable.  One popular configuration uses one button on the
+left that is used to bring up a list of window options and two
+buttons on the right used to iconify and maximize the window.
+Another popular configuration adds a close button to the right.
+The number of title-bar buttons used depends on which ones have
+mouse actions bound to them.  See the
+<a href="#Mouse">Mouse</a>
+command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="virtual_desktop"></a>6. The Virtual Desktop</h2></div></div></div><p>Fvwm provides multiple virtual desktops for users who wish to use
+them.  The screen is a viewport onto a
+<span class="emphasis"><em>desktop</em></span>
+which may be larger than the screen.  Several distinct desktops
+can be accessed (concept: one desktop for each project, or one
+desktop for each application, when view applications are
+distinct).  Since each desktop can be larger than the physical
+screen, divided into m by n
+<span class="emphasis"><em>pages</em></span>
+which are each the size of the physical screen, windows which are
+larger than the screen or large groups of related windows can
+easily be viewed.</p><p>The (m by n) size (i.e. number of pages) of the virtual desktops
+can be changed any time, by using the
+<a href="#DesktopSize">DesktopSize</a>
+command.  All virtual desktops must be (are) the same
+size.  The total number of distinct desktops does not need to be
+specified, but is limited to approximately 4 billion total. All
+windows on a range of desktops can be viewed in the
+<a href="../modules/FvwmPager.html">FvwmPager</a>,
+a miniature view of the desktops.  The pager is an accessory
+program, called a module, which is not essential for the window
+manager to operate.  Windows may also be listed using the
+<a href="#WindowList">WindowList</a>
+command or the
+<a href="../modules/FvwmIconMan.html">FvwmIconMan</a>
+module.</p><p>Fvwm keeps the windows on the desktop in a layered stacking order;
+a window in a lower layer never obscures a window in a higher
+layer. The layer of a window can be changed by using the
+<a href="#Layer">Layer</a>
+command.  The concept of layers is a generalization of the
+<a href="#Style_StaysOnTop">StaysOnTop</a>
+flag of older fvwm versions. The
+<a href="#Style_StaysOnTop">StaysOnTop</a> and
+<a href="#Style_StaysPut">StaysPut</a>
+<a href="#Style">Style</a>
+options are now implemented by putting the windows in suitable
+layers and the previously missing
+<a href="#Style_StaysOnBottom">StaysOnBottom</a>
+<a href="#Style">Style</a>
+option has been added.</p><p>
+<a href="#Style_Sticky">Sticky</a>
+windows are windows which transcend the virtual desktop by
+"Sticking to the screen's glass".  They always stay put on the
+screen. This is convenient for things like clocks and xbiffs, so
+you only need to run one such gadget and it always stays with you.
+Icons can also be made to stick to the glass, if desired.</p><p>Window geometries are specified relative to the current viewport.
+That is:</p><span><strong class="command">xterm -geometry +0+0</strong></span><p>creates a window in the upper left hand corner of the visible
+portion of the screen.  It is permissible to specify geometries
+which place windows on the virtual desktop, but off the screen.
+For example, if the visible screen is 1000 by 1000 pixels, and the
+desktop size is 3x3, and the current viewport is at the upper left
+hand corner of the desktop, invoking:</p><span><strong class="command">xterm -geometry +1000+1000</strong></span><p>places a window just off of the lower right hand corner of the
+screen.  It can be found by moving the mouse to the lower right
+hand corner of the screen and waiting for it to scroll into view.
+A geometry specified as something like:</p><span><strong class="command">xterm -geometry -5-5</strong></span><p>places the window's lower right hand corner 5 pixels from the
+lower right corner of the visible portion of the screen.  Not all
+applications support window geometries with negative offsets.
+Some applications place the window's upper right hand corner 5
+pixels above and to the left of the upper left hand corner of the
+screen; others may do just plain bizarre things.</p><p>There are several ways to cause a window to map onto a desktop or
+page other than the currently active one. The geometry technique
+mentioned above (specifying x,y coordinates larger than the
+physical screen size), however, suffers from the limitation of
+being interpreted relative to the current viewport: the window may
+not consistently appear on a specific page, unless you always
+invoke the application from the same page.</p><p>A better way to place windows on a different page, screen or desk
+from the currently mapped viewport is to use the
+<a href="#Style_StartsOnPage">StartsOnPage</a> or
+<a href="#Style_StartsOnScreen">StartsOnScreen</a>
+style specification (the successors to the older
+<a href="#Style_StartsOnDesk">StartsOnDesk</a>
+style) in your
+<code class="filename">config</code>
+file.  The placement is consistent: it does
+not depend on your current location on the virtual desktop.</p><p>Some applications that understand standard Xt command line
+arguments and X resources, like xterm and xfontsel, allow the user
+to specify the start-up desk or page on the command line:</p><span><strong class="command">xterm -xrm "*Desk:1"</strong></span><p>starts an xterm on desk number 1;</p><span><strong class="command">xterm -xrm "*Page:3 2 1"</strong></span><p>starts an xterm two pages to the right and one down from the upper
+left hand page of desk number 3.  Not all applications understand
+the use of these options, however.  You could achieve the same
+results with the following lines in your
+<code class="filename">.Xdefaults</code>
+file:</p><span><strong class="command">XTerm*Desk: 1</strong></span><p>or</p><span><strong class="command">XTerm*Page: 3 2 1</strong></span></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="use_on_multiscreen_displays"></a>7. Use on Multi-Screen Displays</h2></div></div></div><p>If the
+<code class="option">-s</code>
+command line argument is not given, fvwm automatically starts up
+on every screen on the specified display.  After fvwm starts each
+screen is treated independently.  Restarts of fvwm need to be
+performed separately on each screen.  The use of</p><pre class="programlisting">
+<a href="#EdgeScroll">EdgeScroll</a> 0 0
+</pre><p>is strongly recommended for multi-screen displays.  You may need
+to quit on each screen to quit from the X session completely.
+This is not to be confused with Xinerama support.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xinerama_support"></a>8. Xinerama Support</h2></div></div></div><p>Fvwm supports the Xinerama extension of newer X servers
+which is similar to multi head support (multiple screens) but
+allows one to move windows between screens.  If Xinerama support has
+been compiled into fvwm, it is used whenever fvwm runs on an X
+server that supports and uses multiple screens via Xinerama.
+Without this option, the whole desktop is treated as one big
+screen.  For example, menus might pop up right between two
+screens.  The <a href="#Style_EdgeResistance">EdgeResistance</a> option
+of the <a href="#Style">Style</a> command command allows for specifying
+an explicit resistance value for moving windows over the screen
+edge between two Xinerama screens. Xinerama support can be enabled
+or disabled on the fly or from the configuration file with the
+<a href="#Xinerama">Xinerama</a> command.  Many modules and commands work
+nicely with Xinerama displays.</p><p>Whenever a geometry in the usual X format can be supplied,
+fvwm's Xinerama extension allows for specifying a screen in addition
+to the geometry (or even the screen alone).  To do this, a '@' is
+added to the end of the geometry string followed by either the
+screen number or a letter.  A number is taken as the number of the
+Xinerama screen to be used (as configured in the X server).  The
+letter can be one of 'g' for the global screen (the rectangle that
+encloses all Xinerama screens), 'p' for the primary screen (see
+below), 'c' for the current screen (the one that currently
+contains the pointer).  If the X server does not support Xinerama
+or only one screen is used, the screen bit is ignored.</p><pre class="programlisting">
+<a href="#Style">Style</a> * <a href="#Style_IconBox">IconBox</a> 64x300-0-0@p
+</pre><p>Xinerama support can be configured to use a primary screen.  Fvwm
+can be configured to place new windows and icons on this screen.
+The primary screen is screen 0 by default but can be changed with
+the
+<a href="#XineramaPrimaryScreen">XineramaPrimaryScreen</a>
+command.</p><p>Xinerama support was designed to work out of the box with the same
+configuration file that would work on a single screen.  It may
+not perform very well if the involved screens use different screen
+resolutions.  In this situation, windows may get stuck in the
+portion of the whole desktop that belongs to neither screen.  When
+this happens, the windows or icons can be retrieved with the
+command</p><pre class="programlisting">
+<a href="#All">All</a> <a href="#MoveToScreen">MoveToScreen</a>
+</pre><p>that can be entered in an <a href="../modules/FvwmConsole.html">FvwmConsole</a> window or
+with <a href="../modules/FvwmCommand.html">FvwmCommand</a>.</p><p>For multi-screen implementations other than Xinerama, such as
+Single Logical Screen, it is possible to simulate a Xinerama
+configuration if the total screen seen by fvwm is made up of
+equal sized monitors in a rectangular grid.  The commands
+<a href="#XineramaSls">XineramaSls</a>, <a href="#XineramaSlsSize">XineramaSlsSize</a> and <a href="#XineramaSlsScreens">XineramaSlsScreens</a>
+are used to configure this feature.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="initialization"></a>9. Initialization</h2></div></div></div><p>During initialization, fvwm searches for a configuration file
+which describes key and button bindings, and many other
+things. The format of these files is described later.  Fvwm first
+searches for configuration files using the command</p><pre class="programlisting">
+<a href="#Read">Read</a> <code class="filename">config</code>
+</pre><p>This looks for file
+<code class="filename">config</code> in <code class="envar">$FVWM_USERDIR</code> and <code class="envar">$FVWM_DATADIR</code>
+directories, as described in
+<a href="#Read">Read</a>.  If this fails more files are queried for backward
+compatibility.  Here is the complete list of all file locations
+queried in the default installation (only the first found file
+is used):</p><table class="simplelist" border="0" summary="Simple list"><tr><td><code class="envar">$HOME</code>/.fvwm/config</td></tr><tr><td>/usr/local/share/fvwm/config</td></tr></table><p></p><table class="simplelist" border="0" summary="Simple list"><tr><td><code class="envar">$HOME</code>/.fvwm/.fvwm2rc</td></tr><tr><td><code class="envar">$HOME</code>/.fvwm2rc</td></tr><tr><td>/usr/local/share/fvwm/.fvwm2rc</td></tr><tr><td>/usr/local/share/fvwm/system.fvwm2rc</td></tr><tr><td>/etc/system.fvwm2rc</td></tr></table><p>Please note, the last 5 locations are not guaranteed to be
+supported in the future.</p><p>If a configuration file is not found, the left mouse button, or
+<span class="keysym">Help</span>
+or
+<span class="keysym">F1</span>
+keys on the root window bring up menus and forms that can create
+a starting configuration file.</p><p>Fvwm sets two environment variables which are inherited by its
+children.  These are
+<code class="envar">$DISPLAY</code>
+which describes the display on which fvwm is running.
+<code class="envar">$DISPLAY</code>
+may be
+<span class="emphasis"><em>unix:0.0</em></span>
+or
+<span class="emphasis"><em>:0.0</em></span>,
+which doesn't work too well when passed through ssh to another
+machine, so
+<code class="envar">$HOSTDISPLAY</code>
+is set to a network-ready description of the display.
+<code class="envar">$HOSTDISPLAY</code>
+always uses the TCP/IP transport protocol (even for a local
+connection) so
+<code class="envar">$DISPLAY</code>
+should be used for local connections, as it may use Unix-domain
+sockets, which are faster.</p><p>If you want to start some applications or modules with fvwm, you
+can simply put</p><pre class="programlisting">
+<a href="#Exec">Exec</a> app
+</pre><p>or</p><pre class="programlisting">
+<a href="#Module">Module</a> FvwmXxx
+</pre><p>into your
+<code class="filename">config</code>,
+but it is not recommended; do this only if you know what you are
+doing. It is usually important to start applications or modules
+after the entire config is read, because it contains styles or
+module configurations which can affect window appearance and
+functionality.</p><p>The standard way to start applications or modules on fvwm's start
+up is to add them to an initialization function (usually
+<span class="emphasis"><em>StartFunction</em></span> or <span class="emphasis"><em>InitFunction</em></span>).
+This way they are only started after fvwm finishes to read and
+execute
+<code class="filename">config</code>
+file.</p><p>Fvwm has three special functions for initialization:
+<span class="emphasis"><em>StartFunction</em></span>,
+which is executed on startups and restarts;
+<span class="emphasis"><em>InitFunction</em></span> and <span class="emphasis"><em>RestartFunction</em></span>,
+which are executed during initialization and restarts
+(respectively) just after StartFunction.  These functions may be
+customized in a user's
+<code class="filename">config</code>
+file using the
+<a href="#AddToFunc">AddToFunc</a>
+command (described later) to start up modules, xterms, or whatever
+you'd like to have started by fvwm.</p><p>Fvwm has also a special exit function:
+<span class="emphasis"><em>ExitFunction</em></span>,
+executed when exiting or restarting before actually quitting.
+It could be used to explicitly kill modules, etc.</p><p>If fvwm is run under a session manager, functions
+<span class="emphasis"><em>SessionInitFunction</em></span> and <span class="emphasis"><em>SessionRestartFunction</em></span>
+are executed instead of InitFunction and RestartFunction.
+This helps to define the user's
+<code class="filename">config</code>
+file to be good for both running under a session manager and
+without it.  Generally it is a bad idea to start xterms or other
+applications in "Session*" functions.  Also someone can decide to
+start different modules while running under a session manager or
+not.  For the similar purposes
+<span class="emphasis"><em>SessionExitFunction</em></span>
+is used instead of ExitFunction.</p><pre class="programlisting">
+<a href="#DestroyFunc">DestroyFunc</a> StartFunction
+<a href="#AddToFunc">AddToFunc</a> StartFunction
+ + I <a href="#Module">Module</a> <a href="../modules/FvwmPager.html">FvwmPager</a> * *
+ + I <a href="#Module">Module</a> <a href="../modules/FvwmButtons.html">FvwmButtons</a>
+
+<a href="#DestroyFunc">DestroyFunc</a> InitFunction
+<a href="#AddToFunc">AddToFunc</a> InitFunction
+ + I <a href="#Module">Module</a> <a href="../modules/FvwmBanner.html">FvwmBanner</a>
+ + I <a href="#Module">Module</a> <a href="../modules/FvwmIconMan.html">FvwmIconMan</a>
+ + I <a href="#Exec">Exec</a> xsetroot -solid cyan
+ + I <a href="#Exec">Exec</a> xterm
+ + I <a href="#Exec">Exec</a> netscape
+
+<a href="#DestroyFunc">DestroyFunc</a> RestartFunction
+<a href="#AddToFunc">AddToFunc</a> RestartFunction
+ + I <a href="#Module">Module</a> <a href="../modules/FvwmIconMan.html">FvwmIconMan</a>
+
+<a href="#DestroyFunc">DestroyFunc</a> SessionInitFunction
+<a href="#AddToFunc">AddToFunc</a> SessionInitFunction
+ + I <a href="#Module">Module</a> <a href="../modules/FvwmBanner.html">FvwmBanner</a>
+
+<a href="#DestroyFunc">DestroyFunc</a> SessionRestartFunction
+<a href="#AddToFunc">AddToFunc</a> SessionRestartFunction
+ + I <a href="#Nop">Nop</a>
+</pre><p>You do not need to define all special functions if some are empty.
+Also note, all these special functions may be emulated now using
+<span class="emphasis"><em>StartFunction</em></span> and <span class="emphasis"><em>ExitFunction,</em></span>
+like this:</p><pre class="programlisting">
+<a href="#DestroyFunc">DestroyFunc</a> StartFunction
+<a href="#AddToFunc">AddToFunc</a> StartFunction
++ I <a href="#Test">Test</a> (Init) <a href="#Module">Module</a> <a href="../modules/FvwmBanner.html">FvwmBanner</a>
++ I <a href="#Module">Module</a> <a href="../modules/FvwmPager.html">FvwmPager</a> * *
++ I <a href="#Test">Test</a> (Restart) <a href="#Beep">Beep</a>
+
+<a href="#DestroyFunc">DestroyFunc</a> ExitFunction
+<a href="#AddToFunc">AddToFunc</a> ExitFunction
++ I <a href="#Test">Test</a> (Quit) <a href="#Echo">Echo</a> Bye-bye
++ I <a href="#KillModule">KillModule</a> MyBuggyModule
++ I <a href="#Test">Test</a> (ToRestart) <a href="#Beep">Beep</a>
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="compilation"></a>10. Compilation Options</h2></div></div></div><p>Fvwm has a number of compile-time options.  If you have trouble
+using a certain command or feature, check to see if support for it
+was included at compile time.  Optional features are described in
+the <code class="filename">config.h</code> file that is generated
+during compilation.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="icons_and_images"></a>11. Icons and Images</h2></div></div></div><p>Fvwm can load <span class="markup">.xbm,</span> <span class="markup">.xpm,</span>
+<span class="markup">.png</span> and
+<span class="markup">.svg</span> images. <span class="emphasis"><em>XBM</em></span>
+images are monochrome.  Fvwm can always display
+<span class="emphasis"><em>XBM</em></span> files. <span class="emphasis"><em>XPM</em></span>
+and <span class="emphasis"><em>PNG</em></span> formats are color images.
+SVG is a vector graphics image format.
+Compile-time options determine whether fvwm can display
+<span class="emphasis"><em>XPM</em></span>, <span class="emphasis"><em>PNG</em></span> or
+<span class="emphasis"><em>SVG</em></span>
+icons and images. See the <span class="emphasis"><em>INSTALL.fvwm</em></span>
+file for more information.</p><p>The related <span class="emphasis"><em>SHAPE</em></span>
+compile-time option can make fvwm display spiffy shaped icons.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="svg_rendering_options"></a>11.1. SVG rendering options</h3></div></div></div><p>
+SVG images are generated from (XML) text files.  A really simple SVG file
+might look something like this:</p><pre class="programlisting">
+&lt;svg width="120" height="80"&gt;
+	&lt;rect fill="red"     width="40" height="40"  x="0"   y="0"  /&gt;
+	&lt;rect fill="lime"    width="40" height="40"  x="40"  y="0"  /&gt;
+	&lt;rect fill="blue"    width="40" height="40"  x="80"  y="0"  /&gt;
+	&lt;rect fill="cyan"    width="40" height="40"  x="0"   y="40" /&gt;
+	&lt;rect fill="magenta" width="40" height="40"  x="40"  y="40" /&gt;
+	&lt;rect fill="yellow"  width="40" height="40"  x="80"  y="40" /&gt;
+&lt;/svg&gt;
+</pre><div class="mediaobject"><img src="../images/svg_rendering/plain.png"><div class="caption"><code class="code">image.svg</code><p></p></div></div><p>
+By default, SVG images are rendered as the image creator intended
+them to. But since SVG is a vector graphics format, the images can
+be rendered at any chosen size and rotation, e.g. making it possible
+to use the same icon file rendered at different sizes for the
+<a href="#Style_Icon">Icon</a> and <a href="#Style_MiniIcon">MiniIcon</a>
+styles.</p><p>The rendering options are specified as a string appended to the SVG
+filename as follows:</p><div class="cmdsynopsis"><p><code class="filename"><em class="replaceable"><code>image.svg</code></em></code><code class="literal">:</code><code class="literal">[!]</code> [<i><a href="#svg_rendering_size">(1)</a> size</i>]  [<i><a href="#svg_rendering_position">(2)</a> position</i>] [<i><a href="#svg_rendering_rotation">(3)</a> rotation</i>] [<i><a href="#svg_rendering_scale">(4)</a> scale</i>] ... <p><a name="svg_rendering_size">(1)</a> <code class="literal">[-]</code><em class="replaceable"><code>width</code></em><code class="literal">{x}</code><code class="literal">[-]</code><em class="replaceable"><code>height</code></em></p><p><a name="svg_rendering_position">(2)</a> <code class="literal">{ -  |   + }</code><em class="replaceable"><code>xpos</code></em><code class="literal">{ -  |   + }</code><em class="replaceable"><code>ypos</code></em></p><p><a name="svg_rendering_rotation">(3)</a> <code class="literal">@</code><code class="literal">[-]</code><em class="replaceable"><code>angle</code></em></p><p><a name="svg_rendering_scale">(4)</a> <code class="literal">{ *  |   / }</code><code class="literal">[-]</code><em class="replaceable"><code>factor</code></em><code class="literal">[ x  |   y ]</code></p></p></div><p>
+The option string always starts with a colon ('<code class="literal">:</code>')
+to separate it from the filename.  An empty option string can skip this
+colon, but it might still be a good idea to include it to prevent
+ambiguity if the filename contains any colon.</p><pre class="programlisting">
+filename_without_colon.svg
+filename:with:colon.svg:
+</pre><p>
+An exclamation point ('<code class="literal">!</code>') transposes the entire final
+image (including the rendering area), i.e. all the horizontal and all the
+vertical coordinates are swapped with each other.</p><pre class="programlisting">
+image.svg:!
+</pre><div class="mediaobject"><img src="../images/svg_rendering/transpose.png"><div class="caption"><code class="code">image.svg:!</code><p></p></div></div><p>
+<em class="replaceable"><code>width</code></em> and <em class="replaceable"><code>height</code></em>
+specifies the dimensions of the rendering area in pixels, i.e. the
+dimensions of the resulting image.  The actual image is fitted to fill
+the entire rendering area.</p><pre class="programlisting">
+image.svg:60x60
+</pre><div class="mediaobject"><img src="../images/svg_rendering/size.png"><div class="caption"><code class="code">image.svg:60x60</code><p></p></div></div><p>
+Use a <em class="replaceable"><code>width</code></em> or <em class="replaceable"><code>height</code></em>
+value of 0 to keep the aspect ratio.</p><pre class="programlisting">
+image.svg:0x60
+image.svg:60x0
+</pre><div class="mediaobject"><img src="../images/svg_rendering/size_keep_ratio_x.png"><div class="caption"><code class="code">image.svg:0x60</code><p></p></div></div><div class="mediaobject"><img src="../images/svg_rendering/size_keep_ratio_y.png"><div class="caption"><code class="code">image.svg:60x0</code><p></p></div></div><p>A '<code class="literal">-</code>' before <em class="replaceable"><code>width</code></em>
+mirrors the rendering area horizontally.</p><pre class="programlisting">
+image.svg:-0x0
+</pre><p>A '<code class="literal">-</code>' before <em class="replaceable"><code>height</code></em>
+mirrors the rendering area vertically.</p><pre class="programlisting">
+image.svg:0x-0
+</pre><div class="mediaobject"><img src="../images/svg_rendering/size_mirroring_y.png"><div class="caption"><code class="code">image.svg:0x-0</code><p></p></div></div><p>
+<em class="replaceable"><code>xpos</code></em> and <em class="replaceable"><code>ypos</code></em>
+specifies a translation of the image in pixels.  A positive
+<em class="replaceable"><code>xpos</code></em> value moves the image to the right.  A
+positive <em class="replaceable"><code>ypos</code></em> value moves it down.  Moving
+it partially outside of the rendering area results in a cropped
+image.</p><pre class="programlisting">
+image.svg:-30-0
+image.svg:-0+10
+image.svg:-30+10
+</pre><div class="mediaobject"><img src="../images/svg_rendering/position.png"><div class="caption"><code class="code">image.svg:-30+10</code><p></p></div></div><p>
+<em class="replaceable"><code>angle</code></em> specifies a rotation around the actual
+image center in degrees. This might result in a cropped image.  A
+positive value rotates the image clockwise.  Floating point values are
+recognized.</p><pre class="programlisting">
+image.svg:@180
+image.svg:@-90
+image.svg:@30
+image.svg:@57.3
+</pre><div class="mediaobject"><img src="../images/svg_rendering/rotation.png"><div class="caption"><code class="code">image.svg:@30</code><p></p></div></div><p>
+<em class="replaceable"><code>factor</code></em> specifes a scaling of the actual
+image (not the rendering area). Scaling it up results in a cropped
+image.  Floating point values are recognized.  Division by zero is
+ignored.  If <em class="replaceable"><code>factor</code></em> is directly followed
+by a '<code class="literal">x</code>' or a '<code class="literal">y</code>', the scaling
+is horizontal or vertical respectively.  Otherwise the scaling is
+uniform.</p><pre class="programlisting">
+image.svg:*2
+image.svg:/2
+image.svg:/3x
+image.svg:/2y
+</pre><div class="mediaobject"><img src="../images/svg_rendering/scale_up_uniform.png"><div class="caption"><code class="code">image.svg:*2</code><p></p></div></div><div class="mediaobject"><img src="../images/svg_rendering/scale_down_uniform.png"><div class="caption"><code class="code">image.svg:/2</code><p></p></div></div><div class="mediaobject"><img src="../images/svg_rendering/scale_down_y.png"><div class="caption"><code class="code">image.svg:/2y</code><p></p></div></div><p>
+Scaling down a translated or rotated image can prevent cropping.</p><pre class="programlisting">
+image.svg:@30*0.6
+</pre><div class="mediaobject"><img src="../images/svg_rendering/prevent_cropping.png"><div class="caption"><code class="code">image.svg:@30*0.6</code><p></p></div></div><p>
+Repeated usage of translation, rotation, and scaling is allowed.
+ Translation and rotation are additive.  Scaling is multiplicative.</p><pre class="programlisting">
+image.svg:*2/3
+image.svg:/3x/2y
+</pre><div class="mediaobject"><img src="../images/svg_rendering/scale_down.png"><div class="caption"><code class="code">image.svg:/3x/2y</code><p></p></div></div><p>
+When combining affine transformations, the scaling is always done first,
+then the rotation, and finally the translation.</p><pre class="programlisting">
+image.svg:-30+10@30/3x/2y
+</pre><div class="mediaobject"><img src="../images/svg_rendering/affine_combined.png"><div class="caption"><code class="code">image.svg:-30+10@30/3x/2y</code><p></p></div></div><p>
+Use a negative scale <em class="replaceable"><code>factor</code></em> to mirror the
+actual image.</p><pre class="programlisting">
+image.svg:-30+10@30/-3x/2y
+</pre><div class="mediaobject"><img src="../images/svg_rendering/scale_mirroring.png"><div class="caption"><code class="code">image.svg:-30+10@30/-3x/2y</code><p></p></div></div><p>
+Mirroring of the rendering area is done after any scaling, rotation or
+translation of the image.</p><pre class="programlisting">
+image.svg:-0x0-30+10@30/3x/2y
+</pre><div class="mediaobject"><img src="../images/svg_rendering/size_mirroring.png"><div class="caption"><code class="code">image.svg:-0x0-30+10@30/3x/2y</code><p></p></div></div><p>
+Transposing is done last of all, after everything else.</p><pre class="programlisting">
+image.svg:!-0x0-30+10@30/3x/2y
+</pre><div class="mediaobject"><img src="../images/svg_rendering/all_combined.png"><div class="caption"><code class="code">image.svg:!-0x0-30+10@30/3x/2y</code><p></p></div></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="modules"></a>12. Modules</h2></div></div></div><p>A module is a separate program which runs as a separate Unix
+process but transmits commands to fvwm to execute.  Users can
+write their own modules to do any weird or bizarre manipulations
+without bloating or affecting the integrity of fvwm itself.</p><p>Modules must be spawned by fvwm so that it can set up two pipes
+for fvwm and the module to communicate with.  The pipes are
+already open for the module when it starts and the file
+descriptors for the pipes are provided as command line arguments.</p><p>Modules can be spawned by fvwm at any time during the X session by
+use of the
+<a href="#Module">Module</a>
+command.  Modules can exist for the duration of the X
+session, or can perform a single task and exit.  If the module is
+still active when fvwm is told to quit, then fvwm closes the
+communication pipes and waits to receive a SIGCHLD from the
+module, indicating that it has detected the pipe closure and has
+exited.  If modules fail to detect the pipe closure fvwm exits
+after approximately 30 seconds anyway.  The number of
+simultaneously executing modules is limited by the operating
+system's maximum number of simultaneously open files, usually
+between 60 and 256.</p><p>Modules simply transmit commands to the fvwm command
+engine.  Commands are formatted just as in the case of a
+mouse binding in the
+<code class="filename">config</code>
+setup file.  Certain auxiliary information is also transmitted, as
+in the sample module
+<a href="../modules/FvwmButtons.html">FvwmButtons</a>.
+</p><p>Please refer to the
+<a href="#module_commands">Module Commands</a>
+section for details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="icccm_compliance"></a>13. ICCCM Compliance</h2></div></div></div><p>Fvwm attempts to be
+<acronym class="acronym">ICCCM</acronym>
+2.0 compliant.  Check
+<a class="ulink" href="http://tronche.com/gui/x/icccm/" target="_top">http://tronche.com/gui/x/icccm/</a> for more info. In addition,
+<acronym class="acronym">ICCCM</acronym>
+states that it should be possible for applications to receive any
+keystroke, which is not consistent with the keyboard shortcut
+approach used in fvwm and most other window managers.  In
+particular you cannot have the same keyboard shortcuts working
+with your fvwm and another fvwm running within Xnest (a nested X
+server running in a window).  The same problem exists with mouse
+bindings.</p><p>The
+<acronym class="acronym">ICCCM</acronym>
+states that windows possessing the property</p><div class="literallayout"><p><br>
+WM_HINTS(WM_HINTS):<br>
+    Client accepts input or input focus: False<br>
+</p></div><p>should not be given the keyboard input focus by the window
+manager. These windows can take the input focus by themselves,
+however.  A number of applications set this property, and yet
+expect the window manager to give them the keyboard focus anyway,
+so fvwm provides a window style,
+<a href="#Style_Lenience">Lenience</a>, 
+which allows fvwm to overlook this
+<acronym class="acronym">ICCCM</acronym>
+rule.  Even with this window style it is not guaranteed that the
+application accepts focus.</p><p>The differences between
+<acronym class="acronym">ICCCM</acronym>
+1.1 and 2.0 include the ability to take over from a running
+<acronym class="acronym">ICCCM</acronym>
+2.0 compliant window manager; thus</p><span><strong class="command">fvwm; vi ~/.fvwm/config; fvwm -replace</strong></span><p>resembles the
+<a href="#Restart">Restart</a>
+command.  It is not exactly the same, since killing the previously
+running wm may terminate your X session, if the wm was started as
+the last client in your
+<code class="filename">.Xclients</code> or <code class="filename">.Xsession</code>
+file.</p><p>Further additions are support for client-side colormap
+installation (see the
+<acronym class="acronym">ICCCM</acronym>
+for details) and the urgency hint. Clients can set this hint in
+the WM_HINTS property of their window and expect the window manager
+to attract the user's attention to the window.  Fvwm has two re-definable
+functions for this purpose, "UrgencyFunc" and "UrgencyDoneFunc", which
+are executed when the flag is set/cleared.  Their default definitions are:</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> UrgencyFunc
+ + I <a href="#Iconify">Iconify</a> off
+ + I <a href="#FlipFocus">FlipFocus</a>
+ + I <a href="#Raise">Raise</a>
+ + I <a href="#WarpToWindow%20!raise">WarpToWindow !raise</a> 5p 5p
+<a href="#AddToFunc">AddToFunc</a> UrgencyDoneFunc
+ + I <a href="#Nop">Nop</a>
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="gnome"></a>14. Gnome Compliance</h2></div></div></div><p>Fvwm attempts to be <acronym class="acronym">GNOME</acronym> (version 1) compliant.
+Check <a class="ulink" href="http://www.gnome.org" target="_top">http://www.gnome.org</a>
+for what that may mean. To disable <acronym class="acronym">GNOME</acronym> hints for some
+or all windows, the
+<a href="#Style_GNOMEIgnoreHints">GNOMEIgnoreHints</a>
+style can be used.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="extended_window_manager_hints"></a>15. Extended Window Manager Hints</h2></div></div></div><p>Fvwm attempts to respect the extended window manager hints (ewmh
+or <acronym class="acronym">EWMH</acronym> for short) specification:
+<a class="ulink" href="http://www.freedesktop.org/wiki/Standards_2fwm_2dspec" target="_top">http://www.freedesktop.org/wiki/Standards_2fwm_2dspec</a>
+and some extensions of this specification.  This allows fvwm to
+work with
+<acronym class="acronym">KDE</acronym>
+version &gt;= 2,
+<acronym class="acronym">GNOME</acronym>
+version 2 and other applications which respect this specification
+(any application based on
+<span class="emphasis"><em>GTK+</em></span>
+version 2). Applications which respect this specification are
+called ewmh compliant applications.</p><p>This support is configurable with styles and commands.
+These styles and commands have
+<acronym class="acronym">EWMH</acronym>
+as the prefix (so you can find them easily in this man page).</p><p>There is a new Context 'D' for the
+<a href="#Key">Key</a>,
+<a href="#PointerKey">PointerKey</a>,
+<a href="#Mouse">Mouse</a> and
+<a href="#Stroke">Stroke</a>
+commands. This context is for desktop applications (such as
+kdesktop and Nautilus desktop).</p><p>When a compliant taskbar asks fvwm to activate a window (typically
+when you click on a button which represents a window in such a
+taskbar), then fvwm calls the complex function
+<span class="emphasis"><em>EWMHActivateWindowFunc</em></span>
+which by default is Iconify Off, Focus and Raise. You can redefine
+this function.  For example:</p><pre class="programlisting">
+<a href="#DestroyFunc">DestroyFunc</a> EWMHActivateWindowFunc
+<a href="#AddToFunc">AddToFunc</a> EWMHActivateWindowFunc I <a href="#Iconify">Iconify</a> Off
++ I <a href="#Focus">Focus</a>
++ I <a href="#Raise">Raise</a>
++ I <a href="#WarpToWindow">WarpToWindow</a> 50 50
+</pre><p>additionally warps the pointer to the center of the window.</p><p>The
+<acronym class="acronym">EWMH</acronym>
+specification introduces the notion of Working Area.  Without ewmh
+support the Working Area is the full visible screen (or all your
+screens if you have a multi head setup and you use Xinerama).
+However, compliant applications (such as a panel) can ask to
+reserve space at the edge of the screen.  If this is the case, the
+Working Area is your full visible screen minus these reserved
+spaces. If a panel can be hidden by clicking on a button the
+Working Area does not change (as you can unhide the panel at any
+time), but the Dynamic Working Area is updated: the space reserved
+by the panel is removed (and added again if you pop up the
+panel). The Dynamic Working Area may be used when fvwm places or
+maximizes a window.  To know if an application reserves space you
+can type "xprop | grep _NET_WM_STRUT" in a terminal and select the
+application.  If four numbers appear then these numbers define the
+reserved space as explained in the
+<a href="#EwmhBaseStruts">EwmhBaseStruts</a>
+command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="mwm_compatibility"></a>16. MWM Compatibility</h2></div></div></div><p>Fvwm provides options to emulate Motif Window Manager (Mwm) as
+well as possible.  Please refer to the
+<a href="#Emulate">Emulate</a>
+command as well as to the Mwm specific options of the
+<a href="#Style">Style</a> and
+<a href="#MenuStyle">MenuStyle</a>
+commands for details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="open_look_and_xview_compatibility"></a>17. Open Look and XView Compatibility</h2></div></div></div><p>Fvwm supports all the Open Look decoration hints (except
+pushpins).  Should you use any such application, please add the
+following line to your config:</p><pre class="programlisting">
+<a href="#Style">Style</a> * <a href="#Style_OLDecor">OLDecor</a>
+</pre><p>Most (perhaps all) Open Look applications have a strange notion of
+keyboard focus handling.  Although a lot of work went into fvwm to
+work well with these, you may still encounter problems.  It is
+recommended to use the <a href="#Style_NeverFocus">NeverFocus</a>
+focus policy and the <a href="#Style_Lenience">Lenience</a>
+style for all such applications (the windows still get the
+focus):</p><pre class="programlisting">
+<a href="#Style">Style</a> &lt;application name&gt; <a href="#Style_NeverFocus">NeverFocus</a>, <a href="#Style_Lenience">Lenience</a>
+</pre><p>But in case you can not live with that focus policy, you can try
+using one of the other focus policies in combination with the
+<a href="#Style_Lenience">Lenience</a> style:</p><pre class="programlisting">
+<a href="#Style">Style</a> &lt;application name&gt; <a href="#Style_MouseFocus">MouseFocus</a>, <a href="#Style_Lenience">Lenience</a>
+<a href="#Style">Style</a> &lt;application name&gt; <a href="#Style_SloppyFocus">SloppyFocus</a>, <a href="#Style_Lenience">Lenience</a>
+<a href="#Style">Style</a> &lt;application name&gt; <a href="#Style_ClickToFocus">ClickToFocus</a>, <a href="#Style_Lenience">Lenience</a>
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="m4_preprocessing"></a>18. M4 Preprocessing</h2></div></div></div><p>M4 pre-processing is handled by a module in fvwm.  To get more
+details, try man
+<a href="../modules/FvwmM4.html">FvwmM4</a>.
+In short, if you want fvwm to parse your files with m4, then
+replace the command
+<a href="#Read">Read</a>
+with
+<a href="../modules/FvwmM4.html">FvwmM4</a>
+in your
+<code class="filename">~/.fvwm/config</code>
+file (if it appears at all), and start fvwm with the command</p><span><strong class="command">
+fvwm -cmd "<a href="../modules/FvwmM4.html">FvwmM4</a> config"
+</strong></span></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cpp_preprocessing"></a>19. CPP Preprocessing</h2></div></div></div><p>Cpp is the C-language pre-processor.  fvwm offers cpp processing
+which mirrors the m4 pre-processing.  To find out about it,
+re-read the
+<a href="#m4_preprocessing">M4</a>
+section, but replace "m4" with "cpp".</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="configuration"></a>20. Configuration</h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="configuration_files"></a>20.1. Configuration Files</h3></div></div></div><p>The configuration file is used to describe mouse and button
+bindings, colors, the virtual display size, and related items.
+The initialization configuration file is typically called
+<code class="filename">config</code> (or <code class="filename">.fvwm2rc</code>).
+By using the
+<a href="#Read">Read</a>
+command, it is easy to read in new configuration files as you go.</p><p>Lines beginning with '#' are ignored by fvwm.  Lines starting with '*'
+are expected to contain module configuration commands (rather
+than configuration commands for fvwm itself). Like in shell
+scripts embedded newlines in a configuration file line can be
+quoted by preceding them with a backslash.  All lines linked in
+this fashion are treated as a single line.  The newline itself is
+ignored.</p><p>Fvwm makes no distinction between configuration commands and
+action commands, so anything mentioned in the fvwm commands
+section can be placed on a line by itself for fvwm to execute as
+it reads the configuration file, or it can be placed as an
+executable command in a menu or bound to a mouse button or a
+keyboard key.  It is left as an exercise for the user to decide
+which function make sense for initialization and which ones make
+sense for run-time.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="supplied_configuration"></a>20.2. Supplied Configuration</h3></div></div></div><p>A sample configuration file,
+is supplied with the fvwm distribution.  It is well commented and
+can be used as a source of examples for fvwm configuration.
+It may be copied from <code class="filename">/usr/local/share/fvwm/config</code> file.</p><p>Alternatively, the built-in menu (accessible when no
+configuration file is found) has options to create an initial
+config file for the user.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="fonts"></a>21. Fonts</h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="font_names_and_font_loading"></a>21.1. Font names and font loading</h3></div></div></div><p>The fonts used for the text of a window title, icon titles, menus
+and geometry window can be specified by using the Font and
+IconFont <a href="#Style">Style</a>, the Font <a href="#MenuStyle">MenuStyle</a> and the <a href="#DefaultFont">DefaultFont</a>
+commands. Also, all the Modules which use text have configuration
+command(s) to specify font(s). All these styles and commands take
+a font name as an argument. This section explains what is a font
+name for fvwm and which fonts fvwm loads.</p><p>First, you can use what we can call a usual font name, for
+example,</p><pre class="programlisting">
+-adobe-courier-bold-r-normal--10-100-75-75-m-60-ISO8859-1
+-adobe-courier-bold-r-normal--10-*
+-*-fixed-medium-o-normal--14-*-ISO8859-15
+</pre><p>That is, you can use an X Logical Font Description (XLFD for
+short).  Then the "first" font which matches the description is
+loaded and used. This "first" font depends of your font path and
+also of your locale. Fonts which match the locale charset are
+loaded in priority order. For example with</p><pre class="programlisting">
+-adobe-courier-bold-r-normal--10-*
+</pre><p>if the locale charset is ISO8859-1, then fvwm tries to load a
+font which matches</p><pre class="programlisting">
+-adobe-courier-bold-r-normal--10-*-ISO8859-1
+</pre><p>with the locale charset ISO8859-15 fvwm tries to load</p><pre class="programlisting">
+-adobe-courier-bold-r-normal--10-*-ISO8859-15.
+</pre><p>A font name can be given as an extended XLFD. This
+is a comma separated list of (simple) XLFD font names, for example:</p><pre class="programlisting">
+-adobe-courier-bold-r-normal--14-*,-*-courier-medium-r-normal--14-*
+</pre><p>Each simple font name is tried until a matching font with the
+locale charset is found and if this fails each simple font name is
+tried without constraint on the charset.</p><p>More details on the XLFD can be found in the X manual page, the X
+Logical Font Description Conventions document (called xlfd) and
+the XLoadFont and XCreateFontSet manual pages. Some useful font
+utilities are: xlsfonts, xfontsel, xfd and xset.</p><p>If you have Xft support you can specify an Xft font name
+(description) of a true type (or Type1) font prefixed by "xft:",
+for example:</p><pre class="programlisting">
+"xft:Luxi Mono"
+"xft:Luxi Mono:Medium:Roman:size=14:encoding=iso8859-1"
+</pre><p>The "first" font which matches the description is loaded.  This
+first font depends on the XftConfig configuration file with Xft1
+and on the /etc/fonts/fonts.conf file with Xft2.
+One may read the Xft manual page and the fontconfig man page with
+Xft2. The first string which follows "xft:" is always considered
+as the family. With the second example Luxi Mono is the Family
+(Other XFree TTF families: "Luxi Serif", "Luxi Sans"), Medium is
+the Weight (other possible weights: Light, DemiBold, Bold, Black),
+Roman is the slant or the style (other possibilities: Regular,
+Oblique, Italic) size specifies the point size (for a pixel size
+use pixelsize=), encoding allows for enforce a charset (iso8859-1
+or iso10646-1 only; if no encoding is given the locale charset is
+assumed).
+An important parameter is "minspace=bool" where bool is True or
+False. If bool is False (the default?) Xft gives a greater font
+height to fvwm than if bool is True. This may modify text
+placement, icon and window title height, line spacing in menus and
+<a href="../modules/FvwmIdent.html">FvwmIdent</a>, button height in some fvwm modules ...etc.  With a LCD
+monitor you may try to add "rgba=mode" where mode is either rgb,
+bgr, vrgb or vbgr to enable subpixel rendering. The best mode
+depends on the way your LCD cells are arranged. You can pass other
+specifications in between ":", as "foundry=foundry_name",
+"spacing=type" where type can be monospace, proportional or
+charcell, "charwidth=integer", "charheight=integer" or
+"antialias=bool" where bool is True or False. It seems that these
+parameters are not always taken in account.</p><p>To determine which Xft fonts are really loaded you can export
+XFT_DEBUG=1 before starting fvwm and take a look to the error
+log. With Xft2 you may use fc-list to list the available
+fonts. Anyway, Xft support is experimental (from the X and the
+fvwm point of view) and the quality of the rendering depends on
+number of parameters (the XFree and the freetype versions and your
+video card(s)).</p><p>After an Xft font name you can add after a ";" an XLFD
+font name (simple or extended) as:</p><pre class="programlisting">
+xft:Verdana:pixelsize=14;-adobe-courier-bold-r-normal--14-*
+</pre><p>then, if either loading the Xft font fails or fvwm has no Xft
+support, fvwm loads the font
+"-adobe-courier-bold-r-normal--14-*". This allows for writing
+portable configuration files.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="font_and_string_encoding"></a>21.2. Font and string encoding</h3></div></div></div><p>Once a font is loaded, fvwm finds its encoding (or charset) using
+its name (the last two fields of the name). fvwm assumes that the
+strings which are displayed with this font use this encoding (an
+exception is that if an iso10646-1 font is loaded, then UTF-8 is
+assumed for string encoding).
+In a normal situation,
+(i) a font is loaded by giving a font name without specifying the
+encoding,
+(ii) the encoding of the loaded font is the locale encoding, and
+then
+(iii) the strings in the fvwm configuration files should use the
+locale encoding as well as the window and icon name. With Xft the
+situation is bit different as Xft supports only iso10646-1 and
+iso8859-1. If you do not specify one of these encodings in the Xft
+font name, then fvwm does strings conversion using (iii). Note
+that with multibyte fonts (and in particular with "CJK" fonts) for
+good text rendering, the locale encoding should be the charset of
+the font.</p><p>To override the previous rules, it is possible to specify the
+string encoding in the beginning of a font description as follow:</p><pre class="programlisting">
+StringEncoding=<em class="replaceable"><code>enc</code></em>:_full_font_name_
+</pre><p>where
+<em class="replaceable"><code>enc</code></em>
+is an encoding supported by fvwm (usually font name charset plus some
+unicode encodings: UTF-8, USC-2, USC-4 and UTF-16).</p><p>For example, you may use an iso8859-1 locale charset and have an
+<a href="../modules/FvwmForm.html">FvwmForm</a> in Russian using koi8-r encoding. In this case, you just
+have to ask <a href="../modules/FvwmForm.html">FvwmForm</a> to load a koi8-r font by specifying the
+encoding in the font name. With a multibyte language, (as
+multibyte font works well only if the locale encoding is the
+charset of the font), you should use an iso10646-1 font:</p><pre class="programlisting">
+StringEncoding=jisx0208.1983-0:-*-fixed-medium-r-*-ja-*-iso10646-1
+</pre><p>or</p><pre class="programlisting">
+"StringEncoding=jisx0208.1983-0:xft:Bitstream Cyberbit"
+</pre><p>if your
+<a href="../modules/FvwmForm.html">FvwmForm</a>
+configuration uses jisx0208.1983-0 encoding. Another possibility
+is to use UTF-8 encoding for your <a href="../modules/FvwmForm.html">FvwmForm</a> configuration and use
+an iso10646-1 font:</p><pre class="programlisting">
+-*-fixed-medium-r-*-ja-*-iso10646-1
+</pre><p>or</p><pre class="programlisting">
+"StringEncoding=UTF-8:xft:Bitstream Cyberbit"
+</pre><p>or equivalently</p><pre class="programlisting">
+"xft:Bitstream Cyberbit:encoding=iso10646-1"
+</pre><p>In general iso10646-1 fonts together with UTF-8 string encoding
+allows the display of any characters in a given menu, <a href="../modules/FvwmForm.html">FvwmForm</a>
+etc.</p><p>More and more, unicode is used and text files use UTF-8
+encoding. However, in practice the characters used range over your
+locale charset (this is the case when you generate a menu with
+fvwm-menu-desktop with recent versions of <acronym class="acronym">KDE</acronym> and
+<acronym class="acronym">GNOME</acronym>). For
+saving memory (an iso10646-1 font may have a very large number of
+characters) or because you have a pretty font without an
+iso10646-1 charset, you can specify the string encoding to be
+UTF-8 and use a font in the locale charset:</p><pre class="programlisting">
+StringEncoding=UTF-8:-*-pretty_font-*-12-*
+</pre><p>In most cases, fvwm correctly determines the encoding of the
+font. However, some fonts do not end with valid encoding
+names. When the font name isn't normal, for example:</p><pre class="programlisting">
+-misc-fixed-*--20-*-my_utf8-36
+</pre><p>you need to add the encoding after the font name using a slash as
+a delimiter. For example:</p><pre class="programlisting">
+<a href="#MenuStyle">MenuStyle</a> * <a href="#MenuStyle_Font">Font</a> -misc-fixed-*--20-*-my_utf8-36/iso10646-1
+</pre><p>If fvwm finds an encoding, fvwm uses the iconv system functions to
+do conversion between encodings. Unfortunately, there are no
+standards. For conversion between iso8859-1 and UTF-8: a GNU
+system uses "ISO-8859-1" and other systems use "iso881" to define
+the converters (these two names are supported by fvwm). Moreover,
+in some cases it may be necessary to use machine specific
+converters. So, if you experience problems you can try to get
+information on your iconv implementation ("man iconv" may help)
+and put the name which defines the converter between the font
+encoding and UTF-8 at the end of the font name after the encoding
+hint and a / (another possible solution is to use GNU
+libiconv). For example use:</p><pre class="programlisting">
+<a href="#Style">Style</a> * <a href="#Style_Font">Font</a> -misc-fixed-*--14-*-iso8859-1/*/latin1
+</pre><p>to use latin1 for defining the converter for the iso8859-1 encoding.
+The "*" in between the "/" says to fvwm to determine the
+encoding from the end of the font name. Use:</p><pre class="programlisting">
+<a href="#Style">Style</a> * <a href="#Style_Font">Font</a> -misc-fixed-*--14-*-local8859-6/iso8859-6/local_iso8859_6_iconv
+</pre><p>to force fvwm to use the font with iso8859-6 as the encoding
+(this is useful for bi-directionality)
+and to use local_iso8859_6_iconv for defining the converters.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="font_shadow_effects"></a>21.3. Font Shadow Effects</h3></div></div></div><p>Fonts can be given 3d effects. At the beginning of the font name
+(or just after a possible StringEncoding specification) add</p><pre class="programlisting">
+Shadow=<em class="replaceable"><code>size</code></em> [<span class="optional"><em class="replaceable"><code>offset</code></em></span>] [<span class="optional"><em class="replaceable"><code>directions]</code></em></span>]:
+</pre><p><em class="replaceable"><code>size</code></em>
+is a positive integer which specifies the number of pixels of shadow.
+<em class="replaceable"><code>offset</code></em>
+is an optional positive integer which defines the number of pixels
+to offset the shadow from the edge of the character.  The default
+offset is zero.
+<em class="replaceable"><code>directions</code></em>
+is an optional set of directions the shadow emanates from the
+character.  The
+<em class="replaceable"><code>directions</code></em>
+are a space separated list of fvwm directions:</p><p><span class="emphasis"><em>N</em></span>, <span class="emphasis"><em>North</em></span>, <span class="emphasis"><em>Top</em></span>, <span class="emphasis"><em>t</em></span>, <span class="emphasis"><em>Up</em></span>, <span class="emphasis"><em>u</em></span>, <span class="emphasis"><em>-</em></span></p><p><span class="emphasis"><em>E</em></span>, <span class="emphasis"><em>East</em></span>, <span class="emphasis"><em>Right</em></span>, <span class="emphasis"><em>r</em></span>, <span class="emphasis"><em>Right</em></span>, <span class="emphasis"><em>r</em></span>, <span class="emphasis"><em>]</em></span></p><p><span class="emphasis"><em>S</em></span>, <span class="emphasis"><em>South</em></span>, <span class="emphasis"><em>Bottom</em></span>, <span class="emphasis"><em>b</em></span>, <span class="emphasis"><em>Down</em></span>, <span class="emphasis"><em>d</em></span>, <span class="emphasis"><em>_</em></span></p><p><span class="emphasis"><em>W</em></span>, <span class="emphasis"><em>West</em></span>, <span class="emphasis"><em>Left</em></span>, <span class="emphasis"><em>l</em></span>, <span class="emphasis"><em>Left</em></span>, <span class="emphasis"><em>l</em></span>, <span class="emphasis"><em>[</em></span></p><p><span class="emphasis"><em>NE</em></span>, <span class="emphasis"><em>NorthEast</em></span>, <span class="emphasis"><em>TopRight</em></span>, <span class="emphasis"><em>tr</em></span>, <span class="emphasis"><em>UpRight</em></span>, <span class="emphasis"><em>ur</em></span>, <span class="emphasis"><em>^</em></span></p><p><span class="emphasis"><em>SE</em></span>, <span class="emphasis"><em>SouthEast</em></span>, <span class="emphasis"><em>BottomRight</em></span>, <span class="emphasis"><em>br</em></span>, <span class="emphasis"><em>DownRight</em></span>, <span class="emphasis"><em>dr</em></span>, <span class="emphasis"><em>&gt;</em></span></p><p><span class="emphasis"><em>SW</em></span>, <span class="emphasis"><em>SouthWest</em></span>, <span class="emphasis"><em>BottomLeft</em></span>, <span class="emphasis"><em>bl</em></span>, <span class="emphasis"><em>DownLeft</em></span>, <span class="emphasis"><em>dl</em></span>, <span class="emphasis"><em>v</em></span></p><p><span class="emphasis"><em>NW</em></span>, <span class="emphasis"><em>NorthWest</em></span>, <span class="emphasis"><em>TopLeft</em></span>, <span class="emphasis"><em>tl</em></span>, <span class="emphasis"><em>UpLeft</em></span>, <span class="emphasis"><em>ul</em></span>, <span class="emphasis"><em>&lt;</em></span></p><p><span class="emphasis"><em>C</em></span>, <span class="emphasis"><em>Center</em></span>, <span class="emphasis"><em>Centre</em></span>, <span class="emphasis"><em>.</em></span></p><p>A shadow is displayed in each given direction.
+<span class="emphasis"><em>All</em></span>
+is equivalent to all the directions.  The default
+<em class="replaceable"><code>direction</code></em>
+is
+<span class="emphasis"><em>BottomRight</em></span>.
+With the
+<span class="emphasis"><em>Center</em></span>
+direction, the shadow surrounds the whole string.  Since this is a
+super set of all other directions, it is a waste of time to
+specify this along with any other directions.</p><p>The shadow effect only works with colorsets.  The color of the
+shadow is defined by using the
+<a href="#Colorset_fgsh">fgsh</a>
+option of the
+<a href="#Colorset">Colorset</a>
+command.  Please refer to the
+<a href="#colorsets">Colorsets</a>
+section for details about colorsets.</p><p>Note: It can be difficult to find the font,
+<a href="#Colorset_fg">fg</a>, <a href="#Colorset_fgsh">fgsh</a> and <a href="#Colorset_bg">bg</a>
+colors to make this effect look good, but it can look quite good.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bidirectional_text"></a>22. Bi-directional Text</h2></div></div></div><p>Arabic and Hebrew text require bi-directional text support to be
+displayed correctly, this means that logical strings should be
+converted before their visual presentation, so left-to-right and
+right-to-left sub-strings are determined and reshuffled.
+In fvwm this is done automatically in window titles, menus,
+module labels and other places if the fonts used for displaying the
+text are of one of the charsets that require
+<span class="emphasis"><em>bidi</em></span>
+(bi-directional) support.  For example, this includes iso8859-6,
+iso8859-8 and iso10646-1 (unicode), but not other iso8859-* fonts.</p><p>This bi-directional text support is done using the
+<span class="emphasis"><em>fribidi</em></span>
+library compile time option, see
+<code class="filename">INSTALL.fvwm</code>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="keyboard_shortcuts"></a>23. Keyboard Shortcuts</h2></div></div></div><p>Almost all window manager operations can be performed from the
+keyboard so mouse-less operation should be possible.  In addition
+to scrolling around the virtual desktop by binding the
+<a href="#Scroll">Scroll</a>
+command to appropriate keys,
+<a href="#Popup">Popup</a>,
+<a href="#Move">Move</a>,
+<a href="#Resize">Resize</a>, 
+and any other command can be bound to keys.  Once a command
+is started the pointer is moved by using the up, down,
+left, and right arrows, and the action is terminated by pressing
+return.  Holding down the
+<span class="keysym">Shift</span>
+key causes the pointer movement to go in larger steps and holding
+down the
+<span class="keysym">control</span>
+key causes the pointer movement to go in smaller steps. Standard
+emacs and vi cursor movement controls (
+<span class="keysym">n</span>,
+<span class="keysym">p</span>,
+<span class="keysym">f</span>,
+<span class="keysym">b</span>,
+and
+<span class="keysym">j</span>,
+<span class="keysym">k</span>,
+<span class="keysym">h</span>,
+<span class="keysym">l</span>
+) can be used instead of the arrow keys.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="session_management"></a>24. Session Management</h2></div></div></div><p>Fvwm supports session management according to the X Session
+Management Protocol.  It saves and restores window position, size,
+stacking order, desk, stickiness, shadiness, maximizedness,
+iconifiedness for all windows. Furthermore, some global state is
+saved.</p><p>Fvwm doesn't save any information regarding styles, decors,
+functions or menus.  If you change any of these resources during a
+session (e.g. by issuing
+<a href="#Style">Style</a>
+commands or by using various modules), these changes are lost
+after saving and restarting the session.  To become permanent,
+such changes have to be added to the configuration file.</p><p>Note further that the current implementation has the following
+anomaly when used on a multi-screen display: Starting fvwm for the
+first time, fvwm manages all screens by forking a copy of itself
+for each screen.  Every copy knows its parent and issuing a
+<a href="#Quit">Quit</a>
+command to any instance of fvwm kills the master and thus all
+copies of fvwm.  When you save and restart the session, the
+session manager brings up a copy of fvwm on each screen, but this
+time they are started as individual instances managing one screen
+only.  Thus a
+<a href="#Quit">Quit</a>
+kills only the copy it was sent to.  This is probably not a very
+serious problem, since with session management, you are supposed
+to quit a session through the session manager anyway. If it is
+really needed,</p><pre class="programlisting">
+<a href="#Exec">Exec</a> exec killall fvwm
+</pre><p>still kills all copies of fvwm.  Your system must have the
+<span><strong class="command">killall</strong></span>
+command though.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="boolean_args"></a>25. Boolean Arguments</h2></div></div></div><p>A number of commands take one or several boolean arguments. These take a few equivalent inputs: "yes", "on", "true", "t" and "y" all evaluate to true while "no", "off", "false", "f" and "n" evaluate to false. Some commands allow "toggle" too which means that the feature is disabled if it is currently enabled and vice versa.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="builtin_key_and_mouse_bindings"></a>26. Builtin Key and Mouse Bindings</h2></div></div></div><p>The following commands are built-in to fvwm:</p><pre class="programlisting">
+<a href="#Key">Key</a> Help R A <a href="#Popup">Popup</a> MenuFvwmRoot
+<a href="#Key">Key</a> F1 R A <a href="#Popup">Popup</a> MenuFvwmRoot
+<a href="#Key">Key</a> Tab A M <a href="#WindowList">WindowList</a> Root c c NoDeskSort
+<a href="#Key">Key</a> Escape A MC <a href="#EscapeFunc">EscapeFunc</a>
+<a href="#Mouse">Mouse</a> 1 R A <a href="#Menu">Menu</a> MenuFvwmRoot
+<a href="#Mouse">Mouse</a> 1 T   A FuncFvwmRaiseLowerX <a href="#Move">Move</a>
+<a href="#Mouse">Mouse</a> 1 FS  A FuncFvwmRaiseLowerX <a href="#Resize">Resize</a>
+<a href="#Mouse">Mouse</a> 2 FST A FuncFvwmRaiseLowerX <a href="#Move">Move</a>
+<a href="#AddToFunc">AddToFunc</a> FuncFvwmRaiseLowerX
++ I <a href="#Raise">Raise</a>
++ M $0
++ D <a href="#Lower">Lower</a>
+</pre><p>The
+<span class="keysym">Help</span>
+and
+<span class="keysym">F1</span>
+keys invoke a built-in menu that fvwm creates.  This is primarily
+for new users that have not created their own configuration
+file. Either key on the root (background) window pops up an menu
+to help you get started.</p><p>The
+<span class="keysym">Tab</span>
+key pressed anywhere with the
+<span class="keysym">Meta</span>
+key (same as the
+<span class="keysym">Alt</span>
+key on PC keyboards) held down pop-ups a window list.</p><p>Mouse button 1 on the title-bar or side frame can move, raise or
+lower a window.</p><p>Mouse button 1 on the window corners can resize, raise or lower a
+window.</p><p>You can override or remove these bindings. To remove the window
+list binding, use this:</p><pre class="programlisting">
+<a href="#Key">Key</a> Tab A M -
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="command_execution"></a>27. Command Execution</h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="module_and_function_commands"></a>27.1. Module and Function Commands</h3></div></div></div><p>If fvwm encounters a command that it doesn't recognize,
+it checks to see if the
+specified command should have been</p><pre class="programlisting">
+<a href="#Function">Function</a> (rest of command)
+</pre><p>or</p><pre class="programlisting">
+<a href="#Module">Module</a> (rest of command)
+</pre><p>This allows complex functions or modules to be invoked in a manner
+which is fairly transparent to the configuration file.</p><p>Example: the
+<code class="filename">config</code>
+file contains the line</p><pre class="programlisting">
+HelpMe
+</pre><p>Fvwm looks for an fvwm command called "HelpMe", and fails.
+Next it looks for a user-defined complex function called "HelpMe".
+If no such function exists, fvwm tries to execute a
+module called "HelpMe".</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="delayed_execution_of_commands"></a>27.2. Delayed Execution of Commands</h3></div></div></div><p>Note: There are many commands that affect look and feel of
+specific, some or all windows, like
+<a href="#Style">Style</a>, <a href="#Mouse">Mouse</a>, <a href="#Colorset">Colorset</a>, <a href="#TitleStyle">TitleStyle</a>
+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
+<a href="#Style">Style</a>
+options that are set in a function are not applied until after the
+function has completed.  This can sometimes lead to unwanted
+effects.</p><p>To force that all pending changes are applied immediately, use the
+<a href="#UpdateStyles">UpdateStyles</a>, <a href="#Refresh">Refresh</a> or <a href="#RefreshWindow">RefreshWindow</a>
+commands.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="quoting"></a>28. Quoting</h2></div></div></div><p>Quotes are required only when needed to make fvwm consider two or
+more words to be a single argument.  Unnecessary quoting is
+allowed.  If you want a quote character in your text, you must
+escape it by using the backslash character.  For example, if you
+have a pop-up menu called "Window-Ops", then you do not need
+quotes:</p><pre class="programlisting">
+<a href="#Popup">Popup</a> Window-Ops
+</pre><p>but if you replace the dash with a space, then you need
+quotes:</p><pre class="programlisting">
+<a href="#Popup">Popup</a> "Window Ops"
+</pre><p>The supported quoting characters are double quotes, single quotes
+and reverse single quotes.  All three kinds of quotes are treated
+in the same way.  Single characters can be quoted with a preceding
+backslash.  Quoting single characters works even inside other
+kinds of quotes.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="command_expansion"></a>29. Command Expansion</h2></div></div></div><p>Whenever an fvwm command line is executed, fvwm performs parameter
+expansion.  A parameter is a '$' followed by a word enclosed in
+brackets ($[...]) or a single special character.  If fvwm
+encounters an unquoted parameter on the command line it expands it
+to a string indicated by the parameter name.  Unknown parameters
+are left untouched.  Parameter expansion is performed before
+quoting.  To get a literal '$' use "$$".</p><p>If a command is prefixed with a '-' parameter expansion isn't
+performed.  This applies to the command immediately following the '-',
+in which the expansion normally would have taken place. When uesed
+together with other prefix commands it must be added before the other
+prefix.</p><p>Example:</p><pre class="programlisting">
+<a href="#Pick">Pick</a> -<a href="#Exec">Exec</a> exec xmessage '$[w.name]'
+</pre><p>opens an xmessage dialog with "$[w.name]" unexpanded.</p><p>The longer variables may contain additional variables inside the
+name, which are expanded before the outer variable.</p><p>In earlier versions of fvwm, some single letter variables were
+supported.  It is deprecated now, since they cause a number of
+problems.  You should use the longer substitutes instead.</p><p>Example:</p><pre class="programlisting">
+# Print the current desk number, horizontal page number
+# and the window's class (unexpanded here, no window).
+<a href="#Echo">Echo</a> $[desk.n] $[page.nx] $[w.class]
+</pre><p>Note: If the command is called outside a window context, it
+prints "$[w.class]" instead of the class name.  It is usually not
+enough to have the pointer over a window to have a context window.
+To force using the window with the focus, the
+<a href="#Current">Current</a>
+command can be used:</p><pre class="programlisting">
+<a href="#Current">Current</a> <a href="#Echo">Echo</a> $[desk.n] $[page.nx] $[w.class]
+</pre><p>The parameters known by fvwm are:</p><div class="variablelist"><dl><dt><span class="term">$$</span></dt><dd><p>A literal '$'.</p></dd><dt><span class="term">$.</span></dt><dd><p>
+	The absolute directory of the currently Read file.  Intended for
+	creating relative and relocatable configuration trees.  If used
+	outside of any read file, the returned value is '.'.
+      </p></dd><dt><span class="term">$0 to $9</span></dt><dd><p>
+	The positional parameters given to a complex function (a function
+	that has been defined with the
+	<a href="#AddToFunc">AddToFunc</a>
+	command).  "$0" is replaced with the first parameter, "$1" with
+	the second parameter and so on.  If the corresponding parameter is
+	undefined, the "$..." is deleted from the command line.
+      </p></dd><dt><span class="term">$*</span></dt><dd><p>
+	All positional parameters given to a complex function.  This
+	includes parameters that follow after "$9".
+      </p></dd><dt><span class="term">$[<em class="replaceable"><code>n</code></em>]</span></dt><dd><p>
+	The <em class="replaceable"><code>n</code></em>:th
+	positional parameter given to a complex function, counting from 0.
+	If the corresponding parameter is undefined, the
+	"$[<em class="replaceable"><code>n</code></em>]" is deleted
+	from the command line. The parameter is expanded unquoted.
+      </p></dd><dt><span class="term">$[<em class="replaceable"><code>n</code></em>-<em class="replaceable"><code>m</code></em>]</span></dt><dd><p>
+	 The positional parameters given to a complex function, starting
+	 with parameter <em class="replaceable"><code>n</code></em> and ending with parameter
+	 <em class="replaceable"><code>m</code></em>.
+	 If all the corresponding parameters are undefined, the "$[...]" is
+	 deleted from the command line. If only some of the parameters are
+	 defined, all defined parameters are expanded, and the remaining
+	 silently ignored. All parameters are expanded unquoted.
+       </p></dd><dt><span class="term">$[<em class="replaceable"><code>n</code></em>-]</span></dt><dd><p>
+	All the positional parameters given to a complex function,
+	starting with parameter <em class="replaceable"><code>n</code></em>.
+	If all the corresponding parameters are undefined, the "$[...]" is
+	deleted from the command line. All parameters are expanded
+	unquoted.
+      </p></dd><dt><span class="term">$[*]</span></dt><dd><p>
+	All the positional parameters given to a complex function. This is
+	equivalent of $[0-].
+      </p></dd><dt><span class="term">$[version.num]</span></dt><dd><p>The version number, like "2.6.0".</p></dd><dt><span class="term">$[version.info]</span></dt><dd><p>
+	The version info, like " (from cvs)", empty for the official releases.
+      </p></dd><dt><span class="term">$[version.line]</span></dt><dd><p>
+	The first line printed by the --version command line option.
+      </p></dd><dt><span class="term">$[vp.x] $[vp.y] $[vp.width] $[vp.height]</span></dt><dd><p>
+	Either coordinate or the width or height of the current viewport.
+      </p></dd><dt><span class="term">$[wa.x] $[wa.y] $[wa.width] $[wa.height]</span></dt><dd><p>
+	Either coordinate or the width or height of the EWMH working area.
+      </p></dd><dt><span class="term">$[dwa.x] $[dwa.y] $[dwa.width] $[dwa.height]</span></dt><dd><p>
+	Either coordinate or the width or height of the dynamic EWMH working area.
+      </p></dd><dt><span class="term">$[desk.n]</span></dt><dd><p>The current desk number.</p></dd><dt><span class="term">$[desk.name&lt;n&gt;]</span></dt><dd><p>
+	These parameters are replaced with the name of the desktop
+	number &lt;n&gt; that is defined with the
+	<a href="#DesktopName">DesktopName</a>
+	command. If no name is defined, then the default name is returned.
+      </p></dd><dt><span class="term">$[desk.width] $[desk.height]</span></dt><dd><p>
+	The width or height of the whole desktop, i.e. the width or height
+	multiplied by the number of pages in x or y direction.
+      </p></dd><dt><span class="term">$[desk.pagesx] $[desk.pagesy]</span></dt><dd><p>
+	The number of total pages in a desk in x or y direction.
+	This is the same as the values set by
+	<a href="#DesktopSize">DesktopSize</a>.
+      </p></dd><dt><span class="term">$[page.nx] $[page.ny]</span></dt><dd><p>
+	The current page numbers, by X and Y axes, starting from 0.
+	<span class="emphasis"><em>page</em></span> is equivalent to
+	<span class="emphasis"><em>area</em></span> in the
+	<acronym class="acronym">GNOME</acronym> terminology.
+      </p></dd><dt><span class="term">$[w.id]</span></dt><dd><p>
+	The window-id (expressed in hex, e.g. 0x10023c) of the window the
+	command was called for or "$[w.id]" if no window is associated
+	with the command.
+      </p></dd><dt><span class="term">
+      $[w.name] $[w.iconname] $[w.class] $[w.resource]
+      $[w.visiblename] $[w.iconfile] $[w.miniiconfile]
+      $[w.iconfile.svgopts] $[w.miniiconfile.svgopts]
+    </span></dt><dd><p>
+	The window's name, icon name, resource class and resource name,
+	visible name, file name of its icon or mini icon defined with the
+	<a href="#Style_Icon">Icon</a> or
+	<a href="#Style_MiniIcon">MiniIcon</a>
+	style (including the full path if the file was found on disk),
+	and (if fvwm is compiled with <acronym class="acronym">SVG</acronym> support)
+	the icon or mini icon svg rendering options (including the
+	leading colon),	or unexpanded "$[w.&lt;attribute&gt;]" string
+	if no window is associated with the command.
+      </p><p>
+	Note, the first 5 variables may include any kind of characters, so
+	these variables are quoted.  It means that the value is surrounded
+	by single quote characters and any contained single quote is
+	prefixed with a backslash.  This guarantees that commands like:
+
+	</p><pre class="programlisting"><a href="#Style">Style</a> $[w.resource] <a href="#Style_Icon">Icon</a> norm/network.png</pre><p>
+
+	work correctly, regardless of any special symbols the value may
+    contain, like spaces and different kinds of quotes.
+      </p><p>
+    In the case of the window's visible name, this is the value returned
+    from the literal title of the window shown in the titlebar.  Typically
+    this will be the same as $[w.name] once expanded, although
+    in the case of using <a href="#Style_IndexedWindowName">IndexedWindowName</a> then
+    this is more useful a distinction, and allows for referencing the
+    specific window by its visible name for inclusion in things like
+    <a href="#Style">Style</a> commands.
+      </p></dd><dt><span class="term">$[w.x] $[w.y] $[w.width] $[w.height]</span></dt><dd><p>
+	Either coordinate or the width or height of the current window if
+	it is not iconified.  If no window is associated with the command
+	or the window is iconified, the string is left as is.
+      </p></dd><dt><span class="term">$[w.desk]</span></dt><dd><p>
+	The number of the desk on which the window is shown.  If the
+	window is sticky the current desk number is used.
+      </p></dd><dt><span class="term">$[w.layer]</span></dt><dd><p>The layer of the window.</p></dd><dt><span class="term">$[w.screen]</span></dt><dd><p>The screen number the window is on.  If Xinerama is not
+		    present, this returns the number 0.</p></dd><dt><span class="term">$[cw.x] $[cw.y] $[cw.width] $[cw.height]</span></dt><dd><p>
+	These work like $[w....] but return the geometry of the client
+	part of the window.  In other words: the border and title of the
+	window is not taken into account.
+      </p></dd><dt><span class="term">
+      $[i.x], $[it.x], $[ip.x]
+      $[i.y], $[it.y], $[ip.y]
+      $[i.width], $[it.width], $[ip.width]
+      $[i.height], $[it.height], $[ip.height]
+    </span></dt><dd><p>
+	These work like $[w....] but return the geometry of the icon
+	($[i....]), the icon title ($[it....]) or the icon picture
+	($[ip....]).
+      </p></dd><dt><span class="term">$[pointer.x] $[pointer.y]</span></dt><dd><p>
+	These return the position of the pointer on the screen.  If the
+	pointer is not on the screen, these variables are not expanded.
+      </p></dd><dt><span class="term">$[pointer.wx] $[pointer.wy]</span></dt><dd><p>
+	These return the position of the pointer in the selected window.  If
+	the pointer is not on the screen, the window is iconified
+	or no window is selected, these variables are not expanded.
+      </p></dd><dt><span class="term">$[pointer.cx] $[pointer.cy]</span></dt><dd><p>
+	These return the position of the pointer in the client portion of
+	the selected window.  If the pointer is not on the screen, the
+	window is shaded or iconified or no window is selected, these
+	variables are not expanded.
+      </p></dd><dt><span class="term">$[pointer.screen]</span></dt><dd><p>
+        The screen number the pointer is currently on.  Returns 0 if
+        Xinerama is not enabled.
+    </p></dd><dt><span class="term">$[screen]</span></dt><dd><p>
+	The screen number fvwm is running on.  Useful for setups with
+	multiple screens.
+      </p></dd><dt><span class="term">
+      $[fg.cs&lt;n&gt;]
+      $[bg.cs&lt;n&gt;]
+      $[hilight.cs&lt;n&gt;]
+      $[shadow.cs&lt;n&gt;]
+    </span></dt><dd><p>
+	These parameters are replaced with the name of the foreground
+	(fg), background (bg), hilight (hilight) or shadow (shadow) color
+	that is defined in colorset &lt;n&gt; (replace &lt;n&gt; with zero
+	or a positive integer).  For example "$[fg.cs3]" is expanded to the
+	name of the foreground color of colorset 3 (in rgb:rrrr/gggg/bbbb
+	form).  Please refer to the
+	<a href="#colorsets">Colorsets</a>
+	section for details about colorsets.
+      </p></dd><dt><span class="term">$[schedule.last]</span></dt><dd><p>
+	This is replaced by the id of the last command that was
+	scheduled with the <a href="#Schedule">Schedule</a> command, even if
+	this command was already executed.
+      </p></dd><dt><span class="term">$[schedule.next]</span></dt><dd><p>
+	This is replaced by the id the next command used with
+	<a href="#Schedule">Schedule</a> will get (unless a different id is
+	specified explicitly).
+      </p></dd><dt><span class="term">$[cond.rc]</span></dt><dd><p>
+	The return code of the last conditional command.  This
+	variable is only valid inside a function and can not be used
+	in a conditional command.  Please refer to the section
+	<a href="#conditional_commands">Conditional Commands</a> in the command list.
+      </p></dd><dt><span class="term">$[func.context]</span></dt><dd><p>
+	The context character of the running command as used in the
+	<a href="#Mouse">Mouse</a>,
+	<a href="#Key">Key</a> or
+	<a href="#PointerKey">PointerKey</a>
+	command.  This is useful for example with:
+	</p><pre class="programlisting"><a href="#Mouse">Mouse</a> 3 FS N <a href="#WindowShade">WindowShade</a> $$[func.context]</pre><p>
+      </p></dd><dt><span class="term">$[gt.<em class="replaceable"><code>str</code></em>]</span></dt><dd><p>
+	return the translation of
+	<em class="replaceable"><code>str</code></em> by looking in the current
+	locale catalogs. If no translation is found
+	<em class="replaceable"><code>str</code></em> is returned as is.  See the
+	<a href="#LocalePath">LocalePath</a> command.
+      </p></dd><dt><span class="term">$[infostore.<em class="replaceable"><code>key</code></em>]</span></dt><dd><p>Return the value of the item stored in the
+              InfoStore at the given <em class="replaceable"><code>key</code></em>.
+                If no key is present, the unexpanded string is returned.
+            </p></dd><dt><span class="term">$[...]</span></dt><dd><p>
+	If the string within the braces is neither of the above, fvwm
+	tries to find an environment variable with this name and replaces
+	its value if one is found (e.g. "$[PAGER]" could be replaced by
+	"more").  Otherwise the string is left as is.
+      </p></dd></dl></div><p>Some examples can be found in the description of the
+<a href="#AddToFunc">AddToFunc</a>
+command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="scripting_and_complex_functions"></a>30. Scripting &amp; Complex Functions</h2></div></div></div><p>To achieve the more complex effects, fvwm has a number of
+commands that improve its scripting abilities.  Scripts can be
+read from a file with
+<a href="#Read">Read</a>,
+from the output of a command with
+<a href="#PipeRead">PipeRead</a>
+or written as a complex function with the
+<a href="#AddToFunc">AddToFunc</a>
+command.  For the curious, section 7 of the fvwm FAQ shows some
+real life applications of scripting.  Please refer to the sections
+<a href="#user_functions_and_shell_commands">User Functions and Shell Commands</a>
+and
+<a href="#conditional_commands">Conditional Commands</a>
+for details.  A word of warning:  during execution of complex
+functions, fvwm needs to take all input from the mouse pointer
+(the pointer is "grabbed" in the slang of X).  No other programs
+can receive any input from the pointer while a function is run.
+This can confuse some programs.  For example, the xwd program
+refuses to make screen shots when run from a complex function.  To
+achieve the same functionality you can use the
+<a href="#Read">Read</a>
+or
+<a href="#PipeRead">PipeRead</a>
+command instead.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="list_of_fvwm_commands"></a>31. List of Fvwm Commands</h2></div></div></div><p>The command descriptions below are grouped together in the
+following sections.  The sections are hopefully sorted in order of
+usefulness to the newcomer.</p><div class="itemizedlist"><ul type="disc"><li><a href="#menus">Menu commands</a></li><li><a href="#miscellaneous_commands">Miscellaneous commands</a></li><li><a href="#window_movement_and_placement">Commands affecting window movement and placement</a></li><li><a href="#focus_and_mouse_movement">Commands for focus and mouse movement</a></li><li><a href="#window_state">Commands controlling window state</a></li><li><a href="#mouse_key_and_stroke_bindings">Commands for mouse, key and stroke bindings</a></li><li><a href="#controlling_window_styles">The Style command (controlling window styles)</a></li><li><a href="#window_styles">Other commands controlling window styles</a></li><li><a href="#virtual_desktop">Commands controlling the virtual desktop</a></li><li><a href="#user_functions_and_shell_commands">Commands for user functions and shell commands</a></li><li><a href="#conditional_commands">Conditional commands</a></li><li><a href="#module_commands">Module commands</a></li><li><a href="#session_management_commands">Quit, restart and session management commands</a></li><li><a href="#colorsets">Colorsets</a></li><li><a href="#color_gradients">Color gradients</a></li></ul></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="menus"></a>31.1. Menus</h3></div></div></div><p>Before a menu can be opened, it has to be populated with menu
+items using the
+<a href="#AddToMenu">AddToMenu</a>
+command and bound to a key or mouse button with the
+<a href="#Key">Key</a>,
+<a href="#PointerKey">PointerKey</a> or
+<a href="#Mouse">Mouse</a>
+command (there are many other ways to invoke a menu too).  This is
+usually done in the configuration file.</p><p>Fvwm menus are extremely configurable in look and feel.  Even the
+slightest nuances can be changed to the user's liking, including
+the menu item fonts, the background, delays before popping up sub
+menus, generating menus dynamically and many other features.
+Please refer to the
+<a href="#MenuStyle">MenuStyle</a>
+command to learn more.</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="menu_types"></a>31.1.1. Types of Menus</h4></div></div></div><p>In fvwm there are four slightly different types of menus:</p><p><a href="#Popup">Popup</a> menus
+can appear everywhere on the screen on their own or attached to a
+part of a window.  The
+<a href="#Popup">Popup</a>
+command opens popup menus.  If the popup menu was invoked with a
+mouse button held down, it is closed when the button is released.
+The item under the pointer is then activated and the associated
+action is executed.</p><p><a href="#Menu">Menu</a>
+is a very similar command, but the menus it opens are slightly less
+transient.  When invoked by clicking a mouse button, it stays open
+and can be navigated with no button held.  But if it is invoked by
+a button press followed by mouse motion, it behaves exactly like a
+popup menu.</p><p><span class="emphasis"><em>Tear off menus</em></span> or <span class="emphasis"><em>Pin up menus</em></span>
+are menus from either of the above two commands that have been
+"torn off" their original context and pinned on the desktop like a
+normal window.  They are created from other menus by certain key
+presses or mouse sequences or with the
+<a href="#TearMenuOff">TearMenuOff</a>
+command from inside a menu.</p><p><span class="emphasis"><em>Sub menus</em></span>
+are menus inside menus.  When a menu item that has the
+<a href="#Popup">Popup</a>
+command as its action is selected, the named menu is opened as an
+inferior menu to the parent.  Any type of menu can have sub menus.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="menu_anatomy"></a>31.1.2. Menu Anatomy</h4></div></div></div><p>Menus consist of any number of titles which are inactive menu
+items that usually appear at the top of the menu, normal items
+triggering various actions when selected, separator lines between
+the items, tear off bars (a horizontal broken line) that tear off
+the menu when selected, and sub menu items indicated with a
+triangle pointing left or right, depending on the direction in
+which the sub menu appears.  All the above menu items are
+optional.</p><p>Additionally, if the menu is too long to fit on the screen, the
+excess menu items are put in a continuation menu and a sub menu
+with the string "More..." is placed at the bottom of the menu. The
+"More..." string honors the locale settings.</p><p>Finally, there may be a picture running up either side of the menu
+(a "side bar").</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="menu_navigation"></a>31.1.3. Menu Navigation</h4></div></div></div><p>Menus can be navigated either with the keyboard or with the
+mouse.  Many people prefer to use the mouse, but it can be rather
+tedious.  Once you get the hang of it, keyboard navigation can be
+much faster.  While fvwm displays a menu, it can do nothing else.
+For example, new windows do not appear before the menu is closed.
+However, this is not exactly true for tear off menus.  See the
+<a href="#tearoff_menus">Tear Off Menus</a>
+section for details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="mouse_navigation"></a>31.1.4. Mouse Navigation</h4></div></div></div><p>Moving the pointer over a menu selects the item below it.
+Normally this is indicated by a 3d border around the item, but not
+all parts of a menu can be selected.  Pressing any mouse button
+while a menu is open by default activates the item below it.  Items of a
+popup menu are also activated by releasing a held mouse button.
+In case of an item that hides a sub menu, the sub menu is
+displayed if the pointer hovers over the item long enough or moves
+close to the triangle indicating the sub menu.  This behaviour can
+be tuned with menu styles.</p><p>Scrolling a mouse wheel over a menu either wraps the pointer along the
+menu (default), scrolls the menu under the pointer or act as if the
+menu was clicked depending on the
+<a href="#MenuStyle_MouseWheel">MouseWheel</a> menu style.</p><p>Clicking on a selected item activates it - what happens exactly
+depends on the type of the item.</p><p>Clicking on a title, a separator, the side bar, or outside the
+menu closes the menu (exception:  tear off menus can not be closed
+this way).  Pressing mouse button 2 over a menu title or
+activating a tear off bar creates a tear off menu from the current
+menu.  Clicking on a normal menu item invokes the command that is
+bound to it, and clicking on a sub menu item either closes all
+open menus and replaces them with the sub menu or posts the menu
+(default).</p><p>Posting menus is meant to ease mouse navigation.  Once a sub menu
+is posted, only items from that sub menu can be selected.  This
+can be very useful to navigate the menu if the pointer tends to
+stray off the menu.  To unpost the menu and revert back to normal
+operation, either click on the same sub menu item or press any
+key.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="keyboard_navigation"></a>31.1.5. Keyboard Navigation</h4></div></div></div><p>Just like with mouse navigation, the item below the pointer is
+selected.  This is achieved by warping the pointer to the menu
+items when necessary.  While a menu is open, all key presses are
+intercepted by the menu.  No other application can get keyboard
+input (although this is not the case for tear off menus).</p><p>Items can be selected directly by pressing a hotkey that can be
+configured individually for each menu item.  The hotkey is
+indicated by underlining it in the menu item label.  With the
+<a href="#MenuStyle_AutomaticHotkeys">AutomaticHotkeys</a>
+menu style fvwm automatically assigns hotkeys to all menu items.</p><p>The most basic keys to navigate through menus are the cursor keys
+(move up or down one item, enter or leave a sub menu),
+<span class="keysym">Space</span>
+(activate item) and
+<span class="keysym">Escape</span>
+(close menu).  Numerous other keys can be used to navigate through
+menus by default:</p><p><span class="emphasis"><em>Enter</em></span>,
+<span class="emphasis"><em>Return</em></span>,
+<span class="emphasis"><em>Space</em></span>
+activate the current item.</p><p><span class="emphasis"><em>Escape</em></span>,
+<span class="emphasis"><em>Delete</em></span>,
+<span class="emphasis"><em>Ctrl-G</em></span>
+exit the current sequence of menus or destroy a tear off menu.</p><p><span class="emphasis"><em>J</em></span>,
+<span class="emphasis"><em>N</em></span>,
+<span class="emphasis"><em>Cursor-Down</em></span>,
+<span class="emphasis"><em>Tab</em></span>,
+<span class="emphasis"><em>Meta-Tab</em></span>,
+<span class="emphasis"><em>Ctrl-F</em></span>,
+move to the next item.</p><p><span class="emphasis"><em>K</em></span>,
+<span class="emphasis"><em>P</em></span>,
+<span class="emphasis"><em>Cursor-Up</em></span>,
+<span class="emphasis"><em>Shift-Tab</em></span>,
+<span class="emphasis"><em>Shift-Meta-Tab</em></span>,
+<span class="emphasis"><em>Ctrl-B</em></span>,
+move to the prior item.</p><p><span class="emphasis"><em>L</em></span>,
+<span class="emphasis"><em>Cursor-Right</em></span>,
+<span class="emphasis"><em>F</em></span>
+enter a sub menu.</p><p><span class="emphasis"><em>H</em></span>,
+<span class="emphasis"><em>Cursor-Left</em></span>,
+<span class="emphasis"><em>B</em></span>
+return to the prior menu.</p><p><span class="emphasis"><em>Ctrl-Cursor-Up</em></span>,
+<span class="emphasis"><em>Ctrl-K</em></span>
+<span class="emphasis"><em>Ctrl-P</em></span>,
+<span class="emphasis"><em>Shift-Ctrl-Meta-Tab</em></span>,
+<span class="emphasis"><em>Page-Up</em></span>
+move up five items.</p><p><span class="emphasis"><em>Ctrl-Cursor-Down</em></span>,
+<span class="emphasis"><em>Ctrl-J</em></span>
+<span class="emphasis"><em>Ctrl-N</em></span>,
+<span class="emphasis"><em>Ctrl-Meta-Tab</em></span>
+<span class="emphasis"><em>Page-Down</em></span>
+move down five items.</p><p>
+<span class="emphasis"><em>Shift-P</em></span>,
+<span class="emphasis"><em>Home</em></span>,
+<span class="emphasis"><em>Shift-Cursor-Up</em></span>,
+<span class="emphasis"><em>Ctrl-A</em></span>
+move to the first item.</p><p>
+<span class="emphasis"><em>Shift-N</em></span>,
+<span class="emphasis"><em>End</em></span>,
+<span class="emphasis"><em>Shift-Cursor-Down</em></span>,
+<span class="emphasis"><em>Ctrl-E</em></span>
+move to the last item.</p><p>
+<span class="emphasis"><em>Meta-P</em></span>,
+<span class="emphasis"><em>Meta-Cursor-Up</em></span>,
+<span class="emphasis"><em>Ctrl-Cursor-Left</em></span>,
+<span class="emphasis"><em>Shift-Ctrl-Tab</em></span>,
+move up just below the next separator.</p><p>
+<span class="emphasis"><em>Meta-N</em></span>,
+<span class="emphasis"><em>Meta-Cursor-Down</em></span>,
+<span class="emphasis"><em>Ctrl-Cursor-Right</em></span>,
+<span class="emphasis"><em>Ctrl-Tab</em></span>,
+move down just below the next separator.</p><p><span class="emphasis"><em>Insert</em></span>
+opens the "More..." sub menu if any.</p><p><span class="emphasis"><em>Backspace</em></span>
+tears off the menu.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="menu_bindings"></a>31.1.6. Menu Bindings</h4></div></div></div><p>The keys and mouse buttons used to navigate the menu can be configured
+using the
+<a href="#Key">Key</a>
+and
+<a href="#Mouse">Mouse</a>
+commands with the special context 'M', possible combined with 'T' for
+the menu title, 'I' for other menu items, 'S' for any border or
+sidepic, '[' for left border including a left sidepic, ']' for right
+border including a right sidepic, '-' for top border, '_' for bottom
+border.  The menu context uses its own set of actions that can be bound
+to keys and mouse buttons.  These are
+<span class="emphasis"><em>MenuClose</em></span>,
+<span class="emphasis"><em>MenuCloseAndExec</em></span>,
+<span class="emphasis"><em>MenuEnterContinuation</em></span>,
+<span class="emphasis"><em>MenuEnterSubmenu</em></span>,
+<span class="emphasis"><em>MenuLeaveSubmenu</em></span>,
+<span class="emphasis"><em>MenuMoveCursor</em></span>,
+<span class="emphasis"><em>MenuCursorLeft</em></span>,
+<span class="emphasis"><em>MenuCursorRight</em></span>,
+<span class="emphasis"><em>MenuSelectItem</em></span>,
+<span class="emphasis"><em>MenuScroll</em></span> and
+<span class="emphasis"><em>MenuTearOff</em></span>.</p><p>It is not possible to override the key Escape with no modifiers for
+closing the menu. Neither is it possible to undefine mouse button 1,
+the arrow keys or the enter key for minimal navigation.</p><p><span class="emphasis"><em>MenuClose</em></span>
+exits from the current sequence of menus or destroys a tear off menu.</p><p><span class="emphasis"><em>MenuCloseAndExec</em></span>
+exits from the current sequence of menus or destroys a tear off menu and
+executes the rest of the line as a command.</p><p><span class="emphasis"><em>MenuEnterContinuation</em></span>
+opens the "More..." sub menu if any.</p><p><span class="emphasis"><em>MenuEnterSubmenu</em></span>
+enters a sub menu.</p><p><span class="emphasis"><em>MenuLeaveSubmenu</em></span>
+returns to the prior menu.</p><p><span class="emphasis"><em>MenuMoveCursor</em></span>
+<em class="replaceable"><code>n</code></em>
+[<span class="optional"><em class="replaceable"><code>m</code></em></span>]
+moves the selection to another item.  If the first argument is zero
+the second argument specifies an absolute item in the menu to move
+the pointer to. Negative items are counted from the end of the menu.
+If the first argument is non-zero, the second argument must be omitted,
+and the first argument specifies a relative change in the selected item.
+The positions may be suffixed with a 's' to indicate that the items should
+refer only to the first items after separators.</p><p><span class="emphasis"><em>MenuCursorLeft</em></span>
+enters a sub menu with the
+<a href="#MenuStyle_SubmenusLeft">SubmenusLeft</a>
+menu style, and returns to the prior menu with the
+<a href="#MenuStyle_SubmenusRight">SubmenusRight</a> menu style.</p><p><span class="emphasis"><em>MenuCursorRight</em></span>
+enters a sub menu with the
+<a href="#MenuStyle_SubmenusRight">SubmenusRight</a>
+menu style, and returns to the prior menu with the
+<a href="#MenuStyle_SubmenusLeft">SubmenusLeft</a> menu style.</p><p><span class="emphasis"><em>MenuSelectItem</em></span>
+triggers the action for the menu item.</p><p><span class="emphasis"><em>MenuScroll </em></span><em class="replaceable"><code>n</code></em>
+performs menu scrolling according to the
+<a href="#MenuStyle_MouseWheel">MouseWheel</a> menu style with
+<em class="replaceable"><code>n</code></em> items.  The distance can be
+suffixed with an 's' to indicate the items should refer only to the
+first items after separators.</p><p><span class="emphasis"><em>MenuTearOff</em></span>
+turns a normal menu into a "torn off" menu. See
+<a href="#tearoff_menus">Tear Off Menus</a>
+for details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="tearoff_menus"></a>31.1.7. Tear Off Menus</h4></div></div></div><p>A tear off menu is any menu that has been "torn off" the window it
+was attached to and pinned to the root window.  There are three
+ways to tear off a menu:  click on the menu title with mouse
+button 2, press
+<span class="keysym">Backspace</span>
+in the menu or activate its tear off bar (a horizontal bar with a
+broken line).  Tear off bars must be added to the menu as any
+other item by assigning them the command
+<a href="#TearMenuOff">TearMenuOff</a>.</p><p>The builtin tear off actions can be overridden by undefining the
+builtin menu actions bound to tear off. To remove the builtin mouse
+button 2 binding, use:</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 2 MT A -
+</pre><p>and to remove the builtin backspace binding, use:</p><pre class="programlisting">
+<a href="#Key">Key</a> Backspace M A -
+</pre><p>See the section
+<a href="#menu_bindings">Menu Bindings</a>
+for details on how to assign other bindings for tear off.</p><p>Note that prior to fvwm 2.5.20 the tear off mouse bindings were
+redefined in different way, which no longer work.</p><p>The window containing the menu is placed as any other window would
+be.  If you find it confusing to have your tear off menus appear
+at random positions on the screen, put this line in your
+configuration file:</p><pre class="programlisting">
+<a href="#Style">Style</a> fvwm_menu <a href="#Style_UsePPosition">UsePPosition</a>
+</pre><p>To remove borders and buttons from a tear-off menu but keep the
+menu title, you can use</p><pre class="programlisting">
+<a href="#Style">Style</a> fvwm_menu !<a href="#Style_Button">Button</a> 0, !<a href="#Style_Button">Button</a> 1
+<a href="#Style">Style</a> fvwm_menu !<a href="#Style_Button">Button</a> 2, !<a href="#Style_Button">Button</a> 3
+<a href="#Style">Style</a> fvwm_menu !<a href="#Style_Button">Button</a> 4, !<a href="#Style_Button">Button</a> 5
+<a href="#Style">Style</a> fvwm_menu !<a href="#Style_Button">Button</a> 6, !<a href="#Style_Button">Button</a> 7
+<a href="#Style">Style</a> fvwm_menu !<a href="#Style_Button">Button</a> 8, !<a href="#Style_Button">Button</a> 9
+<a href="#Style">Style</a> fvwm_menu <a href="#Style_Title">Title</a>, <a href="#Style_HandleWidth">HandleWidth</a> 0
+</pre><p>A tear off menu is a cross breeding between a window and a menu.
+The menu is swallowed by a window and its title is stripped off
+and displayed in the window title.  The main advantage is that the
+menu becomes permanent - activating an item does not close the
+menu.  Therefore, it can be used multiple times without reopening
+it.  To destroy such a menu, close its window or press the
+<span class="keysym">Escape</span>
+key.</p><p>Tear off menus behave somewhat differently than normal menus and
+windows.  They do not take the keyboard focus, but while the
+pointer is over one of them, all key presses are sent to the
+menu.  Other fvwm key bindings are disabled as long as the pointer
+is inside the tear off menu or one of its sub menus.  When the
+pointer leaves this area, all sub menus are closed immediately.
+Note that the window containing a tear off menu is never hilighted
+as if it had the focus.</p><p>A tear off menu is an independent copy of the menu it originated
+from.  As such, it is not affected by adding items to that menu or
+changing its menu style.</p><p>To create a tear off menu without opening the normal menu first,
+the option
+<a href="#Menu_TearOffImmediately">TearOffImmediately</a>
+can be added to the
+<a href="#Menu">Menu</a> or <a href="#Popup">Popup</a>
+command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="addtomenu"></a>31.1.8. AddToMenu</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">AddToMenu</code>   <em class="replaceable"><code>menu-name</code></em>  [<em class="replaceable"><code>menu-label</code></em> <em class="replaceable"><code>action</code></em>]</p></div><p>Begins or adds to a menu definition.  Typically a menu definition
+looks like this:</p><pre class="programlisting">
+AddToMenu Utilities Utilities <a href="#Title">Title</a>
+ + Xterm           <a href="#Exec">Exec</a>  exec xterm -e tcsh
+ + Rxvt            <a href="#Exec">Exec</a>  exec rxvt
+ + "Remote Logins" <a href="#Popup">Popup</a> Remote-Logins
+ + Top             <a href="#Exec">Exec</a>  exec rxvt -T Top -n Top -e top
+ + Calculator      <a href="#Exec">Exec</a>  exec xcalc
+ + Xman            <a href="#Exec">Exec</a>  exec xman
+ + Xmag            <a href="#Exec">Exec</a>  exec xmag
+ + emacs           <a href="#Exec">Exec</a>  exec xemacs
+ + Mail            MailFunction xmh "-font fixed"
+ + ""              <a href="#Nop">Nop</a>
+ + Modules         <a href="#Popup">Popup</a> Module-Popup
+ + ""              <a href="#Nop">Nop</a>
+ + Exit Fvwm       <a href="#Popup">Popup</a> Quit-Verify
+</pre><p>The menu could be invoked via</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 1 R A <a href="#Menu">Menu</a> Utilities Nop
+</pre><p>or</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 1 R A <a href="#Popup">Popup</a> Utilities
+</pre><p>There is no end-of-menu symbol.  Menus do not have to be defined
+in a contiguous region of the
+<code class="filename">config</code>
+file.  The quoted (or first word)
+portion in the above examples is the menu label,
+which appears in the menu when the user pops it up.  The remaining
+portion is an fvwm command which is executed if the user
+selects that menu item.  An empty menu-label ("") and the
+<a href="#Nop">Nop</a>
+function are used to insert a separator into the menu.</p><p>The keywords
+<a name="AddToMenu_DynamicPopUpAction"></a><font class="fvwmopt">DynamicPopUpAction</font>
+and
+<a name="AddToMenu_DynamicPopDownAction"></a><font class="fvwmopt">DynamicPopDownAction</font>
+have a special meaning when used as the name of a menu item.  The
+action following the keyword is executed whenever the menu is
+popped up or down.  This way you can implement dynamic menus.  It
+is even possible to destroy itself with
+<a href="#DestroyMenu">DestroyMenu</a>
+and the rebuild from scratch.  When the menu has been destroyed
+(unless you used the
+<a href="#DestroyMenu_recreate">recreate</a>
+option when destroying the menu), do not forget to add the dynamic
+action again.</p><p>Note: Do not trigger actions that require user interaction. They
+may fail and may screw up your menus.  See the
+<a href="#Silent">Silent</a>
+command.</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3>Do not issue
+<a href="#MenuStyle">MenuStyle</a>
+commands as dynamic menu actions.  Chances are good that this
+crashes fvwm.</div><p>There are several configurable scripts installed together with fvwm
+for automatic menu generation.  They have their own man pages.
+Some of them, specifically
+<span><strong class="command">fvwm-menu-directory</strong></span> and
+<span><strong class="command">fvwm-menu-desktop</strong></span>, may be used with
+<a name="AddToMenu_DynamicPopupAction"></a><font class="fvwmopt">DynamicPopupAction</font>
+to create a directory listing or <acronym class="acronym">GNOME</acronym>/<acronym class="acronym">KDE</acronym>
+application listing.</p><p>Example (File browser):</p><pre class="programlisting">
+# You can find the shell script fvwm_make_browse_menu.sh
+# in the utils/ directory of the distribution.
+AddToMenu BrowseMenu
++ DynamicPopupAction <a href="#PipeRead">PipeRead</a> \
+  'fvwm_make_browse_menu.sh BrowseMenu'
+</pre><p>Example (Picture menu):</p><pre class="programlisting">
+# Build a menu of all .jpg files in
+# $HOME/Pictures
+AddToMenu JpgMenu foo title
++ DynamicPopupAction <a href="#Function">Function</a> MakeJpgMenu
+
+<a href="#AddToFunc">AddToFunc</a> MakeJpgMenu
++ I <a href="#DestroyMenu">DestroyMenu</a> recreate JpgMenu
++ I AddToMenu JpgMenu Pictures <a href="#Title">Title</a>
++ I <a href="#PipeRead">PipeRead</a> 'for i in <code class="envar">$HOME</code>/Pictures/*.jpg; \
+  do echo AddToMenu JpgMenu "`basename $i`" <a href="#Exec">Exec</a> xv $i; done'
+</pre><p>The keyword
+<a name="AddToMenu_MissingSubmenuFunction"></a><font class="fvwmopt">MissingSubmenuFunction</font>
+has a similar meaning.  It is executed whenever you try to pop up
+a sub menu that does not exist.  With this function you can define
+and destroy menus on the fly.  You can use any command after the
+keyword, but if the name of an item (that is a submenu) defined with
+<a href="#AddToFunc">AddToFunc</a>
+follows it, fvwm executes this command:</p><pre class="programlisting"><a href="#Function">Function</a> &lt;function-name&gt; &lt;submenu-name&gt;</pre><p>i.e. the name is passed to the function as its first argument and
+can be referred to with "$0".</p><p>The
+<span><strong class="command">fvwm-menu-directory</strong></span>
+script mentioned above may be used with
+<span class="emphasis"><em>MissingSubmenuFunction</em></span>
+to create an up to date recursive directory listing.</p><p>Example:</p><pre class="programlisting">
+# There is another shell script fvwm_make_directory_menu.sh
+# in the utils/ directory of the distribution. To use it,
+# define this function in your configuration file:
+
+<a href="#DestroyFunc">DestroyFunc</a> MakeMissingDirectoryMenu
+<a href="#AddToFunc">AddToFunc</a> MakeMissingDirectoryMenu
++ I <a href="#PipeRead">PipeRead</a> fvwm_make_directory_menu.sh $0
+
+<a href="#DestroyMenu">DestroyMenu</a> SomeMenu
+AddToMenu SomeMenu
++ MissingSubmenuFunction MakeMissingDirectoryMenu
++ "Root directory" <a href="#Popup">Popup</a> /
+</pre><p>This is another implementation of the file browser that uses
+sub menus for subdirectories.</p><p>Titles can be used within the menu. If you add the option
+<a name="AddToMenu_top"></a><font class="fvwmopt">top</font>
+behind the keyword
+<a href="#Title">Title</a>,
+the title is added to the top of the menu.  If there was a title
+already, it is overwritten.</p><pre class="programlisting">AddToMenu Utilities Tools Title top</pre><p>All text up to the first
+<span class="keysym">Tab</span>
+in the menu label is aligned to the left side of the menu, all
+text right of the first
+<span class="keysym">Tab</span>
+is aligned to the left in a second column and all text thereafter
+is placed right aligned in the third column.  All other
+<span class="keysym">Tab</span>s
+are replaced by spaces.  Note that you can change this format with
+the
+<a href="#MenuStyle_ItemFormat">ItemFormat</a>
+option of the
+<a href="#MenuStyle">MenuStyle</a>
+command.</p><p>If the menu-label contains an ampersand ('&amp;'), the next character
+is taken as a hot-key for the menu item.  Hot-keys are underlined
+in the label.  To get a literal '&amp;', insert "&amp;&amp;".  Pressing the
+hot-key moves through the list of menu items with this hot-key or
+selects an item that is the only one with this hot-key.</p><p>If the menu-label contains a sub-string which is set off by stars,
+then the text between the stars is expected to be the name of an
+image file to insert in the menu.  To get a literal '*', insert "**".  For example</p><pre class="programlisting">+ Calculator*xcalc.xpm* <a href="#Exec">Exec</a> exec xcalc</pre><p>inserts a menu item labeled "Calculator" with a picture of a
+calculator above it.  The following:</p><pre class="programlisting">+ *xcalc.xpm*           <a href="#Exec">Exec</a> exec xcalc</pre><p>Omits the "Calculator" label, but leaves the picture.</p><p>If the menu-label contains a sub-string which is set off by
+percent signs, then the text between the percent signs is expected
+to be the name of image file (a so called mini icon to insert to
+the left of the menu label.  A second mini icon that is drawn at
+the right side of the menu can be given in the same way.  To get a
+literal '%', insert "%%". For example</p><pre class="programlisting">+ Calculator%xcalc.xpm% <a href="#Exec">Exec</a> exec xcalc</pre><p>inserts a menu item labeled "Calculator" with a picture of a
+calculator to the left.  The following:</p><pre class="programlisting">+ %xcalc.xpm%           <a href="#Exec">Exec</a> exec xcalc</pre><p>Omits the "Calculator" label, but leaves the picture.  The
+pictures used with this feature should be small (perhaps 16x16).</p><p>If the menu-name (not the label) contains a sub-string which is
+set off by at signs ('@'), then the text between them is expected
+to be the name of an image file to draw along the left
+side of the menu (a side pixmap).  You may want to use the
+<a href="#MenuStyle_SidePic">SidePic</a>
+option of the
+<a href="#MenuStyle">MenuStyle</a>
+command instead.  To get a literal '@', insert "@@".  For example</p><pre class="programlisting">AddToMenu StartMenu@linux-menu.xpm@</pre><p>creates a menu with a picture in its bottom left corner.</p><p>If the menu-name also contains a sub-string surrounded by '^'s, then
+the text between '^'s is expected to be the name of an X11 color
+and the column containing the side picture is colored with that
+color.  You can set this color for a menu style using the
+<a href="#MenuStyle_SideColor">SideColor</a>
+option of the
+<a href="#MenuStyle">MenuStyle</a>
+command.  To get a literal '^', insert "^^".  Example:</p><pre class="programlisting">AddToMenu StartMenu@linux-menu.xpm@^blue^</pre><p>creates a menu with a picture in its bottom left corner and
+colors with blue the region of the menu containing the picture.</p><p>In all the above cases, the name of the resulting menu is name
+specified, stripped of the substrings between the various
+delimiters.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ChangeMenuStyle"></a>31.1.9. ChangeMenuStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ChangeMenuStyle</code>   <em class="replaceable"><code>menustyle</code></em>   <em class="replaceable"><code>menu</code></em>... </p></div><p>Changes the menu style of
+<em class="replaceable"><code>menu</code></em> to <em class="replaceable"><code>menustyle</code></em>.
+You may specify more than one menu in each call of
+<span class="emphasis"><em>ChangeMenuStyle</em></span>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="CopyMenuStyle"></a>31.1.10. CopyMenuStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">CopyMenuStyle</code>   <em class="replaceable"><code>orig-menustyle</code></em>   <em class="replaceable"><code>dest-menustyle</code></em> </p></div><p>Copy
+<em class="replaceable"><code>orig-menustyle</code></em> to
+<em class="replaceable"><code>dest-menustyle</code></em>,
+where
+<em class="replaceable"><code>orig-menustyle</code></em>
+is an existing menu style.  If the menu style
+<em class="replaceable"><code>dest_menustyle</code></em>
+does not exist, then it is created.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DestroyMenu"></a>31.1.11. DestroyMenu</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DestroyMenu</code>  [recreate]  <em class="replaceable"><code>menu</code></em> </p></div><p>Deletes a menu, so that subsequent references to it are no longer
+valid.  You can use this to change the contents of a menu during
+an fvwm session.  The menu can be rebuilt using
+<a href="#AddToMenu">AddToMenu</a>.
+The optional parameter
+<a name="DestroyMenu_recreate"></a><font class="fvwmopt">recreate</font>
+tells fvwm not to throw away the menu completely but to throw away
+all the menu items (including the title).</p><pre class="programlisting">DestroyMenu Utilities</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DestroyMenuStyle"></a>31.1.12. DestroyMenuStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DestroyMenuStyle</code>   <em class="replaceable"><code>menustyle</code></em> </p></div><p>Deletes the menu style named
+<em class="replaceable"><code>menustyle</code></em>
+and changes all menus using this style to the default style, you
+cannot destroy the default menu style.</p><pre class="programlisting">DestroyMenuStyle pixmap1</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Menu"></a>31.1.13. Menu</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Menu</code>   <em class="replaceable"><code>menu-name</code></em>  [<em class="replaceable"><code>position</code></em>] [<em class="replaceable"><code>double-click-action</code></em>]</p></div><p>Causes a previously defined menu to be popped up in a sticky
+manner.  That is, if the user invokes the menu with a click action
+instead of a drag action, the menu stays up.  The command
+<em class="replaceable"><code>double-click-action</code></em>
+is invoked if the user double-clicks a button (or hits the key
+rapidly twice if the menu is bound to a key) when bringing up the
+menu.  If the double click action is not specified, double
+clicking on the menu does nothing.  However, if the menu begins
+with a menu item (i.e. not with a title or a separator) and the
+double click action is not given, double clicking invokes the
+first item of the menu (but only if the pointer really was over
+the item).</p><p>The pointer is warped to where it was when the menu was invoked if
+it was both invoked and closed with a keystroke.</p><p>The
+<em class="replaceable"><code>position</code></em>
+arguments allow placement of the menu somewhere on the screen, for
+example centered on the visible screen or above a title bar.
+Basically it works like this: you specify a
+<em class="replaceable"><code>context-rectangle</code></em>
+and an offset to this rectangle by which the upper left corner of
+the menu is moved from the upper left corner of the rectangle.
+The
+<em class="replaceable"><code>position</code></em>
+arguments consist of several parts:</p><div class="cmdsynopsis"><p>[<em class="replaceable"><code>context-rectangle</code></em>]  <em class="replaceable"><code>x</code></em>   <em class="replaceable"><code>y</code></em>  [<em class="replaceable"><code>special-options</code></em>]</p></div><p>The
+<em class="replaceable"><code>context-rectangle</code></em>
+can be one of:</p><div class="variablelist"><dl><dt><span class="term"><a name="Menu_Root"></a><font class="fvwmopt">Root</font></span></dt><dd><p>the root window of the current screen.</p></dd><dt><span class="term"><a name="Menu_XineramaRoot"></a><font class="fvwmopt">XineramaRoot</font></span></dt><dd><p>the root window of the whole Xinerama screen.  Equivalent to "root" when Xinerama is not used.</p></dd><dt><span class="term"><a name="Menu_Mouse"></a><font class="fvwmopt">Mouse</font></span></dt><dd><p>a 1x1 rectangle at the mouse position.</p></dd><dt><span class="term"><a name="Menu_Window"></a><font class="fvwmopt">Window</font></span></dt><dd><p>the frame of the context window.</p></dd><dt><span class="term"><a name="Menu_Interior"></a><font class="fvwmopt">Interior</font></span></dt><dd><p>the inside of the context window.</p></dd><dt><span class="term"><a name="Menu_Title"></a><font class="fvwmopt">Title</font></span></dt><dd><p>the title of the context window or icon.</p></dd><dt><span class="term"><a name="Menu_Button"></a><font class="fvwmopt">Button</font>&lt;n&gt;</span></dt><dd><p>button #n of the context window.</p></dd><dt><span class="term"><a name="Menu_Icon"></a><font class="fvwmopt">Icon</font></span></dt><dd><p>the icon of the context window.</p></dd><dt><span class="term"><a name="Menu_Menu"></a><font class="fvwmopt">Menu</font></span></dt><dd><p>the current menu.</p></dd><dt><span class="term"><a name="Menu_Item"></a><font class="fvwmopt">Item</font></span></dt><dd><p>the current menu item.</p></dd><dt><span class="term"><a name="Menu_Context"></a><font class="fvwmopt">Context</font></span></dt><dd><p>the current window, menu or icon.</p></dd><dt><span class="term"><a name="Menu_This"></a><font class="fvwmopt">This</font></span></dt><dd><p>whatever widget the pointer is on (e.g. a corner of a window or the root window).</p></dd><dt><span class="term"><a name="Menu_Rectangle"></a><font class="fvwmopt">Rectangle</font> &lt;<em class="replaceable"><code>geometry</code></em>&gt;</span></dt><dd><p>the rectangle defined by &lt;<em class="replaceable"><code>geometry</code></em>&gt; in X geometry format.  Width and height default to 1 if omitted.</p></dd></dl></div><p>If the context-rectangle is omitted or illegal (e.g. "item" on a
+window), "Mouse" is the default.  Note that not all of these make
+sense under all circumstances (e.g. "Icon" if the pointer is on a
+menu).</p><p>The offset values
+<em class="replaceable"><code>x</code></em>
+and
+<em class="replaceable"><code>y</code></em>
+specify how far the menu is moved from its default position.  By
+default, the numeric value given is interpreted as a percentage of
+the context rectangle's width (height), but with a trailing
+'<a name="Menu_m"></a><font class="fvwmopt">m</font>'
+the menu's width (height) is used instead.  Furthermore a trailing
+'<a name="Menu_p"></a><font class="fvwmopt">p</font>'
+changes the interpretation to mean pixels.</p><p>Instead of a single value you can use a list of values.  All
+additional numbers after the first one are separated from their
+predecessor by their sign.  Do not use any other separators.</p><p>If
+<em class="replaceable"><code>x</code></em> or <em class="replaceable"><code>y</code></em>
+are prefixed with "'<a name="Menu_o"></a><font class="fvwmopt">o</font>&lt;number&gt;" where &lt;number&gt; is an integer, the
+menu and the rectangle are moved to overlap at the specified
+position before any other offsets are applied.  The menu and the
+rectangle are placed so that the pixel at &lt;number&gt; percent of the
+rectangle's width/height is right over the pixel at &lt;number&gt;
+percent of the menu's width/height. So "o0" means that the
+top/left borders of the menu and the rectangle overlap, with
+"o100" it's the bottom/right borders and if you use "o50" they are
+centered upon each other (try it and you will see it is much
+simpler than this description).  The default is "o0".  The prefix
+"o&lt;number&gt;" is an abbreviation for "+&lt;number&gt;-&lt;number&gt;m".</p><p>A prefix of
+'<a name="Menu_c"></a><font class="fvwmopt">c</font>'
+is equivalent to "o50".  Examples:</p><pre class="programlisting">
+# window list in the middle of the screen
+<a href="#WindowList">WindowList</a> Root c c
+
+# menu to the left of a window
+Menu name window -100m c+0
+
+# popup menu 8 pixels above the mouse pointer
+<a href="#Popup">Popup</a> name mouse c -100m-8p
+
+# somewhere on the screen
+Menu name rectangle 512x384+1+1 +0 +0
+
+# centered vertically around a menu item
+<a href="#AddToMenu">AddToMenu</a> foobar-menu
+ + "first item" <a href="#Nop">Nop</a>
+ + "special item" <a href="#Popup">Popup</a> "another menu" item +100 c
+ + "last item" <a href="#Nop">Nop</a>
+
+# above the first menu item
+<a href="#AddToMenu">AddToMenu</a> foobar-menu
+ + "first item" <a href="#Popup">Popup</a> "another menu" item +0 -100m
+</pre><p>Note that you can put a sub menu far off the current menu so you
+could not reach it with the mouse without leaving the menu.  If
+the pointer leaves the current menu in the general direction of
+the sub menu the menu stays up.</p><p>The
+<em class="replaceable"><code>special-options</code></em>:</p><p>To create a tear off menu without opening the normal menu, add the
+option
+<a name="Menu_TearOffImmediately"></a><font class="fvwmopt">TearOffImmediately</font>.
+Normally the menu opens in normal state for a split second before
+being torn off.  As tearing off places the menu like any other
+window, a position should be specified explicitly:</p><pre class="programlisting">
+# Forbid fvwm to place the menu window
+<a href="#Style">Style</a> &lt;name of menu&gt; UsePPosition
+# Menu at top left corner of screen
+Menu Root 0p 0p TearOffImmediately
+</pre><p>The
+<a href="#MenuStyle_Animated">Animated</a> and
+<a href="#MenuStyle_Mwm">Mwm</a> or
+<a href="#MenuStyle_Win">Win</a>
+menu styles may move a menu somewhere else on the screen.  If you
+do not want this you can add
+<a name="Menu_Fixed"></a><font class="fvwmopt">Fixed</font>
+as an option.  This might happen for example if you want the menu
+always in the top right corner of the screen.</p><p>Where do you want a menu to appear when you click on its menu
+item? The default is to place the title under the cursor, but if
+you want it where the position arguments say, use the
+<a name="Menu_SelectInPlace"></a><font class="fvwmopt">SelectInPlace</font>
+option.  If you want the pointer on the title of the menu, use
+<a name="Menu_SelectWarp"></a><font class="fvwmopt">SelectWarp</font>
+too.  Note that these options apply only if the
+<a href="#MenuStyle_PopupAsRootMenu">PopupAsRootMenu</a> <a href="#MenuStyle">MenuStyle</a>
+option is used.</p><p>The pointer is warped to the title of a sub menu whenever the
+pointer would be on an item when the sub menu is popped up
+(<span class="emphasis"><em>fvwm</em></span>
+menu style) or never warped to the title at all
+(<a href="#MenuStyle_Mwm">Mwm</a> or
+<a href="#MenuStyle_Win">Win</a>
+menu styles).  You can force (forbid) warping whenever the
+sub menu is opened with the
+<a name="Menu_WarpTitle"></a><font class="fvwmopt">WarpTitle</font> (<a name="Menu_NoWarp"></a><font class="fvwmopt">NoWarp</font>) option.</p><p>Note that the
+<em class="replaceable"><code>special-options</code></em>
+do work with a normal menu that has no other position arguments.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="MenuStyle"></a>31.1.14. MenuStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">MenuStyle</code>   <em class="replaceable"><code>stylename</code></em>  [<em class="replaceable"><code>options</code></em>]</p></div><p>Sets a new menu style or changes a previously defined style.  The
+<em class="replaceable"><code>stylename</code></em>
+is the style name; if it contains spaces or tabs it has to be
+quoted.  The name "*" is reserved for the default menu style. The
+default menu style is used for every menu-like object (e.g. the
+window created by the
+<a href="#WindowList">WindowList</a>
+command) that had not be assigned a style using the
+<a href="#ChangeMenuStyle">ChangeMenuStyle</a>.
+See also
+<a href="#DestroyMenuStyle">DestroyMenuStyle</a>.
+When using monochrome color options are ignored.</p><p><em class="replaceable"><code>options</code></em>
+is a comma separated list containing some of the keywords
+Fvwm / Mwm / Win,
+BorderWidth,
+Foreground,
+Background,
+Greyed,
+HilightBack / !HilightBack,
+HilightTitleBack,
+ActiveFore / !ActiveFore,
+MenuColorset,
+ActiveColorset,
+GreyedColorset,
+TitleColorset,
+Hilight3DThick / Hilight3DThin / Hilight3DOff,
+Hilight3DThickness,
+Animation / !Animation,
+Font,
+TitleFont,
+MenuFace,
+PopupDelay,
+PopupOffset,
+TitleWarp / !TitleWarp,
+TitleUnderlines0 / TitleUnderlines1 / TitleUnderlines2,
+SeparatorsLong / SeparatorsShort,
+TrianglesSolid / TrianglesRelief,
+PopupImmediately / PopupDelayed,
+PopdownImmediately / PopdownDelayed,
+PopupActiveArea,
+DoubleClickTime,
+SidePic,
+SideColor,
+PopupAsRootMenu / PopupAsSubmenu / PopupIgnore / PopupClose,
+RemoveSubmenus / HoldSubmenus,
+SubmenusRight / SubmenusLeft,
+SelectOnRelease,
+ItemFormat,
+VerticalItemSpacing,
+VerticalMargins,
+VerticalTitleSpacing,
+AutomaticHotkeys / !AutomaticHotkeys,
+UniqueHotkeyActivatesImmediate / !UniqueHotkeyActivatesImmediate,
+MouseWheel,
+ScrollOffPage / !ScrollOffPage,
+TrianglesUseFore / !TrianglesUseFore.</p><p>In the above list some options are listed as option pairs or
+triples with a '/' in between.  These options exclude each other.
+All paired options can be negated to have the effect of the
+counterpart option by prefixing ! to the option.</p><p>Some options are now negated by prefixing ! to the option. This
+is the preferred form for all such options. The other negative
+forms are now deprecated and will be removed in the future.</p><p>This is a list of MenuStyle deprecated negative options:
+ActiveForeOff, AnimationOff, AutomaticHotkeysOff, HilightBackOff,
+TitleWarpOff</p><p>
+<a name="MenuStyle_Fvwm"></a><font class="fvwmopt">Fvwm</font>,
+<a name="MenuStyle_Mwm"></a><font class="fvwmopt">Mwm</font>,
+<a name="MenuStyle_Win"></a><font class="fvwmopt">Win</font>
+reset all options to the style with the same name in former
+versions of fvwm.  The default for new menu styles is
+<span class="emphasis"><em>Fvwm</em></span>
+style.  These options override all others except
+<span class="emphasis"><em>Foreground</em></span>, <span class="emphasis"><em>Background</em></span>, <span class="emphasis"><em>Greyed</em></span>, <span class="emphasis"><em>HilightBack</em></span>,
+<span class="emphasis"><em>ActiveFore</em></span> and <span class="emphasis"><em>PopupDelay</em></span>,
+so they should be used only as the first option specified for a
+menu style or to reset the style to defined behavior.  The same
+effect can be created by setting all the other options one by one.</p><p><span class="emphasis"><em>Mwm</em></span> and <span class="emphasis"><em>Win</em></span>
+style menus popup sub menus automatically.
+<span class="emphasis"><em>Win</em></span>
+menus indicate the current menu item by changing the background to
+dark.
+<span class="emphasis"><em>Fvwm</em></span>
+sub menus overlap the parent menu,
+<span class="emphasis"><em>Mwm</em></span> and <span class="emphasis"><em>Win</em></span>
+style menus never overlap the parent menu.</p><p><span class="emphasis"><em>Fvwm</em></span>
+style is equivalent to !HilightBack, Hilight3DThin,
+!ActiveFore,
+!Animation, Font, MenuFace, PopupOffset 0 67,
+TitleWarp, TitleUnderlines1, SeparatorsShort, TrianglesRelief,
+PopupDelayed, PopdownDelayed, PopupDelay 150, PopdownDelay 150,
+PopupAsSubmenu, HoldSubmenus,
+SubmenusRight, BorderWidth 2, !AutomaticHotkeys,
+UniqueHotkeyActivatesImmediate,
+PopupActiveArea 75.</p><p><span class="emphasis"><em>Mwm</em></span>
+style is equivalent to !HilightBack, Hilight3DThick,
+!ActiveFore,
+!Animation, Font, MenuFace, PopupOffset -3 100,
+!TitleWarp, TitleUnderlines2, SeparatorsLong, TrianglesRelief,
+PopupImmediately, PopdownDelayed, PopdownDelay 150,
+PopupAsSubmenu, HoldSubmenus, SubmenusRight, BorderWidth 2,
+UniqueHotkeyActivatesImmediate,
+!AutomaticHotkeys, PopupActiveArea 75.</p><p><span class="emphasis"><em>Win</em></span>
+style is equivalent to HilightBack, Hilight3DOff, ActiveFore,
+!Animation, Font, MenuFace, PopupOffset -5 100, !TitleWarp,
+TitleUnderlines1, SeparatorsShort, TrianglesSolid,
+PopupImmediately, PopdownDelayed, PopdownDelay 150,
+PopupAsSubmenu, RemoveSubmenus, SubmenusRight, BorderWidth 2,
+UniqueHotkeyActivatesImmediate,
+!AutomaticHotkeys, PopupActiveArea 75.</p><p>
+<a name="MenuStyle_BorderWidth"></a><font class="fvwmopt">BorderWidth</font>
+takes the thickness of the border around the menus in pixels. It
+may be zero to 50 pixels.  The default is 2.  Using an illegal
+value reverts the border width to the default.</p><p>
+<a name="MenuStyle_Foreground"></a><font class="fvwmopt">Foreground</font> and
+<a name="MenuStyle_Background"></a><font class="fvwmopt">Background</font>
+may have a color name as an argument.  This color is used for menu
+text or the menu's background.  You can omit the color name to
+reset these colors to the built-in default.</p><p>
+<a name="MenuStyle_Greyed"></a><font class="fvwmopt">Greyed</font>
+may have a color name as an argument.  This color is the one used
+to draw a menu-selection which is prohibited (or not recommended)
+by the Mwm hints which an application has specified. If the color
+is omitted the color of greyed menu entries is based on the
+background color of the menu.</p><p>
+<a name="MenuStyle_HilightBack"></a><font class="fvwmopt">HilightBack</font> and
+<span class="emphasis"><em>!HilightBack</em></span>
+switch hilighting the background of the selected menu item on and
+off.  A specific background color may be used by providing the
+color name as an argument to
+<span class="emphasis"><em>HilightBack</em></span>.
+If you use this option without an argument the color is based on
+the menu's background color.  The
+<span class="emphasis"><em>ActiveColorset</em></span>
+option overrides the specified color. If the colorset has a
+non solid background it is used for the hilighting.</p><p>
+<a name="MenuStyle_HilightTitleBack"></a><font class="fvwmopt">HilightTitleBack</font>
+switches hilighting the background of menu titles on.  If a
+<span class="emphasis"><em>TitleColorset</em></span>
+was used, the background colour is taken from there.  Otherwise
+the color is based on the menu's background color. If the colorset
+has a non solid background it is used for the hilighting.</p><p>
+<a name="MenuStyle_ActiveFore"></a><font class="fvwmopt">ActiveFore</font> and
+<span class="emphasis"><em>!ActiveFore</em></span>
+switch hilighting the foreground of the selected menu item on and
+off.  A specific foreground color may be used by providing the
+color name as an argument to
+<span class="emphasis"><em>ActiveFore</em></span>.
+Omitting the color turns hilighting on when an
+<span class="emphasis"><em>ActiveColorset</em></span>
+is used.
+<span class="emphasis"><em>ActiveFore</em></span>
+turns off hilighting the foreground completely.  The
+<span class="emphasis"><em>ActiveColorset</em></span>
+option overrides the specified color.</p><p>
+<a name="MenuStyle_MenuColorset"></a><font class="fvwmopt">MenuColorset</font>
+controls if a colorset is used instead of the
+<span class="emphasis"><em>Foreground</em></span>, <span class="emphasis"><em>Background</em></span> and <span class="emphasis"><em>MenuFace</em></span>
+menu styles.  If the
+<span class="emphasis"><em>MenuColorset</em></span>
+keyword is followed by a number equal to zero or greater, this
+number is taken as the number of the colorset to use.  If the
+number is omitted, the colorset is switched off and the regular
+menu styles are used again.  The foreground and background colors
+of the menu items are replaced by the colors from the colorset. If
+the colorset has a pixmap defined, this pixmap is used as the
+background of the menu.  Note that the
+<span class="emphasis"><em>MenuFace</em></span>
+menu style has been optimized for memory consumption and may use
+less memory than the background from a colorset.  The shape mask
+from the colorset is used to shape the menu.  Please refer to the
+<a href="#colorsets">Colorsets</a>
+section for details about colorsets.</p><p>
+<a name="MenuStyle_ActiveColorset"></a><font class="fvwmopt">ActiveColorset</font>
+works exactly like
+<span class="emphasis"><em>MenuColorset</em></span>,
+but the foreground from the colorset replaces the color given with
+the
+<span class="emphasis"><em>ActiveFore</em></span>
+menu style and the colorset's background color replaces the color
+given with the
+<span class="emphasis"><em>HilightBack</em></span>
+command (to turn on background hilighting you have to use the
+<span class="emphasis"><em>HilightBack</em></span>
+menu style too).  If specified, the hilight and shadow colors
+from the colorset are used too.  The pixmap and shape mask from
+the colorset are not used.  Hilighting the background or
+foreground can be turned off individually with the
+<span class="emphasis"><em>!ActiveFore</em></span> or <span class="emphasis"><em>!HilightBack</em></span>
+menu styles.</p><p>
+<a name="MenuStyle_GreyedColorset"></a><font class="fvwmopt">GreyedColorset</font>
+works exactly like
+<span class="emphasis"><em>MenuColorset</em></span>,
+but the foreground from the colorset replaces the color given with
+the
+<span class="emphasis"><em>Greyed</em></span>
+menu style.  No other parts of the colorset are used.</p><p>
+<a name="MenuStyle_TitleColorset"></a><font class="fvwmopt">TitleColorset</font>
+works exactly like
+<span class="emphasis"><em>MenuColorset</em></span>,
+but is used only for menu titles.</p><p>
+<a name="MenuStyle_Hilight3DThick"></a><font class="fvwmopt">Hilight3DThick</font>,
+<a name="MenuStyle_Hilight3DThin"></a><font class="fvwmopt">Hilight3DThin</font> and
+<a name="MenuStyle_Hilight3DOff"></a><font class="fvwmopt">Hilight3DOff</font>
+determine if the selected menu item is hilighted with a 3D
+relief. Thick reliefs are two pixels wide, thin reliefs are one
+pixel wide.</p><p>
+<a name="MenuStyle_Hilight3DThickness"></a><font class="fvwmopt">Hilight3DThickness</font>
+takes one numeric argument that may be between -50 and +50
+pixels. With negative values the menu item gets a pressed in look.
+The above three commands are equivalent to a thickness of 2, 1 and
+0.</p><p>
+<a name="MenuStyle_Animation"></a><font class="fvwmopt">Animation</font> and
+<span class="emphasis"><em>!Animation</em></span>
+turn menu animation on or off.  When animation is on, sub menus
+that do not fit on the screen cause the parent menu to be shifted
+to the left so the sub menu can be seen.</p><p>
+<a name="MenuStyle_Font"></a><font class="fvwmopt">Font</font> and
+<a name="MenuStyle_TitleFont"></a><font class="fvwmopt">TitleFont</font>
+take a font name as an argument.  If a font by this name exists
+it is used for the text of all menu items.  If it does not exist
+or if the name is left blank the built-in default is used.  If a
+<span class="emphasis"><em>TitleFont</em></span>
+is given, it is used for all menu titles instead of the normal font.</p><p>
+<a name="MenuStyle_MenuFace"></a><font class="fvwmopt">MenuFace</font>
+enforces a fancy background upon the menus.  You can use the same
+options for
+<span class="emphasis"><em>MenuFace</em></span>
+as for the
+<a href="#ButtonStyle">ButtonStyle</a>.
+See description of
+<a href="#ButtonStyle">ButtonStyle</a>
+command and the
+
+<a href="#color_gradients">Color Gradients</a>
+sections for more information.  If you use
+<span class="emphasis"><em>MenuFace</em></span>
+without arguments the style is reverted back to normal.</p><p>Some examples of MenuFaces are:</p><pre class="programlisting">
+MenuFace DGradient 128 2 lightgrey 50 blue 50 white
+MenuFace TiledPixmap texture10.xpm
+MenuFace HGradient 128 2 Red 40 Maroon 60 White
+MenuFace Solid Maroon
+</pre><p>Note: The gradient styles H, V, B and D are optimized for high
+speed and low memory consumption in menus.  This is not the case
+for all the other gradient styles.  They may be slow and consume
+huge amounts of memory, so if you encounter performance problems
+with them you may be better off by not using them.  To improve
+performance you can try one or all of the following:</p><p>Turn hilighting of the active menu item other than foreground
+color off:</p><pre class="programlisting">
+MenuStyle &lt;style&gt; Hilight3DOff, !HilightBack
+MenuStyle &lt;style&gt; ActiveFore &lt;preferred color&gt;
+</pre><p>Make sure sub menus do not overlap the parent menu. This can
+prevent menus being redrawn every time a sub menu pops up or down.</p><pre class="programlisting">
+MenuStyle &lt;style&gt; PopupOffset 1 100
+</pre><p>Run your X server with backing storage.  If your X Server is
+started with the -bs option, turn it off.  If not try the -wm
+and +bs options:</p><span><strong class="command">startx -- -wm +bs</strong></span><p>You may have to adapt this example to your system (e.g. if you use
+xinit to start X).</p><p>
+<a name="MenuStyle_PopupDelay"></a><font class="fvwmopt">PopupDelay</font>
+requires one numeric argument.  This value is the delay in
+milliseconds before a sub menu is popped up when the pointer moves
+over a menu item that has a sub menu.  If the value is zero no
+automatic pop up is done.  If the argument is omitted the built-in
+default is used. Note that the popup delay has no effect if the
+<span class="emphasis"><em>PopupImmediately</em></span>
+option is used since sub menus pop up immediately then.</p><p>
+<a name="MenuStyle_PopupImmediately"></a><font class="fvwmopt">PopupImmediately</font>
+makes menu items with sub menus pop up it up as soon as the
+pointer enters the item.  The
+<span class="emphasis"><em>PopupDelay option</em></span>
+is ignored then.  If
+<span class="emphasis"><em>PopupDelayed</em></span>
+is used fvwm looks at the
+<span class="emphasis"><em>PopupDelay</em></span>
+option if or when this automatic popup happens.</p><p>
+<a name="MenuStyle_PopdownDelay"></a><font class="fvwmopt">PopdownDelay</font>
+works exactly like
+<span class="emphasis"><em>PopupDelay</em></span>
+but determines the timeout of the
+<span class="emphasis"><em>PopupDelayed</em></span>
+style.</p><p>
+<a name="MenuStyle_PopdownImmediately"></a><font class="fvwmopt">PopdownImmediately</font>
+makes sub menus vanish as soon as the pointer leaves the sub menu
+and the correspondent item in the parent menu.  With the opposite
+option
+<span class="emphasis"><em>PopdownDelayed</em></span>
+the sub menu only pops down after the time specified with the
+<span class="emphasis"><em>PopdownDelay</em></span>
+option.  This comes handy when the pointer often strays off the
+menu item when trying to move into the sub menu.  Whenever there
+is a conflict between the
+<span class="emphasis"><em>PopupImmediately</em></span>, <span class="emphasis"><em>PopupDelayed</em></span>, <span class="emphasis"><em>PopupDelay</em></span>
+styles and the
+<span class="emphasis"><em>PopdownImmediately</em></span>, <span class="emphasis"><em>PopdownDelayed</em></span>, <span class="emphasis"><em>PopdownDelay</em></span>
+styles, the
+<span class="emphasis"><em>Popup...</em></span>
+styles win when using mouse navigation and the
+<span class="emphasis"><em>Popdown...</em></span>
+styles win when navigating with the keyboard.</p><p>
+<a name="MenuStyle_PopupOffset"></a><font class="fvwmopt">PopupOffset</font>
+requires two integer arguments.  Both values affect where sub
+menus are placed relative to the parent menu.  If both values are
+zero, the left edge of the sub menu overlaps the left edge of the
+parent menu.  If the first value is non-zero the sub menu is
+shifted that many pixels to the right (or left if negative).  If
+the second value is non-zero the menu is moved by that many
+percent of the parent menu's width to the right or left.</p><p>
+<a name="MenuStyle_PopupActiveArea"></a><font class="fvwmopt">PopupActiveArea</font>
+requires an integer value between 51 and 100.  Normally, when the
+pointer is over a menu item with a sub menu and the pointer enters
+the area that starts at 75% of the menu width, the sub menu is
+shown immediately.  This percentage can be changed with
+<span class="emphasis"><em>PopupActiveArea</em></span>.
+Setting this value to 100 disables this kind of automatic popups
+altogether.  The default value is restored if no or an illegal
+value is given.</p><p>
+<a name="MenuStyle_TitleWarp"></a><font class="fvwmopt">TitleWarp</font> and <span class="emphasis"><em>!TitleWarp</em></span>
+affect if the pointer warps to the menu title when a sub menu is
+opened or not. Note that regardless of this setting the pointer is
+not warped if the menu does not pop up under the pointer.</p><p>
+<a name="MenuStyle_TitleUnderlines0"></a><font class="fvwmopt">TitleUnderlines0</font>,
+<a name="MenuStyle_TitleUnderlines1"></a><font class="fvwmopt">TitleUnderlines1</font> and
+<a name="MenuStyle_TitleUnderlines2"></a><font class="fvwmopt">TitleUnderlines2</font>
+specify how many lines are drawn below a menu title.</p><p>
+<a name="MenuStyle_SeparatorsLong"></a><font class="fvwmopt">SeparatorsLong</font> and
+<a name="MenuStyle_SeparatorsShort"></a><font class="fvwmopt">SeparatorsShort</font>
+set the length of menu separators.  Long separators run from the
+left edge all the way to the right edge.  Short separators leave a
+few pixels to the edges of the menu.</p><p>
+<a name="MenuStyle_TrianglesSolid"></a><font class="fvwmopt">TrianglesSolid</font> and
+<a name="MenuStyle_TrianglesRelief"></a><font class="fvwmopt">TrianglesRelief</font>
+affect how the small triangles for sub menus is drawn.  Solid
+triangles are filled with a color while relief triangles are
+hollow.</p><p>
+<a name="MenuStyle_DoubleClickTime"></a><font class="fvwmopt">DoubleClickTime</font>
+requires one numeric argument.  This value is the time in
+milliseconds between two mouse clicks in a menu to be considered
+as a double click.  The default is 450 milliseconds.  If the
+argument is omitted the double click time is reset to this
+default.</p><p>
+<a name="MenuStyle_SidePic"></a><font class="fvwmopt">SidePic</font>
+takes the name of an image file as an argument. The
+picture is drawn along the left side of the menu.  The
+<span class="emphasis"><em>SidePic</em></span>
+option can be overridden by a menu specific side pixmap (see
+<a href="#AddToMenu">AddToMenu</a>).
+If the file name is omitted an existing side pixmap is removed from
+the menu style.</p><p>
+<a name="MenuStyle_SideColor"></a><font class="fvwmopt">SideColor</font>
+takes the name of an X11 color as an argument. This color is used
+to color the column containing the side picture (see
+above). The SideColor option can be overridden by a menu specific
+side color (see
+<a href="#AddToMenu">AddToMenu</a>).
+If the color name is omitted the side color option is switched off.</p><p>
+<a name="MenuStyle_PopupAsRootMenu"></a><font class="fvwmopt">PopupAsRootMenu</font>,
+<a name="MenuStyle_PopupAsSubmenu"></a><font class="fvwmopt">PopupAsSubmenu</font>,
+<a name="MenuStyle_PopupIgnore"></a><font class="fvwmopt">PopupIgnore</font> and
+<a name="MenuStyle_PopupClose"></a><font class="fvwmopt">PopupClose</font>
+change the behavior when you click on a menu item that opens a
+sub menu. With
+<span class="emphasis"><em>PopupAsRootMenu</em></span>
+the original menu is closed before the sub menu appears, with
+<span class="emphasis"><em>PopupAsSubmenu</em></span>
+it is not, so you can navigate back into the
+parent menu.  Furthermore, with
+<span class="emphasis"><em>PopupAsSubmenu</em></span>
+the sub menu is held open (posted) regardless of where you move
+the mouse.  Depending on your menu style this may simplify
+navigating through the menu.  <a href="#Any">Any</a> keystroke while a menu is posted
+reverts the menu back to the normal behavior.  With
+<span class="emphasis"><em>PopupClose</em></span>
+the menu is closed when a sub menu item is activated, and the menu
+stays open if
+<span class="emphasis"><em>PopupIgnore</em></span>
+is used (even if the menu was invoked with the
+<a href="#Popup">Popup</a>
+command).
+<span class="emphasis"><em>PopupAsSubmenu</em></span>
+is the default.</p><p>
+<a name="MenuStyle_RemoveSubmenus"></a><font class="fvwmopt">RemoveSubmenus</font>
+instructs fvwm to remove sub menu when you move back into the
+parent menu.  With
+<a name="MenuStyle_HoldSubmenus"></a><font class="fvwmopt">HoldSubmenus</font>
+the sub menu remains visible.  You probably want to use
+<span class="emphasis"><em>HoldSubmenus</em></span>
+if you are using the
+<span class="emphasis"><em>PopupDelayed</em></span>
+style.
+<span class="emphasis"><em>RemoveSubmenus</em></span>
+affects menu navigation with the keyboard.</p><p>
+<a name="MenuStyle_SelectOnRelease"></a><font class="fvwmopt">SelectOnRelease</font>
+takes an optional key name as an argument.  If the given key is
+released in a menu using this style, the current menu item is
+selected.  This is intended for
+<span class="keysym">Alt-Tab</span>
+<a href="#WindowList">WindowList</a>
+navigation.
+The key name is a standard X11 key name as defined in
+<code class="filename">/usr/include/X11/keysymdef.h</code>,
+(without the
+<span class="emphasis"><em>XK_</em></span>
+prefix), or the keysym database
+<code class="filename">/usr/X11R6/lib/X11/XKeysymDB</code>.
+To disable this behavior, omit
+the key name.</p><p>Note: Some X servers do not support KeyRelease events.
+<span class="emphasis"><em>SelectOnRelease</em></span>
+does not work on such a machine.</p><p>
+<a name="MenuStyle_ItemFormat"></a><font class="fvwmopt">ItemFormat</font>
+takes a special string as its argument that determines the layout
+of the menu items.  Think of the format string as if it were a
+menu item. All you have to do is tell fvwm where to place the
+different parts of the menu item (i.e. the labels, the triangle
+denoting a sub menu, the mini icons and the side pic) in the blank
+area.  The string consists of spaces,
+<span class="keysym">Tab</span>
+characters and formatting directives beginning with '%'. Any
+illegal characters and formatting directives are silently ignored:</p><div class="variablelist"><dl><dt><span class="term"><span class="emphasis"><em>%l</em></span>,
+	  <span class="emphasis"><em>%c</em></span>
+	  and <span class="emphasis"><em>%r</em></span></span></dt><dd><p>Insert the next item label. Up to three labels
+	can be used. The item column is left-aligned
+	(<span class="emphasis"><em>%l</em></span>), centered
+	(<span class="emphasis"><em>%c</em></span>) or right-aligned
+	(<span class="emphasis"><em>%r</em></span>).</p></dd><dt><span class="term"><span class="emphasis"><em>%i</em></span></span></dt><dd><p>Inserts the mini icon.</p></dd><dt><span class="term"><span class="emphasis"><em>%&gt;</em></span>
+	and <span class="emphasis"><em>%&lt;</em></span></span></dt><dd><p>Insert the sub menu triangle pointing either
+	to the right (<span class="emphasis"><em>%&gt;</em></span>) or to the
+	left (<span class="emphasis"><em>%&lt;</em></span>).</p></dd><dt><span class="term"><span class="emphasis"><em>%|</em></span></span></dt><dd><p>The first <span class="emphasis"><em>%|</em></span> denotes
+	    the beginning of the area that is highlighted either with
+	    a background color or a relief (or both). The
+	    second <span class="emphasis"><em>%|</em></span> marks the end of
+	    this area.  <span class="emphasis"><em>%|</em></span> can be used
+	    up to twice in the string.  If you do not add one or both
+	    of them, fvwm sets the margins to the margins of the whole
+	    item (not counting the side picture).</p></dd><dt><span class="term"><span class="emphasis"><em>%s</em></span></span></dt><dd><p>Places the side picture either at the
+	beginning or the end of the menu. This directive may be used
+	only once and only as the first or last in the format
+	string. If the <span class="emphasis"><em>%s</em></span> is not at the
+	beginning of the string, menus are not drawn
+	properly.</p></dd><dt><span class="term"><span class="emphasis"><em>Space</em></span>,
+	  <span class="emphasis"><em>Tab</em></span>,
+	  <span class="emphasis"><em>%Space</em></span>
+	  and <span class="emphasis"><em>%Tab</em></span></span></dt><dd><p>Add gap of one space, or a tab, using the
+	width of the menu font. When using a tab, the size of the gap
+	can be one to 8 spaces since the tab position is a multiple of
+	8 from the edge of the menu. The whole string must be quoted
+	if spaces or tabs are used.</p></dd><dt><span class="term"><span class="emphasis"><em>%p</em></span></span></dt><dd><p>Like Space and
+	Tab <span class="emphasis"><em>%p</em></span> inserts an empty area
+	into the item, but with better control of its size (see
+	below).</p></dd></dl></div><p>You can define an additional space before and after each of the
+objects like this:</p><pre class="programlisting">
+<span class="emphasis"><em>%</em></span><em class="replaceable"><code>left</code></em><span class="emphasis"><em>.</em></span><em class="replaceable"><code>right</code></em><span class="emphasis"><em>p</em></span>
+</pre><p>This means: if the object is defined in the menu (e.g. if it is
+<span class="emphasis"><em>%s</em></span>
+and you use a side picture, or it is
+<span class="emphasis"><em>%l</em></span>
+for the third column and there are items defined that actually
+have a third column), then add
+<em class="replaceable"><code>left</code></em>
+pixels before the object and
+<em class="replaceable"><code>right</code></em>
+pixels after it.  You may leave out the
+<em class="replaceable"><code>left</code></em>
+or the <span class="emphasis"><em>.right</em></span>
+parts if you do not need them.  All values up to the screen width
+are allowed.  Even negative values can be used with care.  The
+<span class="emphasis"><em>p</em></span>
+may be replaced with any other formatting directives described
+above.</p><p>Note: Only items defined in the format string are visible in the
+menus. So if you do not put a
+<span class="emphasis"><em>%s</em></span>
+in there you do not see a side picture, even if one is specified.</p><p>Note: The
+<span class="emphasis"><em>SubmenusLeft</em></span>
+style changes the default
+<span class="emphasis"><em>ItemFormat</em></span>
+string, but if it was set manually it is not modified.</p><p>Note: If any unformatted title of the menu is wider than the
+widest menu item, the spaces between the different parts of the
+menu items are enlarged to match the width of the title.  Leading
+left aligned objects in the format string
+(<span class="emphasis"><em>%l</em></span>, <span class="emphasis"><em>%i</em></span>,
+<span class="emphasis"><em>%&lt;</em></span>, first <span class="emphasis"><em>%|</em></span>)
+stick to the left edge of the menu and trailing right aligned
+objects
+(<span class="emphasis"><em>%r</em></span>, <span class="emphasis"><em>%i</em></span>,
+<span class="emphasis"><em>%&gt;</em></span>, second <span class="emphasis"><em>%|</em></span>)
+stick to the right edge.  The gaps between the remaining items are
+enlarged equally.</p><p>Examples:</p><pre class="programlisting">
+MenuStyle * ItemFormat "%.4s%.1|%.5i%.5l%.5l%.5r%.5i%2.3&gt;%1|"
+</pre><p>Is the default string used by fvwm: (side picture + 4 pixels gap)
+(beginning of the hilighted area + 1 pixel gap) (mini icon + 5p)
+(first column left aligned + 5p) (second column left aligned + 5p)
+(third column right aligned + 5p) (second mini icon + 5p) (2p +
+sub menu triangle + 3p) (1p + end of hilighted area).</p><pre class="programlisting">
+MenuStyle * ItemFormat "%.1|%3.2&lt;%5i%5l%5l%5r%5i%1|%4s"
+</pre><p>Is used by fvwm with the
+<span class="emphasis"><em>SubmenusLeft</em></span>
+option below.</p><p>
+<a name="MenuStyle_VerticalItemSpacing"></a><font class="fvwmopt">VerticalItemSpacing</font> and
+<a name="MenuStyle_VerticalTitleSpacing"></a><font class="fvwmopt">VerticalTitleSpacing</font>
+control the vertical spacing of menu items and titles like
+<span class="emphasis"><em>ItemFormat</em></span>
+controls the horizontal spacing.  Both take two numeric arguments
+that may range from -100 to +100.  The first is the gap in pixels
+above a normal menu item (or a menu title), the second is the gap
+in pixels below it.  Negative numbers do not make much sense and
+may screw up the menu completely.  If no arguments are given or
+the given arguments are invalid, the built-in defaults are used:
+one pixel above the item or title and two below.</p><p>
+<a name="MenuStyle_VerticalMargins"></a><font class="fvwmopt">VerticalMargins</font>
+can be used to add some padding at the top and bottom of menus.
+It takes two numeric arguments that must be positive integers (or
+zero).  If the number of arguments or its values are incorrect,
+fvwm defaults both to 0, which means no padding at all.  If the
+values are correct, the first one is used for the top margin, and
+the second one is used for the bottom margin.</p><p>
+<a name="MenuStyle_SubmenusLeft"></a><font class="fvwmopt">SubmenusLeft</font>
+mirrors the menu layout and behavior.  Sub menus pop up to the
+left, the sub menu triangle is drawn left and the mini icon and
+side picture are drawn at the right side of the menu.  The default
+is
+<a name="MenuStyle_SubmenusRight"></a><font class="fvwmopt">SubmenusRight</font>.
+The position hints of a menu are also affected by this setting,
+i.e. position hints using
+<span class="emphasis"><em>item</em></span> or <span class="emphasis"><em>menu</em></span>
+as context rectangle and position hints using
+<span class="emphasis"><em>m</em></span>
+offsets.</p><p>
+<a name="MenuStyle_AutomaticHotkeys"></a><font class="fvwmopt">AutomaticHotkeys</font> and
+<span class="emphasis"><em>!AutomaticHotkeys</em></span>
+control the menu's ability to automatically provide hot-keys on
+the first character of each menu item's label.  This behavior is
+always overridden if an explicit hot-key is assigned in the
+<span class="emphasis"><em>AddToMenu</em></span>
+command.</p><p>
+<a name="MenuStyle_UniqueHotkeyActivatesImmediate"></a><font class="fvwmopt">UniqueHotkeyActivatesImmediate</font> and
+<span class="emphasis"><em>!UniqueHotkeyActivatesImmediate</em></span> controls how
+menu items are invoked when used with hotkeys.  By default, if a given
+menu entry only has one completeable match for a given hotkey, the action for
+that menu entry is invoked and the menu is closed.  This is due to the
+<span class="emphasis"><em>UniqueHotkeyActivatesImmediate</em></span> option.  However,
+the menu can be told to remain open, waiting for the user to invoke the
+selected item instead when there is only one matched item for a given hotkey,
+by using the
+<span class="emphasis"><em>!UniqueHotkeyActivatesImmediate</em></span> option.</p><p>
+<a name="MenuStyle_MouseWheel"></a><font class="fvwmopt">MouseWheel</font>
+controls the ability to scroll the menu using a mouse wheel. It takes
+one argument, that can be one of
+ScrollsPointer, ScrollsMenu, ScrollsMenuBackwards or ActivatesItem.
+ScrollsPointer makes the mouse wheel scroll the pointer over a menu.
+This is the default. ScrollsMenu and ScrollsMenuBackwards scroll the menu
+beneath the pointer. ActivatesItem disables scrolling by mouse wheel and
+makes the use of a mouse wheel act as if the menu was clicked.
+If no argument is supplied the default setting is restored.</p><p>
+<a name="MenuStyle_ScrollOffPage"></a><font class="fvwmopt">ScrollOffPage</font>
+allows a menu to be scrolled out of the visible area if
+<span class="emphasis"><em>MouseWheel</em></span>
+is set to ScrollsMenu or ScrollsMenuBackwards. This is the default.
+The opposite,
+<span class="emphasis"><em>!ScrollOffPage</em></span>
+disables this behaviour.</p><p>
+<a name="MenuStyle_TrianglesUseFore"></a><font class="fvwmopt">TrianglesUseFore</font>
+draws sub menu triangles with the foreground color of the menu colorset
+(normally drawn with the hilight color).
+<span class="emphasis"><em>!TrianglesUseFore</em></span>
+disables this behaviour.</p><p>Examples:</p><pre class="programlisting">
+MenuStyle * Mwm
+MenuStyle * Foreground Black, Background gray40
+MenuStyle * Greyed gray70, ActiveFore White
+MenuStyle * !HilightBack, Hilight3DOff
+MenuStyle * Font lucidasanstypewriter-14
+MenuStyle * MenuFace DGradient 64 darkgray MidnightBlue
+
+MenuStyle red Mwm
+MenuStyle red Foreground Yellow
+MenuStyle red Background Maroon
+MenuStyle red Greyed Red, ActiveFore Red
+MenuStyle red !HilightBack, Hilight3DOff
+MenuStyle red Font lucidasanstypewriter-12
+MenuStyle red MenuFace DGradient 64 Red Black
+</pre><p>Note that all style options could be placed on a single line for
+each style name.</p><div class="cmdsynopsis"><p><code class="command">MenuStyle</code>   <em class="replaceable"><code>forecolor</code></em>   <em class="replaceable"><code>backcolor</code></em>   <em class="replaceable"><code>shadecolor</code></em>   <em class="replaceable"><code>font</code></em>   <em class="replaceable"><code>style</code></em>  [<em class="replaceable"><code>anim</code></em>]</p></div><p>This is the old syntax of the
+<span class="emphasis"><em>MenuStyle</em></span>
+command.  It is obsolete and may be removed in the future.  Please
+use the new syntax as described above.</p><p>Sets the menu style.  When using monochrome the colors are
+ignored.  The
+<em class="replaceable"><code>shadecolor</code></em>
+is the one used to draw a menu-selection which is prohibited (or
+not recommended) by the Mwm hints which an application has
+specified.  The style option is either
+<span class="emphasis"><em>Fvwm</em></span>, <span class="emphasis"><em>Mwm</em></span> or <span class="emphasis"><em>Win</em></span>,
+which changes the appearance and operation of the menus.</p><p><span class="emphasis"><em>Mwm</em></span> and <span class="emphasis"><em>Win</em></span>
+style menus popup sub menus automatically.
+<span class="emphasis"><em>Win</em></span>
+menus indicate the current menu item by changing the background to
+black.
+<span class="emphasis"><em>Fvwm</em></span>
+sub menus overlap the parent menu,
+<span class="emphasis"><em>Mwm</em></span> and <span class="emphasis"><em>Win</em></span>
+style menus never overlap the parent menu.</p><p>When the
+<em class="replaceable"><code>anim</code></em>
+option is given, sub menus that do not fit on the screen cause the
+parent menu to be shifted to the left so the sub menu can be
+seen. See also
+<a href="#SetAnimation">SetAnimation</a>
+command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Popup"></a>31.1.15. Popup</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Popup</code>   <em class="replaceable"><code>PopupName</code></em>  [<em class="replaceable"><code>position</code></em>] [<em class="replaceable"><code>default-action</code></em>]</p></div><p>This command has two purposes: to bind a menu to a key or mouse
+button, and to bind a sub menu into a menu.  The formats for the
+two purposes differ slightly.  The
+<em class="replaceable"><code>position</code></em>
+arguments are the same as for
+<a href="#Menu">Menu</a>.
+The command
+<em class="replaceable"><code>default-action</code></em>
+is invoked if the user clicks a button to invoke the menu and
+releases it immediately again (or hits the key rapidly twice if
+the menu is bound to a key).  If the default action is not
+specified, double clicking on the menu does nothing.  However, if
+the menu begins with a menu item (i.e. not with a title or a
+separator) and the default action is not given, double clicking
+invokes the first item of the menu (but only if the pointer really
+was over the item).</p><p>To bind a previously defined pop-up menu to a key or mouse button:</p><p>The following example binds mouse buttons 2 and 3 to a pop-up
+called "Window Ops".  The menu pops up if the buttons 2 or 3 are
+pressed in the window frame, side-bar, or title-bar, with no
+modifiers (none of shift, control, or meta).</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 2 FST N Popup "Window Ops"
+<a href="#Mouse">Mouse</a> 3 FST N Popup "Window Ops"
+</pre><p>Pop-ups can be bound to keys through the use of the
+<a href="#Key">Key</a>
+command.  Pop-ups can be operated without using the mouse by
+binding to keys and operating via the up arrow, down arrow, and
+enter keys.</p><p>To bind a previously defined pop-up menu to another menu, for use
+as a sub menu:</p><p>The following example defines a sub menu "Quit-Verify" and binds
+it into a main menu, called "RootMenu":</p><pre class="programlisting">
+<a href="#AddToMenu">AddToMenu</a> Quit-Verify
+ + "Really Quit Fvwm?" <a href="#Title">Title</a>
+ + "Yes, Really Quit"  <a href="#Quit">Quit</a>
+ + "Restart Fvwm"      <a href="#Restart">Restart</a>
+ + "Restart Fvwm 1.xx" <a href="#Restart">Restart</a> fvwm1 -s
+ + ""                  <a href="#Nop">Nop</a>
+ + "No, Don't Quit"    <a href="#Nop">Nop</a>
+
+<a href="#AddToMenu">AddToMenu</a> RootMenu "Root Menu" <a href="#Title">Title</a>
+ + "Open XTerm Window" Popup NewWindowMenu
+ + "Login as Root"     <a href="#Exec">Exec</a> exec xterm -T Root -n Root -e su -
+ + "Login as Anyone"   <a href="#Popup">Popup</a> AnyoneMenu
+ + "Remote Hosts"      <a href="#Popup">Popup</a> HostMenu
+ + ""                  <a href="#Nop">Nop</a>
+ + "X utilities"       Popup Xutils
+ + ""                  <a href="#Nop">Nop</a>
+ + "Fvwm Modules"      Popup Module-Popup
+ + "Fvwm Window Ops"   Popup Window-Ops
+ + ""                  <a href="#Nop">Nop</a>
+ + "Previous Focus"    <a href="#Prev">Prev</a> (AcceptsFocus) <a href="#Focus">Focus</a>
+ + "Next Focus"        <a href="#Next">Next</a> (AcceptsFocus) <a href="#Focus">Focus</a>
+ + ""                  <a href="#Nop">Nop</a>
+ + "Refresh screen"    <a href="#Refresh">Refresh</a>
+ + ""                  <a href="#Nop">Nop</a>
+ + "Reset X defaults"  <a href="#Exec">Exec</a> xrdb -load \
+                       $HOME/.Xdefaults
+ + ""                  <a href="#Nop">Nop</a>
+ + ""                  <a href="#Nop">Nop</a>
+ + <a href="#Quit">Quit</a>                Popup Quit-Verify
+</pre><p>Popup differs from
+<a href="#Menu">Menu</a>
+in that pop-ups do not stay up if the user simply clicks.  These
+are popup-menus, which are a little hard on the wrist.
+<a href="#Menu">Menu</a>
+menus stay up on a click action.  See the
+<a href="#Menu">Menu</a>
+command for an explanation of the interactive behavior of menus. A
+menu can be open up to ten times at once, so a menu may even use
+itself or any of its predecessors as a sub menu.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="TearMenuOff"></a>31.1.16. TearMenuOff</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">TearMenuOff</code> </p></div><p>When assigned to a menu item, it inserts a tear off bar into the
+menu (a horizontal broken line).  Activating that item tears off
+the menu.  If the menu item has a label, it is shown instead of
+the broken line.  If used outside menus, this command does
+nothing.  Examples:</p><pre class="programlisting">
+<a href="#AddToMenu">AddToMenu</a> WindowMenu
++ I "" TearMenuOff
+
+<a href="#AddToMenu">AddToMenu</a> RootMenu
++ I "click here to tear me off" TearMenuOff
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Title"></a>31.1.17. Title</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Title</code> </p></div><p>Does nothing This is used to insert a title line in a popup or menu.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="miscellaneous_commands"></a>31.2. Miscellaneous Commands</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="BugOpts"></a>31.2.1. BugOpts</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">BugOpts</code>   [<em class="replaceable"><code>option</code></em> [<em class="replaceable"><code>bool</code></em>]],... </p></div><p>This command controls several workarounds for bugs in third party
+programs.  The individual options are separated by commas.  The
+optional argument
+<em class="replaceable"><code>bool</code></em>
+is a boolean argument and controls if the bug workaround is
+enabled or not.  It can either be "True" or "False" to turn the
+option on or off, or "toggle" to switch is back and forth.  If
+<em class="replaceable"><code>bool</code></em>
+is omitted, the default setting is restored.</p><p><a name="BugOpts_FlickeringMoveWorkaround"></a><font class="fvwmopt">FlickeringMoveWorkaround</font>
+disables ConfigureNotify events that are usually sent to an
+application while it is moved.  If some windows flicker annoyingly
+while being moved, this option may help you.  Note that if this
+problem occurs it is not an fvwm bug, it is a problem of the
+application.</p><p><a name="BugOpts_MixedVisualWorkaround"></a><font class="fvwmopt">MixedVisualWorkaround</font>
+makes fvwm install the root colormap before it does some
+operations using the root window visuals.  This is only useful
+when the
+<code class="option">-visual</code>
+option is used to start fvwm and then only with some
+configurations of some servers (e.g. Exceed 6.0 with an 8 bit
+PseudoColor root and fvwm using a 24 bit TrueColor visual).</p><p>The
+<a name="BugOpts_ModalityIsEvil"></a><font class="fvwmopt">ModalityIsEvil</font>
+option controls whether Motif applications have the ability to
+have modal dialogs (dialogs that force you to close them first
+before you can do anything else).  The default is to not allow
+applications to have modal dialogs.  Use this option with
+care. Once this option is turned on, you have to restart fvwm to
+turn it off.</p><p><a name="BugOpts_RaiseOverNativeWindows"></a><font class="fvwmopt">RaiseOverNativeWindows</font>
+makes fvwm try to raise the windows it manages over native windows
+of the X server's host system.  This is needed for some X servers
+running under Windows, Windows NT or Mac OS X.  Fvwm tries to detect if it
+is running under such an X server and initializes the flag
+accordingly.</p><p><a name="BugOpts_RaiseOverUnmanaged"></a><font class="fvwmopt">RaiseOverUnmanaged</font>
+makes fvwm try to raise the windows it manages over
+override_redirect windows.  This is used to cope with ill-mannered
+applications that use long-lived windows of this sort, contrary to
+<acronym class="acronym">ICCCM</acronym>
+conventions.  It is useful with the
+<a href="#Style_Unmanaged">Unmanaged</a>
+style option too.</p><p><a name="BugOpts_FlickeringQtDialogsWorkaround"></a><font class="fvwmopt">FlickeringQtDialogsWorkaround</font>
+suppresses flickering of the focused window in some modules when
+using <acronym class="acronym">KDE</acronym> or <acronym class="acronym">QT</acronym> applications with application modal dialog
+windows.  By default this option is turned on.  This option may be
+visually disturbing for other applications using windows not
+managed by fvwm.  Since these applications are rare it is most
+likely safe to leave this option at its default.</p><p><a name="BugOpts_QtDragnDropWorkaround"></a><font class="fvwmopt">QtDragnDropWorkaround</font>
+suppresses the forwarding of unknown ClientEvent messages to windows --
+usually this is harmless, but Qt has problems handling unrecognised
+ClientEvent messages.  Enabling this option might therefore help for Qt
+applications using DragnDrop.  This option is off by default.</p><p><a name="BugOpts_EWMHIconicStateWorkaround"></a><font class="fvwmopt">EWMHIconicStateWorkaround</font>
+is needed by <acronym class="acronym">EWMH</acronym> compliant pagers or taskbars which represent
+windows which are on a different desktops as iconified. These
+pagers and taskbars use a version of the <acronym class="acronym">EWMH</acronym> specification before
+version 1.2 (the current <acronym class="acronym">KDE</acronym> 2 &amp; 3 versions).  These pagers and
+taskbars use the IconicState WM_STATE state to determine if an
+application is iconified.  This state, according to the
+<acronym class="acronym">ICCCM</acronym>,
+does not imply that a window is iconified (in the usual sense).
+Turning on this option forces fvwm to establish an equivalence
+between the IconicState WM_STATE state and the iconified window.
+This violates
+<acronym class="acronym">ICCCM</acronym>
+compliance but should not cause big problems.
+By default this option is off.</p><p>With the
+<a name="BugOpts_DisplayNewWindowNames"></a><font class="fvwmopt">DisplayNewWindowNames</font>
+enabled, fvwm prints the name, icon name (if available), resource
+and class of new windows to the console.  This can help in finding
+the correct strings to use in the
+<a href="#Style">Style</a>
+command.</p><p>When the
+<a name="BugOpts_ExplainWindowPlacement"></a><font class="fvwmopt">ExplainWindowPlacement</font>
+option is enabled, fvwm prints a message to the console whenever a
+new window is placed or one of the commands
+<a href="#PlaceAgain">PlaceAgain</a>,
+<a href="#Recapture">Recapture</a> or
+<a href="#RecaptureWindow">RecaptureWindow</a>
+is used.  The message explains on which desk, page, Xinerama
+screen and position it was placed and why.  This option can be
+used to figure out why a specific window does not appear where you
+think it should.</p><p>The
+<a name="BugOpts_DebugCRMotionMethod"></a><font class="fvwmopt">DebugCRMotionMethod</font>
+option enables some debugging code in the ConfigureRequest
+handling routines of fvwm.  It is not helpful for the user, but if
+you report a bug to the fvwm team we may ask you to enable this
+option.</p><p>The <a name="BugOpts_TransliterateUtf8"></a><font class="fvwmopt">TransliterateUtf8</font> option
+enables transliteration during conversions from utf-8 strings.  By
+default fvwm will not transliterate during conversion, but will fall
+back to alternate strings provided by the clients if conversion from
+utf-8 fails due to characters which have no direct correspondence in
+the target charecter set. Some clients however neglect to set non utf-8
+properties correctly in which case this option may help.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="BusyCursor"></a>31.2.2. BusyCursor</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">BusyCursor</code>   [<em class="replaceable"><code>Option</code></em> <em class="replaceable"><code>bool</code></em>],... </p></div><p>This command controls the cursor during the execution of certain
+commands.
+<em class="replaceable"><code>Option</code></em>
+can be
+<span class="emphasis"><em>DynamicMenu</em></span>,
+<span class="emphasis"><em>ModuleSynchronous</em></span>,
+<span class="emphasis"><em>Read</em></span>,
+<span class="emphasis"><em>Wait</em></span> or
+<span class="emphasis"><em>*</em></span>.
+An option must be followed by a boolean argument
+<em class="replaceable"><code>bool</code></em>.
+You can use commas to separate individual options.  If you set an
+option to "True", then when the corresponding command is run, fvwm
+displays the cursor of the
+<a href="#CursorStyle_WAIT">WAIT</a>
+context of the
+<a href="#CursorStyle">CursorStyle</a>
+command.  "False" forces to not display the cursor.  The default is:</p><pre class="programlisting">
+BusyCursor DynamicMenu False, ModuleSynchronous False, \
+  Read False, Wait False
+</pre><p>
+The <a name="BusyCursor_*"></a><font class="fvwmopt">*</font> option
+refers to all available options.</p><p>
+The <a name="BusyCursor_Read"></a><font class="fvwmopt">Read</font>
+option controls the <a href="#PipeRead">PipeRead</a> command.</p><p>
+The <a name="BusyCursor_DynamicMenu"></a><font class="fvwmopt">DynamicMenu</font>
+option affects the <a href="#AddToMenu_DynamicPopupAction">DynamicPopupAction</a>
+and <a href="#AddToMenu_MissingSubmenuFunction">MissingSubmenuFunction</a>
+options of the <a href="#AddToMenu">AddToMenu</a>
+command.  If this option is set to "False", then the busy cursor
+is not displayed during a dynamic menu command even if this
+command is a <a href="#Read">Read</a> or <a href="#PipeRead">PipeRead</a>
+command and the <span class="emphasis"><em>Read</em></span>
+option is set to "True".</p><p>The <a name="BusyCursor_ModuleSynchronous"></a><font class="fvwmopt">ModuleSynchronous</font>
+option affects the <a href="#ModuleSynchronous">ModuleSynchronous</a> command.
+If this option is set to "False", then the busy cursor is not
+displayed while fvwm waits for a module started by
+<a href="#ModuleSynchronous">ModuleSynchronous</a> to complete its startup.</p><p>
+The <a name="BusyCursor_Wait"></a><font class="fvwmopt">Wait</font>
+option affects only the root cursor.  During a wait pause the root
+cursor is replaced by the busy cursor and fvwm is still fully
+functional (you can escape from the pause, see the
+<a href="#EscapeFunc">EscapeFunc</a>
+command).  If you want to use this option and if you do not use
+the default root cursor, you must set your root cursor with the
+<a href="#CursorStyle">CursorStyle</a> command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ClickTime"></a>31.2.3. ClickTime</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ClickTime</code>  [<em class="replaceable"><code>delay</code></em>]</p></div><p>Specifies the maximum delay in milliseconds between a button press
+and a button release for the
+<a href="#Function">Function</a>
+command to consider the action a mouse click.  The default delay
+is 150 milliseconds.  Omitting the delay value resets the
+<span class="emphasis"><em>ClickTime</em></span>
+to the default.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ColorLimit"></a>31.2.4. ColorLimit</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ColorLimit</code>   <em class="replaceable"><code>limit</code></em> </p></div><p>
+This command is obsolete. See the <code class="option">--color-limit</code> option to fvwm.
+</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ColormapFocus"></a>31.2.5. ColormapFocus</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ColormapFocus</code>    FollowsMouse  |   FollowsFocus  </p></div><p>By default, fvwm installs the colormap of the window that the
+cursor is in.  If you use</p><pre class="programlisting">
+ColormapFocus <a name="ColormapFocus_FollowsFocus"></a><font class="fvwmopt">FollowsFocus</font>
+</pre><p>then the installed colormap is the one for the window that
+currently has the keyboard focus.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="CursorStyle"></a>31.2.6. CursorStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">CursorStyle</code>   <em class="replaceable"><code>context</code></em>  [  <em class="replaceable"><code>num</code></em>  |   <em class="replaceable"><code>name</code></em>  |   None  |   Tiny  |   <em class="replaceable"><code>file</code></em> [ <em class="replaceable"><code>x</code></em>   <em class="replaceable"><code>y</code></em> ]   [ <em class="replaceable"><code>fg</code></em> 
+			  <em class="replaceable"><code>bg</code></em> ]]</p></div><p>Defines a new cursor for the specified context.  Note that this
+command can not control the shapes an applications uses, for
+example, to indicate that it is busy.  The various contexts are:</p><div class="variablelist"><dl><dt><span class="term"><a name="CursorStyle_POSITION"></a><font class="fvwmopt">POSITION</font> (top_left_corner)</span></dt><dd><p>used when initially placing windows</p></dd><dt><span class="term"><a name="CursorStyle_TITLE"></a><font class="fvwmopt">TITLE</font> (top_left_arrow)</span></dt><dd><p>used in a window title-bar</p></dd><dt><span class="term"><a name="CursorStyle_DEFAULT"></a><font class="fvwmopt">DEFAULT</font> (top_left_arrow)</span></dt><dd><p>used in windows that do not set their cursor</p></dd><dt><span class="term"><a name="CursorStyle_SYS"></a><font class="fvwmopt">SYS</font> (hand2)</span></dt><dd><p>used in one of the title-bar buttons</p></dd><dt><span class="term"><a name="CursorStyle_MOVE"></a><font class="fvwmopt">MOVE</font> (fleur)</span></dt><dd><p>used when moving or resizing windows</p></dd><dt><span class="term"><a name="CursorStyle_RESIZE"></a><font class="fvwmopt">RESIZE</font> (sizing)</span></dt><dd><p>used when moving or resizing windows</p></dd><dt><span class="term"><a name="CursorStyle_WAIT"></a><font class="fvwmopt">WAIT</font> (watch)</span></dt><dd><p>used during certain fvwm commands (see <a href="#BusyCursor">BusyCursor</a> for details)</p></dd><dt><span class="term"><a name="CursorStyle_MENU"></a><font class="fvwmopt">MENU</font> (top_left_arrow)</span></dt><dd><p>used in menus</p></dd><dt><span class="term"><a name="CursorStyle_SELECT"></a><font class="fvwmopt">SELECT</font> (crosshair)</span></dt><dd><p>used when the user is required to select a window</p></dd><dt><span class="term"><a name="CursorStyle_DESTROY"></a><font class="fvwmopt">DESTROY</font> (pirate)</span></dt><dd><p>used for <a href="#Destroy">Destroy</a>, <a href="#Close">Close</a>, and <a href="#Delete">Delete</a> commands</p></dd><dt><span class="term"><a name="CursorStyle_TOP"></a><font class="fvwmopt">TOP</font> (top_side)</span></dt><dd><p>used in the top side-bar of a window</p></dd><dt><span class="term"><a name="CursorStyle_RIGHT"></a><font class="fvwmopt">RIGHT</font> (right_side)</span></dt><dd><p>used in the right side-bar of a window</p></dd><dt><span class="term"><a name="CursorStyle_BOTTOM"></a><font class="fvwmopt">BOTTOM</font> (bottom_side)</span></dt><dd><p>used in the bottom side-bar of a window</p></dd><dt><span class="term"><a name="CursorStyle_LEFT"></a><font class="fvwmopt">LEFT</font> (left_side)</span></dt><dd><p>used in the left side-bar of a window</p></dd><dt><span class="term"><a name="CursorStyle_TOP_LEFT"></a><font class="fvwmopt">TOP_LEFT</font> (top_left_corner)</span></dt><dd><p>used in the top left corner of a window</p></dd><dt><span class="term"><a name="CursorStyle_TOP_RIGHT"></a><font class="fvwmopt">TOP_RIGHT</font> (top_right_corner)</span></dt><dd><p>used in the top right corner of a window</p></dd><dt><span class="term"><a name="CursorStyle_BOTTOM_LEFT"></a><font class="fvwmopt">BOTTOM_LEFT</font> (bottom_left_corner)</span></dt><dd><p>used in the bottom left corner of a window</p></dd><dt><span class="term"><a name="CursorStyle_BOTTOM_RIGHT"></a><font class="fvwmopt">BOTTOM_RIGHT</font> (bottom_right_corner)</span></dt><dd><p>used in the bottom right corner of a window</p></dd><dt><span class="term"><a name="CursorStyle_TOP_EDGE"></a><font class="fvwmopt">TOP_EDGE</font> (top_side)</span></dt><dd><p>used at the top edge of the screen</p></dd><dt><span class="term"><a name="CursorStyle_RIGHT_EDGE"></a><font class="fvwmopt">RIGHT_EDGE</font> (right_side)</span></dt><dd><p>used at the right edge of the screen</p></dd><dt><span class="term"><a name="CursorStyle_BOTTOM_EDGE"></a><font class="fvwmopt">BOTTOM_EDGE</font> (bottom_side)</span></dt><dd><p>used at the bottom edge of the screen</p></dd><dt><span class="term"><a name="CursorStyle_LEFT_EDGE"></a><font class="fvwmopt">LEFT_EDGE</font> (left_side)</span></dt><dd><p>used at the left edge of the screen</p></dd><dt><span class="term"><a name="CursorStyle_ROOT"></a><font class="fvwmopt">ROOT</font> (left_ptr)</span></dt><dd><p>used as the root cursor</p></dd><dt><span class="term"><a name="CursorStyle_STROKE"></a><font class="fvwmopt">STROKE</font> (plus)</span></dt><dd><p>used during a <a href="#StrokeFunc">StrokeFunc</a> command.</p></dd></dl></div><p>
+The defaults are shown in parentheses above.  If you ever want to
+restore the default cursor for a specific context you can omit the
+second argument.
+</p><p>
+The second argument is either the numeric value of the cursor as
+defined in the include file <code class="filename">X11/cursorfont.h</code>
+or its name (without the XC_ prefix). Alternatively, the xpm file
+name may be specified.  The name can also be
+<a name="CursorStyle_None"></a><font class="fvwmopt">None</font>
+(no cursor) or
+<a name="CursorStyle_Tiny"></a><font class="fvwmopt">Tiny</font>
+(a single pixel as the cursor).</p><pre class="programlisting">
+# make the kill cursor be XC_gumby (both forms work):
+CursorStyle DESTROY 56
+CursorStyle DESTROY gumby
+</pre><p>
+Alternatively, the cursor can be loaded from an (XPM, PNG or SVG) image
+<em class="replaceable"><code>file</code></em>.  If fvwm is compiled with Xcursor support,
+full ARGB is used, and (possibly animated) cursor files made with the
+<span><strong class="command">xcursorgen</strong></span> program can be loaded.  Otherwise the cursor
+is converted to monochrome.
+</p><p>
+The optional <em class="replaceable"><code>x</code></em> and <em class="replaceable"><code>y</code></em>
+arguments (following a <em class="replaceable"><code>file</code></em> argument) specifies
+the hot-spot coordinate with 0 0 as the top left corner of the image.
+Coordinates within the image boundary are valid and overrides any hot-spot
+defined in the (XPM/Xcursor) image file.  An invalid or undefined hot-spot
+is placed in the center of the image.</p><pre class="programlisting">
+CursorStyle ROOT cursor_image.png 0 0
+</pre><p>The optional
+<em class="replaceable"><code>fg</code></em> and <em class="replaceable"><code>bg</code></em>
+arguments specify the foreground and background colors for the
+cursor, defaulting to black and white (reverse video compared
+to the actual bitmap).  These colors are only used with monochrome
+cursors.  Otherwise they are silently ignored.</p><pre class="programlisting">
+CursorStyle ROOT nice_arrow.xpm yellow black
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DefaultColors"></a>31.2.7. DefaultColors</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DefaultColors</code>  [<em class="replaceable"><code>foreground</code></em>] [<em class="replaceable"><code>background</code></em>]</p></div><p><span class="emphasis"><em>DefaultColors</em></span>
+sets the default foreground and background colors used in
+miscellaneous windows created by fvwm, for example in the geometry
+feedback windows during a move or resize operation. If you do not
+want to change one color or the other, use - as its color name. To
+revert to the built-in default colors omit both color names. Note
+that the default colors are not used in menus, window titles or
+icon titles.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DefaultColorset"></a>31.2.8. DefaultColorset</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DefaultColorset</code>  [<em class="replaceable"><code>num</code></em>]</p></div><p><span class="emphasis"><em>DefaultColorset</em></span>
+sets the colorset used by the windows controlled by the
+<a href="#DefaultColors">DefaultColors</a>
+command.  To revert back to the
+<a href="#DefaultColors">DefaultColors</a>
+colors use</p><pre class="programlisting">
+DefaultColorset -1
+</pre><p>or any variant of the
+<a href="#DefaultColors">DefaultColors</a>
+command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DefaultFont"></a>31.2.9. DefaultFont</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DefaultFont</code>  [<em class="replaceable"><code>fontname</code></em>]</p></div><p><span class="emphasis"><em>DefaultFont</em></span>
+sets the default font to font
+<em class="replaceable"><code>fontname</code></em>.
+The default font is used by fvwm whenever no other font has been
+specified.  To reset the default font to the built-in default,
+omit the argument.  The default font is used for menus, window
+titles, icon titles as well as the geometry feedback windows
+during a move or resize operation.  To override the default font
+in a specific context, use the
+<a href="#Style">Style</a> * <a href="#Style_Font">Font</a>,
+<a href="#Style">Style</a> * <a href="#Style_IconFont">IconFont</a>, or
+<a href="#MenuStyle">MenuStyle</a>
+commands.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DefaultIcon"></a>31.2.10. DefaultIcon</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DefaultIcon</code>   <em class="replaceable"><code>filename</code></em> </p></div><p>
+Sets the default icon which is used if a window has neither an
+client-supplied icon nor an icon supplied via the
+<a href="#Style_Icon">Icon</a>
+option of the
+<a href="#Style">Style</a>
+command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DefaultLayers"></a>31.2.11. DefaultLayers</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DefaultLayers</code>   <em class="replaceable"><code>bottom</code></em>   <em class="replaceable"><code>put</code></em>   <em class="replaceable"><code>top</code></em> </p></div><p>
+Changes the layers that are used for the
+<a href="#Style_StaysOnBottom">StaysOnBottom</a>,
+<a href="#Style_StaysPut">StaysPut</a>,
+<a href="#Style_StaysOnTop">StaysOnTop</a>
+<a href="#Style">Style</a>
+options.  Initially, the layers 2, 4 and 6 are used.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Deschedule"></a>31.2.12. Deschedule</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Deschedule</code>  [<em class="replaceable"><code>command_id</code></em>]</p></div><p>Removes all commands that were scheduled with the id
+<em class="replaceable"><code>command_id</code></em>
+with the
+<a href="#Schedule">Schedule</a>
+command from the list of commands to be executed unless they were
+already executed.  If the
+<em class="replaceable"><code>command_id</code></em>
+is omitted, the value of the variable $[schedule.last] is used as
+the id.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Emulate"></a>31.2.13. Emulate</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Emulate</code>    Fvwm  |   Mwm  |   Win  </p></div><p>This command is a catch all for how miscellaneous things are done
+by fvwm. Right now this command affects where the move/resize
+feedback window appears and how window placement is aborted. To
+have more Mwm- or Win-like behavior you can call
+<span class="emphasis"><em>Emulate</em></span>
+with
+<a name="Emulate_Mwm"></a><font class="fvwmopt">Mwm</font> or
+<a name="Emulate_Win"></a><font class="fvwmopt">Win</font>
+as its argument.  With
+Mwm
+resize and move feedback windows are in the center of the screen,
+instead of the upper left corner.
+This also affects how manual placement is aborted.
+See the <a href="#Style_ManualPlacement">ManualPlacement</a> description.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="EscapeFunc"></a>31.2.14. EscapeFunc</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">EscapeFunc</code> </p></div><p>By default the key sequence
+<span class="keysym">Ctrl-Alt-Escape</span>
+allows for escaping from a
+<a href="#Wait">Wait</a>
+pause and from a locked
+<a href="#ModuleSynchronous">ModuleSynchronous</a>
+command.  The
+<span class="emphasis"><em>EscapeFunc</em></span>
+command used with the
+<a href="#Key">Key</a>
+command allows for configuring this key sequence.  An example:</p><pre class="programlisting">
+<a href="#Key">Key</a> Escape A MC -
+<a href="#Key">Key</a> Escape A  S EscapeFunc
+</pre><p>replaces the
+<span class="keysym">Ctrl-Alt-Escape</span>
+key sequence with
+<span class="keysym">Shift-Escape</span>
+for aborting a
+<a href="#Wait">Wait</a>
+pause and
+<a href="#ModuleSynchronous">ModuleSynchronous</a>
+command.
+<span class="emphasis"><em>EscapeFunc</em></span>
+used outside the
+<a href="#Key">Key</a>
+command does nothing.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="FakeClick"></a>31.2.15. FakeClick</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">FakeClick</code>   [<span class="optional"> <em class="replaceable"><code>command</code></em>   <em class="replaceable"><code>value</code></em> </span>]... </p></div><p>This command is mainly intended for debugging fvwm and no
+guarantees are made that it works for you.
+<span class="emphasis"><em>FakeClick</em></span>
+can simulate mouse button press and release events and pass them
+to fvwm or the applications.  The parameters are a list of
+commands which consist of pairs of
+<em class="replaceable"><code>command</code></em>
+tokens and integer
+<em class="replaceable"><code>values</code></em>,
+The
+<a name="FakeClick_press"></a><font class="fvwmopt">press</font> and <a name="FakeClick_release"></a><font class="fvwmopt">release</font>
+commands are followed by the appropriate mouse button number and
+generate a button press or release event on the window below the
+pointer.  The
+<a name="FakeClick_wait"></a><font class="fvwmopt">wait</font>
+commands pauses fvwm for the given number of milliseconds.  The
+<a name="FakeClick_modifiers"></a><font class="fvwmopt">modifiers</font>
+command simulates pressing or releasing modifier keys.  The values
+1 to 5 are mapped to
+<span class="keysym">Mod1</span>
+to
+<span class="keysym">Mod5</span>
+while 6, 7 and 8 are mapped to
+<span class="keysym">Shift</span>,
+<span class="keysym">Lock</span>
+and
+<span class="keysym">Control</span>.
+The modifier is set for any further button events.  To release a
+modifier key, use the corresponding negative number.  The
+<a name="FakeClick_depth"></a><font class="fvwmopt">depth</font>
+command determines to which window the button events are
+sent. With a depth of 1, all events go to the root window,
+regardless of the pointer's position.  With 2, the event is passed
+to the top level window under the pointer which is usually the
+frame window. With 3, events go to the client window. Higher
+numbers go to successive sub windows.  Zero (0) goes to the
+smallest window that contains the pointer.  Note that events
+propagate upward.</p><pre class="programlisting">
+FakeClick depth 2 press 1 wait 250 release 1
+</pre><p>This simulates a click with button 1 in the parent window (depth
+2) with a delay of 250 milliseconds between the press and the
+release.
+Note: all command names can be abbreviated with their first letter.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="FakeKeypress"></a>31.2.16. FakeKeypress</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">FakeKeypress</code>   [<span class="optional"> <em class="replaceable"><code>command</code></em>   <em class="replaceable"><code>value</code></em> </span>]... </p></div><p>This command is mainly intended for debugging fvwm and no
+guarantees are made that it works for you.
+<span class="emphasis"><em>FakeKeypress</em></span>
+can simulate key press and release events and pass them
+to fvwm or applications.  The parameters are a list of
+commands which consist of pairs of command tokens and values.
+The
+<a name="FakeKeypress_press"></a><font class="fvwmopt">press</font> and
+<a name="FakeKeypress_release"></a><font class="fvwmopt">release</font>
+commands are followed by a key name.
+The key name is a standard X11 key name as defined in
+<code class="filename">/usr/include/X11/keysymdef.h</code>,
+(without the
+<span class="emphasis"><em>XK_</em></span>
+prefix), or the keysym database
+<code class="filename">/usr/X11R6/lib/X11/XKeysymDB</code>.
+The
+<a name="FakeKeypress_wait"></a><font class="fvwmopt">wait</font>,
+<a name="FakeKeypress_modifiers"></a><font class="fvwmopt">modifiers</font> and
+<a name="FakeKeypress_depth"></a><font class="fvwmopt">depth</font>
+commands are the same as those used by
+<a href="#FakeClick">FakeClick</a>.</p><p>Save all GVim sessions with: "Esc:w\n"</p><pre class="programlisting">
+<a href="#All">All</a> (gvim) FakeKeypress press Escape \
+                        press colon \
+                        press w \
+                        press Return
+</pre><p>Save &amp; exit all GVim sessions with: "Esc:wq\n"</p><pre class="programlisting">
+<a href="#All">All</a> (gvim) FakeKeypress press Escape \
+                        press colon \
+                        press w \
+                        press q \
+                        press Return
+</pre><p>Send A to a specific window:</p><pre class="programlisting">
+<a href="#WindowId">WindowId</a> 0x3800002 FakeKeypress press A
+</pre><p>Note: all command names can be abbreviated with their first letter.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="GlobalOpts"></a>31.2.17. GlobalOpts</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">GlobalOpts</code>  [<em class="replaceable"><code>options</code></em>]</p></div><p>This command is obsolete.  Please
+replace the global options in your configuration file according to
+the following table:</p><pre class="programlisting">
+GlobalOpts <a name="GlobalOpts_WindowShadeShrinks"></a><font class="fvwmopt">WindowShadeShrinks</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_WindowShadeShrinks">WindowShadeShrinks</a>
+
+GlobalOpts <a name="GlobalOpts_WindowShadeScrolls"></a><font class="fvwmopt">WindowShadeScrolls</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_WindowShadeScrolls">WindowShadeScrolls</a>
+
+GlobalOpts <a name="GlobalOpts_SmartPlacementIsReallySmart"></a><font class="fvwmopt">SmartPlacementIsReallySmart</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_MinOverlapPlacement">MinOverlapPlacement</a>
+
+GlobalOpts <a name="GlobalOpts_SmartPlacementIsNormal"></a><font class="fvwmopt">SmartPlacementIsNormal</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_TileCascadePlacement">TileCascadePlacement</a>
+
+GlobalOpts <a name="GlobalOpts_ClickToFocusDoesntPassClick"></a><font class="fvwmopt">ClickToFocusDoesntPassClick</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_ClickToFocusPassesClickOff">ClickToFocusPassesClickOff</a>
+
+GlobalOpts <a name="GlobalOpts_ClickToFocusPassesClick"></a><font class="fvwmopt">ClickToFocusPassesClick</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_ClickToFocusPassesClick">ClickToFocusPassesClick</a>
+
+GlobalOpts <a name="GlobalOpts_ClickToFocusDoesntRaise"></a><font class="fvwmopt">ClickToFocusDoesntRaise</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_ClickToFocusRaisesOff">ClickToFocusRaisesOff</a>
+
+GlobalOpts <a name="GlobalOpts_ClickToFocusRaises"></a><font class="fvwmopt">ClickToFocusRaises</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_ClickToFocusRaises">ClickToFocusRaises</a>
+
+GlobalOpts <a name="GlobalOpts_MouseFocusClickDoesntRaise"></a><font class="fvwmopt">MouseFocusClickDoesntRaise</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_MouseFocusClickRaisesOff">MouseFocusClickRaisesOff</a>
+
+GlobalOpts <a name="GlobalOpts_MouseFocusClickRaises"></a><font class="fvwmopt">MouseFocusClickRaises</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_MouseFocusClickRaises">MouseFocusClickRaises</a>
+
+GlobalOpts <a name="GlobalOpts_NoStipledTitles"></a><font class="fvwmopt">NoStipledTitles</font>
+  --&gt;
+<a href="#Style">Style</a> * !<a href="#Style_StippledTitle">StippledTitle</a>
+
+GlobalOpts <a name="GlobalOpts_StipledTitles"></a><font class="fvwmopt">StipledTitles</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_StippledTitle">StippledTitle</a>
+
+GlobalOpts <a name="GlobalOpts_CaptureHonorsStartsOnPage"></a><font class="fvwmopt">CaptureHonorsStartsOnPage</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_CaptureHonorsStartsOnPage">CaptureHonorsStartsOnPage</a>
+
+GlobalOpts <a name="GlobalOpts_CaptureIgnoresStartsOnPage"></a><font class="fvwmopt">CaptureIgnoresStartsOnPage</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_CaptureIgnoresStartsOnPage">CaptureIgnoresStartsOnPage</a>
+
+GlobalOpts <a name="GlobalOpts_RecaptureHonorsStartsOnPage"></a><font class="fvwmopt">RecaptureHonorsStartsOnPage</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_RecaptureHonorsStartsOnPage">RecaptureHonorsStartsOnPage</a>
+
+GlobalOpts <a name="GlobalOpts_RecaptureIgnoresStartsOnPage"></a><font class="fvwmopt">RecaptureIgnoresStartsOnPage</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_RecaptureIgnoresStartsOnPage">RecaptureIgnoresStartsOnPage</a>
+
+GlobalOpts <a name="GlobalOpts_ActivePlacementHonorsStartsOnPage"></a><font class="fvwmopt">ActivePlacementHonorsStartsOnPage</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_ManualPlacementHonorsStartsOnPage">ManualPlacementHonorsStartsOnPage</a>
+
+GlobalOpts <a name="GlobalOpts_ActivePlacementIgnoresStartsOnPage"></a><font class="fvwmopt">ActivePlacementIgnoresStartsOnPage</font>
+  --&gt;
+<a href="#Style">Style</a> * <a href="#Style_ManualPlacementIgnoresStartsOnPage">ManualPlacementIgnoresStartsOnPage</a>
+
+GlobalOpts <a name="GlobalOpts_RaiseOverNativeWindows"></a><font class="fvwmopt">RaiseOverNativeWindows</font>
+  --&gt;
+<a href="#BugOpts">BugOpts</a> <a href="#Style_RaiseOverNativeWindows">RaiseOverNativeWindows</a> on
+
+GlobalOpts <a name="GlobalOpts_IgnoreNativeWindows"></a><font class="fvwmopt">IgnoreNativeWindows</font>
+  --&gt;
+<a href="#BugOpts">BugOpts</a> <a href="#Style_RaiseOverNativeWindows">RaiseOverNativeWindows</a> off
+
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="HilightColor"></a>31.2.18. HilightColor</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">HilightColor</code>   <em class="replaceable"><code>textcolor</code></em>   <em class="replaceable"><code>backgroundcolor</code></em> </p></div><p>This command is obsoleted by the
+<a href="#Style">Style</a>
+options
+<a href="#Style_HilightFore">HilightFore</a> and
+<a href="#Style_HilightBack">HilightBack</a>.
+Please use</p><pre class="programlisting">
+<a href="#Style">Style</a> * <a href="#Style_HilightFore">HilightFore</a> textcolor, <a href="#Style_HilightBack">HilightBack</a> backgroundcolor
+</pre><p>instead.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="HilightColorset"></a>31.2.19. HilightColorset</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">HilightColorset</code>  [<em class="replaceable"><code>num</code></em>]</p></div><p>This command is obsoleted by the
+<a href="#Style">Style</a>
+option
+<a href="#Style_HilightColorset">HilightColorset</a>.
+Please use</p><pre class="programlisting">
+<a href="#Style">Style</a> * <a href="#Style_HilightColorset">HilightColorset</a> num
+</pre><p>instead.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="IconFont"></a>31.2.20. IconFont</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">IconFont</code>  [<em class="replaceable"><code>fontname</code></em>]</p></div><p>This command is obsoleted by the
+<a href="#Style">Style</a>
+option
+<a href="#Style_IconFont">IconFont</a>.
+Please use</p><pre class="programlisting">
+<a href="#Style">Style</a> * IconFont fontname
+</pre><p>instead.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="IconPath"></a>31.2.21. IconPath</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">IconPath</code>   <em class="replaceable"><code>path</code></em> </p></div><p>This command is obsolete.  Please use
+<a href="#ImagePath">ImagePath</a>
+instead.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ImagePath"></a>31.2.22. ImagePath</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ImagePath</code>   <em class="replaceable"><code>path</code></em> </p></div><p>Specifies a colon separated list of directories in which to search
+for images (both monochrome and pixmap).  To find an image given
+by a relative pathname, fvwm looks into each directory listed in
+turn, and uses the first file found.</p><p>If a directory is given in the form "/some/dir;.ext", this means
+all images in this directory have the extension ".ext" that should
+be forced.  The original image name (that may contain another
+extension or no extension at all) is not probed, instead ".ext" is
+added or replaces the original extension.  This is useful, for
+example, if a user has some image directories with ".xpm" images
+and other image directories with the same names, but ".png"
+images.</p><p>The
+<em class="replaceable"><code>path</code></em>
+may contain environment variables such as
+<code class="envar">$HOME</code> (or <code class="envar">${HOME}</code>).
+Further, a '+' in the
+<em class="replaceable"><code>path</code></em>
+is expanded to the previous value of the path, allowing appending
+or prepending to the path easily.</p><p>For example:</p><pre class="programlisting">
+ImagePath $HOME/icons:+:/usr/include/X11/bitmaps
+</pre><p>Note: if the
+<a href="../modules/FvwmM4.html">FvwmM4</a>
+module is used to parse your
+<code class="filename">config</code>
+files, then m4 may want to mangle the word "include" which
+frequently shows up in the
+<span class="emphasis"><em>ImagePath</em></span>
+command.  To fix this one may add</p><pre class="programlisting">
+undefine(`include')
+</pre><p>prior to the
+<span class="emphasis"><em>ImagePath</em></span>
+command, or better: use the
+<code class="option">-m4-prefix</code>
+option to force all
+<span class="emphasis"><em>m4</em></span>
+directives to have a prefix of "m4_" (see the
+<a href="../modules/FvwmM4.html">FvwmM4</a>
+man page).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="LocalePath"></a>31.2.23. LocalePath</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">LocalePath</code>   <em class="replaceable"><code>path</code></em> </p></div><p>Specifies a colon separated list of "locale path" in which to
+search for string translations. A locale path is constituted by a
+directory path and a text domain separated by a semicolon
+(';'). As an example the default locale path is:</p><pre class="programlisting">
+/install_prefix/share/locale;fvwm
+</pre><p>where install_prefix is the fvwm installation directory. With such
+a locale path translations are searched for in</p><pre class="programlisting">
+/install_prefix/share/locale/lang/LC_MESSAGES/fvwm.mo
+</pre><p>where
+<span class="emphasis"><em>lang</em></span>
+depends on the locale. If no directory is given the default
+directory path is assumed. If no text domain is given,
+<span><strong class="command">fvwm</strong></span>
+is assumed. Without argument the default locale path is restored.</p><p>As for the
+<a href="#ImagePath">ImagePath</a>
+command,
+<em class="replaceable"><code>path</code></em>
+may contain environment variables and a '+' to append or prepend
+the locale path easily.</p><p>For example, the fvwm-themes package uses</p><pre class="programlisting">
+LocalePath ";fvwm-themes:+"
+</pre><p>to add locale catalogs.</p><p>The default fvwm catalog contains a few strings used by the fvwm
+executable itself (Desk and Geometry) and strings used in some
+default configuration files and
+<a href="../modules/FvwmForm.html">FvwmForm</a>
+configuration. You can take a look at the po/ subdirectory of the
+fvwm source to get the list of the strings with a possible
+translation in various languages. At present, very few languages
+are supported.</p><p>The main use of locale catalogs is via the "$[gt.string]"
+parameter:</p><pre class="programlisting">
+<a href="#DestroyMenu">DestroyMenu</a> MenuFvwmWindowOps
+<a href="#AddToMenu">AddToMenu</a>   MenuFvwmWindowOps "$[gt.Window Ops]" <a href="#Title">Title</a>
++ "$[gt.&amp;Move]"              <a href="#Move">Move</a>
++ "$[gt.&amp;Resize]"            <a href="#Resize">Resize</a>
++ "$[gt.R&amp;aise]"             <a href="#Raise">Raise</a>
++ "$[gt.&amp;Lower]"             <a href="#Lower">Lower</a>
++ "$[gt.(De)&amp;Iconify]"       <a href="#Iconify">Iconify</a>
++ "$[gt.(Un)&amp;Stick]"         <a href="#Stick">Stick</a>
++ "$[gt.(Un)Ma&amp;ximize]"      <a href="#Maximize">Maximize</a>
++ "" <a href="#Nop">Nop</a>
++ "$[gt.&amp;Close]"             <a href="#Close">Close</a>
++ "$[gt.&amp;Destroy]"           <a href="#Destroy">Destroy</a>
+</pre><p>gives a menu in the locale languages if translations are
+available.</p><p>Note that the
+<a href="../modules/FvwmScript.html">FvwmScript</a>
+module has a set of special instructions for string
+translation. It is out of the scope of this discussion to explain
+how to build locale catalogs. Please refer to the <acronym class="acronym">GNU</acronym> gettext
+documentation.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="PixmapPath"></a>31.2.24. PixmapPath</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">PixmapPath</code>   <em class="replaceable"><code>path</code></em> </p></div><p>This command is obsolete. Please use
+<a href="#ImagePath">ImagePath</a>
+instead.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="PrintInfo"></a>31.2.25. PrintInfo</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">PrintInfo</code>   <em class="replaceable"><code>subject</code></em>  [<em class="replaceable"><code>verbose</code></em>]</p></div><p>Print information on
+<em class="replaceable"><code>subject</code></em>
+on stderr.  An optional integer argument
+<em class="replaceable"><code>verbose</code></em>
+defines the level of information which is given.
+The current valid subjects are:</p><p><a name="PrintInfo_Colors"></a><font class="fvwmopt">Colors</font>
+which prints information about the colors used by fvwm. This useful
+on screens which can only display 256 (or less) colors at once.
+If
+<em class="replaceable"><code>verbose</code></em>
+is one or greater the palette used by fvwm is printed.
+If you have a limited color palette, and you run out of colors,
+this command might be helpful.</p><p><a name="PrintInfo_ImageCache"></a><font class="fvwmopt">ImageCache</font>
+which prints information about the images loaded by fvwm. If
+<em class="replaceable"><code>verbose</code></em>
+is one or greater all images in the cache will be listed together
+with their respective reuse.</p><p><a name="PrintInfo_Locale"></a><font class="fvwmopt">Locale</font>
+which prints information on your locale and the fonts that fvwm
+used.
+<em class="replaceable"><code>verbose</code></em>
+can be 1 or 2.</p><p><a name="PrintInfo_nls"></a><font class="fvwmopt">nls</font>
+which prints information on the locale catalogs that fvwm used</p><p><a name="PrintInfo_style"></a><font class="fvwmopt">style</font>
+which prints information on fvwm styles.
+<em class="replaceable"><code>verbose</code></em>
+can be 1.</p><p><a name="PrintInfo_bindings"></a><font class="fvwmopt">bindings</font>
+which prints information on all the bindings fvwm has:  key, mouse and
+stroke bindings.
+<em class="replaceable"><code>verbose</code></em>
+has no effect with this option.</p><p><a name="PrintInfo_infostore"></a><font class="fvwmopt">infostore</font>
+which prints information on all entries in the infostore, listing the key and
+its value.
+<em class="replaceable"><code>verbose</code></em> has no effect with this option.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Repeat"></a>31.2.26. Repeat</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Repeat</code> </p></div><p>When the
+<span class="emphasis"><em>Repeat</em></span>
+command is invoked, the last command that was executed by fvwm is
+executed again.  This happens regardless of whether it was
+triggered by user interaction, a module or by an X event.
+Commands that are executed from a function defined with the
+<a href="#Function">Function</a>
+command, from the
+<a href="#Read">Read</a> or
+<a href="#PipeRead">PipeRead</a>
+commands or by a menu are not repeated.  Instead, the function,
+menu or the
+<a href="#Read">Read</a> or
+<a href="#PipeRead">PipeRead</a>
+command is executed again.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Schedule"></a>31.2.27. Schedule</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Schedule</code>  [Periodic]  <em class="replaceable"><code>delay_ms</code></em>  [<em class="replaceable"><code>command_id</code></em>]  <em class="replaceable"><code>command</code></em> </p></div><p>The
+<em class="replaceable"><code>command</code></em>
+is executed after about
+<em class="replaceable"><code>delay_ms</code></em>
+milliseconds.  This may be useful in some tricky setups.  The
+<em class="replaceable"><code>command</code></em>
+is executed in the same context window as the
+<span class="emphasis"><em>Schedule</em></span>
+command.  An optional integer argument
+<em class="replaceable"><code>command_id</code></em>
+may be given in decimal, hexadecimal or octal format.  This id can
+be used with the
+<a href="#Deschedule">Deschedule</a>
+command to remove the scheduled command before it is executed.  If
+no id is given, fvwm uses negative id numbers, starting with -1
+and decreasing by one with each use of the
+<span class="emphasis"><em>Schedule</em></span>
+command.
+Note that the
+<span class="emphasis"><em>Schedule</em></span>
+command and its arguments undergo the usual command line
+expansion, and, when
+<em class="replaceable"><code>command</code></em>
+is finally executed, it is expanded again.  It may therefore be
+necessary to quote the parts of the command that must not be
+expanded twice.</p><p>Note:  A window's id as it is returned with $[w.id] can be used as
+the
+<em class="replaceable"><code>command_id</code></em>.
+Example:</p><pre class="programlisting">
+<a href="#Current">Current</a> Schedule 1000 $[w.id] <a href="#WindowShade">WindowShade</a>
+</pre><p>The
+<span class="emphasis"><em>Schedule</em></span>
+command also supports the optional keyword
+<a name="Schedule_Periodic"></a><font class="fvwmopt">Periodic</font>
+which indicates that the
+<em class="replaceable"><code>command</code></em>
+should be executed every
+<em class="replaceable"><code>delay_ms</code></em>.
+Example:</p><pre class="programlisting">
+Schedule Periodic 10000 <a href="#PipeRead">PipeRead</a> '[ -N "$MAIL" ] &amp;&amp; echo \
+     Echo You have mail'
+</pre><p>Use the
+<a href="#Deschedule">Deschedule</a>
+command to stop periodic commands.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="State"></a>31.2.28. State</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">State</code>   <em class="replaceable"><code>state</code></em>  [<em class="replaceable"><code>bool</code></em>]</p></div><p>Sets, clears or toggles one of the 32 user defined states which
+are associated with each window.  The
+<em class="replaceable"><code>state</code></em>
+is a number ranging from 0 to 31.  The states have no meaning in
+fvwm, but they can be checked in conditional commands like
+<a href="#Next">Next</a>
+with the
+<span class="emphasis"><em>State</em></span>
+condition.  The optional argument
+<em class="replaceable"><code>bool</code></em>
+is a boolean argument.  "True" sets the given state, while "False"
+clears it.  Using "toggle" switches to the opposite state.  If the
+<em class="replaceable"><code>bool</code></em>
+argument is not given, the state is toggled.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="WindowFont"></a>31.2.29. WindowFont</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">WindowFont</code>  [<em class="replaceable"><code>fontname</code></em>]</p></div><p>This command is obsoleted by the
+<a href="#Style">Style</a>
+option
+<a href="#Style_Font">Font</a>.
+Please use</p><pre class="programlisting">
+<a href="#Style">Style</a> * <a href="#Style_Font">Font</a> fontname
+</pre><p>instead.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="WindowList"></a>31.2.30. WindowList</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">WindowList</code>  [(<em class="replaceable"><code>conditions</code></em>)] [<em class="replaceable"><code>position</code></em>] [<em class="replaceable"><code>options</code></em>] [<em class="replaceable"><code>double-click-action</code></em>]</p></div><p>Generates a pop-up menu (and pops it up) in which the title and
+geometry of each of the windows currently on the desktop are
+shown.</p><p>The format of the geometry part is:
+<em class="replaceable"><code>desk</code></em>(<em class="replaceable"><code>layer</code></em>): <em class="replaceable"><code>x-geometry</code></em> <em class="replaceable"><code>sticky</code></em>,
+where
+<em class="replaceable"><code>desk</code></em> and <em class="replaceable"><code>layer</code></em>
+are the corresponding numbers and
+<em class="replaceable"><code>sticky</code></em>
+is empty or a capital S.  The geometry of iconified windows is
+shown in parentheses.  Selecting an item from the window list
+pop-up menu causes the interpreted function "WindowListFunc" to be
+run with the window id of that window passed in as $0. The default
+"WindowListFunc" looks like this:</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> WindowListFunc
++ I <a href="#Iconify">Iconify</a> off
++ I <a href="#FlipFocus">FlipFocus</a>
++ I <a href="#Raise">Raise</a>
++ I <a href="#WarpToWindow">WarpToWindow</a> 5p 5p
+</pre><p>You can destroy the built-in "WindowListFunc" and create your own
+if these defaults do not suit you.</p><p>The window list menu uses the "WindowList" menu style if it is
+defined (see
+<a href="#MenuStyle">MenuStyle</a>
+command).  Otherwise the default menu style is used.  To switch
+back to the default menu style, issue the command</p><pre class="programlisting">
+<a href="#DestroyMenuStyle">DestroyMenuStyle</a> WindowList
+</pre><p>Example:</p><pre class="programlisting">
+<a href="#MenuStyle">MenuStyle</a> WindowList <a href="#MenuStyle_SelectOnRelease">SelectOnRelease</a> Meta_L
+</pre><p>The
+<em class="replaceable"><code>conditions</code></em>
+can be used to exclude certain windows from the window
+list. Please refer to the
+<a href="#Current">Current</a>
+command for details.  Only windows that match the given conditions
+are displayed in the window list.  The
+<em class="replaceable"><code>options</code></em>
+below work vice versa: windows that would otherwise not be
+included in the window list can be selected with them.  The
+<em class="replaceable"><code>conditions</code></em>
+always override the
+<em class="replaceable"><code>options</code></em>.</p><p>The
+<em class="replaceable"><code>position</code></em>
+arguments are the same as for
+<a href="#Menu">Menu</a>.
+The command
+<em class="replaceable"><code>double-click-action</code></em>
+is invoked if the user double-clicks (or hits the key rapidly
+twice if the menu is bound to a key) when bringing the window
+list.  The
+<em class="replaceable"><code>double-click-action</code></em>
+must be quoted if it consists of more than one word.</p><p>The
+<em class="replaceable"><code>double-click-action</code></em>
+is useful to define a default window if you have bound the window
+list to a key (or button) like this:</p><pre class="programlisting">
+# Here we call an existing function, but
+# it may be different.  See the default
+# WindowListFunc definition earlier in this
+# man page.
+<a href="#AddToFunc">AddToFunc</a> SwitchToWindow
++ I WindowListFunc
+
+<a href="#Key">Key</a> Tab A M WindowList "Prev SwitchToWindow"
+</pre><p>Hitting
+<span class="keysym">Alt-Tab</span>
+once it brings up the window list, if you hit it twice the focus
+is flipped between the current and the last focused window.  With
+the proper
+<a href="#MenuStyle_SelectOnRelease">SelectOnRelease</a>
+menu style (see example above) a window is selected as soon as you
+release the
+<span class="keysym">Alt</span>
+key.</p><p>The
+<em class="replaceable"><code>options</code></em>
+passed to WindowList are separated by commas and can be
+<span class="emphasis"><em>Geometry</em></span> / <span class="emphasis"><em>NoGeometry</em></span> / <span class="emphasis"><em>NoGeometryWithInfo</em></span>,
+<span class="emphasis"><em>NoDeskNum,</em></span>
+<span class="emphasis"><em>NoLayer,</em></span>
+<span class="emphasis"><em>NoNumInDeskTitle</em></span>,
+<span class="emphasis"><em>NoCurrentDeskTitle</em></span>,
+<span class="emphasis"><em>MaxLabelWidth width</em></span>,
+<span class="emphasis"><em>TitleForAllDesks</em></span>,
+<span class="emphasis"><em>Function funcname</em></span>,
+<span class="emphasis"><em>Desk desknum</em></span>,
+<span class="emphasis"><em>CurrentDesk</em></span>,
+<span class="emphasis"><em>NoIcons</em></span> / <span class="emphasis"><em>Icons</em></span> / <span class="emphasis"><em>OnlyIcons</em></span>,
+<span class="emphasis"><em>NoNormal</em></span> / <span class="emphasis"><em>Normal</em></span> / <span class="emphasis"><em>OnlyNormal</em></span>,
+<span class="emphasis"><em>NoSticky</em></span> / <span class="emphasis"><em>Sticky</em></span> / <span class="emphasis"><em>OnlySticky</em></span>,
+<span class="emphasis"><em>NoStickyAcrossPages</em></span> / <span class="emphasis"><em>StickyAcrossPages</em></span> / <span class="emphasis"><em>OnlyStickyAcrossPages</em></span>,
+<span class="emphasis"><em>NoStickyAcrossDesks</em></span> / <span class="emphasis"><em>StickyAcrossDesks</em></span> / <span class="emphasis"><em>OnlyStickyAcrossDesks</em></span>,
+<span class="emphasis"><em>NoOnTop</em></span> / <span class="emphasis"><em>OnTop</em></span> / <span class="emphasis"><em>OnlyOnTop</em></span>,
+<span class="emphasis"><em>NoOnBottom</em></span> / <span class="emphasis"><em>OnBottom</em></span> / <span class="emphasis"><em>OnlyOnBottom</em></span>,
+<span class="emphasis"><em>Layer m [n]</em></span>,
+<span class="emphasis"><em>UseSkipList</em></span> / <span class="emphasis"><em>OnlySkipList</em></span>,
+<span class="emphasis"><em>NoDeskSort</em></span>,
+<span class="emphasis"><em>ReverseOrder</em></span>,
+<span class="emphasis"><em>CurrentAtEnd</em></span>,
+<span class="emphasis"><em>IconifiedAtEnd</em></span>,
+<span class="emphasis"><em>UseIconName</em></span>,
+<span class="emphasis"><em>Alphabetic</em></span> / <span class="emphasis"><em>NotAlphabetic</em></span>,
+<span class="emphasis"><em>SortByResource</em></span>,
+<span class="emphasis"><em>SortByClass</em></span>,
+<span class="emphasis"><em>NoHotkeys</em></span>,
+<span class="emphasis"><em>SelectOnRelease</em></span>.</p><p>(Note - normal means not iconic, sticky, or on top)</p><p>With the
+<a name="WindowList_SortByResource"></a><font class="fvwmopt">SortByResource</font>
+option windows are alphabetically sorted first by resource class,
+then by resource name and then by window name (or icon name if
+<a name="WindowList_UseIconName"></a><font class="fvwmopt">UseIconName</font>
+is specified).
+<a name="WindowList_ReverseOrder"></a><font class="fvwmopt">ReverseOrder</font>
+also works in the expected manner.</p><p>With the
+<a name="WindowList_SortByClass"></a><font class="fvwmopt">SortByClass</font>
+option windows are sorted just like with
+<span class="emphasis"><em>SortByResource</em></span>,
+but the resource name is not taken into account, only the resource
+class.</p><p>The
+<a name="WindowList_SelectOnRelease"></a><font class="fvwmopt">SelectOnRelease</font>
+option works exactly like the
+<a href="#MenuStyle">MenuStyle</a>
+option with the same name, but overrides the option given in a
+menu style.  By default, this option is set to the left
+<span class="keysym">Alt</span>
+key.  To switch it off, use
+<span class="emphasis"><em>SelectOnRelease</em></span>
+without a key name.</p><p>If you pass in a function via
+<a href="#Function">Function</a> funcname,
+it is called within a window context of the selected window:</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> IFunc I <a href="#Iconify">Iconify</a> toggle
+WindowList <a href="#Function">Function</a> IFunc, NoSticky, CurrentDesk, NoIcons
+</pre><p>If you use the
+<a name="WindowList_Layer"></a><font class="fvwmopt">Layer</font>
+<em class="replaceable"><code>m</code></em>
+[<span class="optional"><em class="replaceable"><code>n</code></em></span>]
+option, only windows in layers between m and n are displayed. n
+defaults to m.  With the
+<span class="emphasis"><em>ReverseOrder</em></span>
+option the order of the windows in the list is reversed.</p><p>With the
+<a name="WindowList_CurrentAtEnd"></a><font class="fvwmopt">CurrentAtEnd</font>
+option the currently focused window (if any) is shown at the
+bottom of the list.  This is mostly intended for simulating the
+Alt-Tab behavior in another GUI.</p><p>
+<a name="WindowList_IconifiedAtEnd"></a><font class="fvwmopt">IconifiedAtEnd</font>
+makes iconified windows be moved to the end of the list.  This is
+also from another GUI.</p><p>The
+<a name="WindowList_NoGeometry"></a><font class="fvwmopt">NoGeometry</font>
+option causes fvwm to not display the geometries as well as
+the separators which indicate the different desktops.
+<a name="WindowList_NoGeometryWithInfo"></a><font class="fvwmopt">NoGeometryWithInfo</font>
+removes the geometries, but keep the desktop information
+and indicates iconic windows.
+<a name="WindowList_NoDeskNum"></a><font class="fvwmopt">NoDeskNum</font>
+causes fvwm to not display the desktop number in the geometry
+or before the window title with the
+<a name="WindowList_NoGeometryWithInfo"></a><font class="fvwmopt">NoGeometryWithInfo</font>
+option.
+<a name="WindowList_NoNumInDeskTitle"></a><font class="fvwmopt">NoNumInDeskTitle</font>
+is only useful if a desktop name is defined with the
+<a href="#DesktopName">DesktopName</a>
+command. It causes fvwm to not display the desktop number before
+the desktop name.  By default, the WindowList menu have a title
+which indicates the current desk or the selected desktop if the
+<a name="WindowList_Desk"></a><font class="fvwmopt">Desk</font>
+condition is used. The
+<a name="WindowList_NoCurrentDeskTitle"></a><font class="fvwmopt">NoCurrentDeskTitle</font>
+option removes this title.
+<a name="WindowList_TitleForAllDesks"></a><font class="fvwmopt">TitleForAllDesks</font>
+causes fvwm to add a menu title with the desk name and/or number
+before each group of windows on the same desk.
+With
+<a name="WindowList_NoLayer"></a><font class="fvwmopt">NoLayer</font>,
+the layer of the window is not diplayed.  The options
+<a name="WindowList_ShowPage"></a><font class="fvwmopt">ShowPage</font>,
+<a name="WindowList_ShowPageX"></a><font class="fvwmopt">ShowPageX</font> and
+<a name="WindowList_ShowPageY"></a><font class="fvwmopt">ShowPageY</font>
+enable displaying the page of the window rounded multiples of the
+display size.
+With
+<a name="WindowList_ShowScreen"></a><font class="fvwmopt">ShowScreen</font>,
+the window's Xinerama screen number is displayed.</p><p>The
+<a name="WindowList_MaxLabelWidth"></a><font class="fvwmopt">MaxLabelWidth</font>
+option takes the number of characters to print as its argument.
+No more than that many characters of the window name are visible.</p><p>If you wanted to use the
+<span class="emphasis"><em>WindowList</em></span>
+as an icon manager, you could invoke the following:</p><pre class="programlisting">
+WindowList OnlyIcons, Sticky, OnTop, Geometry
+</pre><p>(Note - the
+<span class="emphasis"><em>Only</em></span>
+options essentially wipe out all other ones... but the
+<a name="WindowList_OnlyListSkip"></a><font class="fvwmopt">OnlyListSkip</font>
+option which just causes
+<span class="emphasis"><em>WindowList</em></span>
+to only consider the windows with
+<a href="#Style_WindowListSkip">WindowListSkip</a>
+style.)</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="XSync"></a>31.2.31. XSync</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">XSync</code> </p></div><p>When
+<span class="emphasis"><em>XSync</em></span>
+is called, the X function with the same name is used to send all
+pending X requests to the server.  This command is intended for
+debugging only.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="XSynchronize"></a>31.2.32. XSynchronize</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">XSynchronize</code>  [bool]</p></div><p>The
+<span class="emphasis"><em>XSynchronize</em></span>
+command controls whether X requests are sent to the X server
+immediately or not.  Normally, requests are sent in larger batches
+to save unnecessary communication.  To send requests immediately,
+use "True" as the argument, to disable this use "False" or to
+toggle between both methods use "Toggle" or omit the
+<span class="emphasis"><em>bool</em></span>
+argument.  Fvwm defaults to synchronized requests when started
+with the
+<code class="option">--debug</code>
+option.  This command is intended for debugging only.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Plus"></a>31.2.33. Plus</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">+</code> </p></div><p>Used to continue adding to the last specified decor, function or
+menu. See the discussion for
+<a href="#AddToDecor">AddToDecor</a>,
+<a href="#AddToFunc">AddToFunc</a>, and
+<a href="#AddToMenu">AddToMenu</a>.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="window_movement_and_placement"></a>31.3. Window Movement and Placement</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="AnimatedMove"></a>31.3.1. AnimatedMove</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">AnimatedMove</code>   <em class="replaceable"><code>x</code></em>   <em class="replaceable"><code>y</code></em>  [Warp]</p></div><p>Move a window in an animated fashion.  Similar to
+<a href="#Move">Move</a>
+command. The options are the same, except they are required,
+since it doesn't make sense to have a user move the window
+interactively and animatedly.  If the optional argument
+<a name="AnimatedMove_Warp"></a><font class="fvwmopt">Warp</font>
+is specified the pointer is warped with the window.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="HideGeometryWindow"></a>31.3.2. HideGeometryWindow</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">HideGeometryWindow</code>  [ Never  |   Move  |   Resize ]</p></div><p>Hides the position or size window that is usually shown when a
+window is moved or resized interactively.  To switch it off only
+for move or resize operations the optional parameters
+<a name="HideGeometryWindow_Move"></a><font class="fvwmopt">Move</font> and
+<a name="HideGeometryWindow_Resize"></a><font class="fvwmopt">Resize</font>
+can be used respectively.  To switch both on again use the
+<a name="HideGeometryWindow_Never"></a><font class="fvwmopt">Never</font>
+option.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Layer"></a>31.3.3. Layer</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Layer</code>   [<em class="replaceable"><code>arg1</code></em> <em class="replaceable"><code>arg2</code></em>] |  [default] </p></div><p>Puts the current window in a new layer.  If
+<em class="replaceable"><code>arg1</code></em>
+is non zero then the next layer is the current layer number plus
+<em class="replaceable"><code>arg1</code></em>.
+If
+<em class="replaceable"><code>arg1</code></em>
+is zero then the new layer is
+<em class="replaceable"><code>arg2</code></em>.</p><p>As a special case,
+<a name="Layer_default"></a><font class="fvwmopt">default</font>
+puts the window in its default layer, i.e. the layer it was
+initially in.  The same happens if no or invalid arguments are
+specified.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Lower"></a>31.3.4. Lower</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Lower</code> </p></div><p>Allows the user to lower a window.  Note that this lowers a window
+only in its layer.  To bring a window to the absolute bottom, use</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> lower-to-bottom
+ + I <a href="#Layer">Layer</a> 0 0
+ + I Lower
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Move"></a>31.3.5. Move</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Move</code>   [[screen <em class="replaceable"><code>screen</code></em>]  [<span class="optional">  w  |   m  </span>]<em class="replaceable"><code>x</code></em>[<span class="optional">  p  |   w  </span>]...   [<span class="optional">  w  |   m  </span>]<em class="replaceable"><code>y</code></em>[<span class="optional">  p  |   w  </span>]...  [Warp]] |  [pointer] |  [ewmhiwa] </p></div><p>Allows the user to move a window.  If called from somewhere in a
+window or its border, then that window is moved.  If called from
+the root window then the user is allowed to select the target
+window.  By default, the EWMH working area is honoured.</p><p>If the literal option <a name="Move_screen"></a><font class="fvwmopt">screen</font> followed by a
+<em class="replaceable"><code>screen</code></em>
+argument is specified, the coordinates are interpreted as relative
+to the given screen.  The width and height of the screen are used
+for the calculations instead of the display dimensions.  The
+<em class="replaceable"><code>screen</code></em>
+as interpreted as in the
+<a href="#MoveToScreen">MoveToScreen</a>
+command.
+If the optional argument
+<a name="Move_Warp"></a><font class="fvwmopt">Warp</font>
+is specified the pointer is warped with the window.  If the single
+argument
+<a name="Move_pointer"></a><font class="fvwmopt">pointer</font>
+is given, the top left corner of the window is moved to the
+pointer position before starting the operation; this is mainly
+intended for internal use by modules like
+<a href="../modules/FvwmPager.html">FvwmPager</a>.
+If the optional argument
+<a name="Move_ewmhiwa"></a><font class="fvwmopt">ewmhiwa</font>
+is given, then the window position will ignore the working area
+(such as ignoring any values set via <a href="#EwmhBaseStruts">EwmhBaseStruts</a>).</p><p>The operation can be aborted with <span class="keysym">Escape</span> or any mouse
+button not set to place the window. By default mouse button 2 is set to cancel
+the move operation. To change this you may use the
+<a href="#Mouse">Mouse</a>
+command with special context 'P' for Placement.</p><p>The window condition
+<a href="#Style_PlacedByButton">PlacedByButton</a>
+can be used to check if a specific button was pressed to place the
+window (see
+<a href="#Current">Current</a>
+command).</p><p>If the optional arguments
+<a name="Move_x"></a><font class="fvwmopt">x</font> and
+<a name="Move_y"></a><font class="fvwmopt">y</font>
+are provided, then the window is moved immediately without user
+interaction.  Each argument can specify an absolute or relative
+position from either the left/top or right/bottom of the screen.
+By default, the numeric value given is interpreted as a percentage
+of the screen width/height, but a trailing
+'<span class="emphasis"><em>p</em></span>'
+changes the interpretation to mean pixels, while a trailing
+'<span class="emphasis"><em>w</em></span>'
+means precent of the window width/height.
+To move the window
+relative to its current position, add the
+'<a name="Move_w"></a><font class="fvwmopt">w</font>'
+(for "window") prefix before the
+<em class="replaceable"><code>x</code></em> and/or <em class="replaceable"><code>y</code></em>
+value.  To move the window to a position relative to the current
+location of the pointer, add the
+'<a name="Move_m"></a><font class="fvwmopt">m</font>'
+(for "mouse") prefix.  To leave either coordinate unchanged,
+"<a name="Move_keep"></a><font class="fvwmopt">keep</font>" can be specified in place of
+<em class="replaceable"><code>x</code></em> or <em class="replaceable"><code>y</code></em>.</p>
+
+For advanced uses, the arguments
+<em class="replaceable"><code>x</code></em> and <em class="replaceable"><code>y</code></em>
+can be used multiple times, but without the prefix
+'<em class="replaceable"><code>m</code></em>' or '<em class="replaceable"><code>w</code></em>'.
+(See complex examples below).
+
+<p>Simple Examples:</p><pre class="programlisting">
+# Interactive move
+<a href="#Mouse">Mouse</a> 1 T A Move
+# Move window to top left is at (10%,10%)
+<a href="#Mouse">Mouse</a> 2 T A Move 10 10
+# Move top left to (10pixels,10pixels)
+<a href="#Mouse">Mouse</a> 3 T A Move 10p 10p
+</pre><p>More complex examples (these can be bound as actions to
+keystrokes, etc.; only the command is shown, though):</p><pre class="programlisting">
+# Move window so bottom right is at bottom
+# right of screen
+Move -0 -0
+
+# Move window so top left corner is 10 pixels
+# off the top left screen edge
+Move +-10 +-10
+
+# Move window 5% to the right, and to the
+# middle vertically
+Move w+5 50
+
+# Move window up 10 pixels, and so left edge
+# is at x=40 pixels
+Move 40p w-10p
+
+# Move window to the mouse pointer location
+Move m+0 m+0
+
+# Move window to center of screen (50% of screen
+# poition minus 50% of widow size).
+Move 50-50w 50-50w
+</pre><p>Note:  In order to obtain moving windows which do not snap
+to screen, with interactive move, hold down <span class="emphasis"><em>Alt</em></span>
+whilst moving the window to disable snap attraction if it's defined.
+</p><p>See also the
+<a href="#AnimatedMove">AnimatedMove</a>
+command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="MoveToDesk"></a>31.3.6. MoveToDesk</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">MoveToDesk</code>  [ prev  |    <em class="replaceable"><code>arg1</code></em>  [<em class="replaceable"><code>arg2</code></em>]
+			 [<em class="replaceable"><code>min</code></em> <em class="replaceable"><code>max</code></em>] ]</p></div><p>Moves the selected window to another desktop.  The arguments are
+the same as for the
+<a href="#GotoDesk">GotoDesk</a>
+command.  Without any arguments, the window is moved to the
+current desk.
+<span class="emphasis"><em>MoveToDesk</em></span>
+is a replacement for the obsolete
+<a href="#WindowsDesk">WindowsDesk</a>
+command, which can no longer be used.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="MoveThreshold"></a>31.3.7. MoveThreshold</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">MoveThreshold</code>  [<em class="replaceable"><code>pixels</code></em>]</p></div><p>When the user presses a mouse button upon an object fvwm waits to
+see if the action is a click or a drag.  If the mouse moves by
+more than
+<em class="replaceable"><code>pixels</code></em>
+pixels it is assumed to be a drag.</p><p>Previous versions of fvwm hardwired
+<em class="replaceable"><code>pixels</code></em>
+to 3, which is now the default value.  If
+<em class="replaceable"><code>pixels</code></em>
+is negative or omitted the default value (which might be increased
+when 16000x9000 pixel displays become affordable) is restored.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="MoveToPage"></a>31.3.8. MoveToPage</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">MoveToPage</code>    [<em class="replaceable"><code>options</code></em>] [ <em class="replaceable"><code>x</code></em>[<span class="optional">  p  |   w  </span>]   <em class="replaceable"><code>y</code></em>[<span class="optional">  p  |   w  </span>] ]  |  [prev] </p></div><p>Moves the selected window to another page
+(<em class="replaceable"><code>x</code></em>,<em class="replaceable"><code>y</code></em>). The
+upper left page is (0,0), the upper right is (M,0), where M is one
+less than the current number of horizontal pages specified in the
+<a href="#DesktopSize">DesktopSize</a>
+command.  Similarly the lower left page is (0,N), and the lower
+right page is (M,N).  Negative page numbers refer to pages from
+the rightmost/lowest page.  If
+<a name="MoveToPage_x"></a><font class="fvwmopt">x</font> and
+<a name="MoveToPage_y"></a><font class="fvwmopt">y</font>
+are not given, the window is moved to the current page (a window
+that has the focus but is off-screen can be retrieved with this).
+Moving windows to a page relative to the current page can be
+achieved by adding a trailing
+'<a name="MoveToPage_p"></a><font class="fvwmopt">p</font>'
+after any or both numerical arguments.  To move the window
+relative to its current location, add a trailing
+'<a name="MoveToPage_w"></a><font class="fvwmopt">w</font>'.
+To move a window to the previous page use
+<a name="MoveToPage_prev"></a><font class="fvwmopt">prev</font>
+as the single argument.</p><p>Windows are usually not moved beyond desk boundaries.</p><p>Possible
+<em class="replaceable"><code>options</code></em>
+are
+<a name="MoveToPage_wrapx"></a><font class="fvwmopt">wrapx</font> and
+<a name="MoveToPage_wrapy"></a><font class="fvwmopt">wrapy</font>
+to wrap around the x or y coordinate when the window is moved
+beyond the border of the desktop. For example, with
+<span class="emphasis"><em>wrapx</em></span>,
+when the window moves past the right edge of the desktop, it
+reappears on the left edge.  The options
+<a name="MoveToPage_nodesklimitx"></a><font class="fvwmopt">nodesklimitx</font> and
+<a name="MoveToPage_nodesklimity"></a><font class="fvwmopt">nodesklimity</font>
+allow moving windows beyond the desk boundaries in x and y
+direction (disabling the
+<span class="emphasis"><em>wrapx</em></span> and <span class="emphasis"><em>wrapy</em></span>
+options).</p><p>Examples:</p><pre class="programlisting">
+# <a href="#Move">Move</a> window to page (2,3)
+MoveToPage 2 3
+
+# <a href="#Move">Move</a> window to lowest and rightmost page
+MoveToPage -1 -1
+
+# <a href="#Move">Move</a> window to last page visited
+MoveToPage prev
+
+# <a href="#Move">Move</a> window two pages to the right and one
+# page up, wrap at desk boundaries
+MoveToPage wrapx wrapy +2p -1p
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="MoveToScreen"></a>31.3.9. MoveToScreen</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">MoveToScreen</code>  [<em class="replaceable"><code>screen</code></em>]</p></div><p>Moves the selected window to another Xinerama screen.  The
+<em class="replaceable"><code>screen</code></em>
+argument can be '<a name="MoveToScreen_p"></a><font class="fvwmopt">p</font>' for the primary screen,
+'<a name="MoveToScreen_c"></a><font class="fvwmopt">c</font>' for the current
+screen (containing the mouse pointer),
+'<a name="MoveToScreen_w"></a><font class="fvwmopt">w</font>' for the screen containing the center of
++the context window,
+'<a name="MoveToScreen_g"></a><font class="fvwmopt">g</font>' for the global screen
+or the screen number itself (counting from zero).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="OpaqueMoveSize"></a>31.3.10. OpaqueMoveSize</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">OpaqueMoveSize</code>  [<em class="replaceable"><code>percentage</code></em>]</p></div><p>Tells fvwm the maximum size window with which opaque window
+movement should be used.  The percentage is percent of the total
+screen area (may be greater than 100).  With</p><pre class="programlisting">OpaqueMoveSize 0</pre><p>all windows are moved using the traditional rubber-band
+outline. With</p><pre class="programlisting">
+OpaqueMoveSize <a name="OpaqueMoveSize_unlimited"></a><font class="fvwmopt">unlimited</font>
+</pre><p>or if a negative percentage is given
+all windows are moved as solid windows.  The default is</p><pre class="programlisting">OpaqueMoveSize 5</pre><p>which allows small windows to be moved in an opaque manner but
+large windows are moved as rubber-bands.  If
+<em class="replaceable"><code>percentage</code></em>
+is omitted or invalid the default value is set.  To resize windows
+in an opaque manner you can use the
+<a href="#Style_ResizeOpaque">ResizeOpaque</a>
+style.  See
+the <a href="#Style">Style</a>
+command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="PlaceAgain"></a>31.3.11. PlaceAgain</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">PlaceAgain</code>  [Anim] [Icon]</p></div><p>Causes the current window's position to be re-computed using the
+initial window placement logic.  The window is moved to where it
+would have been if it were a new window that had just appeared.
+Most useful with
+<span class="emphasis"><em>Smart</em></span> or <span class="emphasis"><em>Clever</em></span> (<span class="emphasis"><em>ReallySmart</em></span>)
+placement.  With the optional argument
+<a name="PlaceAgain_Anim"></a><font class="fvwmopt">Anim</font>
+an animated move is used to place the window in its new position.
+With the additional option
+<a name="PlaceAgain_Icon"></a><font class="fvwmopt">Icon</font>,
+the icon is placed again instead.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Raise"></a>31.3.12. Raise</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Raise</code> </p></div><p>Allows the user to raise a window. Note that this raises a window
+only in its layer. To bring a window to the absolute top, use</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> raise-to-top
+ + I <a href="#Layer">Layer</a> 0 ontop
+ + I Raise
+</pre><p>where ontop is the highest layer used in your setup.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="RaiseLower"></a>31.3.13. RaiseLower</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">RaiseLower</code> </p></div><p>Alternately raises and lowers a window.  The window is raised if
+it is obscured by any window (except for its own transients when
+<a href="#Style_RaiseTransient">RaiseTransient</a>
+style is used; see the
+<a href="#Style">Style</a>
+command) otherwise it is lowered.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Resize"></a>31.3.14. Resize</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Resize</code>    [<span class="optional">[frame] [direction <em class="replaceable"><code>dir</code></em>] [warptoborder
+                <em class="replaceable"><code>automatic</code></em>] [fixeddirection]  [<span class="optional">w</span>]<em class="replaceable"><code>width</code></em>[<span class="optional">  p  |   c  |   wa  |   da  </span>]   [<span class="optional">w</span>]<em class="replaceable"><code>height</code></em>[<span class="optional">  p  |   c  </span>] </span>]</p></div><p>Allows for resizing a window.  If called from somewhere in a window
+or its border, then that window is resized.  If called from the
+root window then the user is allowed to select the target window.</p><p>The operation can be aborted with <span class="keysym">Escape</span> or by pressing
+any mouse button (except button 1 which confirms it).</p><p>If the optional arguments
+<em class="replaceable"><code>width</code></em> and <em class="replaceable"><code>height</code></em>
+are provided, then the window is resized so that its dimensions
+are
+<em class="replaceable"><code>width</code></em> by <em class="replaceable"><code>height</code></em>.
+The units of
+<em class="replaceable"><code>width</code></em> and <em class="replaceable"><code>height</code></em>
+are percent-of-screen, unless a letter
+'<a name="Resize_p"></a><font class="fvwmopt">p</font>'
+is appended to one or both coordinates, in which case the location
+is specified in pixels.  With a
+'<a name="Resize_c"></a><font class="fvwmopt">c</font>'
+suffix the unit defined by the client application (hence the c) is
+used.  With the suffix
+'<a name="Resize_wa"></a><font class="fvwmopt">wa</font>'
+the value is a percentage of the width or height size of the EWMH
+working area, and with the suffix
+'<a name="Resize_da"></a><font class="fvwmopt">da</font>'
+it is a percentage of the width or height of the EWMH dynamic working
+area.  So you can say</p><pre class="programlisting">Resize 80c 24c</pre><p>to make a terminal window just big enough for 80x24
+characters.</p><p>If the
+<em class="replaceable"><code>width</code></em> or <em class="replaceable"><code>height</code></em>
+is prefixed with the letter
+'<a name="Resize_w"></a><font class="fvwmopt">w</font>'
+the size is not taken as an absolute value but added to the
+current size of the window.  Example:</p><pre class="programlisting">
+# Enlarge window by one line
+Resize keep w+1c
+</pre><p>Both,
+<em class="replaceable"><code>width</code></em> and <em class="replaceable"><code>height</code></em>
+can be negative.  In this case the new size is the screen size
+minus the given value.  If either value is "<a name="Resize_keep"></a><font class="fvwmopt">keep</font>", the
+corresponding dimension of the window is left untouched.  The new
+size is the size of the client window, thus</p><pre class="programlisting">Resize 100 100</pre><p>may make the window bigger than the screen.  To base the new size
+on the size of the whole fvwm window, add the
+<a name="Resize_frame"></a><font class="fvwmopt">frame</font>
+option after the command.  The options
+<span class="emphasis"><em>fixeddirection</em></span>,
+<span class="emphasis"><em>direction</em></span> and
+<span class="emphasis"><em>warptoborder</em></span>
+are only used in interactive move operations.  With
+<a name="Resize_fixeddirection"></a><font class="fvwmopt">fixeddirection</font>
+the same border is moved even if the pointer moves past the
+opposite border.  The
+<a name="Resize_direction"></a><font class="fvwmopt">direction</font>
+option must be followed by a direction name such as "NorthWest",
+"South" or "East" (you get the idea).  Resizing is started
+immediately, even if the pointer is not on a border.   If the special option
+<a name="Resize_automatic"></a><font class="fvwmopt">automatic</font> is given as a direction argument, then
+the direction to resize is calculated based on the position of the pointer in
+the window.  If the pointer is in the middle of the window, then no direction is
+calculated.
+
+The <a name="Resize_warptoborder"></a><font class="fvwmopt">warptoborder</font>
+option can be used to warp the pointer to the direction indicated.  As with the
+<a name="Resize_automatic"></a><font class="fvwmopt">automatic</font> option for
+<a name="Resize_direction"></a><font class="fvwmopt">direction</font>, the border to warp to is
+calculated based on the pointer's proximity to a given border.  Also, if
+resizing is started by clicking on the window border, the pointer
+is warped to the outer edge of the border.</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> ResizeSE I Resize <a href="#Direction">Direction</a> SE
+<a href="#Mouse">Mouse</a> 3 A M ResizeSE
+</pre><div class="cmdsynopsis"><p><code class="command">Resize</code>  [  bottomright  |   br    <em class="replaceable"><code>x</code></em>   <em class="replaceable"><code>y</code></em> ]</p></div><p>An alternate syntax is used if the keyword
+<a name="Resize_bottomright"></a><font class="fvwmopt">bottomright</font> or in short
+<a name="Resize_br"></a><font class="fvwmopt">br</font>
+follows the command name.  In this case, the arguments
+<em class="replaceable"><code>x</code></em> and <em class="replaceable"><code>y</code></em>
+specify the desired position of the bottom right corner of the
+window.  They are interpreted exactly like the
+<em class="replaceable"><code>x</code></em> and <em class="replaceable"><code>y</code></em>
+arguments of the
+<a href="#Move">Move</a>
+command.  Actually, any of the options accepted by the
+<a href="#Move">Move</a>
+command can be used.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ResizeMaximize"></a>31.3.15. ResizeMaximize</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ResizeMaximize</code>  [<em class="replaceable"><code>resize-arguments</code></em>]</p></div><p>Combines the effects of
+<a href="#Resize">Resize</a>
+and
+<a href="#Maximize">Maximize</a>
+in a single command.  When used on a maximized window, the window
+is resized and is still in the maximized state afterwards.  When
+used on an unmaximized window, the window is resized and put into
+the maximized state afterwards.  This is useful if the user wants
+to resize the window temporarily and then return to the original
+geometry.  The
+<em class="replaceable"><code>resize-arguments</code></em>
+are the same as for the
+<a href="#Resize">Resize</a>
+command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ResizeMove"></a>31.3.16. ResizeMove</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ResizeMove</code>   <em class="replaceable"><code>resize-arguments</code></em>   <em class="replaceable"><code>move-arguments</code></em> </p></div><p>This command does the same as the
+<a href="#Resize">Resize</a>
+and
+<a href="#Move">Move</a>
+commands, but in a single call which is less visually
+disturbing. The
+<em class="replaceable"><code>resize-arguments</code></em>
+are exactly the same arguments as for the
+<a href="#Resize">Resize</a>
+command and the
+<em class="replaceable"><code>move-arguments</code></em>
+are exactly the same arguments as for the
+<a href="#Move">Move</a>
+command except the
+<a href="#Move_pointer">pointer</a>
+option which is not supported by the
+<span class="emphasis"><em>ResizeMove</em></span>
+command.</p><p>Examples:</p><pre class="programlisting">
+# Move window to top left corner and cover
+# most of the screen
+ResizeMove -10p -20p 0 0
+
+# Grow the focused window towards the top of screen
+<a href="#Current">Current</a> <a href="#Resize">Resize</a> keep w+$[w.y]p keep 0
+</pre><p>Note: Fvwm may not be able to parse the command properly if the
+option
+<a href="#Resize_bottomright">bottomright</a>
+of the
+<a href="#Resize">Resize</a>
+command is used.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ResizeMoveMaximize"></a>31.3.17. ResizeMoveMaximize</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ResizeMoveMaximize</code>   <em class="replaceable"><code>resize-arguments</code></em>   <em class="replaceable"><code>move-arguments</code></em> </p></div><p>Combines the effects of
+<a href="#ResizeMove">ResizeMove</a>
+and
+<a href="#Maximize">Maximize</a>
+in a single command.  When used on a maximized window, the window
+is resized and moved and is still in the maximized state
+afterwards.  When used on an unmaximized window, the window is
+resized and put into the maximized state afterwards.  This is
+useful if the user wants to resize the window temporarily and then
+return to the original geometry.  The
+<em class="replaceable"><code>resize-arguments</code></em> and <em class="replaceable"><code>move-arguments</code></em>
+are the same as for the
+<a href="#ResizeMove">ResizeMove</a>
+command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="RestackTransients"></a>31.3.18. RestackTransients</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">RestackTransients</code> </p></div><p>This command regroups the transients of a window close to it in
+the stacking order as if the window had just been lowered and then
+raised.  The position of the window itself is not altered.  Only
+windows that use either the
+<a href="#Style_RaiseTransient">RaiseTransient</a> or
+<a href="#Style_LowerTransient">LowerTransient</a>
+style are affected at all.  When
+<span class="emphasis"><em>RestackTransients</em></span>
+is used on a transient window with the
+<a href="#Style_StackTransientParent">StackTransientParent</a>
+style set, it is redirected to the parent window.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="SetAnimation"></a>31.3.19. SetAnimation</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">SetAnimation</code>   <em class="replaceable"><code>milliseconds-delay</code></em>  [<em class="replaceable"><code>fractions-to-move-list</code></em>]</p></div><p>Sets the time between frames and the list of fractional offsets to
+customize the animated moves of the
+<a href="#AnimatedMove">AnimatedMove</a>
+command and the animation of menus (if the menu style is set to
+animated; see
+<a href="#MenuStyle">MenuStyle</a>
+command).  If the
+<em class="replaceable"><code>fractions-to-move-list</code></em>
+is omitted, only the time between frames is altered.  The
+<em class="replaceable"><code>fractions-to-move-list</code></em>
+specifies how far the window should be offset at each successive
+frame as a fraction of the difference between the starting
+location and the ending location.  e.g.:</p><pre class="programlisting">
+SetAnimation 10 -.01 0 .01 .03 .08 .18 .3 \
+  .45 .6 .75 .85 .90 .94 .97 .99 1.0
+</pre><p>Sets the delay between frames to 10 milliseconds, and sets the
+positions of the 16 frames of the animation motion.  Negative
+values are allowed, and in particular can be used to make the
+motion appear more cartoonish, by briefly moving slightly in the
+opposite direction of the main motion.  The above settings are the
+default.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="SnapAttraction"></a>31.3.20. SnapAttraction</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">SnapAttraction</code>  [<em class="replaceable"><code>proximity</code></em> [<em class="replaceable"><code>behaviour</code></em>] [Screen]]</p></div><p>The <a href="#SnapAttraction">SnapAttraction</a> command is obsolete.  It has
+been replaced by the <a href="#Style">Style</a> command option
+<a href="#Style_SnapAttraction">SnapAttraction</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="SnapGrid"></a>31.3.21. SnapGrid</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">SnapGrid</code>  [<em class="replaceable"><code>x-grid-size</code></em> <em class="replaceable"><code>y-grid-size</code></em>]</p></div><p>The <a href="#SnapGrid">SnapGrid</a> command is obsolete.  It has
+been replaced by the <a href="#Style">Style</a> command option
+<a href="#Style_SnapGrid">SnapGrid</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="WindowsDesk"></a>31.3.22. WindowsDesk</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">WindowsDesk</code>   <em class="replaceable"><code>arg1</code></em>  [<em class="replaceable"><code>arg2</code></em>]</p></div><p>Moves the selected window to another desktop.</p><p>This command has been removed and must be replaced by
+<a href="#MoveToDesk">MoveToDesk</a>,
+the arguments for which are the same as for the
+<a href="#GotoDesk">GotoDesk</a>
+command.</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3>
+You cannot simply change the name of the command: the syntax has
+changed.  If you used:
+
+<pre class="programlisting">
+WindowsDesk n
+</pre><p>to move a window to desk n, you have to change it to:</p><pre class="programlisting">
+<a href="#MoveToDesk">MoveToDesk</a> 0 n
+</pre></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="XorPixmap"></a>31.3.23. XorPixmap</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">XorPixmap</code>  [<em class="replaceable"><code>pixmap</code></em>]</p></div><p>Selects the pixmap with which bits are xor'ed when doing
+rubber-band window moving or resizing.  This has a better chance
+of making the rubber-band visible if
+<a href="#XorValue">XorValue</a>
+does not give good results.  An example pixmap
+<code class="filename">resize.rainbow.xpm</code>
+is provided with the icon distribution.  To turn the
+<span class="emphasis"><em>XorPixmap</em></span>
+off again use the
+<a href="#XorValue">XorValue</a>
+command or omit the
+<em class="replaceable"><code>pixmap</code></em>
+argument.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="XorValue"></a>31.3.24. XorValue</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">XorValue</code>  [<em class="replaceable"><code>number</code></em>]</p></div><p>Changes the value with which bits are xor'ed when doing
+rubber-band window moving or resizing.
+Valid values range from zero to the maximum value of an
+unsigned long integer on your system.
+Setting this value is a trial-and-error process.
+The default value 0 tries to find a
+value that gives a good contrast to black and white.
+The default value is used if the given
+<em class="replaceable"><code>number</code></em>
+is omitted or invalid.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="focus_and_mouse_movement"></a>31.4. Focus &amp; Mouse Movement</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="CursorMove"></a>31.4.1. CursorMove</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">CursorMove</code>   <em class="replaceable"><code>horizontal</code></em>[<span class="optional">p</span>]   <em class="replaceable"><code>vertical</code></em>[<span class="optional">p</span>] </p></div><p>Moves the mouse pointer by
+<em class="replaceable"><code>horizontal</code></em>
+pages in the X direction and
+<em class="replaceable"><code>vertical</code></em>
+pages in the Y direction.  Either or both entries may be
+negative. Both horizontal and vertical values are expressed in
+percent of pages, so</p><pre class="programlisting">
+CursorMove 100 100
+</pre><p>means to move down and right by one full page.</p><pre class="programlisting">
+CursorMove 50 25
+</pre><p>means to move right half a page and down a quarter of a
+page. Alternatively, the distance can be specified in pixels by
+appending a
+'<a name="CursorMove_p"></a><font class="fvwmopt">p</font>'
+to the horizontal and/or vertical specification.  For example</p><pre class="programlisting">
+CursorMove -10p -10p
+</pre><p>means move ten pixels up and ten pixels left.  The CursorMove
+function should not be called from pop-up menus.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="FlipFocus"></a>31.4.2. FlipFocus</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">FlipFocus</code>  [NoWarp]</p></div><p>Executes a
+<a href="#Focus">Focus</a>
+command as if the user had used the pointer to select the
+window. This command alters the order of the WindowList in the
+same way as clicking in a window to focus, i.e. the target window
+is removed from the
+<span class="emphasis"><em>WindowList</em></span>
+and placed at the start. This command is recommended for use with
+the
+<a href="#Direction">Direction</a>
+command and in the function invoked from
+<a href="#WindowList">WindowList</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Focus"></a>31.4.3. Focus</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Focus</code>  [NoWarp]</p></div><p>Sets the keyboard focus to the selected window.  If the
+<a name="Focus_NoWarp"></a><font class="fvwmopt">NoWarp</font>
+argument is given, this is all it does.  Otherwise it also moves
+the viewport or window as needed to make the selected window
+visible. This command does not automatically raise the
+window. Does not warp the pointer into the selected window (see
+<a href="#WarpToWindow">WarpToWindow</a>
+function).  Does not de-iconify.  This command does not alter the
+order of the
+<span class="emphasis"><em>WindowList</em></span>,
+it rotates the
+<span class="emphasis"><em>WindowList</em></span>
+around so that the target window is at the start.</p><p>When the
+<span class="emphasis"><em>NoWarp</em></span>
+argument is given, Focus cannot transfer the keyboard focus to
+windows on other desks.</p><p>To raise and/or warp a pointer to a window together with
+<span class="emphasis"><em>Focus</em></span> or <a href="#FlipFocus">FlipFocus</a>,
+use a function, like:</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> SelectWindow
++ I Focus
++ I <a href="#Iconify">Iconify</a> false
++ I <a href="#Raise">Raise</a>
++ I <a href="#WarpToWindow">WarpToWindow</a> 50 8p
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="WarpToWindow"></a>31.4.4. WarpToWindow</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">WarpToWindow</code>  [ !raise  |   raise ]  <em class="replaceable"><code>x</code></em>[<span class="optional">p</span>]   <em class="replaceable"><code>y</code></em>[<span class="optional">p</span>] </p></div><p>Warps the cursor to the associated window and raises it
+(unless the option <a name="WarpToWindow_!raise"></a><font class="fvwmopt">!raise</font> is
+present).  The parameters
+<em class="replaceable"><code>x</code></em> and <em class="replaceable"><code>y</code></em>
+default to percentage of window down and in from the upper left
+hand corner (or number of pixels down and in if
+'<a name="WarpToWindow_p"></a><font class="fvwmopt">p</font>'
+is appended to the numbers).  If a number is negative the opposite
+edge is used and the direction reversed.  This command works also
+with windows that are not managed by fvwm.  In this case fvwm does
+not bring the window onto the screen if it is not visible.  For
+example it is possible to warp the pointer to the center of the
+root window on screen 1:</p><pre class="programlisting">
+<a href="#WindowId">WindowId</a> root 1 WarpToWindow 50 50
+</pre></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="window_state"></a>31.5. Window State</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Close"></a>31.5.1. Close</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Close</code> </p></div><p>If the window accepts the delete window protocol a message is sent
+to the window asking it to gracefully remove itself.  If the
+window does not understand the delete window protocol then the
+window is destroyed as with the
+<a href="#Destroy">Destroy</a>
+command.  Note: if the window accepts the delete window protocol
+but does not close itself in response, the window is not deleted.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Delete"></a>31.5.2. Delete</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Delete</code> </p></div><p>Sends a message to a window asking that it remove itself,
+frequently causing the application to exit.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Destroy"></a>31.5.3. Destroy</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Destroy</code> </p></div><p>Destroys an application window, which usually causes the
+application to crash and burn.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Iconify"></a>31.5.4. Iconify</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Iconify</code>  [<em class="replaceable"><code>bool</code></em>]</p></div><p>Iconifies a window if it is not already iconified or de-iconifies
+it if it is already iconified.  The optional argument
+<em class="replaceable"><code>bool</code></em>
+is a boolean argument.  "<a name="Iconify_True"></a><font class="fvwmopt">True</font>" means only iconification is
+allowed, while "<a name="Iconify_False"></a><font class="fvwmopt">False</font>" forces de-iconification.  Using "<a name="Iconify_toggle"></a><font class="fvwmopt">toggle</font>"
+switches between iconified and de-iconified states.</p><p>There are a number of
+<a href="#Style">Style</a>
+options which influence the appearance and behavior of icons (e.g.
+<a href="#Style_StickyIcon">StickyIcon</a>, <a href="#Style_NoIcon">NoIcon</a>).</p><p>For backward compatibility, the optional argument may also be a
+positive number instead of "True", or a negative number instead
+of "False".  Note that this syntax is obsolete, and will be removed
+in the future.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Maximize"></a>31.5.5. Maximize</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Maximize</code>  [<em class="replaceable"><code>flags</code></em>] [<em class="replaceable"><code>bool | forget</code></em>] [<em class="replaceable"><code>horizontal</code></em>[<span class="optional">p</span>]] [<em class="replaceable"><code>vertical</code></em>[<span class="optional">p</span>]]</p></div><p>Without its optional arguments (or if the
+<em class="replaceable"><code>bool</code></em>
+bit has the value "<a name="Maximize_toggle"></a><font class="fvwmopt">toggle</font>")
+<span class="emphasis"><em>Maximize</em></span>
+causes the window to alternately switch from a full-screen size to
+its normal size.  To force a window into maximized (normal) state
+you can use a "<a name="Maximize_True"></a><font class="fvwmopt">True</font>" or "<a name="Maximize_False"></a><font class="fvwmopt">False</font>" value for the
+<em class="replaceable"><code>bool</code></em>
+argument.</p><p>With just the parameter "forget" a maximized window reverts
+back into normal state but keeps its current maximized size.  This
+can be useful in conjunction with the commands
+<a href="#ResizeMaximize">ResizeMaximize</a> and <a href="#ResizeMoveMaximize">ResizeMoveMaximize</a>.  If
+the window is not maximized, nothing happens.</p><p>With the optional arguments
+<em class="replaceable"><code>horizontal</code></em> and <em class="replaceable"><code>vertical</code></em>,
+which are expressed as percentage of a full screen, the user can
+control the new size of the window.  An optional suffix
+'<a name="Maximize_p"></a><font class="fvwmopt">p</font>'
+can be used to indicate pixels instead of percents of the screen
+size.  If horizontal is greater than 0 then the horizontal
+dimension of the window is set to
+<em class="replaceable"><code>horizontal</code></em>*screen_width/100.
+If the value is smaller than 0 the size is subtracted from the
+screen width, i.e. -25 is the same as 75.  If
+<em class="replaceable"><code>horizontal</code></em>
+is "<a name="Maximize_grow"></a><font class="fvwmopt">grow</font>", it is maximized to curren
+available space until
+finding any obstacle.  The vertical resizing is similar.  If both
+horizontal and vertical values are "grow", it expands vertically
+first, then horizontally to find space.  Instead of the horizontal
+"grow" argument, "<a name="Maximize_growleft"></a><font class="fvwmopt">growleft</font>" or "<a name="Maximize_growright"></a><font class="fvwmopt">growright</font>" can be used
+respectively "<a name="Maximize_growup"></a><font class="fvwmopt">growup</font>" and "<a name="Maximize_growdown"></a><font class="fvwmopt">growdown</font>".
+The optional
+<em class="replaceable"><code>flags</code></em>
+argument is a space separated list containing the following
+key words:
+<span class="emphasis"><em>fullscreen</em></span>, <span class="emphasis"><em>ewmhiwa</em></span>, <span class="emphasis"><em>growonwindowlayer</em></span>, <span class="emphasis"><em>growonlayers</em></span> and <span class="emphasis"><em>screen</em></span>.
+<a name="Maximize_fullscreen"></a><font class="fvwmopt">fullscreen</font>
+causes the window to become fullscreened if the appropriate EWMH hint is set.
+<a name="Maximize_ewmhiwa"></a><font class="fvwmopt">ewmhiwa</font>
+causes fvwm to ignore the <acronym class="acronym">EWMH</acronym> working area.
+<a name="Maximize_growonwindowlayer"></a><font class="fvwmopt">growonwindowlayer</font>
+causes the various grow methods to ignore windows with a layer
+other than the current layer of the window which is maximized.
+The
+<a name="Maximize_growonlayers"></a><font class="fvwmopt">growonlayers</font>
+option must have two integer arguments.  The first one is the
+minimum layer and the second one the maximum layer to use.
+Windows that are outside of this range of layers are ignored by
+the grow methods.  A negative value as the first or second
+argument means to assume no minimum or maximum layer.
+<a name="Maximize_screen"></a><font class="fvwmopt">screen</font>
+must have an argument which specifies the Xinerama screen on which
+to operate.
+It can be 'p' for the primary screen, 'c' for the current
+screen (containing the mouse pointer), 'g' for the global screen
+or the screen number itself (counting from zero).  This option is
+only useful with multiple Xinerama screens.</p><p>Here are some examples.  The following adds a title-bar button to
+switch a window to the full vertical size of the screen:</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 0 4 A Maximize 0 100
+</pre><p>The following causes windows to be stretched to the full width:</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 0 4 A Maximize 100 0
+</pre><p>This makes a window that is half the screen size in each
+direction:</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 0 4 A Maximize 50 50
+</pre><p>To expand a window horizontally until any other window is found:</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 0 4 A Maximize 0 grow
+</pre><p>To expand a window until any other window on the same or a higher
+layer is hit.</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 0 4 A Maximize growonlayers $[w.layer] -1 grow grow
+</pre><p>To expand a window but leave the lower 60 pixels of the screen
+unoccupied:</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 0 4 A Maximize 100 -60p
+</pre><p>Values larger than 100 can be used with caution.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Recapture"></a>31.5.6. Recapture</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Recapture</code> </p></div><p>This command is obsolete and should not be used anymore.  Should
+you want to do something specific that you cannot do without it,
+please report this to the fvwm-workers mailing list
+<code class="email">&lt;<a class="email" href="mailto:fvwm-workers@fvwm.org">fvwm-workers@fvwm.org</a>&gt;</code>.  This command may be removed at some point
+in the future.  Please read the note at the end of the section
+<a href="#delayed_execution_of_commands">Delayed Execution of Commands</a>
+to learn about how to avoid the
+<span class="emphasis"><em>Recapture</em></span>
+command.</p><p>Causes fvwm to recapture all of its windows.  This ensures that
+the latest style parameters are used.  The recapture operation is
+visually disturbing.</p><p>Since fvwm version 2.4 only a very few
+<a href="#Style">Style</a>
+options need a
+<span class="emphasis"><em>Recapture</em></span>
+to take effect (e.g.
+<a href="#Style_UseStyle">UseStyle</a>).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="RecaptureWindow"></a>31.5.7. RecaptureWindow</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">RecaptureWindow</code> </p></div><p>This command is obsolete and should not be used anymore.  See
+<a href="#Recapture">Recapture</a>
+For details.</p><p>Causes fvwm to recapture the chosen window.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Refresh"></a>31.5.8. Refresh</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Refresh</code> </p></div><p>Causes all windows on the screen to redraw themselves. All pending
+updates of all windows' styles and looks are applied immediately.
+E.g. if
+<a href="#Style">Style</a> or
+<a href="#TitleStyle">TitleStyle</a>
+commands were issued inside a fvwm function.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="RefreshWindow"></a>31.5.9. RefreshWindow</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">RefreshWindow</code> </p></div><p>Causes the chosen window to redraw itself. All pending updates of
+the window's style and look are applied immediately.  E.g. if
+<a href="#Style">Style</a> or
+<a href="#TitleStyle">TitleStyle</a>
+commands were issued inside a fvwm function.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Stick"></a>31.5.10. Stick</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Stick</code>  [<em class="replaceable"><code>bool</code></em>]</p></div><p>If the
+<em class="replaceable"><code>bool</code></em>
+argument is empty or "<a name="Stick_toggle"></a><font class="fvwmopt">toggle</font>", the
+<span class="emphasis"><em>Stick</em></span>
+command makes a window sticky if it is not already sticky, or
+non-sticky if it is already sticky.  To make a window sticky
+regardless of its current state the
+<em class="replaceable"><code>bool</code></em>
+argument must be "True".  To make it non-sticky use "False".</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="StickAcrossPages"></a>31.5.11. StickAcrossPages</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">StickAcrossPages</code>  [<em class="replaceable"><code>bool</code></em>]</p></div><p>Works like
+<a href="#Stick">Stick</a>
+but only sticks a window across pages, not across desks.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="StickAcrossDesks"></a>31.5.12. StickAcrossDesks</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">StickAcrossDesks</code>  [<em class="replaceable"><code>bool</code></em>]</p></div><p>Works like
+<a href="#Stick">Stick</a>
+but only sticks a window across desks, not across pages.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="WindowShade"></a>31.5.13. WindowShade</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">WindowShade</code>   [bool] |  [[ShadeAgain]  <em class="replaceable"><code>direction</code></em> ] </p></div><p>Toggles the window shade feature for titled windows.  Windows in
+the shaded state only display a title-bar.  If
+<span class="emphasis"><em>bool</em></span>
+is not given or "<a name="WindowShade_toggle"></a><font class="fvwmopt">toggle</font>",
+the window shade state is toggled.  If
+<span class="emphasis"><em>bool</em></span>
+is "True", the window is forced to the shaded state.  If
+<span class="emphasis"><em>bool</em></span>
+is "False", then the window is forced to the non-shaded
+state.  To force shading in a certain direction, the
+<em class="replaceable"><code>direction</code></em>
+argument can be used.  Any of the strings
+"<a name="WindowShade_North"></a><font class="fvwmopt">North</font>",
+"<a name="WindowShade_South"></a><font class="fvwmopt">South</font>",
+"<a name="WindowShade_West"></a><font class="fvwmopt">West</font>",
+"<a name="WindowShade_East"></a><font class="fvwmopt">East</font>",
+"<a name="WindowShade_NorthWest"></a><font class="fvwmopt">NorthWest</font>",
+"<a name="WindowShade_NorthEast"></a><font class="fvwmopt">NorthEast</font>",
+"<a name="WindowShade_SouthWest"></a><font class="fvwmopt">SouthWest</font>",
+"<a name="WindowShade_SouthEast"></a><font class="fvwmopt">SouthEast</font>" or
+"<a name="WindowShade_Last"></a><font class="fvwmopt">Last</font>"
+can be given. The direction can be abbreviated with
+the usual one or two letters "<a name="WindowShade_N"></a><font class="fvwmopt">N</font>", "<a name="WindowShade_NW"></a><font class="fvwmopt">NW</font>", etc.  Using a direction on
+a window that was already shaded unshades the window.  To shade it
+in a different direction, use the
+<a name="WindowShade_ShadeAgain"></a><font class="fvwmopt">ShadeAgain</font>
+option. The direction
+<span class="emphasis"><em>Last</em></span>
+shades the window in the direction it last was shaded. If the
+window has never been shaded before it is shaded as if no
+direction had been given. Windows without titles can be shaded too.
+Please refer also to the options
+<a href="#Style_WindowShadeSteps">WindowShadeSteps</a>,
+<a href="#Style_WindowShadeShrinks">WindowShadeShrinks</a>,
+<a href="#Style_WindowShadeScrolls">WindowShadeScrolls</a>,
+<a href="#Style_WindowShadeLazy">WindowShadeLazy</a>,
+<a href="#Style_WindowShadeAlwaysLazy">WindowShadeAlwaysLazy</a> and
+<a href="#Style_WindowShadeBusy">WindowShadeBusy</a>
+options of the
+<a href="#Style">Style</a>
+command.  Examples:</p><pre class="programlisting">
+<a href="#Style">Style</a> * <a href="#Style_WindowShadeShrinks">WindowShadeShrinks</a>, <a href="#Style_WindowShadeSteps">WindowShadeSteps</a> 20, \
+        <a href="#Style_WindowShadeLazy">WindowShadeLazy</a>
+<a href="#Mouse">Mouse</a> 1 - S WindowShade North
+<a href="#Mouse">Mouse</a> 1 [ S WindowShade West
+<a href="#Mouse">Mouse</a> 1 ] S WindowShade E
+<a href="#Mouse">Mouse</a> 1 _ S WindowShade S
+</pre><p>Note: When a window that has been shaded with a
+<em class="replaceable"><code>direction</code></em>
+argument changes the direction of the window title (see
+<a href="#Style_TitleAtTop">TitleAtTop</a>
+<a href="#Style">Style</a>
+option), the shading direction does not change.  This may look
+very strange.  Windows that were shaded without a
+<em class="replaceable"><code>direction</code></em>
+argument stay shaded in the direction of the title bar.</p><p>For backward compatibility, the optional argument may also be 1 to
+signify "on", and 2 to signify "off". Note that this syntax is
+obsolete, and will be removed in the future.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="WindowShadeAnimate"></a>31.5.14. WindowShadeAnimate</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">WindowShadeAnimate</code>  [<em class="replaceable"><code>steps</code></em> [p]]</p></div><p>This command is obsolete.  Please use the
+<a href="#Style_WindowShadeSteps">WindowShadeSteps</a>
+option of the
+<a href="#Style">Style</a>
+command instead.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="mouse_key_and_stroke_bindings"></a>31.6. Mouse, Key &amp; Stroke Bindings</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="IgnoreModifiers"></a>31.6.1. IgnoreModifiers</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">IgnoreModifiers</code>  [<em class="replaceable"><code>Modifiers</code></em>]</p></div><p>Tells fvwm which modifiers to ignore when matching Mouse or Key
+bindings.
+<span class="emphasis"><em>IgnoreModifiers</em></span>
+affects the
+<a href="#Style_ClickToFocus">ClickToFocus</a>
+style too.  This command belongs into your
+<code class="filename">config</code>.
+If you issue it when your fvwm session is already up and running
+the results are unpredictable.  The should appear before any
+applications or modules are started in your
+<code class="filename">config</code>
+file (e.g. with the
+<a href="#Exec">Exec</a>
+command).</p><p><em class="replaceable"><code>Modifiers</code></em>
+has the same syntax as in the
+<a href="#Mouse">Mouse</a> or <a href="#Key">Key</a>
+bindings, with the addition of 'L' meaning the
+<span class="keysym">caps lock</span>
+key.  The default is "L".
+<em class="replaceable"><code>Modifiers</code></em>
+can be omitted, meaning no modifiers are ignored.  This command
+comes in handy if the
+<span class="keysym">num-lock</span>
+and
+<span class="keysym">scroll-lock</span>
+keys interfere with your shortcuts.  With XFree86 '2' usually is
+the
+<span class="keysym">num-lock</span>
+modifier and '5' refers to the
+<span class="keysym">scroll-lock</span>
+key. To turn all these pesky modifiers off you can use this
+command:</p><pre class="programlisting">
+IgnoreModifiers L25
+</pre><p>If the
+<em class="replaceable"><code>Modifiers</code></em>
+argument is the string "<a name="IgnoreModifiers_default"></a><font class="fvwmopt">default</font>", fvwm reverts back to the
+default value "L".</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3>
+This command creates a lot of extra network traffic, depending on
+your CPU, network connection, the number of
+<a href="#Key">Key</a> or <a href="#Mouse">Mouse</a>
+commands in your configuration file and the number of modifiers
+you want to ignore.  If you do not have a lightning fast machine
+or very few bindings you should not ignore more than two
+modifiers. I.e. do not ignore
+<span class="keysym">scroll-lock</span>
+if you have no problem with it.  In the
+<span class="emphasis"><em>FAQ</em></span>
+you can find a better solution of this problem.</div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="EdgeCommand"></a>31.6.2. EdgeCommand</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">EdgeCommand</code>  [ <em class="replaceable"><code>direction</code></em>  [<em class="replaceable"><code>Function</code></em>]]</p></div><p>Binds a specified fvwm command
+<em class="replaceable"><code>Function</code></em>
+to an edge of the screen. Direction may be one of
+"<a name="EdgeCommand_North"></a><font class="fvwmopt">North</font>",
+"<a name="EdgeCommand_Top"></a><font class="fvwmopt">Top</font>",
+"<a name="EdgeCommand_West"></a><font class="fvwmopt">West</font>",
+"<a name="EdgeCommand_Left"></a><font class="fvwmopt">Left</font>",
+"<a name="EdgeCommand_South"></a><font class="fvwmopt">South</font>",
+"<a name="EdgeCommand_Bottom"></a><font class="fvwmopt">Bottom</font>",
+"<a name="EdgeCommand_Right"></a><font class="fvwmopt">Right</font>" and
+"<a name="EdgeCommand_East"></a><font class="fvwmopt">East</font>".
+If
+<em class="replaceable"><code>Function</code></em>
+is omitted the binding for this edge is removed. If EdgeCommand is
+called without any arguments all edge bindings are removed.</p><p><em class="replaceable"><code>Function</code></em> is executed when the mouse pointer
+enters the invisible pan frames that surround the visible screen.
+The binding works only if
+<a href="#EdgeThickness">EdgeThickness</a>
+is set to a value greater than 0.
+If a function is bound to an edge, scrolling specified by
+<a href="#EdgeScroll">EdgeScroll</a>
+is disabled for this edge.
+It is possible to bind a function only to some edges
+and use the other edges for scrolling.
+This command is intended to raise or lower certain windows
+when the mouse pointer enters an edge.
+<a href="../modules/FvwmAuto.html">FvwmAuto</a>
+can be used get a delay when raising or lowering windows.
+The following example raises
+<a href="../modules/FvwmButtons.html">FvwmButtons</a>
+if the mouse pointer enters the top edge of the screen.</p><pre class="programlisting">
+# Disable EdgeScrolling but make it possible
+# to move windows over the screen edge
+<a href="#EdgeResistance">EdgeResistance</a> -1
+<a href="#Style">Style</a> * EdgeMoveDelay 250
+<a href="#Style">Style</a> * EdgeMoveResistance 20
+
+# Set thickness of the edge of the screen to 1
+<a href="#EdgeThickness">EdgeThickness</a> 1
+
+# Give focus to FvwmButtons if the mouse
+# hits top edge
+EdgeCommand Top <a href="#Next">Next</a> (FvwmButtons) <a href="#Focus">Focus</a>
+# Make sure the <a href="#Next">Next</a> command matches the window
+<a href="#Style">Style</a> FvwmButtons CirculateHit
+
+<a href="#Module">Module</a> <a href="../modules/FvwmButtons.html">FvwmButtons</a>
+<a href="#Module">Module</a> <a href="../modules/FvwmAuto.html">FvwmAuto</a> 100 "Silent AutoRaiseFunction" \
+     "Silent AutoLowerFunction"
+
+# If any window except FvwmButtons has
+# focus when calling this function
+# FvwmButtons are lowered
+<a href="#DestroyFunc">DestroyFunc</a> AutoLowerFunction
+<a href="#AddToFunc">AddToFunc</a> AutoLowerFunction
++ I <a href="#Current">Current</a> (!FvwmButtons) <a href="#All">All</a> (FvwmButtons) <a href="#Lower">Lower</a>
+
+# If FvwmButtons has focus when calling this function raise it
+<a href="#DestroyFunc">DestroyFunc</a> AutoRaiseFunction
+<a href="#AddToFunc">AddToFunc</a> AutoRaiseFunction
++ I <a href="#Current">Current</a> (FvwmButtons) <a href="#Raise">Raise</a>
+</pre><p>Normally, the invisible pan frames are only on the screen edges
+that border virtual pages.  If a screen edge has a command bound
+to it, the pan frame is always created on that edge.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="EdgeLeaveCommand"></a>31.6.3. EdgeLeaveCommand</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">EdgeLeaveCommand</code>  [ <em class="replaceable"><code>direction</code></em> 
+		 [<em class="replaceable"><code>Function</code></em>]]</p></div><p>Binds a specified fvwm command
+<em class="replaceable"><code>Function</code></em>
+to an edge of the screen. Direction may be one of
+"<a name="EdgeLeaveCommand_North"></a><font class="fvwmopt">North</font>",
+"<a name="EdgeLeaveCommand_Top"></a><font class="fvwmopt">Top</font>",
+"<a name="EdgeLeaveCommand_West"></a><font class="fvwmopt">West</font>",
+"<a name="EdgeLeaveCommand_Left"></a><font class="fvwmopt">Left</font>",
+"<a name="EdgeLeaveCommand_South"></a><font class="fvwmopt">South</font>",
+"<a name="EdgeLeaveCommand_Bottom"></a><font class="fvwmopt">Bottom</font>",
+"<a name="EdgeLeaveCommand_Right"></a><font class="fvwmopt">Right</font>" and
+"<a name="EdgeLeaveCommand_East"></a><font class="fvwmopt">East</font>".
+If
+<em class="replaceable"><code>Function</code></em>
+is omitted the binding for this edge is removed. If
+EdgeLeaveCommand is called without any arguments all edge bindings
+are removed.</p><p><em class="replaceable"><code>Function</code></em>
+is executed when the mouse pointer
+leaves the invisible pan frames that surround the visible screen.
+The binding works only if
+<a href="#EdgeThickness">EdgeThickness</a>
+is set to a value greater than 0.
+If a function is bound to an edge, scrolling specified by
+<a href="#EdgeScroll">EdgeScroll</a>
+is disabled for this edge.
+It is possible to bind a function only to some edges
+and use the other edges for scrolling.
+This command is intended to raise or lower certain windows
+when the mouse pointer leaves an edge.
+<a href="../modules/FvwmAuto.html">FvwmAuto</a>
+can be used get a delay when raising or lowering windows.
+See example for
+<a href="#EdgeCommand">EdgeCommand</a></p><p>Normally, the invisible pan frames are only on the screen edges
+that border virtual pages.  If a screen edge has a command bound
+to it, the pan frame is always created on that edge.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Key"></a>31.6.4. Key</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Key</code>  [(<em class="replaceable"><code>window</code></em>)]  <em class="replaceable"><code>Keyname</code></em>   <em class="replaceable"><code>Context</code></em>   <em class="replaceable"><code>Modifiers</code></em>   <em class="replaceable"><code>Function</code></em> </p></div><p>Binds a keyboard key to a specified fvwm command, or
+removes the binding if
+<em class="replaceable"><code>Function</code></em>
+is '-'.  The syntax is the same as for a
+<a href="#Mouse">Mouse</a>
+binding except that the mouse button number is replaced with a
+<em class="replaceable"><code>Keyname</code></em>.
+Normally, the key binding is activated when the key is pressed.
+<em class="replaceable"><code>Keyname</code></em>
+is a standard X11 key name as defined in
+<code class="filename">/usr/include/X11/keysymdef.h</code>,
+(without the
+<span class="emphasis"><em>XK_</em></span>
+prefix), or the keysym database
+<code class="filename">/usr/X11R6/lib/X11/XKeysymDB</code>.
+Only key names that are
+generated with no modifier keys or with just the
+<span class="keysym">Shift</span>
+key held are guaranteed to work.  The
+<em class="replaceable"><code>Context</code></em> and <em class="replaceable"><code>Modifiers</code></em>
+fields are defined as in the
+<a href="#Mouse">Mouse</a>
+binding.  However, when you press a key the context window is the
+window that has the keyboard focus.  That is not necessarily the
+same as the window the pointer is over (with
+<a href="#Style_SloppyFocus">SloppyFocus</a> or
+<a href="#Style_ClickToFocus">ClickToFocus</a>).
+Note that key bindings with the '<a name="Key_R"></a><font class="fvwmopt">R</font>' (root window) context do not
+work properly with
+<a href="#Style_SloppyFocus">SloppyFocus</a> and
+<a href="#Style_ClickToFocus">ClickToFocus</a>.
+If you encounter problems, use the
+<a href="#PointerKey">PointerKey</a>
+command instead.  If you want to bind keys to a window with
+<a href="#Style_SloppyFocus">SloppyFocus</a> or
+<a href="#Style_ClickToFocus">ClickToFocus</a>
+that are supposed to work when the pointer is not over the window,
+fvwm assumes the pointer is over the client window (i.e. you have
+to use the 'W' context).</p><p>The special context '<a name="Key_M"></a><font class="fvwmopt">M</font>' for menus can be used to (re)define the menu
+controls. It be used alone or together with 'T', 'S', 'I', '[', ']', '-' and '_'.  See the <a href="#menu_bindings">Menu Bindings</a>
+section for details.</p><p>The following example binds the built-in window list to pop up
+when
+<span class="keysym">Alt-Ctrl-Shift-F11</span>
+is hit, no matter where the mouse pointer is:</p><pre class="programlisting">
+Key F11 A SCM <a href="#WindowList">WindowList</a>
+</pre><p>Binding a key to a title-bar button causes that button to appear.
+Please refer to the
+<a href="#Mouse">Mouse</a>
+command for details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Mouse"></a>31.6.5. Mouse</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Mouse</code>  [(<em class="replaceable"><code>window</code></em>)]  <em class="replaceable"><code>Button</code></em>   <em class="replaceable"><code>Context</code></em>   <em class="replaceable"><code>Modifiers</code></em>   <em class="replaceable"><code>Function</code></em> </p></div><p>Defines a mouse binding, or removes the binding if
+<em class="replaceable"><code>Function</code></em>
+is '-'.
+<em class="replaceable"><code>Button</code></em>
+is the mouse button number.  If
+<em class="replaceable"><code>Button</code></em>
+is zero then any button performs the specified function.  Note
+that only mouse buttons 1 to 5 are fully supported by X11.  Any
+number above this works only partially.  Complex functions can not
+be used with these buttons and neither any operation that requires
+dragging the pointer with the button held.  This is due to
+limitations of X11.  By default, the highest allowed button number
+is 9.</p><p><em class="replaceable"><code>Context</code></em>
+describes where the binding applies.  Valid contexts are
+'<a name="Mouse_R"></a><font class="fvwmopt">R</font>' for the root window,
+'<a name="Mouse_W"></a><font class="fvwmopt">W</font>' for an application window,
+'<a name="Mouse_D"></a><font class="fvwmopt">D</font>' for a desktop application (as kdesktop or Nautilus desktop),
+'<a name="Mouse_T"></a><font class="fvwmopt">T</font>' for a window title-bar,
+'<a name="Mouse_S"></a><font class="fvwmopt">S</font>' for a window side, top, or bottom bar,
+'<a name="Mouse_%5B"></a><font class="fvwmopt">[</font>',
+'<a name="Mouse_%5D"></a><font class="fvwmopt">]</font>',
+'<a name="Mouse_-"></a><font class="fvwmopt">-</font>' and
+'<a name="Mouse__"></a><font class="fvwmopt">_</font>' for the left, right, top or bottom side only,
+'<a name="Mouse_F"></a><font class="fvwmopt">F</font>' for a window frame (the corners),
+'&lt;', '^', '&gt;' and
+'<a name="Mouse_v"></a><font class="fvwmopt">v</font>' for the top
+left, top right, bottom right or bottom left corner,
+'<a name="Mouse_I"></a><font class="fvwmopt">I</font>' for an icon window, or
+'<a name="Mouse_0"></a><font class="fvwmopt">0</font>' through
+'<a name="Mouse_9"></a><font class="fvwmopt">9</font>' for title-bar buttons, or any combination of these letters.
+'<a name="Mouse_A"></a><font class="fvwmopt">A</font>' is for any context.  For
+instance, a context of "FST" applies when the mouse is anywhere in
+a window's border except the title-bar buttons.  Only 'S' and 'W'
+are valid for an undecorated window.</p><p>The special context '<a name="Mouse_M"></a><font class="fvwmopt">M</font>' for menus can be used to (re)define the menu
+controls. It can be used alone or together with 'T', 'S', 'I', '[', ']', '-' and '_'.  See the
+<a href="#menu_bindings">Menu Bindings</a>
+section for details.</p><p>The special context '<a name="Mouse_P"></a><font class="fvwmopt">P</font>' controls what buttons that can be used to
+place a window. When using this context no modifiers are allowed
+(<em class="replaceable"><code>Modifiers</code></em>
+must be N), no
+<em class="replaceable"><code>window</code></em>
+is allowed, and the
+<em class="replaceable"><code>Function</code></em>
+must be one of
+<span class="emphasis"><em>PlaceWindow</em></span>,
+<span class="emphasis"><em>PlaceWindowDrag</em></span>,
+<span class="emphasis"><em>PlaceWindowInteractive</em></span>,
+<span class="emphasis"><em>CancelPlacement</em></span>,
+<span class="emphasis"><em>CancelPlacementDrag</em></span>,
+<span class="emphasis"><em>CancelPlacementInteractive</em></span> or
+<span class="emphasis"><em>-</em></span>.</p><p>
+<a name="Mouse_PlaceWindow"></a><font class="fvwmopt">PlaceWindow</font>
+makes
+<em class="replaceable"><code>Button</code></em>
+usable for window placement, both for interactive and drag move.
+<a name="Mouse_CancelPlacement"></a><font class="fvwmopt">CancelPlacement</font>
+does the inverse. That is makes
+<em class="replaceable"><code>Button</code></em>
+to cancel move for both interactive and drag move. It may however
+not override how new windows are resized after being placed. This
+is controlled by the
+<a href="#Emulate">Emulate</a>
+command. Also a window being dragged can always be placed
+by releasing the button hold while dragging, regardless of if it is
+set to
+<span class="emphasis"><em>PlaceWindow</em></span>
+or not.</p><p>
+<a name="Mouse_PlaceWindowDrag"></a><font class="fvwmopt">PlaceWindowDrag</font> and
+<a name="Mouse_PlaceWindowInteractive"></a><font class="fvwmopt">PlaceWindowInteractive</font>/<a name="Mouse_CancelPlacementDrag"></a><font class="fvwmopt">CancelPlacementDrag</font>
+and <a name="Mouse_CancelPlacementInteractive"></a><font class="fvwmopt">CancelPlacementInteractive</font>
+work as
+<span class="emphasis"><em>PlaceWindow</em></span>/<span class="emphasis"><em>CancelPlacement</em></span>
+with the exception that they only affect either windows dragged /
+placed interactively.</p><p>
+<a name="Mouse_-"></a><font class="fvwmopt">-</font>
+is equivalent to
+<span class="emphasis"><em>CancelPlacement</em></span>.</p><p>The following example makes all buttons but button 3 usable for
+interactive placement and makes drag moves started by other buttons
+than one cancel if button 1 is pressed before finishing the move:</p><pre class="programlisting">
+Mouse 0 P N PlaceWindow
+Mouse 3 P N CancelPlacement
+Mouse 1 P N CancelPlacementDrag
+</pre><p>By default, the binding applies to all windows. You can specify
+that a binding only applies to specific windows by specifying the
+window name in brackets. The window name is a wildcard pattern
+specifying the class, resource or name of the window you want the
+binding to apply to.</p><p>The following example shows how the same key-binding can be used to
+perform different functions depending on the window that is focused:</p><pre class="programlisting">
+<a href="#Key">Key</a> (rxvt)  V A C <a href="#Echo">Echo</a> ctrl-V-in-RXVT
+<a href="#Key">Key</a> (*term) V A C <a href="#Echo">Echo</a> ctrl-V-in-Term
+<a href="#Key">Key</a> (*vim)  V A C --
+<a href="#Key">Key</a>         V A C <a href="#Echo">Echo</a> ctrl-V-elsewhere
+</pre><p>A '<a name="Mouse_--"></a><font class="fvwmopt">--</font>' action indicates that the event should be propagated to the
+specified window to handle. This is only a valid action for
+window-specific bindings.</p><p>This example shows how to display the WindowList when Button 3 is
+pressed on an rxvt window:</p><pre class="programlisting">
+Mouse (rxvt) 3 A A <a href="#WindowList">WindowList</a>
+</pre><p>Note that Fvwm actually intercepts all events for a window-specific
+binding and (if the focused window doesn't match any of the
+bindings) sends a synthetic copy of the event to the window. This
+should be transparent to most applications, however (for security
+reasons) some programs ignore these synthetic events by default -
+xterm is one of them. To enable handling of these events, add the
+following line to your <code class="filename">~/.Xdefaults</code> file:</p><pre class="programlisting">
+XTerm*allowSendEvents:  true
+</pre><p><em class="replaceable"><code>Modifiers</code></em>
+is any combination of
+'<a name="Mouse_N"></a><font class="fvwmopt">N</font>' for no modifiers,
+'<a name="Mouse_C"></a><font class="fvwmopt">C</font>' for control,
+'<a name="Mouse_S"></a><font class="fvwmopt">S</font>' for shift,
+'<a name="Mouse_M"></a><font class="fvwmopt">M</font>' for Meta,
+'<a name="Mouse_L"></a><font class="fvwmopt">L</font>' for Caps-Lock or
+'<a name="Mouse_A"></a><font class="fvwmopt">A</font>' for any
+modifier. For example, a modifier of "SM" applies when both the
+<span class="keysym">Meta</span>
+and
+<span class="keysym">Shift</span>
+keys are down.  X11 modifiers mod1 through mod5 are represented as
+the digits '1' through '5'.  The modifier 'L' is ignored by
+default.  To turn it on, use the
+<a href="#IgnoreModifiers">IgnoreModifiers</a>
+command.</p><p><em class="replaceable"><code>Function</code></em>
+is one of fvwm's commands.</p><p>The title-bar buttons are numbered with odd numbered buttons on
+the left side of the title-bar and even numbers on the
+right. Smaller-numbered buttons are displayed toward the outside
+of the window while larger-numbered buttons appear toward the
+middle of the window (0 is short for 10).  In summary, the buttons
+are numbered:</p><pre class="programlisting">
+1 3 5 7 9    0 8 6 4 2
+</pre><p>The highest odd numbered button which has an action bound to it
+determines the number of buttons drawn on the left side of the
+title bar.  The highest even number determines the number of right
+side buttons which are drawn.  Actions can be bound to either
+mouse buttons or keyboard keys.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="PointerKey"></a>31.6.6. PointerKey</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">PointerKey</code>  [(<em class="replaceable"><code>window</code></em>)]  <em class="replaceable"><code>Keyname</code></em>   <em class="replaceable"><code>Context</code></em>   <em class="replaceable"><code>Modifiers</code></em>   <em class="replaceable"><code>Function</code></em> </p></div><p>This command works exactly like the
+<a href="#Key">Key</a>
+command.  The only difference is that the binding operates on the
+window under the pointer.  Normal key bindings operate on the
+focused window instead.  The
+<span class="emphasis"><em>PointerKey</em></span>
+command can for example be used to bind keys to the root window if
+you are using
+<a href="#Style_SloppyFocus">SloppyFocus</a> or
+<a href="#Style_ClickToFocus">ClickToFocus</a>.
+However, some applications (xterm is one example) are unable to
+handle this key anymore, even if the pointer is over the xterm
+window.  It is recommended to use the
+<span class="emphasis"><em>PointerKey</em></span>
+command only for key combinations that are not needed in any
+application window.</p><p>Example:</p><pre class="programlisting">
+<a href="#Style">Style</a> * <a href="#Style_SloppyFocus">SloppyFocus</a>
+PointerKey f1 a m <a href="#Menu">Menu</a> MainMenu
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Stroke"></a>31.6.7. Stroke</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Stroke</code>  [(<em class="replaceable"><code>window</code></em>)]  <em class="replaceable"><code>Sequence</code></em>   <em class="replaceable"><code>Button</code></em>   <em class="replaceable"><code>Context</code></em>   <em class="replaceable"><code>Modifiers</code></em>   <em class="replaceable"><code>Function</code></em> </p></div><p>Binds a mouse stroke sequence to a specified fvwm command,
+or removes the binding if
+<em class="replaceable"><code>Function</code></em>
+is '-'.  The syntax is the same as for a
+<a href="#Mouse">Mouse</a>
+binding except that
+<em class="replaceable"><code>Sequence</code></em>
+is inserted in front of the button number and a value of 0 for
+<em class="replaceable"><code>Button</code></em>
+concerns the
+<a href="#StrokeFunc">StrokeFunc</a>
+command.  The
+<em class="replaceable"><code>Context</code></em> and <em class="replaceable"><code>Modifiers</code></em>
+fields are defined as in the
+<a href="#Mouse">Mouse</a>
+binding.  However, only the '<a href="#Mouse_R">R</a>' Context really works (if you want
+to use other contexts you need to use the
+<a href="#StrokeFunc">StrokeFunc</a>
+below).</p><p>Strokes sequences are defined in a telephone grid like this:</p><pre class="programlisting">
+ 1  2  3
+
+ 4  5  6
+
+ 7  8  9
+</pre><p>or in a numeric pad grid like this:</p><pre class="programlisting">
+ 7  8  9
+
+ 4  5  6
+
+ 1  2  3
+</pre><p>The telephone grid is used by default, to use the numeric pad grid
+you should begin the sequence with a '<a name="Stroke_N"></a><font class="fvwmopt">N</font>'.
+Note that a complex motion may produce several different sequences
+(see the "netscape"
+example below to handle such motion).  Moreover, sequences are
+limited to 20 elements (with the present version of
+<span class="emphasis"><em>libstroke</em></span>),
+however, in practice it is preferable to use sequence with less
+than 12 elements.</p><p>Because of the default button menu in fvwm, you may need to remove
+a mouse button binding (using an empty action) before using the
+stroke</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 3 R N
+</pre><p>Also, you can still use the stroke "sequence 0" to simulate a
+click:</p><pre class="programlisting">
+Stroke 0 3 R N <a href="#Menu">Menu</a> <a href="#WindowList">WindowList</a> <a href="#Nop">Nop</a>
+</pre><p>The following example starts xterm when the mouse drags an 'I' on
+the root window with button 3 pressed down:</p><pre class="programlisting">
+Stroke 258  3  R  N  <a href="#Exec">Exec</a> exec xterm
+</pre><p>An example for Netscape:</p><pre class="programlisting">
+Stroke 7415963    3  R  N  <a href="#Exec">Exec</a> exec netscape
+Stroke 74148963   3  R  N  <a href="#Exec">Exec</a> exec netscape
+Stroke 74158963   3  R  N  <a href="#Exec">Exec</a> exec netscape
+Stroke 7418963    3  R  N  <a href="#Exec">Exec</a> exec netscape
+Stroke 415963     3  R  N  <a href="#Exec">Exec</a> exec netscape
+</pre><p>You may prefer to use the numeric pad grid since you have such a
+grid on your machine. Here an example:</p><pre class="programlisting">
+Stroke N78963214   3  R  N <a href="../modules/FvwmForm.html">FvwmForm</a> FvwmForm-QuitVerify
+Stroke N789632147  3  R  N <a href="../modules/FvwmForm.html">FvwmForm</a> FvwmForm-QuitVerify
+</pre><p>This example starts the "QuitVerify" form if you draw a box that
+begins in the top left corner.</p><p>Note: You need
+<span class="emphasis"><em>libstroke</em></span>
+installed and fvwm compiled with stroke support.
+
+<span class="emphasis"><em>libstroke</em></span>
+can be obtained at
+<a class="ulink" href="http://www.etla.net/~willey/projects/libstroke/" target="_top">http://www.etla.net/~willey/projects/libstroke/</a>
+</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="StrokeFunc"></a>31.6.8. StrokeFunc</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">StrokeFunc</code>  [<em class="replaceable"><code>Options</code></em>]</p></div><p>Causes fvwm to record a mouse stroke sequence and to execute the
+corresponding action as defined in a
+<a href="#Stroke">Stroke</a>
+command.  The cursor is modified to the
+<a href="#CursorStyle_STROKE">STROKE</a>
+context of the
+<a href="#CursorStyle">CursorStyle</a>
+command during recording.  When the stroke is finished
+<span class="emphasis"><em>StrokeFunc</em></span>
+looks for a stroke binding of the form</p><pre class="programlisting">
+<a href="#Stroke">Stroke</a> sequence 0 Context Modifiers action
+</pre><p>and executes the corresponding action (Note the 0).  Normal use of
+this function is via a
+<a href="#Mouse">Mouse</a> or
+<a href="#Key">Key</a>
+command.  Examples:</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 3 A M StrokeFunc
+<a href="#Key">Key</a> x R N StrokeFunc
+</pre><p>If you press mouse button 3 and
+<span class="keysym">Alt</span>
+anywhere (respectively, press the key x when the cursor is on the
+root window), then fvwm records the mouse motions until the mouse
+button 3 (respectively, the x key) is released and then check if
+the recorded
+<span class="emphasis"><em>sequence</em></span>
+corresponds to a stroke binding of the form</p><pre class="programlisting">
+"Stroke <em class="replaceable"><code>sequence</code></em> 0 A M <em class="replaceable"><code>action</code></em>"
+"Stroke <em class="replaceable"><code>sequence</code></em> 0 R N <em class="replaceable"><code>action</code></em>"
+</pre><p>Note that the
+<em class="replaceable"><code>Context</code></em> and <em class="replaceable"><code>Modifiers</code></em>
+are taken at the beginning of the execution of the
+<span class="emphasis"><em>StrokeFunc</em></span>
+command (so you can release the modifiers before the end of the
+stroke recording in the case of a mouse binding and if you used,
+say, a title-bar context the mouse motion can go through an
+application window).  The keys
+<span class="keysym">Escape</span> and
+<span class="keysym">Delete</span>
+allow you to abort the command.</p><p>The
+<span class="emphasis"><em>StrokeFunc</em></span>
+command has five options:
+<span class="emphasis"><em>NotStayPressed</em></span>, <span class="emphasis"><em>EchoSequence</em></span>, <span class="emphasis"><em>DrawMotion</em></span>, 
+<span class="emphasis"><em>FeedBack</em></span> and <span class="emphasis"><em>StrokeWidth</em></span>.
+These options are disabled by default.
+<a name="StrokeFunc_EchoSequence"></a><font class="fvwmopt">EchoSequence</font>
+causes fvwm to Echo the recorded stroke sequence.
+<a name="StrokeFunc_DrawMotion"></a><font class="fvwmopt">DrawMotion</font>
+causes fvwm to draw the mouse motion on the screen.
+<a name="StrokeFunc_FeedBack"></a><font class="fvwmopt">FeedBack</font>
+causes fvwm to display during a fraction of second the cursor of
+the
+<a href="#CursorStyle_WAIT">WAIT</a>
+context of the
+<a href="#CursorStyle">CursorStyle</a>
+command if the recorded stroke sequence corresponds to a stroke
+binding.
+<a name="StrokeFunc_StrokeWidth"></a><font class="fvwmopt">StrokeWidth</font>
+takes an integer argument, which must be &gt;= 0 and &lt;= 100 and which
+defines the width of the line for the
+<span class="emphasis"><em>DrawMotion</em></span>
+option.</p><p>
+<a name="StrokeFunc_NotStayPressed"></a><font class="fvwmopt">NotStayPressed</font>
+works only if
+<span class="emphasis"><em>StrokeFunc</em></span>
+is used via a
+<a href="#Mouse">Mouse</a>
+or a
+<a href="#Key">Key</a>
+command.  This option removes the need to have a button or the key
+pressed during the stroke, but you have to do a mouse click or
+press the
+<span class="keysym">Return</span>
+or
+<span class="keysym">Space</span>
+key to finish the mouse motion recording (these keys also work
+without the
+<span class="emphasis"><em>NotStayPressed</em></span>
+option).</p><p>You can use the
+<span class="emphasis"><em>StrokeFunc</em></span>
+"alone".  In this case it works as above with the
+<span class="emphasis"><em>NotStayPressed</em></span>
+option enabled.  However,
+<em class="replaceable"><code>Modifiers</code></em>,
+in general, may not work as expected (i.e., in this case use 'A'
+or 'N' as
+<em class="replaceable"><code>Modifiers</code></em>
+in the stroke bindings).</p><p>Note that some computers do not support key release events. If
+that is the case the
+<span class="emphasis"><em>StrokeFunc</em></span>
+used via a
+<a href="#Key">Key</a>
+command works as if the
+<span class="emphasis"><em>NotStayPressed</em></span>
+option is enabled.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="controlling_window_styles"></a>31.7. Controlling Window Styles</h3></div></div></div><p>For readability, the commands in this section are not sorted alphabetically.
+The description of the <a href="#Style">Style</a> command can be found at the end of this section.</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="FocusStyle"></a>31.7.1. FocusStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">FocusStyle</code>   <em class="replaceable"><code>stylename</code></em>   <em class="replaceable"><code>options</code></em> </p></div><p>works exactly like the
+<a href="#Style">Style</a>
+command, but accepts only the focus policy related styles
+beginning with "FP".  The prefix can be removed, but at the cost
+of a little bit of time.
+<span class="emphasis"><em>FocusStyle</em></span>
+is meant to make the configuration file more readable.  Example:</p><pre class="programlisting">
+FocusStyle * EnterToFocus, !LeaveToUnfocus
+</pre><p>is equivalent to</p><pre class="programlisting">
+<a href="#Style">Style</a> * FPEnterToFocus, !FPLeaveToUnfocus
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DestroyStyle"></a>31.7.2. DestroyStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DestroyStyle</code>   <em class="replaceable"><code>style</code></em> </p></div><p>deletes the style named
+<em class="replaceable"><code>style</code></em>.
+The changes take effect immediately.  Note that
+<em class="replaceable"><code>style</code></em>
+is not a wild-carded search string, but rather a case-sensitive
+string that should exactly match the original
+<a href="#Style">Style</a>
+command.</p><p>Destroying style "*" can be done, but isn't really to be
+recommended. For example:</p><pre class="programlisting">
+DestroyStyle Application*
+</pre><p>This removes all settings for the style named "Application*", NOT
+all styles starting with "Application".</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DestroyWindowStyle"></a>31.7.3. DestroyWindowStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DestroyWindowStyle</code> </p></div><p>deletes the styles set by the
+<a href="#WindowStyle">WindowStyle</a>
+command on the selected window. The changes take effect immediately.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="UpdateStyles"></a>31.7.4. UpdateStyles</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">UpdateStyles</code> </p></div><p>All pending updates of all windows' styles and looks are applied
+immediately.  E.g. if
+<a href="#Style">Style</a>,
+<a href="#Style_WindowStyle">WindowStyle</a> or
+<a href="#Style_TitleStyle">TitleStyle</a>
+commands were issued inside a fvwm function.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Style"></a>31.7.5. Style</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Style</code>   <em class="replaceable"><code>stylename</code></em>   <em class="replaceable"><code>options</code></em>... </p></div><p>The
+<span class="emphasis"><em>Style</em></span>
+command is used to set attributes of a window to values other than
+the default or to set the window manager default styles.</p><p><em class="replaceable"><code>stylename</code></em>
+can be a window's name, class, visible name, or resource string.  It may contain
+the wildcards '*' and '?', which are matched in the usual Unix
+filename manner.  Multiple style options in a single
+<span class="emphasis"><em>Style</em></span>
+command are read from left to right as if they were issued one
+after each other in separate commands.  A given style always
+overrides all conflicting styles that have been issued earlier (or
+further left on the same style line).</p><p>Note: windows that have no name (WM_NAME) are given a name of
+"Untitled", and windows that do not have a class (WM_CLASS,
+res_class) are given class "NoClass" and those that do not have a
+resource (WM_CLASS, res_name) are given resource "NoResource".</p><p>If a window has the resource "fvwmstyle" set, the value of that
+resource is used in addition to any window names when
+selecting the style.</p><p><em class="replaceable"><code>options</code></em>
+is a comma separated list containing one or more of the
+following keywords.  Each group of style names is separated by
+slashes ('/').  The last style in these groups is the default.
+<span class="emphasis"><em>BorderWidth</em></span>, <span class="emphasis"><em>HandleWidth</em></span>,
+<span class="emphasis"><em>!Icon</em></span> / <span class="emphasis"><em>Icon</em></span>, <span class="emphasis"><em>MiniIcon</em></span>,
+<span class="emphasis"><em>IconBox</em></span>, <span class="emphasis"><em>IconGrid</em></span>, <span class="emphasis"><em>IconFill</em></span>, <span class="emphasis"><em>IconSize</em></span>,
+<span class="emphasis"><em>!Title</em></span> / <span class="emphasis"><em>Title</em></span>,
+<span class="emphasis"><em>TitleAtBottom</em></span> / <span class="emphasis"><em>TitleAtLeft</em></span> / <span class="emphasis"><em>TitleAtRight</em></span> / <span class="emphasis"><em>TitleAtTop</em></span>,
+<span class="emphasis"><em>LeftTitleRotatedCW</em></span> / <span class="emphasis"><em>LeftTitleRotatedCCW</em></span>,
+<span class="emphasis"><em>RightTitleRotatedCCW</em></span> / <span class="emphasis"><em>RightTitleRotatedCW</em></span>,
+<span class="emphasis"><em>TopTitleRotated</em></span> / <span class="emphasis"><em>TopTitleNotRotated</em></span>,
+<span class="emphasis"><em>BottomTitleRotated</em></span> / <span class="emphasis"><em>BottomTitleNotRotated</em></span>,
+<span class="emphasis"><em>!UseTitleDecorRotation</em></span> / <span class="emphasis"><em>UseTitleDecorRotation</em></span>,
+<span class="emphasis"><em>StippledTitle</em></span> / <span class="emphasis"><em>!StippledTitle</em></span>,
+<span class="emphasis"><em>StippledIconTitle</em></span> / <span class="emphasis"><em>!StippledIconTitle</em></span>,
+<span class="emphasis"><em>IndexedWindowName</em></span> / <span class="emphasis"><em>ExactWindowName</em></span>,
+<span class="emphasis"><em>IndexedIconName</em></span> / <span class="emphasis"><em>ExactIconName</em></span>,
+<span class="emphasis"><em>TitleFormat</em></span> / <span class="emphasis"><em>IconTitleFormat</em></span> / <span class="emphasis"><em>!Borders</em></span> / <span class="emphasis"><em>Borders</em></span>,
+<span class="emphasis"><em>!Handles</em></span> / <span class="emphasis"><em>Handles</em></span>,
+<span class="emphasis"><em>WindowListSkip</em></span> / <span class="emphasis"><em>WindowListHit</em></span>,
+<span class="emphasis"><em>CirculateSkip</em></span> / <span class="emphasis"><em>CirculateHit</em></span>,
+<span class="emphasis"><em>CirculateSkipShaded</em></span> / <span class="emphasis"><em>CirculateHitShaded</em></span>,
+<span class="emphasis"><em>CirculateSkipIcon</em></span> / <span class="emphasis"><em>CirculateHitIcon</em></span>,
+<span class="emphasis"><em>Layer</em></span>,
+<span class="emphasis"><em>StaysOnTop</em></span> / <span class="emphasis"><em>StaysOnBottom</em></span> / <span class="emphasis"><em>StaysPut</em></span>,
+<span class="emphasis"><em>Sticky</em></span> / <span class="emphasis"><em>Slippery</em></span>,
+<span class="emphasis"><em>StickyAcrossPages</em></span> / <span class="emphasis"><em>!StickyAcrossPages</em></span>,
+<span class="emphasis"><em>StickyAcrossDesks</em></span> / <span class="emphasis"><em>!StickyAcrossDesks</em></span>,
+<span class="emphasis"><em>!StickyStippledTitle</em></span> / <span class="emphasis"><em>StickyStippledTitle</em></span>,
+<span class="emphasis"><em>!StickyStippledIconTitle</em></span> / <span class="emphasis"><em>StickyStippledIconTitle</em></span>,
+<span class="emphasis"><em>StartIconic</em></span> / <span class="emphasis"><em>StartNormal</em></span>,
+<span class="emphasis"><em>Color</em></span>, <span class="emphasis"><em>ForeColor</em></span>, <span class="emphasis"><em>BackColor</em></span>, <span class="emphasis"><em>Colorset</em></span>,
+<span class="emphasis"><em>HilightFore</em></span>, <span class="emphasis"><em>HilightBack</em></span>, <span class="emphasis"><em>HilightColorset</em></span>,
+<span class="emphasis"><em>BorderColorset</em></span>, <span class="emphasis"><em>HilightBorderColorset</em></span>,
+<span class="emphasis"><em>IconTitleColorset</em></span>, <span class="emphasis"><em>HilightIconTitleColorset</em></span>,
+<span class="emphasis"><em>IconBackgroundColorset</em></span>,
+<span class="emphasis"><em>IconTitleRelief</em></span>, <span class="emphasis"><em>IconBackgroundRelief</em></span>, <span class="emphasis"><em>IconBackgroundPadding</em></span>,
+<span class="emphasis"><em>Font</em></span>,
+<span class="emphasis"><em>IconFont</em></span>,
+<span class="emphasis"><em>StartsOnDesk</em></span> / <span class="emphasis"><em>StartsOnPage</em></span> / <span class="emphasis"><em>StartsAnyWhere</em></span>,
+<span class="emphasis"><em>StartsOnScreen</em></span>,
+<span class="emphasis"><em>StartShaded</em></span> / <span class="emphasis"><em>!StartShaded</em></span>,
+<span class="emphasis"><em>ManualPlacementHonorsStartsOnPage</em></span> / <span class="emphasis"><em>ManualPlacementIgnoresStartsOnPage</em></span>,
+<span class="emphasis"><em>CaptureHonorsStartsOnPage</em></span> / <span class="emphasis"><em>CaptureIgnoresStartsOnPage</em></span>,
+<span class="emphasis"><em>RecaptureHonorsStartsOnPage</em></span> / <span class="emphasis"><em>RecaptureIgnoresStartsOnPage</em></span>,
+<span class="emphasis"><em>StartsOnPageIncludesTransients</em></span> / <span class="emphasis"><em>StartsOnPageIgnoresTransients</em></span>,
+<span class="emphasis"><em>IconTitle</em></span> / <span class="emphasis"><em>!IconTitle</em></span>,
+<span class="emphasis"><em>MwmButtons</em></span> / <span class="emphasis"><em>FvwmButtons</em></span>,
+<span class="emphasis"><em>MwmBorder</em></span> / <span class="emphasis"><em>FvwmBorder</em></span>,
+<span class="emphasis"><em>MwmDecor</em></span> / <span class="emphasis"><em>!MwmDecor</em></span>,
+<span class="emphasis"><em>MwmFunctions</em></span> / <span class="emphasis"><em>!MwmFunctions</em></span>,
+<span class="emphasis"><em>HintOverride</em></span> / <span class="emphasis"><em>!HintOverride</em></span>,
+<span class="emphasis"><em>!Button</em></span> / <span class="emphasis"><em>Button</em></span>,
+<span class="emphasis"><em>ResizeHintOverride</em></span> / <span class="emphasis"><em>!ResizeHintOverride</em></span>,
+<span class="emphasis"><em>OLDecor</em></span> / <span class="emphasis"><em>!OLDecor</em></span>,
+<span class="emphasis"><em>GNOMEUseHints</em></span> / <span class="emphasis"><em>GNOMEIgnoreHints</em></span>,
+<span class="emphasis"><em>StickyIcon</em></span> / <span class="emphasis"><em>SlipperyIcon</em></span>,
+<span class="emphasis"><em>StickyAcrossPagesIcon</em></span> / <span class="emphasis"><em>!StickyAcrossPagesIcon</em></span>,
+<span class="emphasis"><em>StickyAcrossDesksIcon</em></span> / <span class="emphasis"><em>!StickyAcrossDesksIcon</em></span>,
+<span class="emphasis"><em>ManualPlacement</em></span> / <span class="emphasis"><em>CascadePlacement</em></span> / <span class="emphasis"><em>MinOverlapPlacement</em></span> /
+<span class="emphasis"><em>MinOverlapPercentPlacement</em></span> / <span class="emphasis"><em>TileManualPlacement</em></span> /
+<span class="emphasis"><em>TileCascadePlacement</em></span> / <span class="emphasis"><em>PositionPlacement</em></span>,
+<span class="emphasis"><em>MinOverlapPlacementPenalties</em></span>,
+<span class="emphasis"><em>MinOverlapPercentPlacementPenalties</em></span>,
+<span class="emphasis"><em>DecorateTransient</em></span> / <span class="emphasis"><em>NakedTransient</em></span>,
+<span class="emphasis"><em>DontRaiseTransient</em></span> / <span class="emphasis"><em>RaiseTransient</em></span>,
+<span class="emphasis"><em>DontLowerTransient</em></span> / <span class="emphasis"><em>LowerTransient</em></span>,
+<span class="emphasis"><em>DontStackTransientParent</em></span> / <span class="emphasis"><em>StackTransientParent</em></span>,
+<span class="emphasis"><em>SkipMapping</em></span> / <span class="emphasis"><em>ShowMapping</em></span>,
+<span class="emphasis"><em>ScatterWindowGroups</em></span> / <span class="emphasis"><em>KeepWindowGroupsOnDesk</em></span>,
+<span class="emphasis"><em>UseDecor</em></span>,
+<span class="emphasis"><em>UseStyle</em></span>,
+<span class="emphasis"><em>!UsePPosition</em></span> / <span class="emphasis"><em>NoPPosition</em></span> / <span class="emphasis"><em>UsePPosition</em></span>,
+<span class="emphasis"><em>!UseUSPosition</em></span>, <span class="emphasis"><em>NoUSPosition</em></span> / <span class="emphasis"><em>UseUSPosition</em></span>,
+<span class="emphasis"><em>!UseTransientPPosition</em></span>, <span class="emphasis"><em>NoTransientPPosition</em></span> / <span class="emphasis"><em>UseTransientPPosition</em></span>,
+<span class="emphasis"><em>!UseTransientUSPosition</em></span> / <span class="emphasis"><em>NoTransientUSPosition</em></span> / <span class="emphasis"><em>UseTransientUSPosition</em></span>,
+<span class="emphasis"><em>!UseIconPosition</em></span> / <span class="emphasis"><em>NoIconPosition</em></span> / <span class="emphasis"><em>UseIconPosition</em></span>,
+<span class="emphasis"><em>Lenience</em></span> / <span class="emphasis"><em>!Lenience</em></span>,
+<span class="emphasis"><em>ClickToFocus</em></span> / <span class="emphasis"><em>SloppyFocus</em></span> /
+<span class="emphasis"><em>MouseFocus</em></span>|<span class="emphasis"><em>FocusFollowsMouse</em></span> / <span class="emphasis"><em>NeverFocus</em></span>,
+<span class="emphasis"><em>ClickToFocusPassesClickOff</em></span> / <span class="emphasis"><em>ClickToFocusPassesClick</em></span>,
+<span class="emphasis"><em>ClickToFocusRaisesOff</em></span> / <span class="emphasis"><em>ClickToFocusRaises</em></span>,
+<span class="emphasis"><em>MouseFocusClickRaises</em></span> / <span class="emphasis"><em>MouseFocusClickRaisesOff</em></span>,
+<span class="emphasis"><em>GrabFocus</em></span> / <span class="emphasis"><em>GrabFocusOff</em></span>,
+<span class="emphasis"><em>GrabFocusTransientOff</em></span> / <span class="emphasis"><em>GrabFocusTransient</em></span>,
+<span class="emphasis"><em>FPFocusClickButtons</em></span>,
+<span class="emphasis"><em>FPFocusClickModifiers</em></span>,
+<span class="emphasis"><em>!FPSortWindowlistByFocus</em></span> / <span class="emphasis"><em>FPSortWindowlistByFocus</em></span>,
+<span class="emphasis"><em>FPClickRaisesFocused</em></span> / <span class="emphasis"><em>!FPClickRaisesFocused</em></span>,
+<span class="emphasis"><em>FPClickDecorRaisesFocused</em></span> / <span class="emphasis"><em>!FPClickDecorRaisesFocused</em></span>,
+<span class="emphasis"><em>FPClickIconRaisesFocused</em></span> / <span class="emphasis"><em>!FPClickIconRaisesFocused</em></span>,
+<span class="emphasis"><em>!FPClickRaisesUnfocused</em></span> / <span class="emphasis"><em>FPClickRaisesUnfocused</em></span>,
+<span class="emphasis"><em>FPClickDecorRaisesUnfocused</em></span> / <span class="emphasis"><em>!FPClickDecorRaisesUnfocused</em></span>,
+<span class="emphasis"><em>FPClickIconRaisesUnfocused</em></span> / <span class="emphasis"><em>!FPClickIconRaisesUnfocused</em></span>,
+<span class="emphasis"><em>FPClickToFocus</em></span> / <span class="emphasis"><em>!FPClickToFocus</em></span>,
+<span class="emphasis"><em>FPClickDecorToFocus</em></span> / <span class="emphasis"><em>!FPClickDecorToFocus</em></span>,
+<span class="emphasis"><em>FPClickIconToFocus</em></span> / <span class="emphasis"><em>!FPClickIconToFocus</em></span>,
+<span class="emphasis"><em>!FPEnterToFocus</em></span> / <span class="emphasis"><em>FPEnterToFocus</em></span>,
+<span class="emphasis"><em>!FPLeaveToUnfocus</em></span> / <span class="emphasis"><em>FPLeaveToUnfocus</em></span>,
+<span class="emphasis"><em>!FPFocusByProgram</em></span> / <span class="emphasis"><em>FPFocusByProgram</em></span>,
+<span class="emphasis"><em>!FPFocusByFunction</em></span> / <span class="emphasis"><em>FPFocusByFunction</em></span>,
+<span class="emphasis"><em>FPFocusByFunctionWarpPointer</em></span> / <span class="emphasis"><em>!FPFocusByFunctionWarpPointer</em></span>,
+<span class="emphasis"><em>FPLenient</em></span> / <span class="emphasis"><em>!FPLenient</em></span>,
+<span class="emphasis"><em>!FPPassFocusClick</em></span> / <span class="emphasis"><em>FPPassFocusClick</em></span>,
+<span class="emphasis"><em>!FPPassRaiseClick</em></span> / <span class="emphasis"><em>FPPassRaiseClick</em></span>,
+<span class="emphasis"><em>FPIgnoreFocusClickMotion</em></span> / <span class="emphasis"><em>!FPIgnoreFocusClickMotion</em></span>,
+<span class="emphasis"><em>FPIgnoreRaiseClickMotion</em></span> / <span class="emphasis"><em>!FPIgnoreRaiseClickMotion</em></span>,
+<span class="emphasis"><em>!FPAllowFocusClickFunction</em></span> / <span class="emphasis"><em>FPAllowFocusClickFunction</em></span>,
+<span class="emphasis"><em>!FPAllowRaiseClickFunction</em></span> / <span class="emphasis"><em>FPAllowRaiseClickFunction</em></span>,
+<span class="emphasis"><em>FPGrabFocus</em></span> / <span class="emphasis"><em>!FPGrabFocus</em></span>,
+<span class="emphasis"><em>!FPGrabFocusTransient</em></span> / <span class="emphasis"><em>FPGrabFocusTransient</em></span>,
+<span class="emphasis"><em>FPOverrideGrabFocus</em></span> / <span class="emphasis"><em>!FPOverrideGrabFocus</em></span>,
+<span class="emphasis"><em>FPReleaseFocus</em></span> / <span class="emphasis"><em>!FPReleaseFocus</em></span>,
+<span class="emphasis"><em>!FPReleaseFocusTransient</em></span> / <span class="emphasis"><em>FPReleaseFocusTransient</em></span>,
+<span class="emphasis"><em>FPOverrideReleaseFocus</em></span> / <span class="emphasis"><em>!FPOverrideReleaseFocus</em></span>,
+<span class="emphasis"><em>StartsLowered</em></span> / <span class="emphasis"><em>StartsRaised</em></span>,
+<span class="emphasis"><em>IgnoreRestack</em></span> / <span class="emphasis"><em>AllowRestack</em></span>,
+<span class="emphasis"><em>FixedPosition</em></span> / <span class="emphasis"><em>VariablePosition</em></span>,
+<span class="emphasis"><em>FixedUSPosition</em></span> / <span class="emphasis"><em>VariableUSPosition</em></span>,
+<span class="emphasis"><em>FixedPPosition</em></span> / <span class="emphasis"><em>VariablePPosition</em></span>,
+<span class="emphasis"><em>FixedSize</em></span> / <span class="emphasis"><em>VariableSize</em></span>,
+<span class="emphasis"><em>FixedUSSize</em></span> / <span class="emphasis"><em>VariableUSSize</em></span>,
+<span class="emphasis"><em>FixedPSize</em></span> / <span class="emphasis"><em>VariablePSize</em></span>,
+<span class="emphasis"><em>!Closable</em></span> / <span class="emphasis"><em>Closable</em></span>,
+<span class="emphasis"><em>!Iconifiable</em></span> / <span class="emphasis"><em>Iconifiable</em></span>,
+<span class="emphasis"><em>!Maximizable</em></span> / <span class="emphasis"><em>Maximizable</em></span>,
+<span class="emphasis"><em>!AllowMaximizeFixedSize</em></span> / <span class="emphasis"><em>AllowMaximizeFixedSize</em></span>,
+<span class="emphasis"><em>IconOverride</em></span> / <span class="emphasis"><em>NoIconOverride</em></span> / <span class="emphasis"><em>NoActiveIconOverride</em></span>,
+<span class="emphasis"><em>DepressableBorder</em></span> / <span class="emphasis"><em>FirmBorder</em></span>,
+<span class="emphasis"><em>MinWindowSize</em></span>,
+<span class="emphasis"><em>MaxWindowSize</em></span>,
+<span class="emphasis"><em>IconifyWindowGroups</em></span> / <span class="emphasis"><em>IconifyWindowGroupsOff</em></span>,
+<span class="emphasis"><em>ResizeOpaque</em></span> / <span class="emphasis"><em>ResizeOutline</em></span>,
+<span class="emphasis"><em>BackingStore</em></span> / <span class="emphasis"><em>BackingStoreOff</em></span> / <span class="emphasis"><em>BackingStoreWindowDefault</em></span>,
+<span class="emphasis"><em>Opacity</em></span> / <span class="emphasis"><em>ParentalRelativity</em></span>,
+<span class="emphasis"><em>SaveUnder</em></span> / <span class="emphasis"><em>SaveUnderOff</em></span>,
+<span class="emphasis"><em>WindowShadeShrinks</em></span> / <span class="emphasis"><em>WindowShadeScrolls</em></span>,
+<span class="emphasis"><em>WindowShadeSteps</em></span>,
+<span class="emphasis"><em>WindowShadeAlwaysLazy</em></span> / <span class="emphasis"><em>WindowShadeBusy</em></span> / <span class="emphasis"><em>WindowShadeLazy,</em></span>
+<span class="emphasis"><em>EWMHDonateIcon</em></span> / <span class="emphasis"><em>EWMHDontDonateIcon</em></span>,
+<span class="emphasis"><em>EWMHDonateMiniIcon</em></span> / <span class="emphasis"><em>EWMHDontDonateMiniIcon</em></span>,
+<span class="emphasis"><em>EWMHMiniIconOverride</em></span> / <span class="emphasis"><em>EWMHNoMiniIconOverride</em></span>,
+<span class="emphasis"><em>EWMHUseStackingOrderHints</em></span> / <span class="emphasis"><em>EWMHIgnoreStackingOrderHints</em></span>,
+<span class="emphasis"><em>EWMHIgnoreStateHints</em></span> / <span class="emphasis"><em>EWMHUseStateHints</em></span>,
+<span class="emphasis"><em>EWMHIgnoreStrutHints</em></span> / <span class="emphasis"><em>EWMHUseStrutHints</em></span>,
+<span class="emphasis"><em>EWMHIgnoreWindowType</em></span> / <span class="emphasis"><em>!EWMHIgnoreWindowType</em></span>,
+<span class="emphasis"><em>EWMHMaximizeIgnoreWorkingArea</em></span> / <span class="emphasis"><em>EWMHMaximizeUseWorkingArea</em></span> /
+<span class="emphasis"><em>EWMHMaximizeUseDynamicWorkingArea</em></span>,
+<span class="emphasis"><em>EWMHPlacementIgnoreWorkingArea</em></span> / <span class="emphasis"><em>EWMHPlacementUseWorkingArea</em></span> /
+<span class="emphasis"><em>EWMHPlacementUseDynamicWorkingArea</em></span>,
+<span class="emphasis"><em>MoveByProgramMethod</em></span>,
+<span class="emphasis"><em>Unmanaged</em></span>,
+<span class="emphasis"><em>State</em></span>,
+<span class="emphasis"><em>SnapGrid</em></span>,
+<span class="emphasis"><em>SnapAttraction</em></span>,
+<span class="emphasis"><em>EdgeMoveDelay</em></span>,
+<span class="emphasis"><em>EdgeResizeDelay</em></span>.
+<span class="emphasis"><em>EdgeMoveResistance</em></span>,
+<span class="emphasis"><em>InitialMapCommand</em></span>
+</p><p>In the above list some options are listed as
+style-option/opposite-style-option.  The opposite-style-option for
+entries that have them describes the fvwm default behavior and can
+be used if you want to change the fvwm default behavior.</p><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="focus_policy"></a>31.7.5.1. Focus policy</h5></div></div></div><p><a name="Style_ClickToFocus"></a><font class="fvwmopt">ClickToFocus</font>
+instructs fvwm to give the focus to a window when it is clicked
+in.  The default
+<a name="Style_MouseFocus"></a><font class="fvwmopt">MouseFocus</font>
+(or its alias
+<a name="Style_FocusFollowsMouse"></a><font class="fvwmopt">FocusFollowsMouse</font>)
+tells fvwm to give a window the focus as soon as the pointer
+enters the window, and take it away when the pointer leaves the
+window.
+<a name="Style_SloppyFocus"></a><font class="fvwmopt">SloppyFocus</font>
+is similar, but doesn't give up the focus if the pointer leaves
+the window to pass over the root window or a ClickToFocus window
+(unless you click on it, that is), which makes it possible to move
+the mouse out of the way without losing focus.  A window with the
+style
+<a name="Style_NeverFocus"></a><font class="fvwmopt">NeverFocus</font>
+never receives the focus.  This is useful for modules like
+<a href="../modules/FvwmButtons.html">FvwmButtons</a>.
+for example.
+Note:  Once any of the "FP..." styles has been used, the defaults
+that come with the basic focus policies are not restored when the
+latter are used again.  For example, once !FPGrabFocus has been
+used, using ClickToFocus does not restore FPGrabFocus.</p><p>The focus model can be augmented with several additional options.
+In fvwm-2.5.3 and later, there are a large number of advanced
+options beginning with "FP" or "!FP".  These options shall replace
+the older options one day and are described first.  Using any of
+these new options may limit compatibility with older releases.  In
+general, options beginning with "FP" turn a feature on, while
+those beginning with "!FP" turn it off.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="window_focus"></a>31.7.5.2. Focusing the window</h5></div></div></div><p>With
+<a name="Style_FPEnterToFocus"></a><font class="fvwmopt">FPEnterToFocus</font>,
+when the pointer enters a window it receives focus.</p><p>With
+<a name="Style_FPLeaveToUnfocus"></a><font class="fvwmopt">FPLeaveToUnfocus</font>
+a window loses focus when the pointer leaves it.</p><p>With
+<a name="Style_FPClickToFocus"></a><font class="fvwmopt">FPClickToFocus</font>,
+<a name="Style_FPClickDecorToFocus"></a><font class="fvwmopt">FPClickDecorToFocus</font> or
+<a name="Style_FPClickIconToFocus"></a><font class="fvwmopt">FPClickIconToFocus</font>,
+a window receives focus when the inside of the window or the
+decorations or its icon is clicked.</p><p>The
+<a name="Style_FPFocusByProgram"></a><font class="fvwmopt">FPFocusByProgram</font>
+style allows windows to take the focus themselves.</p><p>The
+!<a name="Style_FPFocusByFunction"></a><font class="fvwmopt">FPFocusByFunction</font>
+style forbids that a window receives the focus via the
+<a href="#Focus">Focus</a> and <a href="#FlipFocus">FlipFocus</a>
+commands.</p><p>The
+<a name="Style_FPFocusByFunctionWarpPointer"></a><font class="fvwmopt">FPFocusByFunctionWarpPointer</font>
+style controls if the pointer is warped to a selected window
+when the
+<a href="#Focus">Focus</a>
+command is used.</p><p><a name="Style_FPLenient"></a><font class="fvwmopt">FPLenient</font>
+allows focus on windows that do not want it, like
+<a href="../modules/FvwmPager.html">FvwmPager</a>
+or xclock.</p><p>The
+<a name="Style_FPFocusClickButtons"></a><font class="fvwmopt">FPFocusClickButtons</font>
+style takes a list of mouse buttons that can be clicked to focus
+or raise a window when the appropriate style is used.  The default
+is to use the first three buttons ("123").</p><p>The
+<a name="Style_FPFocusClickModifiers"></a><font class="fvwmopt">FPFocusClickModifiers</font>
+style takes a list of modifier keys just like the
+<a href="#Key">Key</a>
+command.  The exact combination of modifier keys must be pressed
+for the click to focus or raise a window to work.  The default is
+to use no modifiers ("N").</p><p>With the
+<a name="Style_FPPassFocusClick"></a><font class="fvwmopt">FPPassFocusClick</font>
+style, the click that was used to focus a window is passed to
+the application.</p><p>With the
+<a name="Style_FPAllowFocusClickFunction"></a><font class="fvwmopt">FPAllowFocusClickFunction</font>
+style, the click that was used to focus a window can also
+trigger a normal action that was bound to the window with the
+<a href="#Mouse">Mouse</a>
+command).</p><p>If the
+<a name="Style_FPIgnoreFocusClickMotion"></a><font class="fvwmopt">FPIgnoreFocusClickMotion</font>
+style is used, clicking in a window and then dragging the pointer
+with the button held down does not count as the click to focus the
+window.  Instead, the application processes these events
+normally.  This is useful to select text in a terminal window with
+the mouse without raising the window.  However, mouse bindings on
+the client window are not guaranteed to work anymore (see
+<a href="#Mouse">Mouse</a>
+command).  This style forces the initial click to be
+passed to the application.  The distance that the pointer must be
+moved to trigger this is controlled by the
+<a href="#MoveThreshold">MoveThreshold</a>
+command.</p><p>The
+<a name="Style_FPSortWindowlistByFocus"></a><font class="fvwmopt">FPSortWindowlistByFocus</font> and !<a name="Style_FPSortWindowlistByFocus"></a><font class="fvwmopt">FPSortWindowlistByFocus</font>
+styles control whether the internal window list is sorted in the
+order the windows were focused or in the order they were created.
+The latter is the default for
+<span class="emphasis"><em>ClickToFocus</em></span> and <span class="emphasis"><em>SloppyFocus</em></span>.</p><p><span class="emphasis"><em>Clicking the window to raise</em></span></p><p>The styles
+<a name="Style_FPClickRaisesFocused"></a><font class="fvwmopt">FPClickRaisesFocused</font>, <a name="Style_FPClickDecorRaisesFocused"></a><font class="fvwmopt">FPClickDecorRaisesFocused</font> and
+<a name="Style_FPClickIconRaisesFocused"></a><font class="fvwmopt">FPClickIconRaisesFocused</font>
+allow one to raise the window when the interior or the decorations or
+the icon of the window is clicked while the window is already
+focused.</p><p>The styles
+<a name="Style_FPClickRaisesUnfocused"></a><font class="fvwmopt">FPClickRaisesUnfocused</font>, <a name="Style_FPClickDecorRaisesUnfocused"></a><font class="fvwmopt">FPClickDecorRaisesUnfocused</font> and
+<a name="Style_FPClickIconRaisesUnfocused"></a><font class="fvwmopt">FPClickIconRaisesUnfocused</font>
+allow one to raise the window when the interior or the decorations or
+the icon of the window is clicked while the window is not yet
+focused.</p><p>With the
+<a name="Style_FPPassRaiseClick"></a><font class="fvwmopt">FPPassRaiseClick</font>
+style, the click that was used to raise the window is passed to
+the application.</p><p>With the
+<a name="Style_FPAllowRaiseClickFunction"></a><font class="fvwmopt">FPAllowRaiseClickFunction</font>
+style, the click that was used to raise the window can also
+trigger a normal action that was bound to the window with the
+<a href="#Mouse">Mouse</a>
+command.</p><p>If the
+<a name="Style_FPIgnoreRaiseClickMotion"></a><font class="fvwmopt">FPIgnoreRaiseClickMotion</font>
+style is used, clicking in a window and then dragging the pointer
+with the button held down does not count as the click to raise the
+window.  Instead, the application processes these events
+normally.  This is useful to select text in a terminal window with
+the mouse without raising the window.  However, mouse bindings on
+the client window are not guaranteed to work anymore (see
+<a href="#Mouse">Mouse</a>
+command.  Note that this style forces that the initial click is
+passed to the application.  The distance that the pointer must be
+moved to trigger this is controlled by the
+<a href="#MoveThreshold">MoveThreshold</a>
+command.</p><p><span class="emphasis"><em>Grabbing the focus when a new window is created</em></span></p><p>New normal or transient windows with the
+<a name="Style_FPGrabFocus"></a><font class="fvwmopt">FPGrabFocus</font> or <a name="Style_FPGrabFocusTransient"></a><font class="fvwmopt">FPGrabFocusTransient</font>
+style automatically receive the focus when they are created.
+<a name="Style_FPGrabFocus"></a><font class="fvwmopt">FPGrabFocus</font>
+is the default for windows with the
+<span class="emphasis"><em>ClickToFocus</em></span>
+style.  Note that even if these styles are disabled, the
+application may take the focus itself.  Fvwm can not prevent this.</p><p>The
+<a name="Style_OverrideGrabFocus"></a><font class="fvwmopt">OverrideGrabFocus</font>
+style instructs fvwm to never take away the focus from such a
+window via the
+<a name="Style_GrabFocus"></a><font class="fvwmopt">GrabFocus</font> or <a name="Style_GrabFocusTransient"></a><font class="fvwmopt">GrabFocusTransient</font>
+styles.  This can be useful if you like to have transient windows
+receive the focus immediately, for example in a web browser, but
+not while you are working in a terminal window or a text
+processor.</p><p>The above three styles are accompanied by
+<a name="Style_FPReleaseFocus"></a><font class="fvwmopt">FPReleaseFocus</font>, <a name="Style_FPReleaseFocusTransient"></a><font class="fvwmopt">FPReleaseFocusTransient</font> and
+<a name="Style_FPOverrideReleaseFocus"></a><font class="fvwmopt">FPOverrideReleaseFocus</font>.
+These control if the focus is returned to another window when the
+window is closed.  Otherwise no window or the window under the
+pointer receives the focus.</p><p><a name="Style_ClickToFocusPassesClickOff"></a><font class="fvwmopt">ClickToFocusPassesClickOff</font> and <a name="Style_ClickToFocusPassesClick"></a><font class="fvwmopt">ClickToFocusPassesClick</font>
+controls whether a mouse click to focus a window is sent to the
+application or not.  Similarly,
+<a name="Style_ClickToFocusRaisesOff"></a><font class="fvwmopt">ClickToFocusRaisesOff</font>/<a name="Style_MouseFocusClickRaisesOff"></a><font class="fvwmopt">MouseFocusClickRaisesOff</font>
+and
+<a name="Style_ClickToFocusRaises"></a><font class="fvwmopt">ClickToFocusRaises</font>/<a name="Style_MouseFocusClickRaises"></a><font class="fvwmopt">MouseFocusClickRaises</font>
+control if the window is raised (but depending on the focus
+model).</p><p>Note: in fvwm versions prior to
+2.5.3, the "Click..." options applied only to windows with
+<span class="emphasis"><em>ClickToFocus</em></span>
+while the "Mouse..." options applied to windows with a different
+focus policy.  This is no longer the case.</p><p>The old
+<a name="Style_GrabFocus"></a><font class="fvwmopt">GrabFocus</font>
+style is equivalent to using
+<span class="emphasis"><em>FPGrabFocus</em></span> + <span class="emphasis"><em>FPReleaseFocus</em></span>.</p><p>The old
+<a name="Style_GrabFocusTransient"></a><font class="fvwmopt">GrabFocusTransient</font>
+style is equivalent to using
+<a name="Style_FPGrabFocusTransient"></a><font class="fvwmopt">FPGrabFocusTransient</font> + <a name="Style_FPReleaseFocusTransient"></a><font class="fvwmopt">FPReleaseFocusTransient</font>.</p><p><a name="Style_Lenience"></a><font class="fvwmopt">Lenience</font>
+is equivalent to the new style
+<span class="emphasis"><em>FPLenient</em></span>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="window_title"></a>31.7.5.3. Window title</h5></div></div></div><p>The
+<a name="Style_Title"></a><font class="fvwmopt">Title</font> and !Title
+options determine if the window has a title-bar or not.  By
+default all windows have a title-bar.
+<a name="Style_NoTitle"></a><font class="fvwmopt">NoTitle</font>
+is equivalent to
+<span class="emphasis"><em>!Title</em></span>
+but is deprecated.</p><p>Windows with the
+<a name="Style_TitleAtBottom"></a><font class="fvwmopt">TitleAtBottom</font>, <a name="Style_TitleAtLeft"></a><font class="fvwmopt">TitleAtLeft</font> or <a name="Style_TitleAtRight"></a><font class="fvwmopt">TitleAtRight</font>
+style have a title-bar below, to the left or to the right of the
+window instead of above as usual.  The
+<a name="Style_TitleAtTop"></a><font class="fvwmopt">TitleAtTop</font>
+style restores the default placement.  Even if the window has the
+<span class="emphasis"><em>!Title</em></span>
+style set, this affects the
+<a href="#WindowShade">WindowShade</a>
+command.  Please check the
+<a href="#WindowShade">WindowShade</a>
+command for interactions between that command and these styles.
+Titles on the left or right side of the windows are augmented by
+the following styles:</p><p>Normally, the text in titles on the left side of a window is
+rotated counterclockwise by 90 degrees from the normal upright
+position and 90 degrees clockwise for titles on the right side.
+It can also be rotated in the opposite directions with
+<a name="Style_LeftTitleRotatedCW"></a><font class="fvwmopt">LeftTitleRotatedCW</font> if <a name="Style_TitleAtLeft"></a><font class="fvwmopt">TitleAtLeft</font>
+is used, and with
+<a name="Style_RightTitleRotatedCCW"></a><font class="fvwmopt">RightTitleRotatedCCW</font> if <a name="Style_TitleAtRight"></a><font class="fvwmopt">TitleAtRight</font>
+is used.  The defaults can be restored with
+<a name="Style_LeftTitleRotatedCCW"></a><font class="fvwmopt">LeftTitleRotatedCCW</font> and <a name="Style_RightTitleRotatedCW"></a><font class="fvwmopt">RightTitleRotatedCW</font>.
+A normal horizontal text may be rotated as well with
+<a name="Style_TopTitleRotated"></a><font class="fvwmopt">TopTitleRotated</font> if <span class="emphasis"><em>TitleAtTop</em></span>
+is used, and with
+<a name="Style_BottomTitleRotated"></a><font class="fvwmopt">BottomTitleRotated</font> if <a name="Style_TitleAtBottom"></a><font class="fvwmopt">TitleAtBottom</font>
+is used.  The defaults can be restored with
+<a name="Style_TopTitleNotRotated"></a><font class="fvwmopt">TopTitleNotRotated</font> and <a name="Style_BottomTitleNotRotated"></a><font class="fvwmopt">BottomTitleNotRotated</font>.</p><p>By default the title bar decoration defined using the
+<a href="#TitleStyle">TitleStyle</a>
+command is rotated following the title text rotation (see the
+previous paragraph). This can be disabled by using the
+!<a name="Style_UseTitleDecorRotation"></a><font class="fvwmopt">UseTitleDecorRotation</font>
+style.
+<span class="emphasis"><em>UseTitleDecorRotation</em></span>
+reverts back to the default.</p><p>With the
+<a name="Style_StippledTitle"></a><font class="fvwmopt">StippledTitle</font>
+style, titles are drawn with the same effect that is usually
+reserved for windows with the
+<a name="Style_Sticky"></a><font class="fvwmopt">Sticky</font>, <a name="Style_StickyAcrossPages"></a><font class="fvwmopt">StickyAcrossPages</font> or <a name="Style_StickyAcrossDesks"></a><font class="fvwmopt">StickyAcrossDesks</font>
+style.
+<span class="emphasis"><em>!StippledTitle</em></span>
+reverts back to normal titles.
+<a name="Style_StippledTitleOff"></a><font class="fvwmopt">StippledTitleOff</font>
+is equivalent to
+<span class="emphasis"><em>!StippledTitle</em></span>
+but is deprecated.</p><p><a name="Style_Color"></a><font class="fvwmopt">Color</font>
+takes two arguments.  The first is the window-label text color and
+the second is the window decorations normal background color. The
+two colors are separated with a slash.  If the use of a slash
+causes problems then the separate
+<a name="Style_ForeColor"></a><font class="fvwmopt">ForeColor</font> and <a name="Style_BackColor"></a><font class="fvwmopt">BackColor</font>
+options can be used.</p><p><a href="#Colorset">Colorset</a>
+takes the colorset number as its sole argument and overrides the
+colors set by
+<span class="emphasis"><em>Color</em></span>.
+Instead, the corresponding colors from the given colorset are
+used.  Note that all other features of a colorset are not used.
+Use the
+<a href="#Colorset">Colorset</a>
+decoration style in the
+<a href="#TitleStyle">TitleStyle</a> and <a name="Style_ButtonStyle"></a><font class="fvwmopt">ButtonStyle</font>
+command for that.
+To stop using the colorset, the colorset number is omitted.</p><p>The
+<a name="Style_HilightFore"></a><font class="fvwmopt">HilightFore</font>, <a name="Style_HilightBack"></a><font class="fvwmopt">HilightBack</font> and <a name="Style_HilightColorset"></a><font class="fvwmopt">HilightColorset</font>
+style options work exactly like
+<a name="Style_ForeColor"></a><font class="fvwmopt">ForeColor</font>, <a name="Style_BackColor"></a><font class="fvwmopt">BackColor</font> and <span class="emphasis"><em>Colorset</em></span>
+but are used only if the window has the focus.  These styles
+replace the old commands
+<a href="#HilightColor">HilightColor</a> and <a name="Style_HilightColorset"></a><font class="fvwmopt">HilightColorset</font>.</p><p><a name="Style_BorderColorset"></a><font class="fvwmopt">BorderColorset</font>
+takes the colorset number as its sole argument and overrides the
+colors set by
+<span class="emphasis"><em>Color</em></span> or <span class="emphasis"><em>Colorset</em></span>.
+for the window border.  To stop using a colorset, the argument is
+omitted.</p><p>The
+<a name="Style_HilightBorderColorset"></a><font class="fvwmopt">HilightBorderColorset</font>
+style option works similarly to
+<span class="emphasis"><em>BorderColorset</em></span>
+but is used when the window has the focus.</p><p>!<a name="Style_IconTitle"></a><font class="fvwmopt">IconTitle</font>
+disables displaying icon labels while the opposite style
+<span class="emphasis"><em>IconTitle</em></span>
+enables icon labels (default behaviour).
+<a name="Style_NoIconTitle"></a><font class="fvwmopt">NoIconTitle</font>
+is equivalent to
+<span class="emphasis"><em>!IconTitle</em></span>
+but is deprecated.</p><p><a name="Style_IconTitleColorset"></a><font class="fvwmopt">IconTitleColorset</font>
+takes the colorset number as its sole argument and overrides the
+colors set by
+<span class="emphasis"><em>Color</em></span> or <span class="emphasis"><em>Colorset</em></span>.
+To stop using this colorset, the argument is omitted.</p><p><a name="Style_HilightIconTitleColorset"></a><font class="fvwmopt">HilightIconTitleColorset</font>
+takes the colorset number as its sole argument and overrides the
+colors set by
+<a href="#HilightColor">HilightColor</a> or <span class="emphasis"><em>HilightColorset</em></span>.
+To stop using this colorset, the argument is omitted.</p><p><a name="Style_IconBackgroundColorset"></a><font class="fvwmopt">IconBackgroundColorset</font>
+takes the colorset number as its sole argument and uses it to set
+a background for the icon picture. By default the icon picture is
+not drawn onto a background image. To restore the default, the
+argument is omitted.</p><p><a name="Style_IconTitleRelief"></a><font class="fvwmopt">IconTitleRelief</font>
+takes one numeric argument that may be between -50 and +50 pixels
+and defines the thickness of the 3D relief drawn around the icon
+title. With negative values the icon title gets a pressed in
+look. The default is 2 and it is restored if the argument is
+omitted.</p><p><a name="Style_IconBackgroundRelief"></a><font class="fvwmopt">IconBackgroundRelief</font>
+takes one numeric argument that may be between -50 and +50 pixels
+and defines the thickness of the 3D relief drawn around the icon
+picture background (if any). With negative values the icon
+background gets a pressed in look.  The default is 2 and it is
+restored if the argument is omitted.</p><p><a name="Style_IconBackgroundPadding"></a><font class="fvwmopt">IconBackgroundPadding</font>
+takes one numeric argument that may be between 0 and 50 pixels and
+defines the amount of free space between the relief of the icon
+background picture (if any) and the icon picture. The default is 2
+and it is restored if the argument is omitted.</p><p>The
+<a name="Style_Font"></a><font class="fvwmopt">Font</font> and <a name="Style_IconFont"></a><font class="fvwmopt">IconFont</font>
+options take the name of a font as their sole argument. This font
+is used in the window or icon title.  By default the font given in
+the
+<a href="#DefaultFont">DefaultFont</a>
+command is used.  To revert back to the default, use the style
+without the name argument.  These styles replace the older
+<a href="#WindowFont">WindowFont</a> and <a name="Style_IconFont"></a><font class="fvwmopt">IconFont</font>
+commands.</p><p>The deprecated
+<a name="Style_IndexedWindowName"></a><font class="fvwmopt">IndexedWindowName</font>
+style causes fvwm to use window titles in the form</p><pre class="programlisting">
+name (i)
+</pre><p>where
+<a name="Style_name"></a><font class="fvwmopt">name</font>
+is the exact window name and
+<a name="Style_i"></a><font class="fvwmopt">i</font>
+is an integer which represents the
+<span class="emphasis"><em>i th</em></span>
+window with
+<span class="emphasis"><em>name</em></span>
+as window name.  This has been replaced with:</p><pre class="programlisting">
+TitleFormat %n (%t)
+</pre><p><a name="Style_ExactWindowName"></a><font class="fvwmopt">ExactWindowName</font>
+restores the default which is to use the exact window name.  Deprecated in
+favour of:</p><pre class="programlisting">
+    TitleFormat %n
+</pre><p><a name="Style_IndexedIconName"></a><font class="fvwmopt">IndexedIconName</font>
+and
+<a name="Style_ExactIconName"></a><font class="fvwmopt">ExactIconName</font>
+work the same as
+<span class="emphasis"><em>IndexedWindowName</em></span>
+and
+<span class="emphasis"><em>ExactWindowName</em></span>
+styles but for the icon titles.  Both are deprecated in favour of:</p><pre class="programlisting">
+IconTitleFormat %n (%t)
+IconTitleFormat %n
+</pre><p><a name="Style_TitleFormat"></a><font class="fvwmopt">TitleFormat</font> describes what the visible
+name of a window should look like, with the following placeholders being
+valid:</p><div class="variablelist"><dl><dt><span class="term"><span class="emphasis"><em>%n</em></span></span></dt><dd><p>Insert the window's name.</p></dd><dt><span class="term"><span class="emphasis"><em>%i</em></span></span></dt><dd><p>Insert the window's icon name.</p></dd><dt><span class="term"><span class="emphasis"><em>%c</em></span></span></dt><dd><p>Insert the window's class name.</p></dd><dt><span class="term"><span class="emphasis"><em>%r</em></span></span></dt><dd><p>Insert the window's resource name.</p></dd><dt><span class="term"><span class="emphasis"><em>%t</em></span></span></dt><dd><p>Insert the window count.</p></dd><dt><span class="term"><span class="emphasis"><em>%I</em></span></span></dt><dd><p>Insert the window ID.</p></dd><dt><span class="term"><span class="emphasis"><em>%%</em></span></span></dt><dd><p>Insert a literal '%' character.</p></dd></dl></div><p>Any amount of whitespace may be used, along with other characters to
+    make up the string -- but a valid <a name="Style_TitleFormat"></a><font class="fvwmopt">TitleFormat</font>
+    string must contain at least one of the placeholders mentioned.  No
+    quote stripping is performed on the string, so for example the following
+    is printed verbatim:</p><pre class="programlisting">
+    TitleFormat " %n " -&gt; [%t] -&gt;      [%c]
+</pre><p>Note:  It's perfectly possible to use a
+<a name="Style_TitleFormat"></a><font class="fvwmopt">TitleFormat</font> which can result in wiping out the
+visible title altogether.  For example:</p><pre class="programlisting">
+    TitleFormat %z
+</pre><p>Simply because the placeholder '%z' isn't supported.  This is not a bug
+but rather a facet of how the formatting parser works.</p><p><a name="Style_IconTitleFormat"></a><font class="fvwmopt">IconTitleFormat</font> describes what the visible
+icon name of a window should look like, with the options being the same as
+<a name="Style_TitleFormat"></a><font class="fvwmopt">TitleFormat</font>.
+</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="title_buttons"></a>31.7.5.4. Title buttons</h5></div></div></div><p><a name="Style_Button"></a><font class="fvwmopt">Button</font> and !<a name="Style_Button"></a><font class="fvwmopt">Button</font>
+take a numeric argument which is the number of the title-bar
+button which is to be shown or omitted.
+<a name="Style_NoButton"></a><font class="fvwmopt">NoButton</font>
+is equivalent to
+<span class="emphasis"><em>!Button</em></span>
+but is deprecated.</p><p><a name="Style_MwmButtons"></a><font class="fvwmopt">MwmButtons</font>
+makes the
+<a href="#Maximize">Maximize</a>
+button look pressed-in when the window is maximized.  See the
+<a href="#ButtonStyle_MwmDecorMax">MwmDecorMax</a>
+flag in
+<a href="#ButtonStyle">ButtonStyle</a>
+for more information.  To switch this style off again, use the
+<a href="../modules/FvwmButtons.html">FvwmButtons</a>
+style.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="borders"></a>31.7.5.5. Borders</h5></div></div></div><p>!<a name="Style_Borders"></a><font class="fvwmopt">Borders</font>
+suppresses the window border (but not the title) completely.  The
+<span class="emphasis"><em>Borders</em></span>
+style enables them again.  Without borders, all other styles
+affecting window borders are meaningless.</p><p><a name="Style_MwmBorder"></a><font class="fvwmopt">MwmBorder</font>
+makes the 3D bevel more closely match Mwm's.
+<a name="Style_FvwmBorder"></a><font class="fvwmopt">FvwmBorder</font>
+turns off the previous option.</p><p>With the
+!<a name="Style_Handles"></a><font class="fvwmopt">Handles</font>
+style, the window does not get the handles in the window corners
+that are commonly used to resize it.  With
+<span class="emphasis"><em>!Handles</em></span>,
+the width from the
+<span class="emphasis"><em>BorderWidth</em></span>
+style is used.  By default, or if
+<span class="emphasis"><em>Handles</em></span>
+is specified, the width from the
+<span class="emphasis"><em>HandleWidth</em></span>
+style is used.
+<a name="Style_NoHandles"></a><font class="fvwmopt">NoHandles</font>
+is equivalent to
+<span class="emphasis"><em>!Handles</em></span>
+but is deprecated.</p><p>
+<a name="Style_HandleWidth"></a><font class="fvwmopt">HandleWidth</font>
+takes a numeric argument which is the width of the border to place
+the window if it does have resize-handles. Using HandleWidth
+without an argument restores the default.</p><p>
+<a name="Style_BorderWidth"></a><font class="fvwmopt">BorderWidth</font>
+takes a numeric argument which is the width of the border to place
+the window if it does not have resize-handles.  It is used only if
+the
+<span class="emphasis"><em>!Handles</em></span>
+style is specified too. Using BorderWidth
+without an argument restores the default.</p><p><a name="Style_DepressableBorder"></a><font class="fvwmopt">DepressableBorder</font>
+makes the border parts of the window decoration look sunken in
+when a button is pressed over them.  This can be disabled again
+with the
+<a name="Style_FirmBorder"></a><font class="fvwmopt">FirmBorder</font>
+style.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="icons_shading_maximising_movement_resizing"></a>31.7.5.6. Icons, shading, maximizing, movement, resizing</h5></div></div></div><p><a name="Style_Icon"></a><font class="fvwmopt">Icon</font>
+takes an (optional) unquoted string argument which is the icon
+bitmap or pixmap to use. Icons specified this way override pixmap
+icons, but not icon windows or the ewmh icon, provided by the
+client in the application (with the WM_HINTS property or with the
+ewmh _NET_WM_ICON property).  The
+<a name="Style_IconOverride"></a><font class="fvwmopt">IconOverride</font>
+style changes the behavior to override any client-provided icons;
+the
+<a name="Style_NoIconOverride"></a><font class="fvwmopt">NoIconOverride</font>
+style changes the behavior to not override any client-provided
+icons; the default overriding behavior can be activated with the
+<a name="Style_NoActiveIconOverride"></a><font class="fvwmopt">NoActiveIconOverride</font>
+style.  With this style, fvwm uses application provided icons if
+the icon is changed but uses the icon provided in the
+configuration file until then.</p><p>There is one exception to these rules, namely</p><pre class="programlisting">
+Style * Icon unknown.xpm
+</pre><p>doesn't force the unknown.xpm icon on every window, it just sets
+the default icon like the DefaultIcon command. If you really want
+all windows to have the same icon, you can use</p><pre class="programlisting">
+Style ** Icon unknown.xpm
+</pre><p>If the
+<a name="Style_NoIcon"></a><font class="fvwmopt">NoIcon</font>
+attribute is set then the specified window simply disappears when
+it is iconified.  The window can be recovered through the
+window-list.  If
+<span class="emphasis"><em>Icon</em></span>
+is set without an argument then the
+<span class="emphasis"><em>NoIcon</em></span>
+attribute is cleared but no icon is specified.  An example which
+allows only the
+<span class="emphasis"><em>FvwmPager</em></span>
+module icon to exist:</p><pre class="programlisting">
+Style * NoIcon
+Style FvwmPager Icon
+</pre><p><a name="Style_IconBox"></a><font class="fvwmopt">IconBox</font>
+takes no argument, four numeric arguments (plus optionally a
+screen specification), an X11 geometry string or the string
+"none":</p><pre class="programlisting">
+IconBox<span class="emphasis"><em> [</em></span>screen scr-spec<span class="emphasis"><em>] </em></span>l t r b
+</pre><p>or</p><pre class="programlisting">
+IconBox geometry
+</pre><p>Where
+<a name="Style_l"></a><font class="fvwmopt">l</font>
+is the left coordinate,
+<a name="Style_t"></a><font class="fvwmopt">t</font>
+is the top,
+<a name="Style_r"></a><font class="fvwmopt">r</font>
+is right and
+<a name="Style_b"></a><font class="fvwmopt">b</font>
+is bottom.  Negative coordinates indicate distance from the right
+or bottom of the screen.
+If the first argument is the word
+<a name="Style_screen"></a><font class="fvwmopt">screen</font>,
+the
+<a name="Style_scr-spec"></a><font class="fvwmopt">scr-spec</font>
+argument specifies the Xinerama screen on which the IconBox is
+defined.  It can be the usual screen Xinerama specification, 'p',
+´c', 'g', a screen number or the additional 'w' for the screen
+where the window center is located.  This is only useful with
+multiple Xinerama screens.
+The "l t r b" specification is more flexible than an X11 geometry.
+For example:</p><pre class="programlisting">
+IconBox -80 240 -1 -1
+</pre><p>defines a box that is 80 pixels wide from the right edge,
+240 pixels down from the top, and continues to the bottom of
+the screen.</p><p>Perhaps it is easier to use is an X11
+geometry string though:</p><pre class="programlisting">
+IconBox 1000x70-1-1
+</pre><p>places an 1000 by 70 pixel icon box on the bottom of the screen
+starting in the lower right  hand corner of the screen.
+One way to figure out a geometry like this is to use a window
+that resizes in pixel increments, for example, xv.
+Then resize and place the xv window where you want the iconbox.
+Then use FvwmIdent to read the windows geometry.
+The icon box is a region of the screen
+where fvwm attempts to put icons for any matching window, as long
+as they do not overlap other icons.
+Multiple icon boxes can be
+defined as overflow areas.  When the first icon box is full, the
+second one is filled.  All the icon boxes for one style must be
+defined in one
+<span class="emphasis"><em>Style</em></span>
+command.  For example:</p><pre class="programlisting">
+Style * IconBox -80 240 -1 -1, \
+        IconBox 1000x70-1-1
+</pre><p>A Style command with the IconBox option replaces any icon box
+defined previously by another Style command for the same style.
+That's why the backslash in the previous example is required.</p><p>Note: The geometry for the icon box command takes the additional
+screen specifier "@w" in case a Xinerama setup is used.  This
+designates the screen where the window center is located.  The
+additional screen specifier is not allowed anywhere else.</p><p>If you never define an icon box, or you fill all the icon boxes,
+fvwm has a default icon box that covers the screen, it fills top
+to bottom, then left to right, and has an 80x80 pixel grid.  To
+disable all but the default icon box you can use IconBox without
+arguments in a separate
+<span class="emphasis"><em>Style</em></span>
+command.  To disable all icon boxes including the default icon
+box, the argument "none" can be specified.</p><p>Hint: You can auto arrange your icons in the icon box with a
+simple fvwm function.  Put the "DeiconifyAndRearrange" function
+below in your configuration file:</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> DeiconifyAndRearrange
+ + C <a href="#Iconify">Iconify</a> off
+ + C <a href="#All">All</a> (CurrentPage, Iconic) <a href="#PlaceAgain">PlaceAgain</a> Icon
+</pre><p>And then replace all places where you call the
+<a href="#Iconify">Iconify</a>
+command to de-iconify an icon with a call to the new
+function.  For example replace</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> IconFunc
+ + C <a href="#Iconify">Iconify</a> off
+ + M <a href="#Raise">Raise</a>
+ + M <a href="#Move">Move</a>
+ + D <a href="#Iconify">Iconify</a> off
+
+<a href="#Mouse">Mouse</a> 1 I A <a href="#Iconify">Iconify</a> off
+</pre><p>with</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> IconFunc
+ + C DeiconifyAndRearrange
+ + M <a href="#Raise">Raise</a>
+ + M <a href="#Move">Move</a>
+ + D DeiconifyAndRearrange
+
+<a href="#Mouse">Mouse</a> 1 I A DeiconifyAndRearrange
+</pre><p><a name="Style_IconGrid"></a><font class="fvwmopt">IconGrid</font>
+takes 2 numeric arguments greater than zero.</p><pre class="programlisting">
+<span class="emphasis"><em>IconGrid x y</em></span>
+</pre><p>Icons are placed in an icon box by stepping through the icon box
+using the
+<a name="Style_x"></a><font class="fvwmopt">x</font> and <a name="Style_y"></a><font class="fvwmopt">y</font>
+values for the icon grid, looking for a free space. The default
+grid is 3 by 3 pixels which gives a tightly packed appearance. To
+get a more regular appearance use a grid larger than your largest
+icon. Use the
+<span class="emphasis"><em>IconSize</em></span>
+argument to clip or stretch an icon to a maximum size. An
+<span class="emphasis"><em>IconGrid</em></span>
+definition must follow the
+<span class="emphasis"><em>IconBox</em></span>
+definition that it applies to:</p><pre class="programlisting">
+Style * IconBox -80x240-1-1, IconGrid 90 90
+</pre><p><a name="Style_IconFill"></a><font class="fvwmopt">IconFill</font>
+takes 2 arguments.</p><pre class="programlisting">
+IconFill <span class="emphasis"><em>Bottom Right</em></span>
+</pre><p>Icons are placed in an icon box by stepping through the icon box
+using these arguments to control the direction the box is filled
+in. By default the direction is left to right, then top to bottom.
+This would be expressed as:</p><pre class="programlisting">
+IconFill left top
+</pre><p>To fill an icon box in columns instead of rows, specify the
+vertical direction (top or bottom) first. The directions can be
+abbreviated or spelled out as follows: "t", "top", "b", "bot",
+"bottom", "l", "lft", "left", "r", "rgt", "right". An
+<span class="emphasis"><em>IconFill</em></span>
+definition must follow the
+<span class="emphasis"><em>IconBox</em></span>
+definition that it applies to:</p><pre class="programlisting">
+Style * IconBox -80x240-1-1, IconFill b r
+</pre><div class="section" lang="en"><div class="titlepage"></div><p>
+<a name="Style_IconSize"></a><font class="fvwmopt">IconSize</font>
+sets limits on the size of an icon image.  Both user-provided
+and application-provided icon images are affected.</p><pre class="programlisting">
+IconSize<span class="emphasis"><em> [ </em></span>width<span class="emphasis"><em> </em></span>height<span class="emphasis"><em> [ </em></span>maxwidth<span class="emphasis"><em> </em></span>maxheight<span class="emphasis"><em> ] ]</em></span>
+</pre><p>All arguments are measured in pixels.  When all four arguments are
+passed to
+<span class="emphasis"><em>IconSize,</em></span>
+<span class="emphasis"><em>width</em></span>
+and
+<span class="emphasis"><em>height</em></span>
+represent the minimum size of an icon, and
+<span class="emphasis"><em>maxwidth</em></span>
+and
+<span class="emphasis"><em>maxheight</em></span>
+represent the maximum size of an icon.  Icon images that are smaller
+than the minimum size are padded.  Icon images that are bigger than
+the maximum size are clipped.</p><p>If only two arguments are passed to
+<span class="emphasis"><em>IconSize,</em></span>
+<span class="emphasis"><em>width</em></span>
+and
+<span class="emphasis"><em>height</em></span>
+represent the absolute size of an icon.  Icons covered by this style
+are padded or clipped to achieve the given size.</p><p>If no arguments are specified, the default values are used for each
+dimension.  This effectively places no limits on the size of an icon.</p><p>The value of "-1" can be used in place of any of the arguments to
+specify the default value for that dimension.</p><p>In addition to the numeric arguments, 1 additional argument can be
+"Stretched", "Adjusted", or "Shrunk".
+</p><p>Note that module provided icon managers are not affected by this style.</p></div><p><a name="Style_MiniIcon"></a><font class="fvwmopt">MiniIcon</font>
+specifies a pixmap to use as the miniature icon for the
+window. This miniature icon can be drawn in a title-bar button
+(see
+<a href="#ButtonStyle">ButtonStyle</a>),
+and can be used by various fvwm modules
+(<a href="../modules/FvwmIconMan.html">FvwmIconMan</a> and <a href="../modules/FvwmPager.html">FvwmPager</a>).
+It takes the name of a pixmap as an argument.</p><p><a name="Style_WindowShadeShrinks"></a><font class="fvwmopt">WindowShadeShrinks</font> and <a name="Style_WindowShadeScrolls"></a><font class="fvwmopt">WindowShadeScrolls</font>
+control if the contents of a window that is being shaded with the
+<a href="#WindowShade">WindowShade</a>
+command are scrolled (default) or if they stay in place.  The
+shrinking mode is a bit faster</p><p>The
+<a name="Style_WindowShadeSteps"></a><font class="fvwmopt">WindowShadeSteps</font>
+option selects the number of steps for animation when shading a
+window with
+<a href="#WindowShade">WindowShade</a>.
+It takes one number as its argument.  If the number has a trailing
+'<a name="Style_p"></a><font class="fvwmopt">p</font>'
+it sets the number of pixels to use as the step size instead of
+a fixed number of steps.  0 disables the animation.  This happens
+too if the argument is omitted or invalid.</p><p>The
+<a href="#WindowShade">WindowShade</a>
+command has two modes of operation: busy and lazy shading.  Busy
+shading can be 50% slower than lazy shading, but the latter can
+look strange under some conditions, for example, if the window
+borders, buttons or the title are filled with a tiled pixmap.
+Also, the window handles are not drawn in lazy mode and the border
+relief may only be drawn partially right before the window reaches
+the shaded state or tight after leaves the unshaded state. By
+default, fvwm uses lazy mode if there are no bad visual effects
+(not counting the window handles) and busy mode otherwise.  Use
+the
+<span class="emphasis"><em>WindowShadeAlwaysLazy  or  WindowShadeBusy</em></span>
+to force using the lazy or busy mode.  The default setting is
+restored with
+<a name="Style_WindowShadeLazy"></a><font class="fvwmopt">WindowShadeLazy</font>.</p><p><a name="Style_ResizeOpaque"></a><font class="fvwmopt">ResizeOpaque</font>
+instructs fvwm to resize the corresponding windows with their
+contents visible instead of using an outline.  Since this causes
+the application to redraw frequently it can be quite slow and make
+the window flicker excessively, depending on the amount of
+graphics the application redraws.  The
+<a name="Style_ResizeOutline"></a><font class="fvwmopt">ResizeOutline</font>
+style (default) negates the
+<span class="emphasis"><em>ResizeOpaque</em></span>
+style.  Many applications do not like their windows being resized
+opaque, e.g. XEmacs, Netscape or terminals with a pixmap
+background. If you do not like the result, do not use the
+<span class="emphasis"><em>ResizeOpaque</em></span>
+style for these windows.  To exempt certain windows from opaque
+resizing you could use these lines in your configuration file:</p><pre class="programlisting">
+Style * ResizeOpaque
+Style rxvt ResizeOutline
+Style emacs ResizeOutline
+</pre><p><a name="Style_Sticky"></a><font class="fvwmopt">Sticky</font>
+makes the window sticky, i.e. it is always visible on each page
+and each desk.  The opposite style,
+<a name="Style_Slippery"></a><font class="fvwmopt">Slippery</font>
+reverts back to the default.</p><p>
+<a name="Style_StickyIcon"></a><font class="fvwmopt">StickyIcon</font>
+makes the window sticky when it's iconified.  It de-iconifies on
+top the active desktop.
+<a name="Style_SlipperyIcon"></a><font class="fvwmopt">SlipperyIcon</font>
+reverts back to the default.
+</p><p><a name="Style_StickyAcrossPages"></a><font class="fvwmopt">StickyAcrossPages</font> and <a name="Style_StickyAcrossPagesIcon"></a><font class="fvwmopt">StickyAcrossPagesIcon</font>
+work like
+<span class="emphasis"><em>Sticky</em></span> and <span class="emphasis"><em>StickyIcon</em></span>,
+but stick the window only across pages, not desks while
+<span class="emphasis"><em>StickyAcrossDesks  and  StickyAcrossDesksIcon</em></span>
+works the other way round.</p><p>Windows that have been marked as
+<span class="emphasis"><em>Sticky</em></span> or
+<a name="Style_StickyAcrossDesks"></a><font class="fvwmopt">StickyAcrossDesks</font> or
+<span class="emphasis"><em>StickyAcrossPages</em></span> will have stipples drawn
+on the titlebar.  This can be negated with the
+!<a name="Style_StickyStippledTitle"></a><font class="fvwmopt">StickyStippledTitle</font>
+style.  The style
+<span class="emphasis"><em>StickyStippledTitle</em></span>
+puts back the stipples where that window has also been marked as
+<span class="emphasis"><em>Sticky</em></span>.  Note that this is the default style for
+<span class="emphasis"><em>Sticky</em></span> windows.  Sticky icons will have stipples drawn
+on the icon title. This can be disabled in the same way with the
+!<a name="Style_StickyStippledIconTitle"></a><font class="fvwmopt">StickyStippledIconTitle</font>
+style.</p><p>Windows with the
+<a name="Style_StartIconic"></a><font class="fvwmopt">StartIconic</font>
+style are shown as icons initially.  Note that some applications
+counteract that by deiconifying themselves.  The default is to not
+iconify windows and can be set with the
+<a name="Style_StartNormal"></a><font class="fvwmopt">StartNormal</font>
+style.</p><p><a name="Style_StickyIcon"></a><font class="fvwmopt">StickyIcon</font>
+makes the window sticky when it's iconified.  It de-iconifies on
+top the active desktop.
+<a name="Style_SlipperyIcon"></a><font class="fvwmopt">SlipperyIcon</font>
+reverts back to the default.</p><p><a name="Style_StickyIconPage"></a><font class="fvwmopt">StickyIconPage</font>
+works like
+<span class="emphasis"><em>StickyIcon</em></span>,
+but sticks the icon only across pages, not desks while
+<a name="Style_StickyIconDesk"></a><font class="fvwmopt">StickyIconDesk</font>
+works the other way round.</p><p><a name="Style_StippledIconTitle"></a><font class="fvwmopt">StippledIconTitle</font>
+works like
+<span class="emphasis"><em>StippledTitle</em></span>
+in that it draws stipples on the titles of icons but doesn't
+make the icon sticky.</p><p><a name="Style_IgnoreRestack"></a><font class="fvwmopt">IgnoreRestack</font>
+makes fvwm ignore attempts of clients to raise or lower their own
+windows.  By default, the opposite style,
+<a name="Style_AllowRestack"></a><font class="fvwmopt">AllowRestack</font>
+is active.</p><p><a name="Style_FixedPosition"></a><font class="fvwmopt">FixedPosition</font> and <a name="Style_FixedUSPosition"></a><font class="fvwmopt">FixedUSPosition</font>
+make fvwm ignore attempts of the user to move the window.  It is
+still possible to move the window by resizing it.  To allow the
+user to move windows, use the
+<a name="Style_VariablePosition"></a><font class="fvwmopt">VariablePosition</font> or <a name="Style_VariableUSPosition"></a><font class="fvwmopt">VariableUSPosition</font>
+style.</p><p><a name="Style_FixedSize"></a><font class="fvwmopt">FixedSize</font> and <a name="Style_FixedUSSize"></a><font class="fvwmopt">FixedUSSize</font>
+make fvwm ignore attempts of the user to resize the window.  To
+allow the user to resize windows, use the
+<a name="Style_VariableSize"></a><font class="fvwmopt">VariableSize</font> or <a name="Style_VariableUSSize"></a><font class="fvwmopt">VariableUSSize</font>
+style.</p><p><a name="Style_FixedPPosition"></a><font class="fvwmopt">FixedPPosition</font> and <a name="Style_FixedPSize"></a><font class="fvwmopt">FixedPSize</font>
+make fvwm ignore attempts of the program to move or resize its
+windows.  To allow this kind of actions, use the
+<a name="Style_VariablePPosition"></a><font class="fvwmopt">VariablePPosition</font> or <a name="Style_VariablePSize"></a><font class="fvwmopt">VariablePSize</font>
+style.  These styles may sometimes affect the initial placement
+and dimensions of new windows (depending on the application).  If
+windows are created at strange places, try either the
+<a name="Style_VariablePPosition"></a><font class="fvwmopt">VariablePPosition</font> or <a name="Style_!UsePPosition"></a><font class="fvwmopt">!UsePPosition</font>
+styles.  The
+<a name="Style_FixedPSize"></a><font class="fvwmopt">FixedPSize</font>
+style may screw up window dimensions for some applications.  Do Not
+use this style in this case.</p><p><a name="Style_MoveByProgramMethod"></a><font class="fvwmopt">MoveByProgramMethod</font>
+affects how fvwm reacts to requests by the application to move its
+windows.  By default, fvwm tries to detect which method to use,
+but it sometimes detects the wrong method.  You may come across a
+window that travels across the screen by a few pixels when the
+application resizes it, moves to a screen border with the frame
+decorations off screen, that remembers its position for the next
+time it starts but appears in a slighly shifted position, or that
+attepmts to become full screen but has the.  Try out both options,
+<a name="Style_UseGravity"></a><font class="fvwmopt">UseGravity</font> and <a name="Style_IgnoreGravity"></a><font class="fvwmopt">IgnoreGravity</font>
+on the window (and that window only) and see if that helps.  By
+default, fvwm uses the
+<a name="Style_AutoDetect"></a><font class="fvwmopt">AutoDetect</font>
+method.  Once the method was detected, it is never changed again.
+As long as fvwm can not detect the proper method, it uses
+<a name="Style_IgnoreGravity"></a><font class="fvwmopt">IgnoreGravity</font>.
+To force fvwm to retry the detection, use one of the other two
+options first and then use
+<span class="emphasis"><em>AutoDetect</em></span>
+again.</p><p>Note:  This option was introduced to alleviate a problem with the
+<acronym class="acronym">ICCCM</acronym> specification.  The <acronym class="acronym">ICCCM</acronym> clearly states that the
+<a name="Style_UseGravity"></a><font class="fvwmopt">UseGravity</font>
+option should be used, but traditionally applications ignored this
+rule.</p><p><a name="Style_Closable"></a><font class="fvwmopt">Closable</font>
+enables the functions
+<a href="#Close">Close</a>,
+<a href="#Delete">Delete</a>
+and
+<a href="#Destroy">Destroy</a>
+to be performed on the windows. This is on by default.
+The opposite,
+<span class="emphasis"><em>!Closable</em></span>,
+inhibits the window to be closed.</p><p><a name="Style_Iconifiable"></a><font class="fvwmopt">Iconifiable</font>
+enables the function
+<a href="#Iconify">Iconify</a>
+to be performed on the windows.
+This is on by default.
+The opposite,
+<span class="emphasis"><em>!Iconifiable</em></span>,
+inhibits the window from being iconified.</p><p><a name="Style_Maximizable"></a><font class="fvwmopt">Maximizable</font>
+enables the function
+<a href="#Maximize">Maximize</a>
+to be performed on the windows.
+This is on by default.
+The opposite,
+<span class="emphasis"><em>!Maximizable</em></span>,
+inhibits the window from being maximized.</p><p><a name="Style_AllowMaximizeFixedSize"></a><font class="fvwmopt">AllowMaximizeFixedSize</font>
+enables the function
+<a href="#Maximize">Maximize</a>
+to be performed on windows that are not resizable, unless
+maximization has been disabled either using the style
+<span class="emphasis"><em>!Maximizable</em></span>
+or through WM hints.  This is on by default.  The opposite,
+<span class="emphasis"><em>!AllowMaximizeFixedSize</em></span>,
+inhibits all windows that are not resizable from being maximized.</p><p><a name="Style_ResizeHintOverride"></a><font class="fvwmopt">ResizeHintOverride</font>
+instructs fvwm to ignore the program supplied minimum and maximum
+size as well as the resize step size (the character size in many
+applications).
+This can be handy for broken applications that refuse to be
+resized.  Do not use it if you do not need it.  The default
+(opposite) style is
+<a name="Style_NoResizeOverride"></a><font class="fvwmopt">NoResizeOverride</font>.</p><p><span class="emphasis"><em>MinWindowSize  [ width [ p ]  height [ p ] ]</em></span>
+Tells fvwm the minimum width and height of a window.  The values
+are the percentage of the total screen area.  If the letter
+'<span class="emphasis"><em>p</em></span>'
+is appended to either of the values, the numbers are interpreted
+as pixels. This command is useful for certain versions of xemacs
+which freak out if their windows become too small.  If you omit
+he parameters or their values are invalid, both limits are set to
+0 pixels (which is the default value).</p><p><span class="emphasis"><em>MaxWindowSize  [ width [ p ]  height [ p ] ]</em></span>
+Tells fvwm the maximum width and height of a window.  The values
+are the percentage of the total screen area.  If the letter
+'<span class="emphasis"><em>p</em></span>'
+is appended to either of the values, the numbers are interpreted
+as pixels. This command is useful to force large application
+windows to be fully visible.  Neither
+<span class="emphasis"><em>height</em></span> nor <span class="emphasis"><em>width</em></span>
+may be less than 100 pixels.  If you omit the parameters or their
+values are invalid, both limits are set to 32767 pixels (which is
+the default).</p><p>With
+<a name="Style_IconifyWindowGroups"></a><font class="fvwmopt">IconifyWindowGroups</font>
+all windows in the same window group are iconified and deiconified
+at once when any window in the group is (de)iconified.
+ The default is
+<a name="Style_IconifyWindowGroupsOff"></a><font class="fvwmopt">IconifyWindowGroupsOff</font>,
+which disables this behavior.  Although a number of applications
+use the window group hint, it is rarely used in a proper way, so
+it is probably best to use
+<span class="emphasis"><em>IconifyWindowGroups</em></span>
+only for selected applications.</p><p>The option <a name="Style_SnapAttraction"></a><font class="fvwmopt">SnapAttraction</font>
+affects interactive window movement:  If during an interactive
+move the window or icon comes within
+<em class="replaceable"><code>proximity</code></em> pixels of another the window
+or icon, it is moved to make the borders adjoin.  The default of 0
+means that no snapping happens.  Calling this command without
+arguments turns off snap attraction and restores the default
+behavior.  Please refer also to the <a href="#SnapGrid">SnapGrid</a>
+command.</p><p>The second argument determined is optional and may be set to one of the
+five following values: With <em class="replaceable"><code>All</code></em> both icons and
+windows snap to other windows and other icons.
+<em class="replaceable"><code>SameType</code></em> lets windows snap only to windows, and
+icons snap only to icons. With <em class="replaceable"><code>Windows</code></em> windows snap
+only to other windows. Similarly with <em class="replaceable"><code>Icons</code></em> icons
+snap only to other icons. With <em class="replaceable"><code>None</code></em> no snapping
+takes place. This option can be useful in conjunction with the following
+argument if you only want to snap against the screen edges. The default
+behavior is <span class="emphasis"><em>All</em></span>.</p><p>The third and last optional argument may be set to one of the
+four following values: 
+</p><div class="itemizedlist"><ul type="disc"><li><p>With <em class="replaceable"><code>Screen</code></em> the
+already snapping icons or windows, which is controlled by the second
+argument, will snap now also to the screen edges.</p></li><li><p><em class="replaceable"><code>ScreenWindows</code></em> snaps
+only windows to the screen edges.</p></li><li><p><em class="replaceable"><code>ScreenIcons</code></em> snaps
+only icons to the screen edges.</p></li><li><p><em class="replaceable"><code>ScreenAll</code></em> snaps
+windows and icons to the screen edges.</p></li></ul></div><p>The option <a name="Style_SnapGrid"></a><font class="fvwmopt">SnapGrid</font> defines an
+invisible grid on the screen.  During an interactive move a window
+or icon is positioned such that its location (top left corner) is
+coincident with the nearest grid point. The default
+<em class="replaceable"><code>x-grid-size</code></em> and
+<em class="replaceable"><code>y-grid-size</code></em> setting are both 1, which
+is effectively no grid all.</p><p>An interactive move with both <a href="#SnapGrid">SnapGrid</a> and
+<a href="#Style_SnapAttraction">SnapAttraction</a> results in the window
+being moved to be adjacent to the nearest window border (if within
+snap proximity) or grid position. The window moves the shortest
+distance possible to satisfy both <a href="#SnapGrid">SnapGrid</a> and
+<a href="#Style_SnapAttraction">SnapAttraction</a>.  Note that the x and y
+coordinates are not coupled.  For example, a window may snap to
+another window on the x axis while snapping to a grid point on the
+y axis.  Using this style without arguments reinstates the default
+settings.</p><p>The styles <a name="Style_EdgeMoveDelay"></a><font class="fvwmopt">EdgeMoveDelay</font> and
+<a name="Style_EdgeResizeDelay"></a><font class="fvwmopt">EdgeResizeDelay</font> tells how hard it
+should be to change the desktop viewport by moving or resizing a
+window over the edge of the screen. The parameter tells how many
+milliseconds the pointer must spend on the screen edge before fvwm
+moves the viewport.  The command <a href="#EdgeScroll">EdgeScroll</a>
+determines how far the viewport is scrolled.  If -1 is given as
+the delay, page flipping is disabled completely.  The defaults are
+no delay for moving (0) and no flipping for resizing (-1).  Using
+these styles without any argument restores the default
+settings.  Note that, with</p><pre class="programlisting">
+<a href="#EdgeScroll">EdgeScroll</a> 0 0
+</pre><p>it is still possible to move or resize windows across the
+edge of the current screen.  See also <a href="#EdgeThickness">EdgeThickness</a>.</p><p>The option <a name="Style_EdgeMoveResistance"></a><font class="fvwmopt">EdgeMoveResistance</font>
+makes it easier to place a window directly adjacent to the
+screen's or xinerama screen's border.  It takes one or two
+parameters.  The first parameter tells how many pixels over the
+edge of the screen a window's edge must move before it actually
+moves partially off the screen.  The optional second parameter
+does the same as the first, but for individual Xinerama screens.
+If omitted, the value of the first parameter is assumed for this
+type of movement.  Set the second parameter to 0 to zero to ignore
+individual xinerama screen edges.  Note that the center of the
+window being moved determines the xinerama screen on which the
+window should be kept.  Both values are 0 by default.  To restore
+the defaults, the option <a name="Style_EdgeMoveResistance"></a><font class="fvwmopt">EdgeMoveResistance</font> can be used without any
+parameters.</p><p>The option <a name="Style_InitialMapCommand"></a><font class="fvwmopt">InitialMapCommand</font> allows
+for any valid fvwm command or function to run when the window is 
+initially mapped by fvwm.  Example:</p><pre class="programlisting">
+<a href="#Style">Style</a> MyWindow StartsOnPage 0 0, InitialMapCommand Iconify
+</pre><p>This would hence place the window called <span class="emphasis"><em>MyWindow</em></span>
+on page 0 0 for the current desk, and immediately run the <a href="#Iconify">Iconify</a>
+command on that window.</p><p>Note that should <a href="#Style_InitialMapCommand">InitialMapCommand</a> be
+used as a global option for all windows, but there is a need that some
+windows should not have this command applied, then an action of 
+<a href="#Nop">Nop</a> can be used on those windows, as in the following
+example:</p><pre class="programlisting">
+<a href="#Style">Style</a> * InitialMapCommand Iconify
+<a href="#Style">Style</a> XTeddy InitialMapCommand Nop
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="window_manager_placement"></a>31.7.5.7. Window Manager placement</h5></div></div></div><p>Applications can place windows at a particular spot on the screen
+either by window manager hints or a geometry specification.  When
+they do neither, then the window manager steps in to find a place
+for the window.  Fvwm knows several ways to deal with this
+situation. The default is
+<span class="emphasis"><em>TileCascadePlacement</em></span>.</p><p>
+<a name="Style_PositionPlacement"></a><font class="fvwmopt">PositionPlacement</font>
+[<span class="emphasis"><em>Center</em></span>|<span class="emphasis"><em>UnderMouse</em></span>|<span class="emphasis"><em>move-arguments</em></span>]
+When used without an argument, new windows are placed in the
+top left corner of the display.  With the argument
+<span class="emphasis"><em>Center</em></span>,
+all new window appear at the center of the screen, and with
+<span class="emphasis"><em>UnderMouse</em></span>,
+windows are centered under the mouse pointer where possible.  If the window
+is unable to fit on the screen because the pointer is at the edge of the
+screen, then the window is forced on-screen using this option.  If any other
+<span class="emphasis"><em>move-arguments</em></span>
+are given, they are interpreted exactly as the
+<span class="emphasis"><em>Move</em></span>
+command does (with the exception that references to the current
+window position do not work as the window has not been placed
+yet).</p><p><a name="Style_CascadePlacement"></a><font class="fvwmopt">CascadePlacement</font>
+automatically place new windows in a cascading fashion.</p><p>
+<a name="Style_TileCascadePlacement"></a><font class="fvwmopt">TileCascadePlacement</font>
+automatically places new windows in a smart location - a location
+in which they do not overlap any other windows on the screen.  If
+no such position can be found
+<span class="emphasis"><em>CascadePlacement</em></span>
+is used as a fall-back method.</p><p><a name="Style_TileManualPlacement"></a><font class="fvwmopt">TileManualPlacement</font>
+This is the same as
+<span class="emphasis"><em>TileCascadePlacement</em></span>,
+but uses
+<span class="emphasis"><em>ManualPlacement</em></span>
+as the fall-back method.</p><p><a name="Style_MinOverlapPlacement"></a><font class="fvwmopt">MinOverlapPlacement</font>
+automatically places new windows in a location in which the
+overlapping area in pixels of other windows is minimized.
+By default this placement policy tries to avoid
+overlapping icons and windows on higher layers.
+This can be configured with the
+<a name="Style_MinOverlapPlacementPenalties"></a><font class="fvwmopt">MinOverlapPlacementPenalties</font>
+style.</p><p><a name="Style_MinOverlapPercentPlacement"></a><font class="fvwmopt">MinOverlapPercentPlacement</font>
+is similar to
+<span class="emphasis"><em>MinOverlapPlacement</em></span>
+but tries to minimize the overlapped percentages of other windows
+instead of the overlapped area in pixels.  This placement policy
+tries to avoid covering other windows completely and tries even
+harder not to cover small windows.
+This can be configured with the
+<span class="emphasis"><em>MinOverlapPlacementPenalties</em></span>
+and
+<a name="Style_MinOverlapPercentPlacementPenalties"></a><font class="fvwmopt">MinOverlapPercentPlacementPenalties</font>
+styles.</p><p><span class="emphasis"><em>MinOverlapPlacementPenalties</em></span>
+takes at most 6 positive or null decimal arguments:</p><pre class="programlisting">
+<span class="emphasis"><em>normal ontop icon sticky below strut</em></span>
+</pre><p>if trailing arguments are missing the default is used which is:</p><pre class="programlisting">
+1 5 10 1 0.05 50
+</pre><p>To reset this style to the default values, prefix it with a '!'. This style configures the
+<span class="emphasis"><em>MinOverlapPlacement</em></span> and <span class="emphasis"><em>MinOverlapPercentPlacement</em></span>
+placement policy.
+The
+<span class="emphasis"><em>normal</em></span>
+factor affects normal windows, the
+<span class="emphasis"><em>ontop</em></span>
+factor affects windows with a greater layer than the window being
+placed, the
+<span class="emphasis"><em>icon</em></span>
+factor affects icons, the
+<span class="emphasis"><em>sticky</em></span>
+factor affects sticky windows, the
+<span class="emphasis"><em>below</em></span>
+factor affects windows with a smaller layer than the window being
+placed, the
+<span class="emphasis"><em>strut</em></span>
+factor affects the complement of the <acronym class="acronym">EWMH</acronym> working area if the
+window being placed has the
+<a name="Style_EWMHPlacementUseWorkingArea"></a><font class="fvwmopt">EWMHPlacementUseWorkingArea</font>
+style and windows with an <acronym class="acronym">EWMH</acronym> strut hint (i.e., a "please do not
+cover me" hint) if the window being placed has the
+<a name="Style_EWMHPlacementUseDynamicWorkingArea"></a><font class="fvwmopt">EWMHPlacementUseDynamicWorkingArea</font>
+style.  These factors represent the amount of area that these
+types of windows (or area) are counted as, when a new window is
+placed.  For example, by default the area of ontop windows is
+counted 5 times as much as normal windows.  So
+<span class="emphasis"><em>MinOverlapPlacement</em></span> and <span class="emphasis"><em>MinOverlapPercentPlacement</em></span>
+covers 5 times as much area of another window before it will
+cover an ontop window.  To treat ontop windows the same as other
+windows, set this to 1.  To really, really avoid putting windows
+under ontop windows, set this to a high value, say 1000. This
+style affects the window already mapped and not the window which
+is currently placed. There is one exception to this rule: in the
+case of the window being placed has the
+<span class="emphasis"><em>EWMHPlacementUseWorkingArea</em></span>
+style the
+<span class="emphasis"><em>strut</em></span>
+factor affects the placed window.</p><p><span class="emphasis"><em>MinOverlapPercentPlacementPenalties</em></span>
+takes at most 4 positive or null integer arguments:</p><pre class="programlisting">
+<span class="emphasis"><em>cover_100 cover_95 cover_85 cover_75</em></span>
+</pre><p>if trailing arguments are missing the defaults are used
+which are:</p><pre class="programlisting">
+12 6 4 1
+</pre><p>To reset this style to the default values, prefix it with a '!'.
+
+This style affects the
+<span class="emphasis"><em>MinOverlapPercentPlacement</em></span>
+placement policy and is similar to the
+<span class="emphasis"><em>MinOverlapPlacementPenalties</em></span>
+style. The
+<span class="emphasis"><em>cover_xx</em></span>
+factor is used when the window being placed covers at least
+<span class="emphasis"><em>xx</em></span>
+percent of the window. This factor is added to the factor
+determined by the
+<span class="emphasis"><em>MinOverlapPlacementPenalties</em></span>
+style.</p><p>
+<a name="Style_ManualPlacement"></a><font class="fvwmopt">ManualPlacement</font>
+(aka active placement). The user is required to place every new
+window manually.  The window only shows as a rubber band until a
+place is selected manually. The window is placed when a mouse
+button or any key except
+<a name="Style_Escape"></a><font class="fvwmopt">Escape</font>
+is pressed.  Escape aborts manual placement which places the
+window in the top left corner of the screen. If mouse button 2 is
+pressed during the initial placement of a window (respectively
+<a name="Style_Shift"></a><font class="fvwmopt">Shift</font>
+and mouse button 1 in case Mwm emulation has been enabled with the
+<a href="#Emulate">Emulate</a>
+command), the user is asked to resize the window too.</p><p>It is possible to define buttons usable to place windows with the
+<a href="#Move">Move</a>
+command and the special context 'P' for placement (see
+<a href="#Move">Move</a>
+command). However, you can't redefine the way to also resize the
+window other than the way it is affected by the
+<a href="#Emulate">Emulate</a>
+command. The button used for placing the window can be checked with
+the
+<a name="Style_PlacedByButton"></a><font class="fvwmopt">PlacedByButton</font>
+condition (see
+<a href="#Current">Current</a>
+command).</p><p>Example:</p><pre class="programlisting">
+Style * ManualPlacement
+
+*FvwmEvent: PassID
+*FvwmEvent: add_window GrowDownFunc
+<a href="#AddToFunc">AddToFunc</a> StartFunction
++ I FvwmEvent
+
+<a href="#AddToFunc">AddToFunc</a> GrowDownFunc
++ I windowid $0 (PlacedByButton 3) \
+  <a href="#Resize">Resize</a> bottomright keep -0p
+</pre><p>Now, whenever a window is created and the user presses button 3 to
+finish initial placement, the window is automatically enlarged
+until it hits the bottom screen border.</p><p><span class="emphasis"><em>Old placement styles</em></span>
+DumbPlacement / SmartPlacement / SmartPlacementOff,
+CleverPlacement / CleverPlacementOff,
+ActivePlacement / RandomPlacement,
+ActivePlacementsHonorsStartsOnPage /
+ActivePlacementsHonorsStartsOnPageOff, GlobalOpts
+SmartPlacementIsReallySmart / GlobalOpts SmartPlacementIsNormal
+are still supported but will be removed in the future. The old and
+new styles can be translated according to the following table:</p><pre class="programlisting">
+<a href="#GlobalOpts">GlobalOpts</a> SmartPlacementIsReallySmart
+Style * SmartPlacement
+--&gt;
+Style * SmartPlacement, CleverPlacement
+
+<a href="#GlobalOpts">GlobalOpts</a> SmartPlacementIsNormal
+Style * SmartPlacement
+  --&gt;
+Style * SmartPlacement, CleverPlacementOff
+
+Style * DumbPlacement, RandomPlacement
+  --&gt;
+Style * CascadePlacement
+
+Style * DumbPlacement, ActivePlacement
+  --&gt;
+Style * ManualPlacement
+
+Style * SmartPlacement, \
+RandomPlacement, CleverPlacementOff
+  --&gt;
+Style * TileCascadePlacement
+
+Style * SmartPlacement, \
+ActivePlacement, CleverPlacementOff
+  --&gt;
+Style * TileManualPlacement
+
+Style * SmartPlacement, CleverPlacement
+  --&gt;
+Style * MinOverlapPlacement
+
+Style * SmartPlacement, \
+ActivePlacement, CleverPlacement
+  --&gt;
+Style * MinOverlapPercentPlacement
+
+Style * ActivePlacementsHonorsStartsOnPage
+  --&gt;
+Style * ManualPlacementsHonorsStartsOnPage
+
+Style * ActivePlacementsHonorsStartsOnPageOff
+  --&gt;
+Style * ManualPlacementsHonorsStartsOnPageOff
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="placement_policy_and_window_stacking"></a>31.7.5.8. Placement policy options and window stacking</h5></div></div></div><p><a name="Style_!UsePPosition"></a><font class="fvwmopt">!UsePPosition</font>
+instructs fvwm to ignore the program specified position (PPosition
+hint) when adding new windows.  Using PPosition is required for
+some applications, but if you do not have one of those it's a real
+headache.  Many programs set PPosition to something obnoxious like
+0,0 (upper left corner).
+Note: <span class="emphasis"><em>!UsePPosition</em></span>
+is equivalent to the deprecated option
+<span class="emphasis"><em>!UsePPosition</em></span></p><p><a name="Style_!UseUSPosition"></a><font class="fvwmopt">!UseUSPosition</font>
+works like
+<span class="emphasis"><em>!UsePPosition</em></span>
+but applies suppresses using the user specified position indicated
+by the program (USPosition hint).  It is generally a bad thing to
+override the user's choice, but some applications misuse the
+USPosition hint to force their windows to a certain spot on the
+screen without the user's consent.
+Note: <span class="emphasis"><em>!UseUSPosition</em></span>
+is equivalent to the deprecated option
+<span class="emphasis"><em>!USPosition</em></span></p><p>
+<a name="Style_NoUseTransientPPosition"></a><font class="fvwmopt">NoUseTransientPPosition</font> and
+<a name="Style_UseTransientPPosition"></a><font class="fvwmopt">UseTransientPPosition</font>
+work like
+<span class="emphasis"><em>!UsePPosition</em></span> and
+<span class="emphasis"><em>UsePPosition</em></span>
+but apply only to transient windows.
+Note: <span class="emphasis"><em>!UseTransientPPosition</em></span>
+is equivalent to the deprecated option
+<span class="emphasis"><em>!TransientPPosition</em></span></p><p><a name="Style_NoUseIconPosition"></a><font class="fvwmopt">NoUseIconPosition</font>
+instructs fvwm to ignore the program specified icon position
+(IconPosition hint) when iconifying the window.
+Note: <span class="emphasis"><em>!UseIconPosition</em></span>
+is equivalent to the deprecated option
+<span class="emphasis"><em>!IconPosition</em></span></p><p><a name="Style_StartsOnDesk"></a><font class="fvwmopt">StartsOnDesk</font>
+takes a numeric argument which is the desktop number on which the
+window should be initially placed.  Note that standard Xt programs
+can also specify this via a resource (e.g. "-xrm '*Desk: 1'").</p><p><a name="Style_StartsOnPage"></a><font class="fvwmopt">StartsOnPage</font>
+takes 1, 2, or 3 numeric arguments.  If one or three arguments are
+given, the first (or only) argument is the desktop number. If
+three arguments are given, the 2nd and 3rd arguments identify the
+x,y page position on the virtual window.  If two arguments are
+given, they specify the page position, and indicate no desk
+preference.  If only one argument is given,
+<span class="emphasis"><em>StartsOnPage</em></span>
+functions exactly like
+<span class="emphasis"><em>StartsOnDesk</em></span>.
+For those standard Xt programs which understand this usage, the
+starting desk/page can also be specified via a resource (e.g.,
+"-xrm '*page: 1 0 2'").
+<span class="emphasis"><em>StartsOnPage</em></span>
+in conjunction with
+<a name="Style_SkipMapping"></a><font class="fvwmopt">SkipMapping</font>
+is a useful technique when you want to start an app on some other
+page and continue with what you were doing, rather than waiting
+for it to appear.</p><p><a name="Style_StartsOnScreen"></a><font class="fvwmopt">StartsOnScreen</font>
+takes one argument.  It can be 'p' for the primary screen, 'c' for
+the current screen (containing the mouse pointer), 'g' for the
+global screen or the screen number itself (counting from zero).  A
+new window is placed on the specified Xinerama screen.  The
+default is to place windows on the screen that contains the mouse
+pointer at the time the window is created.  However, those windows
+which are not placed by fvwm (i.e., those with a USPosition hint
+from a user specified geometry) are normally placed in a position
+relative to the global screen.  The
+<span class="emphasis"><em>StartsOnScreen</em></span>
+style is also useful to cause these windows to be placed relative
+to a specific Xinerama screen.  For example:</p><pre class="programlisting">
+Style * StartsOnScreen c
+</pre><p>Would cause all windows, including those with their own geometry
+to be placed relative to the current Xinerama screen rather than
+the global screen.  For those standard Xt programs which
+understand this usage, the starting desk/page can also be
+specified via a resource (e.g., "-xrm '*fvwmscreen: c'").
+('fvwmscreen' was chosen because some applications already use
+´.screen' for other purposes.)</p><p><a name="Style_StartsOnPageIncludesTransients"></a><font class="fvwmopt">StartsOnPageIncludesTransients</font>
+causes the
+<span class="emphasis"><em>StartsOnPage</em></span>
+style to be applied even for transient windows.  This is not
+usually useful, since transients are usually pop ups that you want
+to appear in your visible viewport; but occasionally an
+application uses a transient for something like a startup window
+that needs to be coerced into place.</p><p><a name="Style_ManualPlacementIgnoresStartsOnPage"></a><font class="fvwmopt">ManualPlacementIgnoresStartsOnPage</font>
+suppresses
+<span class="emphasis"><em>StartsOnPage</em></span> or <span class="emphasis"><em>StartsOnDesk</em></span>
+placement in the event that both
+<span class="emphasis"><em>ManualPlacement</em></span> and <span class="emphasis"><em>SkipMapping</em></span>
+are in effect when a window is created.  This prevents you from
+interactively placing a window and then wondering where it
+disappeared to, because it got placed on a different desk or page.
+<a name="Style_ManualPlacementHonorsStartsOnPage"></a><font class="fvwmopt">ManualPlacementHonorsStartsOnPage</font>
+allows this to happen anyway.  The option has no effect if
+<span class="emphasis"><em>SkipMapping</em></span>
+is not in effect, because fvwm switches to the proper desk/page to
+perform interactive placement.  The default is
+<span class="emphasis"><em>ManualPlacementIgnoresStartsOnPage</em></span>;
+<span class="emphasis"><em>ManualPlacementHonorsStartsOnPage</em></span>
+matches the way the old
+<span class="emphasis"><em>StartsOnDesk</em></span>
+style used to handle the situation.</p><p><a name="Style_CaptureHonorsStartsOnPage"></a><font class="fvwmopt">CaptureHonorsStartsOnPage</font>
+causes the initial capture (of an already existing window) at
+startup to place the window according to the
+<span class="emphasis"><em>StartsOnPage</em></span> and <span class="emphasis"><em>StartsOnScreen</em></span>
+desk, page and Xinerama screen specification.
+<a name="Style_CaptureIgnoresStartsOnPage"></a><font class="fvwmopt">CaptureIgnoresStartsOnPage</font>
+causes fvwm to ignore these settings (including
+<span class="emphasis"><em>StartsOnDesk</em></span>)
+on initial capture.  The default is
+<span class="emphasis"><em>CaptureIgnoresStartsOnPage</em></span>.</p><p><a name="Style_RecaptureHonorsStartsOnPage"></a><font class="fvwmopt">RecaptureHonorsStartsOnPage</font>
+causes a window to be placed according to, or revert to, the
+<span class="emphasis"><em>StartsOnPage</em></span> and <span class="emphasis"><em>StartsOnScreen</em></span>
+desk, page and Xinerama screen specification on
+<a href="#Restart">Restart</a> or <a name="Style_Recapture"></a><font class="fvwmopt">Recapture</font>.
+<a name="Style_RecaptureIgnoresStartsOnPage"></a><font class="fvwmopt">RecaptureIgnoresStartsOnPage</font>
+causes fvwm to respect the current window position on
+<a href="#Restart">Restart</a> or <a href="#Recapture">Recapture</a>.
+The default is
+<span class="emphasis"><em>RecaptureIgnoresStartsOnPage</em></span>.</p><p>
+<a name="Style_Layer"></a><font class="fvwmopt">Layer</font>
+accepts one optional argument: a non-negative integer.  This is
+the layer the window is put in.  If no argument is given, any
+previously set value is deleted and the default layer is implied.</p><p><a name="Style_StaysOnTop"></a><font class="fvwmopt">StaysOnTop</font>
+puts the window in the top layer.  This layer can be changed by
+the command
+<a href="#DefaultLayers">DefaultLayers</a>;
+the default is 6.</p><p><a name="Style_StaysPut"></a><font class="fvwmopt">StaysPut</font>
+puts the window in the put layer.  This layer can be changed by
+the command
+<a href="#DefaultLayers">DefaultLayers</a>;
+the default is 4.</p><p><a name="Style_StaysOnBottom"></a><font class="fvwmopt">StaysOnBottom</font>
+puts the window in the bottom layer.  This layer can be changed by
+the command
+<a href="#DefaultLayers">DefaultLayers</a>;
+the default is 2.</p><p><a name="Style_StartsLowered"></a><font class="fvwmopt">StartsLowered</font>
+instructs fvwm to put the window initially at the bottom of its
+layer rather than the default
+<a name="Style_StartsRaised"></a><font class="fvwmopt">StartsRaised</font>.</p><p><a name="Style_StartShaded"></a><font class="fvwmopt">StartShaded</font>
+tells fvwm to shade the window.  An optional direction argument may be
+given, which can be one of
+"<a name="WindowShade_North"></a><font class="fvwmopt">North</font>",
+"<a name="WindowShade_South"></a><font class="fvwmopt">South</font>",
+"<a name="WindowShade_West"></a><font class="fvwmopt">West</font>",
+"<a name="WindowShade_East"></a><font class="fvwmopt">East</font>",
+"<a name="WindowShade_NorthWest"></a><font class="fvwmopt">NorthWest</font>",
+"<a name="WindowShade_NorthEast"></a><font class="fvwmopt">NorthEast</font>",
+"<a name="WindowShade_SouthWest"></a><font class="fvwmopt">SouthWest</font>",
+"<a name="WindowShade_SouthEast"></a><font class="fvwmopt">SouthEast</font>" or
+if no direction is given, the default is to shade north.</p><p><span class="emphasis"><em>SkipMapping</em></span>
+tells fvwm not to switch to the desk the window is on when it gets
+mapped initially (useful with
+<span class="emphasis"><em>StartsOnDesk</em></span> or <span class="emphasis"><em>StartsOnPage</em></span>).</p><p><a name="Style_KeepWindowGroupsOnDesk"></a><font class="fvwmopt">KeepWindowGroupsOnDesk</font>
+makes new windows that have the window group hint set appear on
+the same desk as the other windows of the same group.  Since this
+behavior may be confusing, the default setting is
+<a name="Style_ScatterWindowGroups"></a><font class="fvwmopt">ScatterWindowGroups</font>.
+The window group hint is ignored when placing windows in this
+case.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="transient_windows"></a>31.7.5.9. Transient windows</h5></div></div></div><p><a name="Style_DecorateTransient"></a><font class="fvwmopt">DecorateTransient</font>
+causes transient windows, which are normally left undecorated, to
+be given the usual fvwm decorations (title bar, buttons,
+etc.). Note that some pop-up windows, such as the xterm menus, are
+not managed by the window manager and still do not receive
+decorations.
+<a name="Style_NakedTransient"></a><font class="fvwmopt">NakedTransient</font>
+(the default) causes transient windows not to be given the
+standard decorations. You can only bind keys or mouse buttons to
+the sides and the client part of an undecorated window ('S' and
+´W' contexts in bindings, see
+<a href="#Mouse">Mouse</a> and <a name="Style_Key"></a><font class="fvwmopt">Key</font>
+commands).</p><p>A window with the
+<a name="Style_RaiseTransient"></a><font class="fvwmopt">RaiseTransient</font>
+style that has transient windows raises all its transients when it
+is raised.  The
+<a name="Style_DontRaiseTransient"></a><font class="fvwmopt">DontRaiseTransient</font>
+style disables this behavior.  All windows are then treated as if
+they had no transients.</p><p>A window with the
+<a name="Style_LowerTransient"></a><font class="fvwmopt">LowerTransient</font>
+style that has transient windows lowers all its transients when it
+is lowered.  The
+<a name="Style_DontLowerTransient"></a><font class="fvwmopt">DontLowerTransient</font>
+style disables this behavior.  All windows are then treated as if
+they had no transients.</p><p>The
+<a name="Style_StackTransientParent"></a><font class="fvwmopt">StackTransientParent</font>
+style augments
+<span class="emphasis"><em>RaiseTransient</em></span> and <span class="emphasis"><em>LowerTransient</em></span>
+styles.  Raising a window with
+<span class="emphasis"><em>StackTransientParent</em></span>
+style transfers the raise action to the main window if the window
+being raised is a transient and its main window has
+<span class="emphasis"><em>RaiseTransient</em></span>
+style; this effect makes raise on a transient act just like raise
+on its main - the whole group is raised.  Similar behavior holds
+for lowering a whole group of transients when the main has
+<span class="emphasis"><em>LowerTransient</em></span>
+style.
+<a name="Style_DontStackTransientParent"></a><font class="fvwmopt">DontStackTransientParent</font>
+turns this behavior off.
+<a name="Style_(Dont)StackTransientParent"></a><font class="fvwmopt">(Dont)StackTransientParent</font>
+has no effect if
+<span class="emphasis"><em>RaiseTransient</em></span> and <span class="emphasis"><em>LowerTransient</em></span>
+are not used.</p><p>A reasonable emulation of Motif raise/lower on transients is
+possible like this</p><pre class="programlisting">
+Style * RaiseTransient
+Style * LowerTransient
+Style * StackTransientParent
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="ewmh"></a>31.7.5.10. Extended Window Manager Hints styles</h5></div></div></div><p>To understand the used terminology in this sub section, please
+read the
+<a href="#extended_window_manager_hints">Extended Window Manager Hints</a>
+section.</p><p><a name="Style_EWMHDonateIcon"></a><font class="fvwmopt">EWMHDonateIcon</font>
+instructs fvwm to set the application ewmh icon hint with the icon
+that is used by fvwm if the application does not provide such hint
+(and if the icon used by fvwm is not an icon window).
+<a name="Style_EWMHDonateMiniIcon"></a><font class="fvwmopt">EWMHDonateMiniIcon</font>
+does the same thing for mini icons. This allows compliant pager,
+taskbar, iconbox ...etc to display the same (mini) icons as
+fvwm. Note that on some hardware (e.g., 8-bit displays) these
+styles can slow down window mapping and that in general only one
+of these styles is needed by a compliant application.
+<a name="Style_EWMHDontDonateIcon"></a><font class="fvwmopt">EWMHDontDonateIcon</font>
+and
+<a name="Style_EWMHDontDonateMiniIcon"></a><font class="fvwmopt">EWMHDontDonateMiniIcon</font>
+restore the defaults which are to not set any ewmh (mini) icons
+hints.</p><p>By default, if an application provides an ewmh icon hint of small
+size (i.e., height and width less than or equal to 22), then fvwm
+uses this icon as its mini icon.
+<a name="Style_EWMHMiniIconOverride"></a><font class="fvwmopt">EWMHMiniIconOverride</font>
+instructs fvwm to ignore ewmh icons and to use the mini icon
+provided by the
+<span class="emphasis"><em>MiniIcon</em></span>
+style.
+<a name="Style_EWMHNoMiniIconOverride"></a><font class="fvwmopt">EWMHNoMiniIconOverride</font>
+restores the default.</p><p><a name="Style_EWMHUseStackingOrderHints"></a><font class="fvwmopt">EWMHUseStackingOrderHints</font>
+causes fvwm to use <acronym class="acronym">EWMH</acronym> hints and respect <acronym class="acronym">EWMH</acronym> hints which change
+the window layer.
+<a name="Style_EWMHIgnoreStackingOrderHints"></a><font class="fvwmopt">EWMHIgnoreStackingOrderHints</font>
+causes fvwm to ignore EWMH layer hints.</p><p>An application can ask for some reserved space on the desktop by a
+hint.  In the <acronym class="acronym">EWMH</acronym> terminology such a hint is called a strut and
+it is used to compute the working area and may be used for window
+placement and in the maximize command.
+<a name="Style_EWMHIgnoreStrutHints"></a><font class="fvwmopt">EWMHIgnoreStrutHints</font>
+causes fvwm to ignore such hints, as
+<a name="Style_EWMHUseStrutHints"></a><font class="fvwmopt">EWMHUseStrutHints</font>,
+causes fvwm to use it which is the default.</p><p><a name="Style_EWMHIgnoreStateHints"></a><font class="fvwmopt">EWMHIgnoreStateHints</font>
+causes fvwm to ignore initial <acronym class="acronym">EWMH</acronym> state hints when a new window
+is mapped. The default
+<a name="Style_EWMHUseStateHints"></a><font class="fvwmopt">EWMHUseStateHints</font>
+causes fvwm to accept such hints.</p><p><a name="Style_EWMHIgnoreWindowType"></a><font class="fvwmopt">EWMHIgnoreWindowType</font>
+causes fvwm to ignore <acronym class="acronym">EWMH</acronym> window type specification. The default
+<span class="emphasis"><em>!EWMHIgnoreWindowType</em></span>
+causes fvwm to style windows of specified types as such.</p><p><a name="Style_EWMHMaximizeIgnoreWorkingArea"></a><font class="fvwmopt">EWMHMaximizeIgnoreWorkingArea</font>
+causes fvwm to ignore the <acronym class="acronym">EWMH</acronym> working area when it executes a
+<a href="#Maximize">Maximize</a>
+command. With
+<a name="Style_EWMHMaximizeUseWorkingArea"></a><font class="fvwmopt">EWMHMaximizeUseWorkingArea</font>
+the <acronym class="acronym">EWMH</acronym> working area is used as with
+<a name="Style_EWMHMaximizeUseDynamicWorkingArea"></a><font class="fvwmopt">EWMHMaximizeUseDynamicWorkingArea</font>
+the <acronym class="acronym">EWMH</acronym> dynamic working area is used (the default).</p><p><a name="Style_EWMHPlacementIgnoreWorkingArea"></a><font class="fvwmopt">EWMHPlacementIgnoreWorkingArea</font>
+causes fvwm to ignore the <acronym class="acronym">EWMH</acronym> working area when it places (or
+places again) a window. With
+<span class="emphasis"><em>EWMHPlacementUseWorkingArea</em></span>
+the <acronym class="acronym">EWMH</acronym> working area is taken in account as with
+<span class="emphasis"><em>EWMHPlacementUseDynamicWorkingArea</em></span>
+the <acronym class="acronym">EWMH</acronym> dynamic working area is taken in account (the default).
+Note that with the
+<span class="emphasis"><em>MinOverlapPlacement</em></span> and <span class="emphasis"><em>MinOverlapPercentPlacement</em></span>
+placement policy, the way the <acronym class="acronym">EWMH</acronym> (dynamic) working area is taken
+in account is configurable with the
+<span class="emphasis"><em>MinOverlapPlacementPenalties</em></span>
+style.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="miscellaneous"></a>31.7.5.11. Miscellaneous</h5></div></div></div><p>The
+<a name="Style_BackingStore"></a><font class="fvwmopt">BackingStore</font>, <a name="Style_BackingStoreOff"></a><font class="fvwmopt">BackingStoreOff</font> and <a name="Style_BackingStoreWindowDefault"></a><font class="fvwmopt">BackingStoreWindowDefault</font>
+determine if the X server uses backing store for the window or
+not.
+<a name="Style_BackingStore"></a><font class="fvwmopt">BackingStore</font>
+means that the X server tries to keep the obscured parts of a
+window in memory.  This is usually slower if the client runs on
+the same machine as the X server, but can be much faster if the
+connection is slow (see also
+<span class="emphasis"><em>SaveUnder</em></span>
+below).
+<a name="Style_BackingStoreOff"></a><font class="fvwmopt">BackingStoreOff</font>
+disables backing store for the window.  By default, fvwm
+does not enable or disable backing store itself but leaves is as
+the window requested it.  To revert back to the application's
+choice, use the
+<a name="Style_BackingStoreWindowDefault"></a><font class="fvwmopt">BackingStoreWindowDefault</font>
+style.</p><p>Note: This style is useless if the X server does not allow backing
+store.</p><p>
+<a name="Style_SaveUnder"></a><font class="fvwmopt">SaveUnder</font>
+enables the corresponding window attribute in the X server.  For a
+window using this style, the X server tries to store the graphics
+below it in memory which is usually slower if the client runs on
+the same machine as the X server.
+<span class="emphasis"><em>SaveUnder</em></span>
+may speed up fvwm if the connection to the X server is slow
+(e.g. over a modem link).  To disable save under, use the
+<a name="Style_SaveUnderOff"></a><font class="fvwmopt">SaveUnderOff</font>
+style.  This is the default. See also
+<span class="emphasis"><em>BackingStore</em></span>
+above.</p><p>Note: This style is useless if the X server does not allow save
+under.</p><p><a name="Style_ParentalRelativity"></a><font class="fvwmopt">ParentalRelativity</font>
+enables clients that use a background pixmap of type
+<a name="Style_ParentRelative"></a><font class="fvwmopt">ParentRelative</font>
+to achieve transparency. Fvwm modules that support transparent
+colorsets require this setting.
+<a name="Style_Opacity"></a><font class="fvwmopt">Opacity</font>
+is the default and should be used for all non-transparent clients
+for better performance.</p><p><a name="Style_MwmDecor"></a><font class="fvwmopt">MwmDecor</font>
+makes fvwm attempt to recognize and respect the mwm decoration
+hints that applications occasionally use.  To switch this style
+off, use the
+<a name="Style_NoDecorHint"></a><font class="fvwmopt">NoDecorHint</font>
+style.</p><p><a name="Style_MwmFunctions"></a><font class="fvwmopt">MwmFunctions</font>
+makes fvwm attempt to recognize and respect the mwm prohibited
+operations hints that applications occasionally use.
+<a name="Style_HintOverride"></a><font class="fvwmopt">HintOverride</font>
+makes fvwm shade out operations that mwm would prohibit, but it
+lets you perform the operation anyway.
+<a name="Style_NoFuncHint"></a><font class="fvwmopt">NoFuncHint</font>
+allows turns off the mwm hints completely.</p><p><a name="Style_OLDecor"></a><font class="fvwmopt">OLDecor</font>
+makes fvwm attempt to recognize and respect the olwm and olvwm
+hints that many older XView and OLIT applications use.  Switch
+this option off with
+<a name="Style_NoOLDecor"></a><font class="fvwmopt">NoOLDecor</font>.</p><p>With
+<a name="Style_GNOMEIgnoreHints"></a><font class="fvwmopt">GNOMEIgnoreHints</font>
+fvwm ignores all <acronym class="acronym">GNOME</acronym> hints for the window, even if <acronym class="acronym">GNOME</acronym>
+compliance is compiled in.  This is useful for those pesky
+applications that try to be more clever than the user and use
+<acronym class="acronym">GNOME</acronym> hints to force the window manager to ignore the user's
+preferences.  The
+<a name="Style_GNOMEUseHints"></a><font class="fvwmopt">GNOMEUseHints</font>
+style switches back to the default behavior.</p><p><a name="Style_UseDecor"></a><font class="fvwmopt">UseDecor</font>
+This style is deprecated and will be removed in the future.  There
+are plans to replace it with a more flexible solution in fvwm-3.0.</p><p><span class="emphasis"><em>UseDecor</em></span>
+accepts one argument: the name of a decor created with
+<a href="#AddToDecor">AddToDecor</a>.
+If no decor name is specified, the "Default" decor is
+used. Windows do not actually contain decors, but are always
+assigned to one.  If the decor is later modified with
+<a href="#AddToDecor">AddToDecor</a>,
+the changes are visible for all windows which are assigned to it.
+The decor for a window can be reassigned with
+<a href="#ChangeDecor">ChangeDecor</a>.</p><p><a name="Style_UseStyle"></a><font class="fvwmopt">UseStyle</font>
+This style is deprecated and will be removed in the future.  There
+are plans to replace it with a more flexible solution in fvwm-3.0.</p><p><span class="emphasis"><em>UseStyle</em></span>
+takes one arg, which is the name of another style.  That way you
+can have unrelated window names easily inherit similar traits
+without retyping.  For example:</p><pre class="programlisting">
+  Style rxvt UseStyle XTerm
+</pre><p>Warning: If a style is built from one or more parent styles and
+the parent styles are changed, the derived style is not
+modified. To achieve this you have to issue the
+<span class="emphasis"><em>UseStyle</em></span>
+line again.</p><p><a name="Style_Unmanaged"></a><font class="fvwmopt">Unmanaged</font>
+Windows with the
+<span class="emphasis"><em>Unmanaged</em></span>
+style option are ignored by fvwm.  They are not decorated, can not
+be moved or resized, etc.  You probably want to use
+<span class="emphasis"><em>Bugopts RaiseOverUnmanaged</em></span>
+too.  This option can be turned off with the
+<span class="emphasis"><em>!Unmanaged</em></span>
+style.
+However, windows that are already ignored at the time when the
+option is set must be recaptured with the
+<a href="#Recapture">Recapture</a>
+command in order to become managed.</p><p>
+<a name="Style_State"></a><font class="fvwmopt">State</font>
+sets the initial value of one of the 32 user defined states
+which are associated with each window.  The state number ranges
+from 0 to 31 and must be given as an argument.  The states have no
+meaning in fvwm, but they can be checked in conditional commands
+like
+<a href="#Next">Next</a>
+with the
+<span class="emphasis"><em>State</em></span>
+condition and manipulated with the
+<a href="#State">State</a>
+command.</p><pre class="programlisting">
+# turn on state 11 for xterms ...
+Style xterm <a href="#State">State</a> 11
+# ... but not for rxvts.
+Style rxvt !State 11
+</pre><p>Windows with the
+<a name="Style_WindowListSkip"></a><font class="fvwmopt">WindowListSkip</font>
+styles do not appear in the menu that is created with the
+<a href="#WindowList">WindowList</a>
+command or the lists shown in modules like
+<a href="../modules/FvwmIconMan.html">FvwmIconMan</a>.
+In the modules, the style can usually be ignored with an option.
+Please refer to the man page of the module in question for
+further information.  To disable this feature, use the default
+style
+<a name="Style_WindowListHit"></a><font class="fvwmopt">WindowListHit</font>.</p><p>The styles
+<a name="Style_CirculateSkip"></a><font class="fvwmopt">CirculateSkip</font> and <a name="Style_CirculateHit"></a><font class="fvwmopt">CirculateHit</font>
+control whether the window is considered by conditional commands,
+for example
+<a href="#Next">Next</a>, <a name="Style_Prev"></a><font class="fvwmopt">Prev</font> or <a name="Style_All"></a><font class="fvwmopt">All</font>.
+Windows with
+<a name="Style_CirculateSkip"></a><font class="fvwmopt">CirculateSkip</font>,
+are never selected by conditional commands.  However, the styles
+can be overridden explicitly in the condition with the
+<a name="Style_CirculateHit"></a><font class="fvwmopt">CirculateHit</font>, <a name="Style_CirculateHitIcon"></a><font class="fvwmopt">CirculateHitIcon</font> or <a name="Style_CirculateHitShaded"></a><font class="fvwmopt">CirculateHitShaded</font>
+conditions, and some conditional commands, e.g.
+<a href="#Current">Current</a> and <a name="Style_All"></a><font class="fvwmopt">All</font>,
+do this by default.
+The styles
+<a name="Style_CirculateSkipIcon"></a><font class="fvwmopt">CirculateSkipIcon</font>, <a name="Style_CirculateHitIcon"></a><font class="fvwmopt">CirculateHitIcon</font>,
+<a name="Style_CirculateSkipShaded"></a><font class="fvwmopt">CirculateSkipShaded</font> and <a name="Style_CirculateHitShaded"></a><font class="fvwmopt">CirculateHitShaded</font>
+work like
+<span class="emphasis"><em>CirculateSkip</em></span> and <span class="emphasis"><em>CirculateHit</em></span>
+but apply only to iconic or shaded windows.
+Note: if multiple ...Skip... options are combined, windows are
+only selected if they match none of the given conditions.  So,
+with</p><pre class="programlisting">
+Style * CirculateSkipIcon, CirculateSkipShaded
+</pre><p>only windows that are neither iconic nor shaded are selected.
+Note:  For historical reasons, the conditional commands understand
+the names of these styles as condition names.  Take care not to
+confuse them.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="examples"></a>31.7.5.12. Examples</h5></div></div></div><pre class="programlisting">
+# Change default fvwm behavior to no title-
+# bars on windows! Also define a default icon.
+Style *             !Title,                \
+                    Icon unknown1.xpm,     \
+                    BorderWidth 4,         \
+                    HandleWidth 5
+
+# now, window specific changes:
+Style Fvwm*       !Handles, Sticky,        \
+                  WindowListSkip,          \
+                  BorderWidth 0
+Style FvwmPager   StaysOnTop, BorderWidth 0
+Style *lock       !Handles, Sticky,        \
+                  StaysOnTop, WindowListSkip
+Style xbiff       Sticky, WindowListSkip
+Style FvwmButtons !Handles, Sticky,        \
+                  WindowListSkip
+Style sxpm        !Handles
+
+# Put title-bars back on xterms only!
+Style xterm     Title, Color black/grey
+
+Style rxvt        Icon term.xpm
+Style xterm       Icon rterm.xpm
+Style xcalc       Icon xcalc.xpm
+Style xbiff       Icon mail1.xpm
+Style xmh         Icon mail1.xpm,         \
+                    StartsOnDesk 2
+Style xman        Icon xman.xpm
+Style matlab      Icon math4.xpm,         \
+                    StartsOnDesk 3
+Style xmag        Icon magnifying_glass2.xpm
+Style xgraph      Icon graphs.xpm
+Style FvwmButtons Icon toolbox.xpm
+Style Maker       StartsOnDesk 1
+Style signal      StartsOnDesk 3
+
+# Fire up Netscape on the second desk, in the
+# middle of my 3x3 virtual desktop, and do not
+# bother me with it...
+Style Netscape* SkipMapping,              \
+                StartsOnPage 1 1 1
+</pre><p>Note that all properties for a window are or'ed together.  In the
+above example "FvwmPager" gets the property
+<span class="emphasis"><em>StaysOnTop</em></span>
+via an exact window name match but also gets
+<span class="emphasis"><em>!Handles</em></span>, <span class="emphasis"><em>Sticky</em></span> and <span class="emphasis"><em>WindowListSkip</em></span>
+by a match to "Fvwm*".  It gets
+<span class="emphasis"><em>!Title</em></span>
+by virtue of a match to "*".  If conflicting styles are specified
+for a window, then the last style specified is used.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="WindowStyle"></a>31.7.6. WindowStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">WindowStyle</code>   <em class="replaceable"><code>options</code></em> </p></div><p>sets attributes (styles) on the selected window. The
+<em class="replaceable"><code>options</code></em>
+are exactly the same as for the
+<a href="#Style">Style</a>
+command.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="window_styles"></a>31.8. Window Styles</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="AddButtonStyle"></a>31.8.1. AddButtonStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">AddButtonStyle</code>   button  [<em class="replaceable"><code>state</code></em>] [<em class="replaceable"><code>style</code></em>] [--  [<span class="optional">!</span>]<em class="replaceable"><code>flag</code></em>... ]</p></div><p>Adds a button style to
+<em class="replaceable"><code>button</code></em>.
+<em class="replaceable"><code>button</code></em>
+can be a button number, or one of
+"<a name="AddButtonStyle_All"></a><font class="fvwmopt">All</font>",
+"<a name="AddButtonStyle_Left"></a><font class="fvwmopt">Left</font>" or
+"<a name="AddButtonStyle_Right"></a><font class="fvwmopt">Right</font>".
+<em class="replaceable"><code>state</code></em>
+can be
+"<a name="AddButtonStyle_ActiveUp"></a><font class="fvwmopt">ActiveUp</font>",
+"<a name="AddButtonStyle_ActiveDown"></a><font class="fvwmopt">ActiveDown</font>",
+"<a name="AddButtonStyle_InactiveUp"></a><font class="fvwmopt">InactiveUp</font>" or
+"<a name="AddButtonStyle_InactiveDown"></a><font class="fvwmopt">InactiveDown</font>", or
+"<a name="AddButtonStyle_Active"></a><font class="fvwmopt">Active</font>" (the same as both "ActiveUp" and "ActiveDown") or
+"<a name="AddButtonStyle_Inactive"></a><font class="fvwmopt">Inactive</font>" (the same as both "InactiveUp" and "InactiveDown")
+or any of these 6 with
+"<a name="AddButtonStyle_Toggled"></a><font class="fvwmopt">Toggled</font>" prepended.
+The "Active" states apply to the focused window, the "Inactive"
+ones apply to all other windows. The "Up" states apply to the
+non pressed buttons, the "Down" ones apply to pressed buttons.
+The "Toggled" prefix refers to maximized, shaded or sticky windows
+that have the corresponding
+<span class="emphasis"><em>MwmDecor...</em></span>
+button style set.
+Additionally, the following shortcuts may be used:
+"<a name="AddButtonStyle_AllNormal"></a><font class="fvwmopt">AllNormal</font>",
+"<a name="AddButtonStyle_AllToggled"></a><font class="fvwmopt">AllToggled</font>",
+"<a name="AddButtonStyle_AllActive"></a><font class="fvwmopt">AllActive</font>",
+"<a name="AddButtonStyle_AllInactive"></a><font class="fvwmopt">AllInactive</font>",
+"<a name="AddButtonStyle_AllUp"></a><font class="fvwmopt">AllUp</font>",
+"<a name="AddButtonStyle_AllDown"></a><font class="fvwmopt">AllDown</font>".
+They are actually different masks for 4 individual states from
+8 total.  These are supported too:
+"<a name="AddButtonStyle_AllActiveUp"></a><font class="fvwmopt">AllActiveUp</font>",
+"<a name="AddButtonStyle_AllActiveDown"></a><font class="fvwmopt">AllActiveDown</font>",
+"<a name="AddButtonStyle_AllInactiveUp"></a><font class="fvwmopt">AllInactiveUp</font>",
+"<a name="AddButtonStyle_AllInactiveDown"></a><font class="fvwmopt">AllInactiveDown</font>".</p><p>If
+<em class="replaceable"><code>state</code></em>
+is omitted, then the style is added to every state.  If the
+<em class="replaceable"><code>style</code></em> and <em class="replaceable"><code>flags</code></em>
+are enclosed in parentheses, then multiple
+<em class="replaceable"><code>state</code></em>
+definitions can be placed on a single line.
+<em class="replaceable"><code>Flags</code></em>
+for additional button styles cannot be changed after definition.</p><p>Buttons are drawn in the order of definition, beginning with the
+most recent button style, followed by those added with
+<span class="emphasis"><em>AddButtonStyle</em></span>.
+To clear the button style stack, change style flags, or for
+descriptions of available styles and flags, see the
+<a href="#ButtonStyle">ButtonStyle</a>
+command.  Examples:</p><pre class="programlisting">
+<a href="#ButtonStyle">ButtonStyle</a> 1 Pixmap led.xpm -- Top Left
+<a href="#ButtonStyle">ButtonStyle</a> 1 ActiveDown HGradient 8 grey black
+<a href="#ButtonStyle">ButtonStyle</a> <a href="#All">All</a> --  UseTitleStyle
+AddButtonStyle 1 \
+	ActiveUp (Pixmap a.xpm) \
+	ActiveDown (Pixmap b.xpm -- Top)
+AddButtonStyle 1 Vector 4 50x30@1 70x70@0 30x70@0 50x30@1
+</pre><p>Initially for this example all button states are set to a pixmap.
+The second line replaces the "ActiveDown" state with a gradient
+(it overrides the pixmap assigned to it in the line before, which
+assigned the same style to every state).  Then, the
+<span class="emphasis"><em>UseTitleStyle</em></span>
+flag is set for all buttons, which causes fvwm to draw any styles
+set with
+<a href="#TitleStyle">TitleStyle</a>
+before drawing the buttons.  Finally,
+<span class="emphasis"><em>AddButtonStyle</em></span>
+is used to place additional pixmaps for both "ActiveUp" and
+"ActiveDown" states and a vector button style is drawn on top of
+all states.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="AddTitleStyle"></a>31.8.2. AddTitleStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">AddTitleStyle</code>  [<em class="replaceable"><code>state</code></em>] [<em class="replaceable"><code>style</code></em>] [--  [<span class="optional">!</span>]<em class="replaceable"><code>flag</code></em>... ]</p></div><p>Adds a title style to the title-bar.
+<em class="replaceable"><code>state</code></em> can be
+"<a name="AddTitleStyle_ActiveUp"></a><font class="fvwmopt">ActiveUp</font>",
+"<a name="AddTitleStyle_ActiveDown"></a><font class="fvwmopt">ActiveDown</font>",
+"<a name="AddTitleStyle_InactiveUp"></a><font class="fvwmopt">InactiveUp</font>" or
+"<a name="AddTitleStyle_InactiveDown"></a><font class="fvwmopt">InactiveDown</font>", or
+"<a name="AddTitleStyle_Active"></a><font class="fvwmopt">Active</font>" (the same as both "ActiveUp" and "ActiveDown") or
+"<a name="AddTitleStyle_Inactive"></a><font class="fvwmopt">Inactive</font>" (the same as both "InactiveUp" and "InactiveDown")
+or any of these 6 with "Toggled" prepended.  If
+<em class="replaceable"><code>state</code></em>
+is omitted, then the style is added to every state.  If the
+<em class="replaceable"><code>style</code></em> and <em class="replaceable"><code>flags</code></em>
+are enclosed in parentheses, then multiple
+<em class="replaceable"><code>state</code></em>
+definitions can be placed on a single line.  This command is quite
+similar to the
+<a href="#AddButtonStyle">AddButtonStyle</a>
+command.</p><p>Title-bars are drawn in the order of definition, beginning with
+the most recent
+<a href="#TitleStyle">TitleStyle</a>,
+followed by those added with
+<span class="emphasis"><em>AddTitleStyle</em></span>.
+To clear the title style stack, change style flags, or for the
+descriptions of available styles and flags, see the
+<a href="#TitleStyle">TitleStyle</a> and
+<a href="#ButtonStyle">ButtonStyle</a>
+commands.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="AddToDecor"></a>31.8.3. AddToDecor</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">AddToDecor</code>   <em class="replaceable"><code>decor</code></em> </p></div><p>This command is deprecated and will be removed in the future.  There
+are plans to replace it with a more flexible solution in fvwm-3.0.</p><p>Add or divert commands to the decor named
+<em class="replaceable"><code>decor</code></em>.
+A decor is a name given to the set of commands which affect button
+styles, title-bar styles and border styles.  If
+<em class="replaceable"><code>decor</code></em>
+does not exist it is created; otherwise the existing
+<em class="replaceable"><code>decor</code></em>
+is modified.  Note: Earlier versions allowed to use the
+<a href="#HilightColor">HilightColor</a>, <a href="#HilightColorset">HilightColorset</a> and <a href="#WindowFont">WindowFont</a>
+commands in decors.  This is no longer possible.  Please use the
+<a href="#Style">Style</a>
+command with the
+<span class="emphasis"><em>Hilight...</em></span> and <a href="#Style_Font">Font</a>
+options.</p><p>New decors start out exactly like the "default" decor without any
+style definitions.  A given decor may be applied to a set of
+windows with the
+<a href="#Style_UseDecor">UseDecor</a>
+option of the
+<a href="#Style">Style</a>
+command.  Modifying an existing decor affects all windows which
+are currently assigned to it.</p><p><span class="emphasis"><em>AddToDecor</em></span>
+is similar in usage to the
+<a href="#AddToMenu">AddToMenu</a> and <a href="#AddToFunc">AddToFunc</a>
+commands, except that menus and functions are replaced by
+<a href="#ButtonStyle">ButtonStyle</a>, <a href="#AddButtonStyle">AddButtonStyle</a>, <a href="#TitleStyle">TitleStyle</a>,
+<a href="#AddTitleStyle">AddTitleStyle</a> and <a href="#BorderStyle">BorderStyle</a>
+commands.  Decors created with
+<span class="emphasis"><em>AddToDecor</em></span>
+can be manipulated with
+<a href="#ChangeDecor">ChangeDecor</a>, <a href="#DestroyDecor">DestroyDecor</a>, <a href="#UpdateDecor">UpdateDecor</a>
+and the
+<a href="#Style">Style</a>
+option.</p><p>The following example creates a decor "FlatDecor" and style
+"FlatStyle".  They are distinct entities:</p><pre class="programlisting">
+AddToDecor FlatDecor
++ <a href="#ButtonStyle">ButtonStyle</a> All Active (-- flat) Inactive (-- flat)
++ <a href="#TitleStyle">TitleStyle</a>  -- flat
++ <a href="#BorderStyle">BorderStyle</a> -- HiddenHandles NoInset
+
+<a href="#Style">Style</a> FlatStyle \
+	UseDecor FlatDecor, HandleWidth 4, ForeColor white, \
+	BackColor grey40, HilightFore black, HilightBack grey70
+
+<a href="#Style">Style</a> xterm UseStyle FlatStyle
+</pre><p>An existing window's decor may be reassigned with
+<a href="#ChangeDecor">ChangeDecor</a>.
+A decor can be destroyed with
+<a href="#DestroyDecor">DestroyDecor</a>.</p><pre class="programlisting">
+<a href="#DestroyDecor">DestroyDecor</a> FlatDecor
+AddToDecor FlatDecor ...
+
+<a href="#Style">Style</a> FlatStyle UseDecor FlatDecor
+</pre><p>and now apply the style again:</p><pre class="programlisting">
+<a href="#Style">Style</a> xterm UseStyle FlatStyle
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="BorderStyle"></a>31.8.4. BorderStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">BorderStyle</code>   <em class="replaceable"><code>state</code></em>  [<em class="replaceable"><code>style</code></em>] [--  [<span class="optional">!</span>]<em class="replaceable"><code>flag</code></em>... ]</p></div><p>Defines a border style for windows.
+<em class="replaceable"><code>state</code></em>
+can be either "<a name="BorderStyle_Active"></a><font class="fvwmopt">Active</font>" or "<a name="BorderStyle_Inactive"></a><font class="fvwmopt">Inactive</font>".  If
+<em class="replaceable"><code>state</code></em>
+is omitted, then the style is set for both states.  If the
+<em class="replaceable"><code>style</code></em> and <em class="replaceable"><code>flags</code></em>
+are enclosed in parentheses, then multiple
+<em class="replaceable"><code>state</code></em>
+definitions can be specified per line.</p><p><em class="replaceable"><code>style</code></em>
+is a subset of the available button styles, and can only be
+<a name="BorderStyle_TiledPixmap"></a><font class="fvwmopt">TiledPixmap</font>
+(uniform pixmaps which match the bevel colors work best this
+way) or <a name="BorderStyle_Colorset"></a><font class="fvwmopt">Colorset</font>. If a
+'!' is prefixed to any
+<em class="replaceable"><code>flag</code></em>,
+the behavior is negated.  If
+<em class="replaceable"><code>style</code></em>
+is not specified, then one can change flags without resetting the
+style.</p><p>The
+<a name="BorderStyle_HiddenHandles"></a><font class="fvwmopt">HiddenHandles</font>
+flag hides the corner handle dividing lines on windows with
+handles (this option has no effect for !<a href="#Style_Handles">Handles</a> windows).  By
+default,
+<span class="emphasis"><em>HiddenHandles</em></span>
+is disabled.</p><p>The
+<a name="BorderStyle_NoInset"></a><font class="fvwmopt">NoInset</font>
+flag supplements
+<span class="emphasis"><em>HiddenHandles</em></span>.
+If given, the inner bevel around the window frame is not drawn.
+If
+<span class="emphasis"><em>HiddenHandles</em></span>
+is not specified, the frame looks a little strange.</p><p>
+<a name="BorderStyle_Raised"></a><font class="fvwmopt">Raised</font>
+causes a raised relief pattern to be drawn (default).
+<a name="BorderStyle_Sunk"></a><font class="fvwmopt">Sunk</font>
+causes a sunken relief pattern to be drawn.
+<a name="BorderStyle_Flat"></a><font class="fvwmopt">Flat</font>
+inhibits the relief pattern from being drawn.</p><p>To decorate the active and inactive window borders with a textured
+pixmap, one might specify:</p><pre class="programlisting">
+BorderStyle Active TiledPixmap marble.xpm
+BorderStyle Inactive TiledPixmap granite.xpm
+BorderStyle Active -- HiddenHandles NoInset
+</pre><p>To clear the style for both states:</p><pre class="programlisting">
+BorderStyle <a name="BorderStyle_Simple"></a><font class="fvwmopt">Simple</font>
+</pre><p>To clear for a single state:</p><pre class="programlisting">
+BorderStyle Active Simple
+</pre><p>To unset a flag for a given state:</p><pre class="programlisting">
+BorderStyle Inactive -- !NoInset
+</pre><p>title-bar buttons can inherit the border style with the
+<a href="#ButtonStyle_UseBorderStyle">UseBorderStyle</a>
+flag (see
+<a href="#ButtonStyle">ButtonStyle</a>).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ButtonState"></a>31.8.5. ButtonState</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ButtonState</code>  [ActiveDown <em class="replaceable"><code>bool</code></em>] [Inactive <em class="replaceable"><code>bool</code></em>] [InactiveDown <em class="replaceable"><code>bool</code></em>]</p></div><p>
+The
+<span class="emphasis"><em>ButtonState</em></span>
+command controls which states of the window titles and title
+buttons are used.  The default is to use all four states:
+"ActiveUp",
+"ActiveDown",
+"InactiveUp" and
+"InactiveDown" (see
+<a href="#ButtonStyle">ButtonStyle</a> and
+<a href="#TitleStyle">TitleStyle</a>
+commands).  The
+<em class="replaceable"><code>bool</code></em>
+argument after the key word controls if the designated state is
+used ("True") or not ("False").  The <em class="replaceable"><code>bool</code></em> flag
+is the same as other commands, and not limited to just "True" or "False";
+"Yes" and "No" may also be used.
+The "ActiveUp" state cannot be
+deactivated. If no arguments are provided or the given arguments
+are illegal, the default is restored.</p><p>If
+<a name="ButtonState_ActiveDown"></a><font class="fvwmopt">ActiveDown</font>
+argument is "False", no different button style
+for the pressed down buttons used, instead "ActiveUp" state is
+used even when button is pressed.</p><p>If
+<a name="ButtonState_Inactive"></a><font class="fvwmopt">Inactive</font>
+argument is "False", focused and unfocused windows
+look similarly, the corresponding "Active" states are always used.</p><p>If
+<a name="ButtonState_InactiveDown"></a><font class="fvwmopt">InactiveDown</font>
+argument is "False" (only applied when
+<span class="emphasis"><em>Inactive</em></span>
+is "True"), the pressed titles and title buttons in non-focused
+windows are drawn using "InactiveUp" or "ActiveUp" states
+depending on the values of the other key words.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ButtonStyle"></a>31.8.6. ButtonStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ButtonStyle</code> 
+	&gt;  button  [<em class="replaceable"><code>state</code></em>] [<em class="replaceable"><code>style</code></em>] [--  [<span class="optional">!</span>]<em class="replaceable"><code>flag</code></em>... ]</p></div><p>Sets the button style for a title-bar button.
+<em class="replaceable"><code>button</code></em>
+is the title-bar button number between 0 and 9, or one of
+"<a name="ButtonStyle_All"></a><font class="fvwmopt">All</font>",
+"<a name="ButtonStyle_Left"></a><font class="fvwmopt">Left</font>",
+"<a name="ButtonStyle_Right"></a><font class="fvwmopt">Right</font>", or
+"<a name="ButtonStyle_Reset"></a><font class="fvwmopt">Reset</font>".  Button numbering is described in the
+<a href="#Mouse">Mouse</a>
+command section.  If the
+<em class="replaceable"><code>style</code></em> and <em class="replaceable"><code>flags</code></em>
+are enclosed in parentheses, then multiple
+<em class="replaceable"><code>state</code></em>
+definitions can be specified per line.</p><p><em class="replaceable"><code>state</code></em>
+refers to which button state should be set.  Button states are
+defined as follows:
+"<a name="ButtonStyle_ActiveUp"></a><font class="fvwmopt">ActiveUp</font>" and
+"<a name="ButtonStyle_ActiveDown"></a><font class="fvwmopt">ActiveDown</font>" refer to the
+un-pressed and pressed states for buttons on active windows; while
+the "<a name="ButtonStyle_InactiveUp"></a><font class="fvwmopt">InactiveUp</font>" and
+"<a name="ButtonStyle_InactiveDown"></a><font class="fvwmopt">InactiveDown</font>" states denote buttons on
+inactive windows.  The shortcut
+"<a name="ButtonStyle_Active"></a><font class="fvwmopt">Active</font>" denotes both "ActiveUp" and
+"ActiveDown" states.  Shortcut
+"<a name="ButtonStyle_Inactive"></a><font class="fvwmopt">Inactive</font>" denotes both "InactiveUp"
+and "InactiveDown" states.
+The similar state names like just described, but with the "Toggled"
+prefix are used instead for title buttons which have one of the
+<span class="emphasis"><em>MwmDecorMax</em></span>, <span class="emphasis"><em>MwmDecorShade</em></span>, <span class="emphasis"><em>MwmDecorStick</em></span> or <span class="emphasis"><em>MwmDecorLayer</em></span>
+hints, if the window is maximized, shaded, sticky or placed on specific
+layer, respectively.</p><pre class="programlisting">
+<a href="#AddToDecor">AddToDecor</a> Default
+ + ButtonStyle 6                   \
+   Vector 4 50x25@1 85x75@0 15x75@0 50x25@1
+ + ButtonStyle 6 ToggledActiveUp   \
+   Vector 4 50x75@0 85x25@1 15x25@0 50x75@0
+ + ButtonStyle 6 ToggledActiveDown \
+   Vector 4 50x75@0 85x25@1 15x25@0 50x75@0
+ + ButtonStyle 6 ToggledInactive   \
+   Vector 4 50x75@0 85x25@1 15x25@0 50x75@0
+ + ButtonStyle 6 - MwmDecorShade
+<a href="#Mouse">Mouse</a> 0 6 N <a href="#WindowShade">WindowShade</a>
+</pre><p>Additionally, the following shortcuts may be used:
+"<a name="ButtonStyle_AllNormal"></a><font class="fvwmopt">AllNormal</font>",
+"<a name="ButtonStyle_AllToggled"></a><font class="fvwmopt">AllToggled</font>",
+"<a name="ButtonStyle_AllActive"></a><font class="fvwmopt">AllActive</font>",
+"<a name="ButtonStyle_AllInactive"></a><font class="fvwmopt">AllInactive</font>",
+"<a name="ButtonStyle_AllUp"></a><font class="fvwmopt">AllUp</font>",
+"<a name="ButtonStyle_AllDown"></a><font class="fvwmopt">AllDown</font>".
+They are actually different masks for 4 individual states from
+8 total.  These are supported too:
+"<a name="ButtonStyle_AllActiveUp"></a><font class="fvwmopt">AllActiveUp</font>",
+"<a name="ButtonStyle_AllActiveDown"></a><font class="fvwmopt">AllActiveDown</font>",
+"<a name="ButtonStyle_AllInactiveUp"></a><font class="fvwmopt">AllInactiveUp</font>",
+"<a name="ButtonStyle_AllInactiveDown"></a><font class="fvwmopt">AllInactiveDown</font>".</p><p>If
+<em class="replaceable"><code>state</code></em>
+is specified,
+that particular button state is set.  If
+<em class="replaceable"><code>state</code></em>
+is omitted, every state is set.  Specifying a style destroys the
+current style (use
+<a href="#AddButtonStyle">AddButtonStyle</a>
+to avoid this).</p><p>If
+<em class="replaceable"><code>style</code></em>
+is omitted, then state-dependent flags can be set for the primary
+button style without destroying the current style.  Examples (each
+line should be considered independent):</p><pre class="programlisting">
+ButtonStyle Left -- flat
+ButtonStyle All ActiveUp (-- flat) Inactive (-- flat)
+</pre><p>The first line sets every state of the left buttons to flat, while
+the second sets only the "ActiveUp" and "Inactive" states of every
+button to flat (only flags are changed; the buttons' individual
+styles are not changed).</p><p>If you want to reset all buttons to their defaults:</p><pre class="programlisting">
+ButtonStyle <a name="ButtonStyle_Reset"></a><font class="fvwmopt">Reset</font>
+</pre><p>To reset the "ActiveUp" button state of button 1 to the default:</p><pre class="programlisting">
+ButtonStyle 1 ActiveUp Default
+</pre><p>To reset all button states of button 1 to the default of
+button number 2:</p><pre class="programlisting">
+ButtonStyle 1 Default 2
+</pre><p>For any button, multiple
+<em class="replaceable"><code>state</code></em>
+definitions can be given on one line by enclosing the
+<em class="replaceable"><code>style</code></em> and <em class="replaceable"><code>flags</code></em>
+in parentheses.  If only one definition per line is given the
+parentheses can be omitted.</p><p><em class="replaceable"><code>flags</code></em>
+affect the specified
+<em class="replaceable"><code>state</code></em>.
+If a
+'!'
+is prefixed to any
+<em class="replaceable"><code>flag</code></em>,
+its behavior is negated.  The available state-dependent flags for
+all styles are described here (the
+<span class="emphasis"><em>ButtonStyle</em></span>
+entry deals with state-independent flags).</p><p>
+<a name="ButtonStyle_Raised"></a><font class="fvwmopt">Raised</font>
+causes a raised relief pattern to be drawn.</p><p>
+<a name="ButtonStyle_Sunk"></a><font class="fvwmopt">Sunk</font>
+causes a sunken relief pattern to be drawn.</p><p>
+<a name="ButtonStyle_Flat"></a><font class="fvwmopt">Flat</font>
+inhibits the relief pattern from being drawn.</p><p>
+<a name="ButtonStyle_UseTitleStyle"></a><font class="fvwmopt">UseTitleStyle</font>
+causes the given button state to render the current title style
+before rendering the buttons' own styles.  The
+<a href="#TitleStyle_Raised">Raised</a>,
+<a href="#TitleStyle_Flat">Flat</a> and
+<a href="#TitleStyle_Sunk">Sunk</a>
+<a href="#TitleStyle">TitleStyle</a>
+flags are ignored since they are redundant in this context.</p><p>
+<a name="ButtonStyle_UseBorderStyle"></a><font class="fvwmopt">UseBorderStyle</font>
+causes the button to inherit the decorated
+<span class="emphasis"><em>BorderStyle</em></span>
+options.</p><p>
+<span class="emphasis"><em>Raised</em></span>, <span class="emphasis"><em>Sunk</em></span> and <span class="emphasis"><em>Flat</em></span>
+are mutually exclusive, and can be specified for the initial
+<span class="emphasis"><em>ButtonStyle</em></span>
+only.
+<span class="emphasis"><em>UseTitleStyle</em></span> and <span class="emphasis"><em>UseBorderStyle</em></span>
+are also mutually exclusive (both can be off however).  The
+default is
+<span class="emphasis"><em>Raised</em></span>
+with both
+<span class="emphasis"><em>UseBorderStyle  and  UseTitleStyle</em></span>
+left unset.</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3>
+for the "ActiveDown" and "InactiveDown" states:  When a button is
+pressed, the relief is inverted.  Because of this, to obtain the
+raised look in "ActiveDown" or "InactiveDown" states you must
+specify the opposite of the desired relief (i.e.
+<span class="emphasis"><em>Sunk</em></span>
+for "ActiveDown" or "InactiveDown").  This behavior is consistent,
+but may seem confusing at first.  The same applies to the
+"Toggled" states.</div><p>Button styles are classified as non-destructive, partially
+destructive, or fully destructive.  Non-destructive styles do not
+affect the image. Partially destructive styles can obscure some or
+all parts of the underlying image (i.e.
+<span class="emphasis"><em>Pixmap</em></span>).
+Fully destructive styles obscure the entire underlying image (i.e.
+<span class="emphasis"><em>Solid</em></span>
+or one of the
+<span class="emphasis"><em>gradient</em></span>
+styles).  Thus, if stacking styles with
+<a href="#AddButtonStyle">AddButtonStyle</a> (or <a href="#AddTitleStyle">AddTitleStyle</a>
+for title-bars), use care in sequencing styles to minimize redraw.</p><p>The available styles are:</p><p><span class="emphasis"><em>Simple</em></span>, <span class="emphasis"><em>Default</em></span>, <span class="emphasis"><em>Solid</em></span>, <span class="emphasis"><em>Colorset</em></span>, <span class="emphasis"><em>Vector</em></span>,
+<span class="emphasis"><em>?Gradient</em></span>, <span class="emphasis"><em>Pixmap</em></span>, <span class="emphasis"><em>AdjustedPixmap</em></span>,
+<span class="emphasis"><em>ShrunkPixmap</em></span>, <span class="emphasis"><em>StretchedPixmap</em></span>, <span class="emphasis"><em>TiledPixmap</em></span>, <span class="emphasis"><em>MiniIcon</em></span></p><p>The description of these styles and their arguments follow:</p><p>The
+<a name="ButtonStyle_Simple"></a><font class="fvwmopt">Simple</font>
+style does nothing.  There are no arguments, and this style is an
+example of a non-destructive button style.</p><p>The
+<a name="ButtonStyle_Default"></a><font class="fvwmopt">Default</font>
+style conditionally accepts one argument: a number which specifies
+the default button number to load.  If the style command given is
+<span class="emphasis"><em>ButtonStyle</em></span> or <a href="#AddButtonStyle">AddButtonStyle</a>,
+the argument is optional (if given, it overrides the current button).
+If a command other than
+<span class="emphasis"><em>ButtonStyle</em></span> or <a href="#AddButtonStyle">AddButtonStyle</a>
+is used, the number must be specified.</p><p>The
+<a name="ButtonStyle_Solid"></a><font class="fvwmopt">Solid</font>
+style fills the button with a solid color.  The relief border
+color is not affected.  The color is specified as a single
+argument.  This style is fully destructive.</p><p>The
+<a name="ButtonStyle_Colorset"></a><font class="fvwmopt">Colorset</font>
+<em class="replaceable"><code>cs</code></em>
+[<span class="optional"><em class="replaceable"><code>alpha</code></em></span>]
+style fills the button with the Colorset
+<em class="replaceable"><code>cs</code></em>.
+The optional
+<em class="replaceable"><code>alpha</code></em>
+argument is a percentage between 0 and 100. It causes fvwm to
+merge the colorset background onto the button using this
+percentage. If the percentage is 0 the colorset background is
+hidden and if it is 100 the colorset background is fully
+applied. The default is 100. So, the destructiveness depends on the
+<em class="replaceable"><code>alpha</code></em>
+argument.</p><p>The
+<a name="ButtonStyle_Vector"></a><font class="fvwmopt">Vector</font>
+<em class="replaceable"><code>num</code></em>
+<span class="emphasis"><em>X</em></span><span class="emphasis"><em>[</em></span><span class="emphasis"><em>offset</em></span><span class="emphasis"><em>p]x</em></span><span class="emphasis"><em>Y</em></span><span class="emphasis"><em>[</em></span><span class="emphasis"><em>offset</em></span><span class="emphasis"><em>p]@</em></span><span class="emphasis"><em>C</em></span><span class="emphasis"><em> ...</em></span>
+style draws a line pattern.  Since this is a standard button style,
+the keyword
+<span class="emphasis"><em>Vector</em></span>
+is optional,
+<em class="replaceable"><code>num</code></em>
+is a number of point specifications of the form
+<span class="emphasis"><em>X</em></span><span class="emphasis"><em>[</em></span><span class="emphasis"><em>offset</em></span><span class="emphasis"><em>p]x</em></span><span class="emphasis"><em>Y</em></span><span class="emphasis"><em>[</em></span><span class="emphasis"><em>offset</em></span><span class="emphasis"><em>p]@</em></span><span class="emphasis"><em>C</em></span><span class="emphasis"><em> ...</em></span>
+<span class="emphasis"><em>X</em></span> and <span class="emphasis"><em>Y</em></span>
+are point coordinates inside the button, given in percents
+(from 0 to 100).  An optional absolute
+<span class="emphasis"><em>offset</em></span>
+in pixels, can be given as "+&lt;offset&gt;p" for a positive or
+"-&lt;offset&gt;p" for a negative offset.</p><p>
+<a name="ButtonStyle_C"></a><font class="fvwmopt">C</font>
+specifies a line color (0 - the shadow color, 1 - the highlight
+color, 2 - the background color, 3 - the foreground color, 4 -
+only move the point, do not draw).  The first point color is not
+used.  You can use up to 10000 points in a line pattern.  This
+style is partially destructive.</p><p>The specification is a little cumbersome:</p><pre class="programlisting">
+ButtonStyle 2 Vector 4 50x30@1 70x70@0 30x70@0 50x30@1
+</pre><p>then the button 2 decoration uses a 4-point pattern consisting of
+a line from (x=50,y=30) to (70,70) in the shadow color (@0), and
+then to (30,70) in the shadow color, and finally to (50,30) in the
+highlight color (@1).  Is that too confusing?  See the fvwm web
+pages for some examples with screenshots.</p><p>A more complex example of
+<span class="emphasis"><em>Vector</em></span>:</p><pre class="programlisting">
+ButtonStyle 8 Vector 10 45x65@2 45x75@3 \
+  20x75@3 20x50@3 35x50@3 35x65@1 35x25@1 \
+  75x25@1 75x65@0 35x65@0
+ButtonStyle 0 Vector 10 45x65@2 45x75@0 \
+  20x75@0 20x50@1 45x50@1 45x65@0 75x65@3 \
+  75x25@3 35x25@3 35x47@3
+</pre><p>The
+<a name="ButtonStyle_?Gradient"></a><font class="fvwmopt">?Gradient</font>
+styles denote color gradients.  Fill in the question mark with any
+one of the defined gradient types.  Please refer to the
+<a href="#color_gradients">Color Gradients</a>
+section for a description of the gradient syntax.  The gradient
+styles are fully destructive.</p><p>The
+<a name="ButtonStyle_Pixmap"></a><font class="fvwmopt">Pixmap</font>
+style displays a pixmap.  A pixmap should be specified as an
+argument.  For example, the following would give button number 2
+the same pixmap for all 4 states (2 active and 2 inactive), and
+button number 4 all different pixmaps.</p><pre class="programlisting">
+ButtonStyle 2 Pixmap my_pixmap.xpm
+ButtonStyle 4 \
+	ActiveUp (Pixmap activeup.xpm) \
+	ActiveDown (Pixmap activedown.xpm) \
+	Inactive (Pixmap inactiveup.xpm)
+ButtonStyle 4 \
+	InactiveDown Pixmap inactivedown.xpm
+</pre><p>The pixmap specification can be given as an absolute or relative
+pathname (see
+<a href="#ImagePath">ImagePath</a>).
+If the pixmap cannot be found, the button style reverts to
+<span class="emphasis"><em>Simple</em></span>.
+Flags specific to the
+<span class="emphasis"><em>Pixmap</em></span>
+style are
+<span class="emphasis"><em>Left</em></span>, <span class="emphasis"><em>Right</em></span>, 
+<span class="emphasis"><em>Top</em></span>, and <span class="emphasis"><em>Bottom</em></span>.
+These can be used to justify the pixmap (default is centered for
+both directions).  Pixmap transparency is used for the color
+"None."  This style is partially destructive.</p><p>The
+<a name="ButtonStyle_AdjustedPixmap"></a><font class="fvwmopt">AdjustedPixmap</font>
+style is similar to the
+<span class="emphasis"><em>Pixmap</em></span>
+style. But the image is resized to exactly fit the button.</p><p>The
+<a name="ButtonStyle_ShrunkPixmap"></a><font class="fvwmopt">ShrunkPixmap</font>
+style is similar to the
+<span class="emphasis"><em>Pixmap</em></span>
+style. But if the image is bigger than the button the image is
+resized to fit into the button.</p><p>The
+<a name="ButtonStyle_StretchedPixmap"></a><font class="fvwmopt">StretchedPixmap</font>
+style is similar to the
+<span class="emphasis"><em>Pixmap</em></span>
+style. But if the image is smaller than the button the image is
+resized to cover the button.</p><p>The
+<a name="ButtonStyle_TiledPixmap"></a><font class="fvwmopt">TiledPixmap</font>
+style accepts a pixmap to be tiled as the button background. One
+pixmap is specified as an argument.  Pixmap transparency is not
+used.  This style is fully destructive.</p><p>The
+<a name="ButtonStyle_MiniIcon"></a><font class="fvwmopt">MiniIcon</font>
+style draws the window's miniature icon in the button, which is
+specified with the
+<span class="emphasis"><em>MiniIcon</em></span>
+option of the
+<span class="emphasis"><em>Style</em></span>
+command.  This button style accepts no arguments.  Example:</p><pre class="programlisting">
+<a href="#Style">Style</a> *     MiniIcon mini-bx2.xpm
+<a href="#Style">Style</a> xterm MiniIcon mini-term.xpm
+<a href="#Style">Style</a> Emacs MiniIcon mini-doc.xpm
+
+ButtonStyle 1 MiniIcon
+</pre><div class="cmdsynopsis"><p><code class="command">ButtonStyle</code>   <em class="replaceable"><code>button</code></em>   -   [<span class="optional">!</span>]<em class="replaceable"><code>flag</code></em>... </p></div><p>Sets state-independent flags for the specified
+<em class="replaceable"><code>button</code></em>.
+State-independent flags affect button behavior.  Each
+<em class="replaceable"><code>flag</code></em>
+is separated by a space.  If a '!'
+is prefixed to the flag then the behavior is negated.  The special
+flag
+<a name="ButtonStyle_Clear"></a><font class="fvwmopt">Clear</font>
+clears any existing flags.</p><p>The following flags are usually used to tell fvwm which buttons
+should be affected by mwm function hints (see
+<a href="#Style_MwmFunctions">MwmFunctions</a>
+option of the
+<a href="#Style">Style</a>
+command.  This is not done automatically since you might have
+buttons bound to complex functions, for instance.</p><p>
+<a name="ButtonStyle_MwmDecorMenu"></a><font class="fvwmopt">MwmDecorMenu</font>
+should be assigned to title-bar buttons which display a menu.  The
+default assignment is the leftmost button.  When a window with the
+<a href="#Style_MwmFunctions">MwmFunctions</a>
+<a href="#Style">Style</a>
+option requests not to show this button, it is hidden.</p><p>
+<a name="ButtonStyle_MwmDecorMin"></a><font class="fvwmopt">MwmDecorMin</font>
+should be assigned to title-bar buttons which minimize or iconify
+the window.  The default assignment is the second button over from
+the rightmost button.  When a window with the
+<a href="#Style_MwmFunctions">MwmFunctions</a>
+<a href="#Style">Style</a>
+option requests not to show this button, it is hidden.</p><p>
+<a name="ButtonStyle_MwmDecorMax"></a><font class="fvwmopt">MwmDecorMax</font>
+should be assigned to title-bar buttons which maximize the
+window. The default assignment is the rightmost button.  When a
+window with the
+<a href="#Style_MwmFunctions">MwmFunctions</a>
+<a href="#Style">Style</a>
+option requests not to show this button, it is hidden.  When the
+window is maximized, the vector pattern on the button looks
+pressed in.</p><p>
+<a name="ButtonStyle_MwmDecorShade"></a><font class="fvwmopt">MwmDecorShade</font>
+should be assigned to title-bar buttons which shade the window
+(see
+<a href="#WindowShade">WindowShade</a>
+command).  When the window is shaded, the vector pattern on the
+button looks pressed in.</p><p>
+<a name="ButtonStyle_MwmDecorStick"></a><font class="fvwmopt">MwmDecorStick</font>
+should be assigned to title-bar buttons which make the window
+sticky. When the window is sticky, the vector pattern on the
+button looks pressed in.</p><p>The flag
+<a name="ButtonStyle_MwmDecorLayer"></a><font class="fvwmopt">MwmDecorLayer</font>
+<em class="replaceable"><code>layer</code></em>
+should be assigned to title-bar buttons which place the window in
+the layer numbered
+<em class="replaceable"><code>layer</code></em>.
+When the window is on that specific layer, the vector pattern on
+the button looks pressed in.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ChangeDecor"></a>31.8.7. ChangeDecor</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ChangeDecor</code>   <em class="replaceable"><code>decor</code></em> </p></div><p>This command is deprecated and will be removed in the future.  There
+are plans to replace it with a more flexible solution in fvwm-3.0.</p><p>Changes the decor of a window to
+<em class="replaceable"><code>decor</code></em>.
+<em class="replaceable"><code>decor</code></em>
+is "Default" or the name of a decor defined with
+<a href="#AddToDecor">AddToDecor</a>.
+If
+<em class="replaceable"><code>decor</code></em>
+is invalid, nothing occurs.  If called from somewhere in a window
+or its border, then that window is affected.  If called from the
+root window the user is allowed to select the target window.
+<span class="emphasis"><em>ChangeDecor</em></span>
+only affects attributes which can be set using the
+<a href="#AddToDecor">AddToDecor</a>
+command.</p><pre class="programlisting">
+ChangeDecor CustomDecor1
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DestroyDecor"></a>31.8.8. DestroyDecor</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DestroyDecor</code>  [recreate]  <em class="replaceable"><code>decor</code></em> </p></div><p>This command is deprecated and will be removed in the future.  There
+are plans to replace it with a more flexible solution in fvwm-3.0.</p><p>Deletes the
+<em class="replaceable"><code>decor</code></em>
+defined with
+<span class="emphasis"><em>AddToDecor</em></span>,
+so that subsequent references to it are no longer valid.  Windows
+using this
+<em class="replaceable"><code>decor</code></em>
+revert to the "Default" decor. The optional parameter
+<a name="DestroyDecor_recreate"></a><font class="fvwmopt">recreate</font>
+tells fvwm not to throw away the decor completely but to throw
+away only its contents. If the decor is created again later,
+windows do not use it before the
+<a href="#Style_UseDecor">UseDecor</a>
+style is applied again unless the decor was destroyed with the
+<span class="emphasis"><em>recreate</em></span>
+option.  The decor named "Default" cannot be destroyed.</p><pre class="programlisting">
+DestroyDecor CustomDecor1
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="TitleStyle"></a>31.8.9. TitleStyle</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">TitleStyle</code>  [<em class="replaceable"><code>justification</code></em>] [Height [<span class="optional"><em class="replaceable"><code>num</code></em></span>]] [MinHeight [<span class="optional"><em class="replaceable"><code>num</code></em></span>]]</p></div><p>Sets attributes for the title-bar.  Justifications can be
+<a name="TitleStyle_Centered"></a><font class="fvwmopt">Centered</font>,
+<a name="TitleStyle_RightJustified"></a><font class="fvwmopt">RightJustified</font> or
+<a name="TitleStyle_LeftJustified"></a><font class="fvwmopt">LeftJustified</font>.
+<a name="TitleStyle_Height"></a><font class="fvwmopt">Height</font>
+sets the title bar's height to an amount in pixels.
+<a name="TitleStyle_MinHeight"></a><font class="fvwmopt">MinHeight</font>
+sets the minimal height in pixels of the title bar.
+Defaults are
+<span class="emphasis"><em>Centered</em></span>,
+the window's font height and no minimal height.
+To reset the font height to the
+default value, omit the
+<em class="replaceable"><code>num</code></em>
+argument after the
+<span class="emphasis"><em>Height</em></span>
+keyword. The
+<span class="emphasis"><em>MinHeight</em></span>
+height is reset by
+<span class="emphasis"><em>Height</em></span>
+or if given with no argument.
+Example:</p><pre class="programlisting">
+TitleStyle LeftJustified Height 24
+</pre><div class="cmdsynopsis"><p><code class="command">TitleStyle</code>  [<em class="replaceable"><code>state</code></em>] [<em class="replaceable"><code>style</code></em>] [--  [<span class="optional">!</span>]<em class="replaceable"><code>flag</code></em>... ]</p></div><p>Sets the style for the title-bar.
+See also
+<a href="#AddTitleStyle">AddTitleStyle</a> and <a href="#ButtonStyle">ButtonStyle</a>
+<em class="replaceable"><code>state</code></em>
+can be one of "<a href="#ButtonStyle_ActiveUp">ActiveUp</a>",
+"<a href="#ButtonStyle_ActiveDown">ActiveDown</a>",
+"<a href="#ButtonStyle_InactiveUp">InactiveUp</a>",
+or "<a href="#ButtonStyle_InactiveDown">InactiveDown</a>".  Shortcuts like
+"<a href="#ButtonStyle_Active">Active</a>" and
+"<a href="#ButtonStyle_Inactive">Inactive</a>" are
+allowed.  The states with the "Toggled" prefix are allowed too,
+the title itself does not use "Toggled" states, but these states
+are used for the buttons with
+<a href="#ButtonStyle">ButtonStyle</a>
+<a href="#ButtonStyle_UseTitleStyle">UseTitleStyle</a>.
+If
+<em class="replaceable"><code>state</code></em>
+is omitted, then the
+<em class="replaceable"><code>style</code></em>
+is added to every state.  If parentheses are placed around the
+<em class="replaceable"><code>style</code></em> and <em class="replaceable"><code>flags</code></em>,
+then multiple state definitions can be given per line.
+<em class="replaceable"><code>style</code></em>
+can be omitted so that flags can be set while not destroying the
+current style.</p><p>If a
+'!'
+is prefixed to any
+<em class="replaceable"><code>flag</code></em>,
+its behavior is negated.  Valid flags for each state include
+<a href="#ButtonStyle_Raised">Raised</a>,
+<a href="#ButtonStyle_Flat">Flat</a> and 
+<a href="#ButtonStyle_Sunk">Sunk</a>
+(these are mutually exclusive).  The default is
+<a href="#ButtonStyle_Raised">Raised</a>.
+See the note in
+<a href="#ButtonStyle">ButtonStyle</a>
+regarding the "<a href="#ButtonStyle_ActiveDown">ActiveDown</a>" state.  Examples:</p><pre class="programlisting">
+TitleStyle ActiveUp HGradient 16 navy black
+TitleStyle \
+	ActiveDown (Solid red -- flat) \
+	Inactive (TiledPixmap wood.xpm)
+TitleStyle \
+	ActiveUp (-- Flat) \
+	ActiveDown (-- Raised) \
+	InactiveUp (-- Flat) \
+	InactiveDown (-- Sunk)
+</pre><p>This sets the "ActiveUp" state to a horizontal gradient, the
+"ActiveDown" state to solid red, and the "Inactive" states to a
+tiled wood pixmap. Finally, "ActiveUp" and "InactiveUp" are set
+to look flat, while "ActiveDown" set to be sunk (the
+<a href="#ButtonStyle_Raised">Raised</a>
+flag for the "ActiveDown" state causes it to appear sunk due to
+relief inversion), and "InactiveDown" is set to look raised. An
+example which sets flags for all states:</p><pre class="programlisting">
+TitleStyle -- flat
+</pre><p>For a flattened look:</p><pre class="programlisting">
+TitleStyle -- flat
+<a href="#ButtonStyle">ButtonStyle</a> <a href="#All">All</a> Active (-- flat) Inactive (-- flat)
+</pre><p><span class="emphasis"><em>TitleStyle</em></span>
+accepts all the
+<a href="#ButtonStyle">ButtonStyle</a>
+ styles and arguments:</p><p><a href="#ButtonStyle_Simple">Simple</a>,
+<a href="#ButtonStyle_Default">Default</a>,
+<a href="#ButtonStyle_Solid">Solid</a>,
+<a href="#ButtonStyle_Colorset">Colorset</a>,
+<a href="#ButtonStyle_Vector">Vector</a>,
+<a href="#ButtonStyle_?Gradient">?Gradient</a>,
+<a href="#ButtonStyle_Pixmap">Pixmap</a>,
+<a href="#ButtonStyle_AdjustedPixmap">AdjustedPixmap</a>,
+<a href="#ButtonStyle_ShrunkPixmap">ShrunkPixmap</a>,
+<a href="#ButtonStyle_StretchedPixmap">StretchedPixmap</a>,
+<a href="#ButtonStyle_TiledPixmap">TiledPixmap</a>,
+<a href="#ButtonStyle_MiniIcon">MiniIcon</a>.</p><p>See the
+<a href="#ButtonStyle">ButtonStyle</a>
+command for a description of all these styles and their arguments.</p><p>In addition to these styles
+<span class="emphasis"><em>TitleStyle</em></span>
+accepts a powerful
+<a name="TitleStyle_MultiPixmap"></a><font class="fvwmopt">MultiPixmap</font>
+option. This allows you to specify different pixmaps, colorsets or
+colors for different parts of the titlebar. Some of them are tiled or
+stretched to fit a particular space; others are discrete "transition"
+images. The definable
+<a href="#ButtonStyle_sections">sections</a>
+are:</p><div class="variablelist"><dl><dt><span class="term"><a name="TitleStyle_Main"></a><font class="fvwmopt">Main</font></span></dt><dd><p>The full titlebar</p></dd><dt><span class="term"><a name="TitleStyle_LeftMain"></a><font class="fvwmopt">LeftMain</font></span></dt><dd><p>Left of title text</p></dd><dt><span class="term"><a name="TitleStyle_RightMain"></a><font class="fvwmopt">RightMain</font></span></dt><dd><p>Right of title text</p></dd><dt><span class="term"><a name="TitleStyle_UnderText"></a><font class="fvwmopt">UnderText</font></span></dt><dd><p>Underneath title text</p></dd><dt><span class="term"><a name="TitleStyle_LeftOfText"></a><font class="fvwmopt">LeftOfText</font></span></dt><dd><p>just to the left of the title text</p></dd><dt><span class="term"><a name="TitleStyle_RightOfText"></a><font class="fvwmopt">RightOfText</font></span></dt><dd><p>just to the right of the title text</p></dd><dt><span class="term"><a name="TitleStyle_LeftEnd"></a><font class="fvwmopt">LeftEnd</font></span></dt><dd><p>at the far left end of the titlebar
+  (just after left buttons if any)</p></dd><dt><span class="term"><a name="TitleStyle_RightEnd"></a><font class="fvwmopt">RightEnd</font></span></dt><dd><p>at the far right end of the titlebar
+			(just before right buttons if any)</p></dd><dt><span class="term"><a name="TilteStyle_Buttons"></a><font class="fvwmopt">Buttons</font></span></dt><dd><p>under buttons in case of
+		    <a name="ButtonStyle_UseTitleStyle"></a><font class="fvwmopt">UseTitleStyle</font>
+		</p></dd><dt><span class="term"><a name="TitleStyle_LeftButtons"></a><font class="fvwmopt">LeftButtons</font></span></dt><dd><p>under left buttons in case of
+		    <a name="ButtonStyle_UseTitleStyle"></a><font class="fvwmopt">UseTitleStyle</font>
+		</p></dd><dt><span class="term"><a name="TitleStyle_RightButtons"></a><font class="fvwmopt">RightButtons</font></span></dt><dd><p>under right buttons in case of
+		    <a name="ButtonStyle_UseTitleStyle"></a><font class="fvwmopt">UseTitleStyle</font>
+		</p></dd></dl></div><p>None of these are mandatory except for
+<span class="emphasis"><em>Main</em></span>
+(or, if you do not define
+<span class="emphasis"><em>Main</em></span>
+you must define both
+<span class="emphasis"><em>LeftMain</em></span> and <span class="emphasis"><em>RightMain</em></span>).
+If no
+<span class="emphasis"><em>Buttons</em></span>
+pixmaps are defined and
+<a href="#ButtonStyle_UseTitleStyle">UseTitleStyle</a>
+is specified for one or more buttons,
+<span class="emphasis"><em>Main</em></span>,
+<span class="emphasis"><em>LeftMain</em></span> or <span class="emphasis"><em>RightMain</em></span>
+are used as appropriate.</p><p>The syntax for this style type is:</p><pre class="programlisting">
+MultiPixmap section style arg, ...
+</pre><p>continuing for whatever you want to define. The
+<em class="replaceable"><code>style</code></em>
+can be either
+<a href="#ButtonStyle_TiledPixmap">TiledPixmap</a>, <a href="#ButtonStyle_AdjustedPixmap">AdjustedPixmap</a>, <a href="#ButtonStyle_Colorset">Colorset</a> or <a href="#ButtonStyle_Solid">Solid</a>.
+See the
+<a href="#ButtonStyle">ButtonStyle</a>
+command for the description of these styles.
+In the case of a transition section,
+<span class="emphasis"><em>LeftEnd</em></span>, <span class="emphasis"><em>LeftOfText</em></span>,
+<span class="emphasis"><em>RightOfText</em></span> or <span class="emphasis"><em>RightEnd</em></span>,
+<a href="#ButtonStyle_AdjustedPixmap">AdjustedPixmap</a>
+only resize the pixmap in the "y" direction. For the
+<a href="#ButtonStyle_Colorset">Colorset</a> and <a href="#ButtonStyle_Solid">Solid</a>
+styles a width of the half of the title bar height is assumed
+for the transition sections.</p><p>An example:</p><pre class="programlisting">
+MultiPixmap Main AdjustedPixmap foo.xpm, \
+            UnderText TiledPixmap bar.xpm, \
+            Buttons <a href="#ButtonStyle_Colorset">Colorset</a> 2
+</pre><p>Note that the old syntax is still supported: if the style is omitted,
+<a href="#ButtonStyle_TiledPixmap">TiledPixmap</a>
+is assumed and adding "(stretched)" between the section and the
+file name implies
+<a href="#ButtonStyle_AdjustedPixmap">AdjustedPixmap</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="UpdateDecor"></a>31.8.10. UpdateDecor</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">UpdateDecor</code>  [<em class="replaceable"><code>decor</code></em>]</p></div><p>This command is deprecated and will be removed in the future.  There
+are plans to replace it with a more flexible solution in fvwm-3.0.</p><p>This command is kept mainly for backward compatibility.  Since
+all elements of a decor are updated immediately when they are
+changed, this command is mostly useless.</p><p>Updates window decorations.
+<em class="replaceable"><code>decor</code></em>
+is an optional argument which specifies the
+<em class="replaceable"><code>decor</code></em>
+to update.  If given, only windows which are assigned to that
+particular
+<em class="replaceable"><code>decor</code></em>
+are updated.  This command is useful, for instance, after a
+<a href="#ButtonStyle">ButtonStyle</a>, <a href="#TitleStyle">TitleStyle</a> or <a href="#BorderStyle">BorderStyle</a>
+(possibly used in conjunction with
+<a href="#AddToDecor">AddToDecor</a>).
+Specifying an invalid decor results in all windows being
+updated.  This command is less disturbing than
+<a href="#Recapture">Recapture</a>,
+but does not affect window style options as
+<a href="#Recapture">Recapture</a>
+does.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="virtual_desktop_commands"></a>31.9. Controlling the Virtual Desktop</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Desk"></a>31.9.1. Desk</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Desk</code>   <em class="replaceable"><code>arg1</code></em>  [<em class="replaceable"><code>arg2</code></em>] [<em class="replaceable"><code>min</code></em> <em class="replaceable"><code>max</code></em>]</p></div><p>This command has been renamed.  Please see
+<a href="#GotoDesk">GotoDesk</a>
+command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DesktopName"></a>31.9.2. DesktopName</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DesktopName</code>   <em class="replaceable"><code>desk</code></em>   <em class="replaceable"><code>name</code></em> </p></div><p>Defines the name of the desktop number
+<em class="replaceable"><code>desk</code></em>
+to
+<em class="replaceable"><code>name</code></em>.
+This name is used in the
+<a href="#WindowList">WindowList</a>
+command and in the
+<a href="../modules/FvwmPager.html">FvwmPager</a>
+where it override the
+<a href="../modules/FvwmPager.html#FvwmPager_Label">Label</a>
+configuration option. Moreover, if consecutive names starting from
+desktop 0 are defined, then these names can be used by any <acronym class="acronym">EWMH</acronym>
+compliant application (as a pager).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DesktopSize"></a>31.9.3. DesktopSize</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DesktopSize</code>   <em class="replaceable"><code>Horizontal</code></em>x<em class="replaceable"><code>Vertical</code></em> </p></div><p>Defines the virtual desktop size in units of the physical screen
+size.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="EdgeResistance"></a>31.9.4. EdgeResistance</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">EdgeResistance</code>   
+		<em class="replaceable"><code>delay</code></em>
+         <br><code class="command">EdgeResistance</code>   <em class="replaceable"><code>scrolling</code></em>   <em class="replaceable"><code>moving</code></em>  [<em class="replaceable"><code>xinerama-scrolling</code></em>]</p></div><p>Tells how hard it should be to change the desktop viewport by
+moving the mouse over the edge of the screen. The parameter tells
+how many milliseconds the pointer must spend on the screen edge
+before fvwm moves the viewport.  This is intended for people who
+use</p><pre class="programlisting">
+<a href="#EdgeScroll">EdgeScroll</a> 100 100
+</pre><p>but find themselves accidentally flipping pages when they do
+not want to.  If -1 is given as the delay, scrolling is disabled
+completely.</p><p>The second form of invocation with two or three arguments is
+obsolete and should be replaced with the following three commands
+as needed:</p><pre class="programlisting">
+<a href="#EdgeResistance">EdgeResistance</a> <em class="replaceable"><code>scrolling</code></em>
+<a href="#Style">Style</a> * EdgeMoveDelay <em class="replaceable"><code>scrolling</code></em>
+<a href="#Style">Style</a> * EdgeMoveResistance <em class="replaceable"><code>moving</code></em>
+or
+<a href="#Style">Style</a> * EdgeMoveResistance <em class="replaceable"><code>moving</code></em> <em class="replaceable"><code>xinerama-scrolling</code></em>
+</pre><p>Fvwm does this substitution automatically and prints a warning.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="EdgeScroll"></a>31.9.5. EdgeScroll</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">EdgeScroll</code>   <em class="replaceable"><code>horizontal</code></em>[<span class="optional">p</span>]   <em class="replaceable"><code>vertical</code></em>[<span class="optional">p</span>]
+	  [ wrap  |   wrapx  |   wrapy ]</p></div><p>Specifies the percentage of a page to scroll when the cursor hits
+the edge of a page.  A trailing
+'<a name="EdgeScroll_p"></a><font class="fvwmopt">p</font>'
+changes the interpretation to mean pixels.  If you do not want any
+paging or scrolling when you hit the edge of a page include</p><pre class="programlisting">
+EdgeScroll 0 0
+</pre><p>in your
+<code class="filename">config</code>
+file, or possibly better, set the
+<a href="#EdgeThickness">EdgeThickness</a>
+to zero.  See the
+<a href="#EdgeThickness">EdgeThickness</a>
+command. If you want whole pages, use</p><pre class="programlisting">
+EdgeScroll 100 100
+</pre><p>Both
+<em class="replaceable"><code>horizontal</code></em> and <em class="replaceable"><code>vertical</code></em>
+should be positive numbers.</p><p>If the
+<em class="replaceable"><code>horizontal</code></em> and <em class="replaceable"><code>vertical</code></em>
+percentages are multiplied by 1000 or one of the keywords
+<a name="EdgeScroll_wrap"></a><font class="fvwmopt">wrap</font>, <a name="EdgeScroll_wrapx"></a><font class="fvwmopt">wrapx</font>
+and <a name="EdgeScroll_wrapy"></a><font class="fvwmopt">wrapy</font>
+is given then scrolling wraps around at the edge of the desktop.
+If</p><pre class="programlisting">
+EdgeScroll 100000 100000
+</pre><p>is used fvwm scrolls by whole pages, wrapping around at the edge
+of the desktop.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="EdgeThickness"></a>31.9.6. EdgeThickness</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">EdgeThickness</code>    0  |   1  |   2  </p></div><p>This is the width or height of the invisible window that fvwm
+creates on the edges of the screen that are used for the edge
+scrolling feature.</p><p>In order to enable page scrolling via the mouse, four windows
+called the "pan frames" are placed at the very edge of the
+screen. This is how fvwm detects the mouse's presence at the
+window edge. Because of the way this works, they need to be at the
+top of the stack and eat mouse events, so if you have any kind of
+error along the lines of: "mouse clicks at the edge of the screen
+do the wrong thing" you're having trouble with the pan frames and
+(assuming you do not use the mouse to flip between pages) should
+set the EdgeThickness to 0.</p><p>A value of
+<code class="literal">0</code>
+completely disables mouse edge scrolling, even while dragging a
+window.
+<code class="literal">1</code>
+gives the smallest pan frames, which seem to work best except on
+some servers.</p><p><code class="literal">2</code>
+is the default.</p><p>Pan frames of
+<code class="literal">1</code> or <code class="literal">2</code>
+pixels can sometimes be confusing, for example, if you drag a
+window over the edge of the screen, so that it straddles a pan
+frame, clicks on the window, near the edge of the screen are
+treated as clicks on the root window.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="EwmhBaseStruts"></a>31.9.7. EwmhBaseStruts</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">EwmhBaseStruts</code>   <em class="replaceable"><code>left</code></em>   <em class="replaceable"><code>right</code></em>   <em class="replaceable"><code>top</code></em>   <em class="replaceable"><code>bottom</code></em> </p></div><p>Where left, right, top and bottom are positive or null integers
+which define bands at the edge of the screen.
+<em class="replaceable"><code>left</code></em>
+defines a band on the left of your screen of width
+<em class="replaceable"><code>left</code></em>,
+<em class="replaceable"><code>right</code></em>
+defines a band on the right of your screen of width
+<em class="replaceable"><code>right</code></em>,
+<em class="replaceable"><code>top</code></em>
+defines a band on the top of your screen of height
+<em class="replaceable"><code>top</code></em>
+and
+<em class="replaceable"><code>bottom</code></em>
+defines a band on the bottom of your screen of height
+<em class="replaceable"><code>bottom</code></em>.
+The unit is the pixel and the default is 0 0 0 0.  These areas
+define additional reserved space to the reserved space defined by
+some ewmh compliant applications. This is used to compute the
+Working Area. See the
+<a href="#extended_window_manager_hints">Extended Window Manager Hints</a>
+section for a definition of the Working Area.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="EwmhNumberOfDesktops"></a>31.9.8. EwmhNumberOfDesktops</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">EwmhNumberOfDesktops</code>   <em class="replaceable"><code>num</code></em>  [<em class="replaceable"><code>max</code></em>]</p></div><p>This command is useful only for an ewmh compliant pager or taskbar
+(as kpager or kicker taskbar) and not for fvwm modules (
+<a href="../modules/FvwmPager.html">FvwmPager</a> or <a href="../modules/FvwmIconMan.html">FvwmIconMan</a>). It causes a
+compliant application to consider at least
+<em class="replaceable"><code>num</code></em>
+desktops (desktop 0 to desktop
+<em class="replaceable"><code>num</code></em>-1).
+The optional argument
+<em class="replaceable"><code>max</code></em>
+causes a compliant application to never consider more than
+<em class="replaceable"><code>max</code></em>
+desktops. If
+<em class="replaceable"><code>max</code></em>
+is 0 (the default) there is no limitation.  The actual number of
+desktops is determined dynamically.  It is at least
+<em class="replaceable"><code>num</code></em>,
+but it can be d if there is a window on desktop d-1 (or if the
+current desktop is desktop d-1) and d is less or equal to
+<em class="replaceable"><code>max</code></em>
+or
+<em class="replaceable"><code>max</code></em>
+is null.
+Moreover, a compliant pager can ask to change
+<em class="replaceable"><code>num</code></em>
+itself.
+This is accepted by fvwm only if this number is
+less than or equal to
+<em class="replaceable"><code>max</code></em>
+or if
+<em class="replaceable"><code>max</code></em>
+is null.  Note that negative desktops are not supported by the
+ewmh specification.  The default is 4 0.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="GotoDesk"></a>31.9.9. GotoDesk</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">GotoDesk</code>  [ prev  |    <em class="replaceable"><code>arg1</code></em>  [<em class="replaceable"><code>arg2</code></em>] [<em class="replaceable"><code>min</code></em> <em class="replaceable"><code>max</code></em>] ]</p></div><p>
+Switches the current viewport to another desktop (workspace, room).
+</p><p>The command takes 1, 2, 3, or 4 arguments.  A single argument is
+interpreted as a relative desk number.  Two arguments are
+understood as a relative and an absolute desk number.  Three
+arguments specify a relative desk and the minimum and maximum of
+the allowable range. Four arguments specify the relative,
+absolute, minimum and maximum values.  (Desktop numbers can be
+negative).  If a literal
+<a name="GotoDesk_prev"></a><font class="fvwmopt">prev</font>
+is given as the single argument, the last visited desk number is
+used.</p><p>If
+<em class="replaceable"><code>arg1</code></em>
+is non zero then the next desktop number is the current desktop
+number plus
+<em class="replaceable"><code>arg1</code></em>.</p><p>If
+<em class="replaceable"><code>arg1</code></em>
+is zero then the new desktop number is
+<em class="replaceable"><code>arg2</code></em>.
+(If
+<em class="replaceable"><code>arg2</code></em>
+is not present, then the command has no effect.)</p><p>If
+<em class="replaceable"><code>min</code></em> and <em class="replaceable"><code>max</code></em>
+are given, the new desktop number is no smaller than
+<em class="replaceable"><code>min</code></em>
+and no bigger than
+<em class="replaceable"><code>max</code></em>.
+Values out of this range are truncated (if you gave an absolute
+desk number) or wrapped around (if you gave a relative desk
+number).</p><p>The syntax is the same as for
+<a href="#MoveToDesk">MoveToDesk</a>,
+which moves a window to a different desktop.</p><p>The number of active desktops is determined dynamically.  Only
+desktops which contain windows or are currently being displayed
+are active.  Desktop numbers must be between 2147483647 and
+-2147483648 (is that enough?).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="GotoDeskAndPage"></a>31.9.10. GotoDeskAndPage</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">GotoDeskAndPage</code>    prev  |    <em class="replaceable"><code>desk</code></em>   <em class="replaceable"><code>xpage</code></em>   <em class="replaceable"><code>ypage</code></em>   </p></div><p>Switches the current viewport to another desktop and page, similar
+to the
+<a href="#GotoDesk">GotoDesk</a> and <a href="#GotoPage">GotoPage</a>
+commands.  The new desk is
+<em class="replaceable"><code>desk</code></em>
+and the new page is
+(<em class="replaceable"><code>xpage</code></em>,<em class="replaceable"><code>ypage</code></em>).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="GotoPage"></a>31.9.11. GotoPage</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">GotoPage</code>    prev  |   [<em class="replaceable"><code>options</code></em>]  <em class="replaceable"><code>x</code></em>[<span class="optional">p</span>]   <em class="replaceable"><code>y</code></em>[<span class="optional">p</span>]   </p></div><p>
+Moves the desktop viewport to page (x,y).  The upper left page is
+(0,0), the upper right is (M,0), where M is one less than the
+current number of horizontal pages specified in the
+<a href="#DesktopSize">DesktopSize</a>
+command.  The lower left page is (0,N), and the lower right page
+is (M,N), where N is the desktop's vertical size as specified in the
+<a href="#DesktopSize">DesktopSize</a>
+command.  To switch to a page relative to the current one add a
+trailing
+'<a name="GotoPage_p"></a><font class="fvwmopt">p</font>'
+after any or both numerical arguments.</p><p>Possible
+<em class="replaceable"><code>options</code></em>
+are
+<a name="GotoPage_wrapx"></a><font class="fvwmopt">wrapx</font> and <a name="GotoPage_wrapy"></a><font class="fvwmopt">wrapy</font>
+to wrap around the x or y coordinate when the viewport is moved
+beyond the border of the desktop.</p><p>To go to the last visited page use
+<a name="GotoPage_prev"></a><font class="fvwmopt">prev</font>
+as the first argument.  The
+<span class="emphasis"><em>GotoPage</em></span>
+function should not be used in a pop-up menu.</p><p>Examples:</p><pre class="programlisting">
+# Go to page (2,3)
+GotoPage 2 3
+
+# Go to lowest and rightmost page
+GotoPage -1 -1
+
+# Go to last page visited
+GotoPage prev
+
+# Go two pages to the right and one page up
+GotoPage +2p -1p
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Scroll"></a>31.9.12. Scroll</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Scroll</code>  [ <em class="replaceable"><code>horizonal</code></em>[<span class="optional">p</span>] <em class="replaceable"><code>vertical</code></em>[<span class="optional">p</span>]  |   reverse ]</p></div><p>
+Scrolls the virtual desktop's viewport by
+<a name="MenuStyle_horizontal"></a><font class="fvwmopt">horizontal</font>
+pages in the x-direction and
+<a name="MenuStyle_vertical"></a><font class="fvwmopt">vertical</font>
+pages in the y-direction or starts interactive scrolling of the viewport.  Either or both entries may be negative.
+Both
+<em class="replaceable"><code>horizontal</code></em> and <em class="replaceable"><code>vertical</code></em>
+values are expressed in percent of pages, so</p><pre class="programlisting">
+Scroll 100 100
+</pre><p>means to scroll down and right by one full page.</p><pre class="programlisting">
+Scroll 50 25
+</pre><p>means to scroll right half a page and down a quarter of a page.
+The
+<span class="emphasis"><em>Scroll</em></span>
+function should not be called from pop-up menus.  Normally,
+scrolling stops at the edge of the desktop.</p><p>If the
+<em class="replaceable"><code>horizontal</code></em> and <em class="replaceable"><code>vertical</code></em>
+percentages are 100 or more and are multiplied by 1000 then
+scrolling wraps around at the edge of the desktop.  If</p><pre class="programlisting">
+Scroll 100000 0
+</pre><p>is executed over and over fvwm moves to the next desktop page on
+each execution and wraps around at the edge of the desktop, so
+that every page is hit in turn.</p><p>If the letter
+'<a name="Scroll_p"></a><font class="fvwmopt">p</font>'
+is appended to each coordinate
+(<em class="replaceable"><code>horizontal</code></em> and/or <em class="replaceable"><code>vertical</code></em>),
+then the scroll amount is measured in pixels.</p><p>Without arguments or if the option
+<span class="emphasis"><em>reverse</em></span>
+is given interactive scrolling takes place.  The viewport
+scrolls as the mouse is moved. With the
+<a name="Scroll_reverse"></a><font class="fvwmopt">reverse</font>
+option scrolling is done in opposite direction of the mouse
+movement, and without it scrolling in the same direction as the
+mouse.</p><p>The binding</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 1 A CM Scroll reverse
+</pre><p>gives an effect of grabbing and dragging the viewport with button 1
+if
+<span class="keysym">Control</span>
+and
+<span class="keysym">Meta</span>
+is pressed.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Xinerama"></a>31.9.13. Xinerama</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Xinerama</code>  [bool]</p></div><p>Enables Xinerama support if the boolean argument is true and
+disables it if the argument is false.  Calling this command
+without arguments turns on Xinerama support if it was disabled before
+and turns it off if it was enabled.  For example:</p><pre class="programlisting">
+# Turn Xinerama support on, use primary screen 2
+<a href="#XineramaPrimaryScreen">XineramaPrimaryScreen</a> 2
+Xinerama on
+# Turn it off again
+Xinerama off
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="XineramaPrimaryScreen"></a>31.9.14. XineramaPrimaryScreen</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">XineramaPrimaryScreen</code>  [primary-screen]</p></div><p>Takes an integer number or 'g' or 'c' as its argument.  A number
+is taken as the number of the Xinerama screen that is to be used
+as the primary screen.  The primary screen can be used as the
+preferred screen to place windows with</p><pre class="programlisting">
+XineramaPrimaryScreen &lt;screen number&gt;
+<a href="#Style">Style</a> * StartsOnScreen p
+</pre><p>The primary screen is used in some of the modules and for the
+default icon box too.  Any number that is zero or more is taken as
+the primary screen's number.  Instead, the letter 'c' indicates to
+use the current screen (containing the pointer) whenever the
+primary screen is used.  This may be very confusing under some
+circumstances.  With 'g', the global screen is used as the primary
+screen, effectively disabling the primary screen.  Calling this
+function with any other argument (including none) resets the
+primary screen to 0.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="XineramaSls"></a>31.9.15. XineramaSls</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">XineramaSls</code>  [bool]</p></div><p>For multi-screen implementations other than Xinerama, such as
+Single Logical Screen, it is possible to simulate a Xinerama
+configuration if the total screen seen by fvwm is made up of
+equal sized monitors in a rectangular grid.  The
+<span class="emphasis"><em>XineramaSls</em></span>
+command turns SLS support on or off or toggles it to the opposite
+state, depending on if the boolean argument is "True", "False" or
+"toggle".  If no argument is given, this is treated like "toggle".
+The default layout uses one by one screens.  To configure the
+layout, use the
+<a href="#XineramaSlsSize">XineramaSlsSize</a> or <a href="#XineramaSlsScreens">XineramaSlsScreens</a>
+command.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="XineramaSlsSize"></a>31.9.16. XineramaSlsSize</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">XineramaSlsSize</code>   <em class="replaceable"><code>Horizontal</code></em> x  <em class="replaceable"><code>Vertical</code></em> </p></div><p>This command configures the layout of the Single Logical screen
+feature.  It takes two arguments,
+<em class="replaceable"><code>Horizontal</code></em> and <em class="replaceable"><code>Vertical</code></em>
+which must be an integer value dividing evenly into the total
+desktop width, and height.  For an example with two
+monitors side by side which appear as one screen through the
+X-Server with the right screen as the primary screen, use:</p><pre class="programlisting">
+XineramaSlsSize 2x1
+<a href="#XineramaSls">XineramaSls</a> On
+<a href="#XineramaPrimaryScreen">XineramaPrimaryScreen</a> 1
+<a href="#Xinerama">Xinerama</a> On
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="XineramaSlsScreens"></a>31.9.17. XineramaSlsScreens</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">XineramaSlsScreens</code>   number-of-screens  [<em class="replaceable"><code>screen-spec</code></em>...]</p></div><p>This command configures the layout of the Single Logical screen
+feature.  Its first argument is the number of screens to use.  It
+must be followed by exactly this number of
+<em class="replaceable"><code>screen-spec</code></em>
+arguments.  Each of these can be written either in standard X
+geometry format: "&lt;width&gt;x&lt;height&gt;+&lt;x&gt;+&lt;y&gt;" or as a space separated
+list of numbers: "x y width height". Both ways of describing
+screens can be mixed in a single command.  All four numbers must
+be supplied.  The
+<em class="replaceable"><code>x</code></em> and <em class="replaceable"><code>y</code></em>
+values specify the origin of the screen in relation to the global
+screen's origin while
+<em class="replaceable"><code>width</code></em> and <em class="replaceable"><code>height</code></em>
+specify the size of the screen in pixels.  No checks are done if
+the geometries make sense, so it is possible to define overlapping
+screens (with random results) or screens that are not visible at
+all.</p><pre class="programlisting">
+XineramaSlsScreens 3 \
+  512x768+0+0 512x300+512+0 512 300 512 468
+<a href="#XineramaSls">XineramaSls</a> On
+<a href="#XineramaPrimaryScreen">XineramaPrimaryScreen</a> 1
+<a href="#Xinerama">Xinerama</a> On
+</pre></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="user_functions_and_shell_commands"></a>31.10. User Functions and Shell Commands</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="AddToFunc"></a>31.10.1. AddToFunc</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">AddToFunc</code>  [<em class="replaceable"><code>name</code></em> [  I  |   J  |   M  |   C  |   H  |   D    <em class="replaceable"><code>action</code></em> ]]</p></div><p>Begins or adds to a function definition.  Here is an example:</p><pre class="programlisting">
+AddToFunc Move-or-Raise I <a href="#Raise">Raise</a>
+ + M <a href="#Move">Move</a>
+ + D <a href="#Lower">Lower</a>
+</pre><p>The function name is "Move-or-Raise", and it could be invoked from a
+menu or a mouse binding or key binding:</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 1 TS A Move-or-Raise
+</pre><p>The
+<em class="replaceable"><code>name</code></em>
+must not contain embedded whitespace.  No guarantees are made
+whether function names with embedded whitespace work or not.  This
+behavior may also change in the future without further notice.
+The letter before the
+<em class="replaceable"><code>action</code></em>
+tells what kind of action triggers the command which follows it.
+'<a name="AddToFunc_I"></a><font class="fvwmopt">I</font>'
+stands for "Immediate", and is executed as soon as the function is
+invoked.
+'<a name="AddToFunc_J"></a><font class="fvwmopt">J</font>'
+is similar to "Immediate" but is delayed until a button is pressed
+or released or the pointer is moved, or the function completes.  It
+is always executed before the other function actions.
+'<a name="AddToFunc_M"></a><font class="fvwmopt">M</font>'
+stands for "Motion", i.e. if the user starts moving the mouse.
+'<a name="AddToFunc_C"></a><font class="fvwmopt">C</font>'
+stands for "Click", i.e., if the user presses and releases the
+mouse button.
+'<a name="AddToFunc_H"></a><font class="fvwmopt">H</font>'
+stands for "Hold", i.e. if the user presses a mouse button and
+holds it down for more than
+<a href="#ClickTime">ClickTime</a>
+milliseconds.
+'<a name="AddToFunc_D"></a><font class="fvwmopt">D</font>'
+stands for "Double-click". The action
+'<span class="emphasis"><em>I</em></span>'
+causes an action to be performed on the button-press, if the
+function is invoked with prior knowledge of which window to act
+on.</p><p>There is a number of predefined symbols that are replaced by
+certain values if they appear on the command line.  Please refer
+to the
+<a href="#command_expansion">Command Expansion</a>
+section for details.</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3>Please read the comments on executing complex functions
+in the section
+<a href="#scripting_and_complex_functions">Scripting and Complex Functions</a>.
+</div><p>Examples:</p><p>If you call</p><pre class="programlisting">
+<a href="#Key">Key</a> F10 R A <a href="#Function">Function</a> MailFunction xmh "-font fixed"
+</pre><p>and "MailFunction" is</p><pre class="programlisting">
+AddToFunc MailFunction
+ + I <a href="#Next">Next</a> ($0) <a href="#Iconify">Iconify</a> off
+ + I <a href="#Next">Next</a> (AcceptsFocus, $0) <a href="#Focus">Focus</a>
+ + I <a href="#None">None</a> ($0) <a href="#Exec">Exec</a> exec $0 $1
+</pre><p>Then the last line of the function becomes</p><pre class="programlisting">
+ + I <a href="#None">None</a> (xmh) <a href="#Exec">Exec</a> exec xmh -font fixed
+</pre><p>The expansion is performed as the function is executed, so you can
+use the same function with all sorts of different arguments.  You
+could use</p><pre class="programlisting">
+<a href="#Key">Key</a> F11 R A <a href="#Function">Function</a> MailFunction zmail "-bg pink"
+</pre><p>in the same
+<code class="filename">config</code>,
+if you wanted.  An example of using "$[w.id]" is:</p><pre class="programlisting">
+AddToFunc PrintFunction
+ + I <a href="#Raise">Raise</a>
+ + I <a href="#Exec">Exec</a> xdpr -id $[w.id]
+</pre><p>Note that "$$" is expanded to '$'.</p><p>Another example: bind right mouse button within the window button
+number 6 (this is a minimize button for the win95 theme) to
+iconify all windows of the same resource:</p><pre class="programlisting">
+AddToFunc FuncIconifySameResource "I" <a href="#All">All</a> ($0) <a href="#Iconify">Iconify</a> on
+<a href="#Mouse">Mouse</a> 3 6 A FuncIconifySameResource $[w.resource]
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Beep"></a>31.10.2. Beep</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Beep</code> </p></div><p>As might be expected, this makes the terminal beep.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DestroyFunc"></a>31.10.3. DestroyFunc</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DestroyFunc</code>   <em class="replaceable"><code>function</code></em> </p></div><p>Deletes a function, so that subsequent references to it are no
+longer valid.  You can use this to change the contents of a
+function during a fvwm session.  The function can be rebuilt using
+<a href="#AddToFunc">AddToFunc</a>.</p><pre class="programlisting">
+DestroyFunc PrintFunction
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Echo"></a>31.10.4. Echo</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Echo</code>   <em class="replaceable"><code>string</code></em> </p></div><p>Prints a message to
+<code class="filename">stderr</code>.
+Potentially useful for debugging things in your
+<code class="filename">config</code>.</p><pre class="programlisting">
+Echo Beginning style definitions...
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="EchoFuncDefinition"></a>31.10.5. EchoFuncDefinition</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">EchoFuncDefinition</code>   <em class="replaceable"><code>function</code></em> </p></div><p>The
+<span class="emphasis"><em>EchoFuncDefinition</em></span>
+is similar to the
+<a href="#Echo">Echo</a>
+command but prints the definition for the given
+<em class="replaceable"><code>function</code></em>
+to
+<code class="filename">stderr</code>.
+It is useful to find out how fvwm handles quoting and for
+debugging functions
+.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Exec"></a>31.10.6. Exec</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Exec</code>   <em class="replaceable"><code>command</code></em> </p></div><p>Executes
+<em class="replaceable"><code>command</code></em>.
+You should not use an ampersand '&amp;' at the end of the command. You
+probably want to use an additional "exec" at the beginning of
+<em class="replaceable"><code>command</code></em>.
+Without that, the shell that fvwm invokes to run your command
+stays until the command exits.  In effect, you'll have twice as
+many processes running as you need.  Note that some shells are
+smart enough to avoid this, but it never hurts to include the
+"exec" anyway.</p><p>The following example binds function key
+<span class="keysym">F1</span>
+in the root window, with no modifiers, to the exec function. The
+program rxvt is started with an assortment of options.</p><pre class="programlisting">
+<a href="#Key">Key</a> F1 R N Exec exec rxvt -fg yellow -bg blue \
+  -e /bin/tcsh
+</pre><p>Note that this function doesn't wait for
+<em class="replaceable"><code>command</code></em>
+to complete, so things like:</p><pre class="programlisting">
+Exec "echo <a href="#AddToMenu">AddToMenu</a> ... &gt; /tmp/file"
+<a href="#Read">Read</a> /tmp/file
+</pre><p>do not work reliably
+(see the
+<a href="#PipeRead">PipeRead</a>
+command).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ExecUseShell"></a>31.10.7. ExecUseShell</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ExecUseShell</code>  [<em class="replaceable"><code>shell</code></em>]</p></div><p>Makes the
+<a href="#Exec">Exec</a>
+command use the specified shell, or the value of the
+<code class="envar">$SHELL</code>
+environment variable if no shell is specified, instead of the
+default Bourne shell
+(<code class="filename">/bin/sh</code>).</p><pre class="programlisting">
+ExecUseShell
+ExecUseShell /usr/local/bin/tcsh
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Function"></a>31.10.8. Function</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Function</code>   <em class="replaceable"><code>FunctionName</code></em> </p></div><p>Used to bind a previously defined function to a key or mouse
+button. The following example binds mouse button 1 to a function
+called "Move-or-Raise", whose definition was provided as an
+example earlier in this man page.  After performing this binding
+fvwm executes the "move-or-raise" function whenever button 1 is
+pressed in a window's title-bar.</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a> 1 T A Function Move-or-Raise
+</pre><p>The keyword
+<span class="emphasis"><em>Function</em></span>
+may be omitted if
+<em class="replaceable"><code>FunctionName</code></em>
+does not coincide with an fvwm command.</p><p>Warning:  Please read the comments on executing complex functions
+in the section <a href="#scripting_and_complex_functions">Scripting and Complex Functions</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="InfoStoreAdd"></a>31.10.9. InfoStoreAdd</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">InfoStoreAdd</code>   
+            <em class="replaceable"><code>key</code></em>
+           
+            <em class="replaceable"><code>value</code></em>
+         </p></div><p>Stores the <em class="replaceable"><code>value</code></em> at the given
+    <em class="replaceable"><code>key</code></em>.  This is useful to store generic
+    information used in the lifetime of an fvwm config file.  For example
+    storing program preferences for opening video files.
+</p><p>The purpose of this command is to store internal information to fvwm
+    which can be used bu fvwm functions, or when opening programs of a
+    certain type.  Previous to this command the only way to do this was
+    via <a href="#SetEnv">SetEnv</a> but this is discouraged because it places
+    such information in the environment, which pollutes it and makes the
+    information global to other processes started by fvwm which may then
+    modify them which might not be what's wanted.  Hence the point of
+    <a href="#InfoStoreAdd">InfoStoreAdd</a> is to still allow for such information to
+    be stored, but kept internal to fvwm.
+</p><p>In this way, one can build up as many key/value pairs as needed.
+    Recalling the value of a given key happens through fvwm's usual expansion
+    mechanism.  See the
+    <a href="#command_expansion">Command Expansion</a> section for more details.  For example:
+</p><pre class="programlisting">
+    InfoStoreAdd teddybearprog xteddy
+
+    # Echo the value of teddybearprog
+    Echo $[infostore.teddybearprog]
+</pre><p>Removing an entry from the InfoStore is done with the
+    <a href="#InfoStoreRemove">InfoStoreRemove</a> command.
+</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="InfoStoreREmove"></a>31.10.10. InfoStoreRemove</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">InfoStoreRemove</code>   
+            <em class="replaceable"><code>key</code></em>
+         </p></div><p>Removes an entry at the given
+    <em class="replaceable"><code>key</code></em> from the InfoStore.  Example:
+</p><pre class="programlisting">
+InfoStoreRemove teddybearprog
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Nop"></a>31.10.11. Nop</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Nop</code> </p></div><p>Does nothing.  This is used to insert a blank line or separator in
+a menu.  If the menu item specification is</p><pre class="programlisting">
+<a href="#AddToMenu">AddToMenu</a> MyMenu " " Nop
+</pre><p>then a blank line is inserted.  If it looks like</p><pre class="programlisting">
++ "" Nop
+</pre><p>then a separator line is inserted.  Can also be used as the
+double-click action for
+<a href="#Menu">Menu</a> or <span class="emphasis"><em>Popup</em></span>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="PipeRead"></a>31.10.12. PipeRead</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">PipeRead</code>   <em class="replaceable"><code>command</code></em>  [quiet]</p></div><p>Causes fvwm to read commands from the output of the
+<em class="replaceable"><code>command</code></em>.
+This
+<em class="replaceable"><code>command</code></em>
+is executed by
+<code class="filename">/bin/sh</code>
+as if you typed it on the command line.  If the command consists
+of more than one word it must be quoted.  Useful for building up
+dynamic menu entries based on a directories contents, for
+example. If the keyword
+<a name="PipeRead_Quiet"></a><font class="fvwmopt">Quiet</font>
+follows the command no message is produced if the
+<em class="replaceable"><code>command</code></em>
+is not found.</p><p>Example:</p><pre class="programlisting">
+<a href="#AddToMenu">AddToMenu</a> HomeDirMenu
+PipeRead 'for i in $HOME/*; \
+  do echo "+ $i <a href="#Exec">Exec</a> xterm -e vi $i"; done'
+</pre><p>Note: The
+<span class="emphasis"><em>PipeRead</em></span>
+changes the pointer to a watch cursor by default during
+execution.  However, some commands, for example xwd, need to take
+control of the pointer themselves and do not work.  To disable the
+watch cursor, use the command prior to
+<span class="emphasis"><em>PipeRead</em></span></p><pre class="programlisting">
+<a href="#BusyCursor">BusyCursor</a> <a href="#BusyCursor_Read">Read</a> off
+</pre><p>The
+<span class="emphasis"><em>PipeRead</em></span>
+command executes synchronously.  If you want to
+<a href="#Exec">Exec</a>
+something, but need the command to run synchronously,
+you might do something like:</p><pre class="programlisting">
+PipeRead 'command 1&gt;&amp;2'
+</pre><p>The redirection causes any output from the program to go to stderr
+instead of being read as a sequence of commands by fvwm.
+<span class="emphasis"><em>PipeRead</em></span>
+returns 1 if the given command could be executed or -1 if not
+(see the section
+<a href="#conditional_commands">Conditional Commands</a>
+for the meaning of return codes).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Read"></a>31.10.13. Read</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Read</code>   <em class="replaceable"><code>filename</code></em>  [quiet]</p></div><p>Causes fvwm to read commands from the file named
+<em class="replaceable"><code>filename</code></em>.
+If the keyword
+<a name="Read_Quiet"></a><font class="fvwmopt">Quiet</font>
+follows the command no message is produced if the file is not
+found.  If the file name does not begin with a slash ('/'), fvwm
+looks in the user's data directory, then the system data
+directory.  The user's data directory is by default
+<code class="filename"><code class="envar">$HOME</code>/.fvwm</code>.
+It can be overridden by exporting
+<code class="envar">FVWM_USERDIR</code>
+set to any other directory.  The
+<span class="emphasis"><em>Read</em></span>
+command returns 1 if the given file could be read or -1 if not
+(see the section
+<a href="#conditional_commands">Conditional Commands</a>
+for the meaning of return codes).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="SetEnv"></a>31.10.14. SetEnv</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">SetEnv</code>   <em class="replaceable"><code>variable</code></em>   <em class="replaceable"><code>value</code></em> </p></div><p>Set an environment variable to a new value, similar to the shell's
+export or setenv command.  The
+<em class="replaceable"><code>variable</code></em>
+and its
+<em class="replaceable"><code>value</code></em>
+are inherited by processes started directly by fvwm.  This can be
+especially useful in conjunction with the
+<a href="../modules/FvwmM4.html">FvwmM4</a>
+module.  For example:</p><pre class="programlisting">
+SetEnv height HEIGHT
+</pre><p>makes the <a href="../modules/FvwmM4.html">FvwmM4</a> set variable
+<span class="emphasis"><em>HEIGHT</em></span>
+usable by processes started by fvwm as the environment variable
+<span class="emphasis"><em>$height</em></span>.
+If
+<em class="replaceable"><code>value</code></em>
+includes whitespace, you should enclose it in quotes.  If no
+<em class="replaceable"><code>value</code></em>
+is given, the variable is deleted.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Silent"></a>31.10.15. Silent</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Silent</code>   <em class="replaceable"><code>command</code></em> </p></div><p>A number of commands require a window to operate on.  If
+no window was selected when such a function is invoked the user is
+asked to select a window.  Sometimes this behavior is unwanted,
+for example if the function was called by a module and the window
+that was selected at first does not exist anymore.  You can
+prevent this by putting
+<span class="emphasis"><em>Silent</em></span>
+in front of the fvwm
+<em class="replaceable"><code>command</code></em>.
+If a function that needs a window is called with
+<span class="emphasis"><em>Silent</em></span>
+without a window selected, it simply returns without doing
+anything. If
+<span class="emphasis"><em>Silent</em></span>
+is used on a user defined function it affects all function and sub
+function calls until the original function exits.</p><p>Another usage of
+<span class="emphasis"><em>Silent</em></span>
+is with binding commands
+<a href="#Key">Key</a>, <span class="emphasis"><em>PointerKey</em></span> and <span class="emphasis"><em>Mouse</em></span>,
+this disables error messages.</p><p><span class="emphasis"><em>Silent</em></span>
+also disables the error message for non-existent commands.  Note:
+This command is treated as a prefix to its
+<em class="replaceable"><code>command</code></em>.
+Expansion of the command line is done as if
+<span class="emphasis"><em>Silent</em></span>
+was not there.</p><p>Examples:</p><pre class="programlisting">
+Silent <a href="#Move">Move</a> 0 0
+Silent User_defined_function
+# do not complain on keyboards without "Help" key
+Silent <a href="#Key">Key</a> Help R A <a href="#Popup">Popup</a> HelpMenu
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="UnsetEnv"></a>31.10.16. UnsetEnv</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">UnsetEnv</code>  [<em class="replaceable"><code>variable</code></em>]</p></div><p>Unset an environment variable, similar to shell's export or
+unsetenv command. The
+<em class="replaceable"><code>variable</code></em>
+then is removed from the environment array inherited by processes
+started directly by fvwm.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Wait"></a>31.10.17. Wait</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Wait</code>   <em class="replaceable"><code>window</code></em> </p></div><p>This command is intended to be used in fvwm functions only.  It
+causes execution of a function to pause until a new window matching
+<em class="replaceable"><code>window</code></em>
+appears.  This can be a window's name, class, or resource string.
+It may contain the wildcards '*' and '?', which are matched in the
+usual Unix filename manner.  This is particularly useful in the
+"InitFunction" if you are trying to start windows on specific desktops:</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> InitFunction
+ + I <a href="#Exec">Exec</a> exec xterm -geometry 80x64+0+0
+ + I Wait xterm
+ + I <a href="#GotoDesk">GotoDesk</a> 0 2
+ + I <a href="#Exec">Exec</a> exec xmh -font fixed -geometry \
+       507x750+0+0
+ + I Wait xmh
+ + I <a href="#GotoDesk">GotoDesk</a> 0 0
+</pre><p>The above function starts an xterm on the current desk, waits for
+it to map itself, then switches to desk 2 and starts an xmh.
+After the xmh window appears control moves to desk 0.</p><p>Fvwm remains partially functional during a wait, but any input
+from the modules is queued up and processed only after the window
+appears or the command is aborted.  For example, windows can not
+be focused with <a href="../modules/FvwmIconMan.html">FvwmIconMan</a> or
+<a href="../modules/FvwmPager.html">FvwmPager</a> during a wait.</p><p>You can escape from a
+<span class="emphasis"><em>Wait</em></span>
+pause by pressing
+<span class="keysym">Ctrl-Alt-Escape</span>
+(where
+<span class="keysym">Alt</span>
+is the first modifier).  To redefine this key sequence see the
+<a href="#EscapeFunc">EscapeFunc</a>
+command.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="conditional_commands"></a>31.11. Conditional Commands</h3></div></div></div><p>Conditional commands are commands that are only executed if certain
+conditions are met.  Most conditional commands work on windows,
+like
+<a href="#Next">Next</a>, <a href="#ThisWindow">ThisWindow</a> or <a href="#All">All</a>.
+There is one conditional command,
+<a href="#Test">Test</a>,
+that works on global conditions unrelated to windows.  The syntax
+of the conditions is described below.  For readability, the list
+of conditions is located at the end of this section.</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="return_codes"></a>31.11.1. Return Codes</h4></div></div></div><p>All commands in this section (unless specifically stated for the
+command) also have a return code that can be 1 (if the condition
+was met) or 0 (if the condition was not met).  Some commands may
+return -1 which means that an error occurred and the return code
+is useless.  The
+<span class="emphasis"><em>Break</em></span>
+command returns -2.  Additionally, the return codes of commands
+run in a complex functions are passed to the invoking complex
+function.  The return code is used by the
+<a href="#TestRc">TestRc</a>
+command.  Please refer to the commands' description for examples.
+The return code can also be accessed through the variable
+<span class="emphasis"><em>$[cond.rc]</em></span>.
+Non conditional commands do not modify the return code of the last
+conditional command.  Important note:  return codes are only
+defined inside functions created with the
+<a href="#AddToFunc">AddToFunc</a>
+command and are not inherited by sub functions.  To run a command
+without altering the return code, the
+<a href="#KeepRc">KeepRc</a>
+command can be used.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ring_of_windows"></a>31.11.2. The Ring of Windows</h4></div></div></div><p>Fvwm stores windows in a ring internally.  Think of the focused
+window as a cursor on the current position in the ring.  The
+<a href="#Next">Next</a>
+command and many other commands search forwards through the ring
+for a matching window, and
+<a href="#Prev">Prev</a>
+searches backwards.  The windows in the ring are either ordered by
+creation time (if the
+<span class="emphasis"><em>!FPSortWindowlistByFocus</em></span>,
+<span class="emphasis"><em>NeverFocus</em></span> or <span class="emphasis"><em>MouseFocus</em></span>
+styles are used) or by the last time they had the focus.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="list_of_conditional_commands"></a>31.11.3. List of Conditional Commands</h4></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="All"></a>31.11.3.1. All</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">All</code>  [<em class="replaceable"><code>options</code></em>] [(<em class="replaceable"><code>conditions</code></em>)]  <em class="replaceable"><code>command</code></em> </p></div><p>Execute
+<em class="replaceable"><code>command</code></em>
+on all windows meeting the conditions.  It returns 1 if any window
+matches the condition and 0 otherwise. The execution starts at the top of the
+window ring and continues towards the bottom. The
+<em class="replaceable"><code>options</code></em>
+can be any combination of
+<span class="emphasis"><em>Reverse</em></span> and <span class="emphasis"><em>UseStack</em></span>.
+If the option
+<a name="All_Reverse"></a><font class="fvwmopt">Reverse</font>
+is given the execution order is reversed. The option
+<a name="All_UseStack"></a><font class="fvwmopt">UseStack</font>
+makes All use the stacking order instead of the window ring when walking
+through windows.
+See the <a href="#conditions">Conditions</a> section for a list of conditions.</p><p>This command implies the conditions
+<span class="emphasis"><em>CirculateHit</em></span>, <span class="emphasis"><em>CirculateHitIcon</em></span> and <span class="emphasis"><em>CirculateHitShaded</em></span>.
+They can be turned off by specifying
+<span class="emphasis"><em>!CirculateHit</em></span>
+etc. explicitly.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="Any"></a>31.11.3.2. Any</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">Any</code>  [(<em class="replaceable"><code>conditions</code></em>)]  <em class="replaceable"><code>command</code></em> </p></div><p>Performs
+<em class="replaceable"><code>command</code></em>
+if any window which satisfies all
+<em class="replaceable"><code>conditions</code></em>
+exists.  The command is run in the context of the root window.
+See the <a href="#conditions">Conditions</a> section for a list of conditions.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="Break"></a>31.11.3.3. Break</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">Break</code>  [<em class="replaceable"><code>levels</code></em>]</p></div><p>If the break command is used in a function, function execution is
+terminated immediately.  Further commands of the function are not
+processed.  Normally, all nested invocations of complex functions
+are left.  An optional integer number
+<em class="replaceable"><code>levels</code></em>
+may be given to break out of the given number of nested functions
+and continue execution of a higher level function.
+The
+<span class="emphasis"><em>Break</em></span>
+command always has the return code -2.  Example:</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> PickWindowRaiseAndDeiconify
++ I <a href="#Pick">Pick</a>
++ I <a href="#TestRc">TestRc</a> (Error) Break
++ I <a href="#Raise">Raise</a>
++ I <a href="#Iconify">Iconify</a> off
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="Current"></a>31.11.3.4. Current</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">Current</code>  [(<em class="replaceable"><code>conditions</code></em>)]  <em class="replaceable"><code>command</code></em> </p></div><p>Performs
+<em class="replaceable"><code>command</code></em>
+on the currently focused window if it satisfies all
+<em class="replaceable"><code>conditions</code></em>.
+See the <a href="#conditions">Conditions</a> section for a list of conditions.</p><p>This command implies the conditions
+<span class="emphasis"><em>CirculateHit</em></span>, <span class="emphasis"><em>CirculateHitIcon</em></span> and <span class="emphasis"><em>CirculateHitShaded</em></span>.
+They can be turned off by specifying
+<span class="emphasis"><em>!CirculateHit</em></span>
+etc. explicitly.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="Direction"></a>31.11.3.5. Direction</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">Direction</code>  [FromPointer]  <em class="replaceable"><code>direction</code></em>  [(<em class="replaceable"><code>conditions</code></em>)]  <em class="replaceable"><code>command</code></em> </p></div><p>Performs
+<em class="replaceable"><code>command</code></em>
+(typically
+<a href="#Focus">Focus</a>)
+on a window in the given direction which satisfies all
+<em class="replaceable"><code>conditions</code></em>.
+Normally, the center of the currently focused window or the
+context window in which the command was invoked is taken as the
+starting point.  Lacking such a window, or when the
+<a name="Direction_FromPointer"></a><font class="fvwmopt">FromPointer</font>
+option is given, the current position of the pointer is taken as
+the starting point.  The
+<em class="replaceable"><code>direction</code></em>
+may be one of "North", "Northeast", "East", "Southeast", "South",
+"Southwest", "West", "Northwest" and "Center".  Which window
+<span class="emphasis"><em>Direction</em></span>
+selects depends on angle and distance between the center points of
+the windows.  Closer windows are considered a better match than
+those farther away.  The
+<a name="Direction_Center"></a><font class="fvwmopt">Center</font>
+direction simply selects the window closest to the starting point.
+Returns -1 if an invalid direction was given.
+See the <a href="#conditions">Conditions</a> section for a list of conditions.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="KeepRc"></a>31.11.3.6. KeepRc</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">KeepRc</code>   <em class="replaceable"><code>command</code></em> </p></div><p>Runs the
+<em class="replaceable"><code>command</code></em>
+but does not alter the return code of the previous command.  Note:
+<span class="emphasis"><em>KeepRc</em></span>
+is treated as a prefix to its
+<em class="replaceable"><code>command</code></em>.
+Expansion of the command line is done as if
+<span class="emphasis"><em>KeepRc</em></span>
+was not there.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="Next"></a>31.11.3.7. Next</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">Next</code>  [(<em class="replaceable"><code>conditions</code></em>)]  <em class="replaceable"><code>command</code></em> </p></div><p>Performs
+<em class="replaceable"><code>command</code></em>
+(typically
+<a href="#Focus">Focus</a>)
+on the next window which satisfies all
+<em class="replaceable"><code>conditions</code></em>.
+If the command is running in a window context, it starts looking
+for a matching window from there.  Otherwise it starts at the
+focused window.
+See <a href="#conditions">Conditions</a> section for a list of conditions.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="None"></a>31.11.3.8. None</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">None</code>  [(<em class="replaceable"><code>conditions</code></em>)]  <em class="replaceable"><code>command</code></em> </p></div><p>Performs
+<em class="replaceable"><code>command</code></em>
+if no window which satisfies all
+<em class="replaceable"><code>conditions</code></em>
+exists.  The command is run in the context of the root window.
+Returns 1 if no window matches the conditions and 0 otherwise.
+See <a href="#conditions">Conditions</a> section for a list of conditions.</p><p>This command implies the conditions
+<span class="emphasis"><em>CirculateHit</em></span>, <span class="emphasis"><em>CirculateHitIcon</em></span> and <span class="emphasis"><em>CirculateHitShaded</em></span>.
+They can be turned off by specifying
+<span class="emphasis"><em>!CirculateHit</em></span>
+etc. explicitly.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="NoWindow"></a>31.11.3.9. NoWindow</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">NoWindow</code>   <em class="replaceable"><code>command</code></em> </p></div><p>Performs
+<em class="replaceable"><code>command</code></em>,
+but removes the window context if any.  This is not really a
+conditional command, but a prefix that may be useful in menu items
+that should operate without a window even if such menu is bound to
+window decorations.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="Pick"></a>31.11.3.10. Pick</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">Pick</code>  [(<em class="replaceable"><code>conditions</code></em>)]  <em class="replaceable"><code>command</code></em> </p></div><p><span class="emphasis"><em>Pick</em></span>
+works like
+<a href="#Function">Function</a>
+if invoked in the context of a window.  If invoked in the root
+window, it first asks the user to pick a window and then executes
+the
+<em class="replaceable"><code>command</code></em>
+in the context of that window.  This avoids annoying multiple
+selections with complex functions.  The command is executed only
+if the given
+<em class="replaceable"><code>conditions</code></em>
+are met.  Returns -1 if no window was selected.
+See <a href="#conditions">Conditions</a> section for a list of conditions.</p><p>This command implies the conditions
+<span class="emphasis"><em>CirculateHit</em></span>, <span class="emphasis"><em>CirculateHitIcon</em></span> and <span class="emphasis"><em>CirculateHitShaded</em></span>.
+They can be turned off by specifying
+<span class="emphasis"><em>!CirculateHit</em></span>
+etc. explicitly.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="PointerWindow"></a>31.11.3.11. PointerWindow</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">PointerWindow</code>  [(<em class="replaceable"><code>conditions</code></em>)]  <em class="replaceable"><code>command</code></em> </p></div><p>Performs
+<em class="replaceable"><code>command</code></em>
+if the window under the pointer satisfies all
+<em class="replaceable"><code>conditions</code></em>.
+Returns -1 if there is no window under the pointer.
+See <a href="#conditions">Conditions</a> section for a list of conditions.</p><p>This command implies the conditions
+<span class="emphasis"><em>CirculateHit</em></span>, <span class="emphasis"><em>CirculateHitIcon</em></span> and <span class="emphasis"><em>CirculateHitShaded</em></span>.
+They can be turned off by specifying
+<span class="emphasis"><em>!CirculateHit</em></span>
+etc. explicitly.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="Prev"></a>31.11.3.12. Prev</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">Prev</code>  [(<em class="replaceable"><code>conditions</code></em>)]  <em class="replaceable"><code>command</code></em> </p></div><p>Performs
+<em class="replaceable"><code>command</code></em>
+(typically
+<a href="#Focus">Focus</a>)
+on the previous window which satisfies all
+<em class="replaceable"><code>conditions</code></em>.
+If the command is running in a window context, it starts looking
+for a matching window from there.  Otherwise it starts at the
+focused window.
+See <a href="#conditions">Conditions</a> section for a list of conditions.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="ScanForWindow"></a>31.11.3.13. ScanForWindow</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">ScanForWindow</code>  [FromPointer]  <em class="replaceable"><code>dir1</code></em>   <em class="replaceable"><code>dir2</code></em>  [(<em class="replaceable"><code>conditions</code></em>)]  <em class="replaceable"><code>command</code></em> </p></div><p>Performs <em class="replaceable"><code>command</code></em>
+(typically <a href="#Focus">Focus</a>)
+on a window in the given direction which satisfies all
+<em class="replaceable"><code>conditions</code></em>.
+Normally, the center of the currently focused window or the
+context window in which the command was invoked is taken as the
+starting point.  Lacking such a window, or when the
+<a name="ScanForWindow_FromPointer"></a><font class="fvwmopt">FromPointer</font>
+option is given, the current position of the pointer is taken as
+the starting point.  The direction
+<em class="replaceable"><code>dir1</code></em>
+may be one of "North", "NorthEast", "East", "SouthEast", "South",
+"SouthWest", "West", and "NorthWest".  Which window
+<span class="emphasis"><em>ScanForWindow</em></span>
+selects depends first on the position along the primary axis given
+by
+<em class="replaceable"><code>dir1</code></em>.
+If any windows have the exact same coordinate along the primary
+axis, the secondary direction is used to order the windows.  The
+direction <em class="replaceable"><code>dir2</code></em>
+may be one of the same set of values as
+<em class="replaceable"><code>dir1</code></em>.
+If <em class="replaceable"><code>dir2</code></em>
+is not perfectly perpendicular to
+<em class="replaceable"><code>dir1</code></em>,
+ScanForWindow returns a failure.  When using ScanForWindow
+repeatedly with the same arguments, it is guaranteed that all
+windows matching the conditions will eventually be found.  If the
+focus reaches a limit along the primary axis, it will wrap around
+to the opposite side.  Returns -1 if an invalid direction was
+given.
+See <a href="#conditions">Conditions</a> section for a list of conditions.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="Test"></a>31.11.3.14. Test</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">Test</code>  [(<em class="replaceable"><code>test-conditions</code></em>)]  <em class="replaceable"><code>command</code></em> </p></div><p>Performs <em class="replaceable"><code>command</code></em> if all
+<em class="replaceable"><code>test-conditions</code></em> are satisfied.  The
+<em class="replaceable"><code>test-conditions</code></em>
+are keywords with possible arguments from the list below
+and are separated by commas or whitespace.  They include:
+<span class="emphasis"><em>Version operator x.y.z</em></span>,
+<span class="emphasis"><em>EnvIsSet varname</em></span>,
+<span class="emphasis"><em>EnvMatch varname pattern</em></span>,
+<span class="emphasis"><em>EdgeHasPointer direction</em></span>,
+<span class="emphasis"><em>EdgeIsActive direction</em></span>,
+<span class="emphasis"><em>Start</em></span>,
+<span class="emphasis"><em>Init</em></span>,
+<span class="emphasis"><em>Restart</em></span>,
+<span class="emphasis"><em>Exit</em></span>,
+<span class="emphasis"><em>Quit</em></span>,
+<span class="emphasis"><em>ToRestart</em></span>,
+<span class="emphasis"><em>True</em></span>,
+<span class="emphasis"><em>False</em></span>,
+<span class="emphasis"><em>F</em></span>,
+<span class="emphasis"><em>R</em></span>,
+<span class="emphasis"><em>W</em></span>,
+<span class="emphasis"><em>X</em></span> and
+<span class="emphasis"><em>I</em></span>.
+A test-condition prefixed with "!" is negated.</p><p>The
+<a name="Test_Version"></a><font class="fvwmopt">Version</font> <span class="emphasis"><em>operator x.y.z</em></span>
+test-condition is fulfilled if the logical condition of the expression is
+true. Valid <span class="emphasis"><em>operator</em></span> values are:
+<span class="emphasis"><em>&gt;=</em></span>,
+<span class="emphasis"><em>&gt;</em></span>,
+<span class="emphasis"><em>&lt;=</em></span>,
+<span class="emphasis"><em>&lt;</em></span>,
+<span class="emphasis"><em>==</em></span>
+and
+<span class="emphasis"><em>!=</em></span>.</p><p>Example:</p><pre class="programlisting">
+Test (Version &gt;= 2.5.11) <a href="#Echo">Echo</a> 2.5.11 or later.
+</pre><p>The
+<a name="Test_EnvIsSet"></a><font class="fvwmopt">EnvIsSet</font> <span class="emphasis"><em>varname</em></span>
+test-condition is true if the given environment variable is set.
+The
+<a name="Test_EnvMatch"></a><font class="fvwmopt">EnvMatch</font> <span class="emphasis"><em>varname pattern</em></span>
+test-condition is true if
+<span class="emphasis"><em>pattern</em></span>
+matches the given environment or infostore variable value.
+(See <a href="#InfoStoreAdd">InfoStoreAdd</a>).
+The pattern may contain special "*" and "?" chars.
+The "varname" is coded without the leading dollar sign ($).
+</p><p>The
+<a name="Test_EdgeHasPointer"></a><font class="fvwmopt">EdgeHasPointer</font>
+[<span class="optional"><em class="replaceable"><code>direction</code></em></span>]
+test-condition is true if the edge in the given direction currently
+contains the pointer.
+The
+<a name="Test_EdgeIsActive"></a><font class="fvwmopt">EdgeIsActive</font>
+[<span class="optional"><em class="replaceable"><code>direction</code></em></span>]
+test-condition is true if the edge in the given direction currently is
+active. An edge is active, and can contain a pointer if either a
+command is bound to it or edge scroll is available in that
+direction. The direction may be one of
+<span class="emphasis"><em> Any</em></span>,<span class="emphasis"><em> North</em></span>,<span class="emphasis"><em> Top</em></span>,<span class="emphasis"><em> Up</em></span>,<span class="emphasis"><em> West</em></span>,<span class="emphasis"><em> Left</em></span>,<span class="emphasis"><em> South</em></span>,<span class="emphasis"><em> Bottom</em></span>,
+<span class="emphasis"><em> Down</em></span>,<span class="emphasis"><em> Right</em></span> and <span class="emphasis"><em> East</em></span>.
+If no direction is specified <span class="emphasis"><em>Any</em></span> is assumed.</p><p>The
+<a name="Test_Start"></a><font class="fvwmopt">Start</font>
+test-condition is the same as either
+<a name="Test_Init"></a><font class="fvwmopt">Init</font> or <a name="Test_Restart"></a><font class="fvwmopt">Restart</font>.
+It is only true on startup or restart prior and during
+<span class="emphasis"><em>StartFunction</em></span>
+execution.
+The
+<a name="Test_Exit"></a><font class="fvwmopt">Exit</font>
+test-condition is the same as either
+<a name="Test_Quit"></a><font class="fvwmopt">Quit</font> or <a name="Test_ToRestart"></a><font class="fvwmopt">ToRestart</font>.
+It is only valid on shutdown during
+<span class="emphasis"><em>ExitFunction</em></span>
+function execution.</p><p>The <a name="Test_True"></a><font class="fvwmopt">True</font> and <a name="Test_False"></a><font class="fvwmopt">False</font>
+test-conditions are unconditionally true and false.</p><p>Additionally, if a test-condition name is not recognized, the Error
+return code is set and the command is not executed.</p><p>The
+<a name="Test_F"></a><font class="fvwmopt">F</font> <em class="replaceable"><code>file</code></em>,
+<a name="Test_R"></a><font class="fvwmopt">R</font> <em class="replaceable"><code>file</code></em>,
+<a name="Test_W"></a><font class="fvwmopt">W</font> <em class="replaceable"><code>file</code></em>,
+<a name="Test_X"></a><font class="fvwmopt">X</font> <em class="replaceable"><code>file</code></em> and
+<a name="Test_I"></a><font class="fvwmopt">I</font> <em class="replaceable"><code>file</code></em>
+test-conditions test for existence of the given [F]ile (possibly
+with [R]ead/[W]rite permissions), e[X]ecutable (in <code class="envar">$PATH</code>),
+or the [I]mage (in ImagePath).</p><p>Example:</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> StartFunction I Test (Init) <a href="#Exec">Exec</a> exec xterm
+
+<a href="#AddToFunc">AddToFunc</a> VerifyVersion
++ I Test (Version 2.5.*) <a href="#Echo">Echo</a> 2.5.x detected
++ I <a href="#TestRc">TestRc</a> (NoMatch) \
+	Test (!Version 2.6.*) <a href="#Echo">Echo</a> Future version
++ I <a href="#TestRc">TestRc</a> (NoMatch) \
+	<a href="#Echo">Echo</a> 2.6.x is detected
+
+Test (F $[FVWM_USERDIR]/local-config) <a href="#Read">Read</a> local-config
+Test (X xterm-utf16) <a href="#Exec">Exec</a> exec xterm-utf16
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="TestRc"></a>31.11.3.15. TestRc</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">TestRc</code>  [([<span class="optional">!</span>]<em class="replaceable"><code>returncode</code></em>)]  <em class="replaceable"><code>command</code></em> </p></div><p>Performs
+<em class="replaceable"><code>command</code></em>
+if the last conditional command returned the value
+<em class="replaceable"><code>returncode</code></em>.
+Instead of the numeric values 0 (no match), 1 (match), -1 (error),
+and -2 (break) the symbolic names "<a name="TestRc_NoMatch"></a><font class="fvwmopt">NoMatch</font>",
+"<a name="TestRc_Match"></a><font class="fvwmopt">Match</font>", "<a name="TestRc_Error"></a><font class="fvwmopt">Error</font>" and
+"<a name="TestRc_Break"></a><font class="fvwmopt">Break</font>" can be used.  If no
+<em class="replaceable"><code>returncode</code></em>
+is given, the default 0 is assumed.  If the return code is
+prefixed with '!', the command is executed if
+<em class="replaceable"><code>returncode</code></em>
+does not match the value returned by the conditional command.
+The <span class="emphasis"><em>TestRc</em></span>
+command can only be used inside functions.  If the
+<em class="replaceable"><code>command</code></em>
+is another conditional command, the previous return code is
+replaced by the new one.  Example:</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> ToggleXterm
++ I <a href="#All">All</a> (my_xtermwindow) <a href="#Close">Close</a>
++ I TestRc (NoMatch) <a href="#Exec">Exec</a> xterm -T my_xtermwindow
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="ThisWindow"></a>31.11.3.16. ThisWindow</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">ThisWindow</code>  [(<em class="replaceable"><code>conditions</code></em>)]  command </p></div><p><span class="emphasis"><em>ThisWindow</em></span>
+executes the specified
+<em class="replaceable"><code>command</code></em>
+in the context of the current operand window.  If there is no
+operand window (it is invoked in the root window), the command is
+ignored.
+<span class="emphasis"><em>ThisWindow</em></span>
+is never interactive.  The command is executed only if the given
+<em class="replaceable"><code>conditions</code></em>
+are met.  It returns -1 if used outside a window context.
+See <a href="#conditions">Conditions</a> section for a list of conditions.</p><p>This command implies the conditions
+<span class="emphasis"><em>CirculateHit</em></span>, <span class="emphasis"><em>CirculateHitIcon</em></span> and <span class="emphasis"><em>CirculateHitShaded</em></span>.
+They can be turned off by specifying "!CirculateHit"
+etc. explicitly.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="WindowId"></a>31.11.3.17. WindowId</h5></div></div></div><div class="cmdsynopsis"><p><code class="command">WindowId</code>    [<em class="replaceable"><code>id</code></em>] [(<em class="replaceable"><code>conditions</code></em>)]  |  [root [<em class="replaceable"><code>screen</code></em>]]   <em class="replaceable"><code>command</code></em> </p></div><p>The
+<span class="emphasis"><em>WindowId</em></span>
+command looks for a specific window
+<em class="replaceable"><code>id</code></em>
+and runs the specified
+<em class="replaceable"><code>command</code></em>
+on it.  The second form of syntax retrieves the window id of the
+root window of the given
+<em class="replaceable"><code>screen</code></em>.
+If no
+<em class="replaceable"><code>screen</code></em>
+is given, the current screen is assumed.  The window indicated by
+<em class="replaceable"><code>id</code></em>
+may belong to a window not managed by fvwm or even a window on a
+different screen.  Although most commands can not operate on such
+windows, there are some exceptions, for example the
+<a href="#WarpToWindow">WarpToWindow</a>
+command.
+Returns -1 if no window with the given id exists.
+See <a href="#conditions">Conditions</a> section for a list of conditions.</p><p>This command implies the conditions
+<span class="emphasis"><em>CirculateHit</em></span>, <span class="emphasis"><em>CirculateHitIcon</em></span> and <span class="emphasis"><em>CirculateHitShaded</em></span>.
+They can be turned off by specifying
+<span class="emphasis"><em>!CirculateHit</em></span>
+etc. explicitly.</p><p>Examples:</p><pre class="programlisting">
+WindowId 0x34567890 <a href="#Raise">Raise</a>
+WindowId root 1 <a href="#WarpToWindow">WarpToWindow</a> 50 50
+WindowId $0 (Silly_Popup) <a href="#Delete">Delete</a>
+</pre><p>In the past this command was mostly useful for functions used with
+the
+<a href="#WindowList">WindowList</a>
+command, or for selective processing of
+<a href="../modules/FvwmEvent.html">FvwmEvent</a>
+calls (as in the last example), but currently these handler functions
+are called within a window context, so this command is not really
+needed in these cases.  Still it may be useful if, for example, the
+window id should be stored in the environment variable for a further
+proceeding.</p><pre class="programlisting">
+<a href="#Pick">Pick</a> <a href="#SetEnv">SetEnv</a> BOOKMARKED_WINDOW $[w.id]
+WindowId $[BOOKMARKED_WINDOW] <a href="#WarpToWindow">WarpToWindow</a>
+</pre></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="conditions"></a>31.11.4. Conditions</h4></div></div></div><p>The
+<span class="emphasis"><em>conditions</em></span>
+that may be given as an argument to any conditional command are a
+list of keywords separated by commas, enclosed in
+parentheses.  Unless stated otherwise, conditional commands accept
+all the conditions listed below.  Note that earlier versions of
+fvwm required the conditions to be separated by whitespace instead
+of commas and enclosed in brackets instead of parentheses
+(this is still supported for backward compatibility).</p><p>In addition, the
+<span class="emphasis"><em>conditions</em></span>
+may include one or more window names to match to.  If more than
+one window name is given, all of them must match.  The window
+name, icon name, class, and resource are considered when
+attempting to find a match. Each name may include the wildcards
+'*' and '?', and may consist of two or more alternatives,
+separated by the character '|', which acts as an OR operator.  (If
+OR operators are used, they must not be separated by spaces from
+the names.)  Each window name can begin with '!', which prevents
+<span class="emphasis"><em>command</em></span>
+if any of the window name, icon name, class or resource match.
+However, '!' must not be applied to individual names in a group
+separated by OR operators; it may only be applied to the beginning
+of the group, and then it operates on the whole group.</p><p>Examples:</p><pre class="programlisting">
+<a href="#Next">Next</a> ("Netscape|konqueror|Mozilla*") <a href="#WarpToWindow">WarpToWindow</a> 99 90
+</pre><p>This goes to the next web browser window, no matter which of the
+three named web browsers is being used.</p><pre class="programlisting">
+<a href="#Next">Next</a> ("Mozilla*", "Bookmark*") <a href="#WarpToWindow">WarpToWindow</a> 99 90
+</pre><p>This goes to Mozilla's bookmark manager window, ignoring other
+Mozilla windows and other browsers' bookmark windows.</p><pre class="programlisting">
+<a href="#All">All</a> ("XTerm|rxvt", !console) <a href="#Iconify">Iconify</a>
+</pre><p>This iconifies all the xterm and rxvt windows on the current page,
+except that the one named "console" (with the -name option to xterm)
+is excluded.</p><pre class="programlisting">
+<a href="#Next">Next</a> (!"<a href="../modules/FvwmPager.html">FvwmPager</a>|<a href="../modules/FvwmForm.html">FvwmForm</a>*|<a href="../modules/FvwmButtons.html">FvwmButtons</a>") <a href="#Raise">Raise</a>
+<a href="#Next">Next</a> (!<a href="../modules/FvwmPager.html">FvwmPager</a>, !<a href="../modules/FvwmForm.html">FvwmForm</a>*, !<a href="../modules/FvwmButtons.html">FvwmButtons</a>) <a href="#Raise">Raise</a>
+</pre><p>These two commands are equivalent; either one raises the next window
+which is not one of the named fvwm modules.</p><p>Any condition can be negated by using a an exclamation mark ('!')
+directly in front of its name.</p><p><span class="emphasis"><em>AcceptsFocus</em></span>,
+<span class="emphasis"><em>AnyScreen</em></span>,
+<span class="emphasis"><em>CirculateHit</em></span>,
+<span class="emphasis"><em>CirculateHitIcon</em></span>,
+<span class="emphasis"><em>CirculateHitShaded</em></span>,
+<span class="emphasis"><em>Closable</em></span>,
+<span class="emphasis"><em>CurrentDesk</em></span>,
+<span class="emphasis"><em>CurrentGlobalPage</em></span>,
+<span class="emphasis"><em>CurrentGlobalPageAnyDesk</em></span>,
+<span class="emphasis"><em>CurrentPage</em></span>,
+<span class="emphasis"><em>CurrentPageAnyDesk</em></span>,
+<span class="emphasis"><em>CurrentScreen</em></span>,
+<span class="emphasis"><em>Desk</em></span>,
+<span class="emphasis"><em>FixedPosition</em></span>,
+<span class="emphasis"><em>FixedSize</em></span>,
+<span class="emphasis"><em>Focused</em></span>,
+<span class="emphasis"><em>HasHandles</em></span>,
+<span class="emphasis"><em>HasPointer</em></span>,
+<span class="emphasis"><em>Iconic</em></span>,
+<span class="emphasis"><em>Iconifiable</em></span>,
+<span class="emphasis"><em>Layer [n]</em></span>,
+<span class="emphasis"><em>Maximizable</em></span>,
+<span class="emphasis"><em>Maximized</em></span>,
+<span class="emphasis"><em>Overlapped</em></span>,
+<span class="emphasis"><em>PlacedByButton n</em></span>,
+<span class="emphasis"><em>PlacedByButton3</em></span>,
+<span class="emphasis"><em>PlacedByFvwm</em></span>,
+<span class="emphasis"><em>Raised</em></span>,
+<span class="emphasis"><em>Shaded</em></span>,
+<span class="emphasis"><em>State n</em></span>,
+<span class="emphasis"><em>Sticky</em></span>,
+<span class="emphasis"><em>StickyAcrossDesks</em></span>,
+<span class="emphasis"><em>StickyAcrossPages</em></span>,
+<span class="emphasis"><em>StickyIcon</em></span>,
+<span class="emphasis"><em>StickyAcrossDesksIcon</em></span>,
+<span class="emphasis"><em>StickyAcrossPagesIcon</em></span>,
+<span class="emphasis"><em>Transient</em></span>,
+<span class="emphasis"><em>Visible</em></span>.</p><p>The
+<span class="emphasis"><em>AcceptsFocus</em></span>
+condition excludes all windows that do not want the input focus
+(the application has set the "Input hints" for the window to
+False) and do not use the
+<span class="emphasis"><em>Lenience</em></span>
+option of the
+<span class="emphasis"><em>Style</em></span>
+command.  Also, all windows using the
+<span class="emphasis"><em>NeverFocus</em></span>
+style are ignored.
+Note:
+<span class="emphasis"><em>!Lenience</em></span>
+is equivalent to the deprecated option
+<span class="emphasis"><em>NoLenience</em></span>.</p><p>With the
+<span class="emphasis"><em>AnyScreen</em></span>
+condition used together with any of the
+<span class="emphasis"><em>Current...</em></span>
+conditions, windows that do not intersect the Xinerama screen
+containing the mouse pointer are considered for a match too.  For
+example:</p><pre class="programlisting">
+# Focus next window on current page,
+# regardless of Xinerama screen
+<a href="#Next">Next</a> (CurrentPage, AnyScreen) <a href="#Focus">Focus</a>
+</pre><p>The
+<span class="emphasis"><em>CirculateHit</em></span> and <span class="emphasis"><em>CirculateHitIcon</em></span>
+options override the
+<span class="emphasis"><em>CirculateSkip</em></span> and <span class="emphasis"><em>CirculateSkipIcon</em></span>
+<span class="emphasis"><em>Style</em></span>
+attributes for normal or iconic windows.  The
+<span class="emphasis"><em>CirculateHitShaded</em></span>
+option overrides the
+<span class="emphasis"><em>CirculateSkipShaded</em></span>
+<span class="emphasis"><em>Style.</em></span>
+All three options are turned on
+by default for the
+<a href="#Current">Current</a>
+command.  They can be turned off by specifying
+<span class="emphasis"><em>!CirculateHit</em></span>
+etc. explicitly.
+Note:  Do not confuse these conditions with the style options of
+the same name.  Specifically,</p><pre class="programlisting">
+<a href="#Style">Style</a> foo CirculateSkip
+<a href="#Next">Next</a> (foo, CirculateHit) ...
+</pre><p>is not the same as</p><pre class="programlisting">
+<a href="#Style">Style</a> foo CirculateHit ...
+<a href="#Next">Next</a> (foo)
+</pre><p>The prior selects windows with the name foo only in the Next
+command.  In the second example, these windows are always matched
+in all conditional commands.</p><p>The
+<span class="emphasis"><em>Closable</em></span>
+condition matches only windows that are allowed to be closed.</p><p>The
+<span class="emphasis"><em>CurrentDesk</em></span>
+condition matches only windows that are on the current desk.</p><p>The
+<span class="emphasis"><em>CurrentGlobalPage</em></span>
+condition matches only windows that are on the current page of the
+current desk, regardless of whether Xinerama support is enabled or
+not.  This condition implicitly activates the
+<span class="emphasis"><em>CurrentDesk</em></span>
+condition.</p><p>The
+<span class="emphasis"><em>CurrentGlobalPageAnyDesk</em></span>
+condition matches only windows that are on the current page of any
+desk, regardless of whether Xinerama support is enabled or not.</p><p>The
+<span class="emphasis"><em>CurrentPage</em></span>
+condition matches only windows that are on the current page of the
+current desk.  If Xinerama support is enabled, it only matches
+windows that are at least partially on the Xinerama screen
+containing the mouse pointer.  This condition implicitly
+activates the
+<span class="emphasis"><em>CurrentDesk</em></span>
+condition.</p><p>The
+<span class="emphasis"><em>CurrentPageAnyDesk</em></span> and <span class="emphasis"><em>CurrentScreen</em></span>
+conditions matches only windows that are on the current page of any
+desk.  If Xinerama support is enabled, they only match windows
+that are at least partially on the Xinerama screen containing the
+mouse pointer.</p><p>The
+<span class="emphasis"><em>Screen [n]</em></span>
+condition matches only windows which are on the specified Xinerama screen.</p><p>The
+<span class="emphasis"><em>Desk [n]</em></span>
+condition matches only windows which are on the specified desk.</p><p>The
+<span class="emphasis"><em>FixedPosition</em></span>
+condition excludes all windows that do not have a fixed position,
+either set through WM hints or the
+<span class="emphasis"><em>Style</em></span>
+option
+<span class="emphasis"><em>FixedPosition</em></span>.
+Example:</p><pre class="programlisting">
+<a href="#DestroyFunc">DestroyFunc</a> ToggleFixedGeometry
+<a href="#AddToFunc">AddToFunc</a>   ToggleFixedGeometry
++ I <a href="#Pick">Pick</a> (FixedPosition) \
+	<a href="#WindowStyle">WindowStyle</a> VariablePosition, VariableSize
++ I <a href="#TestRc">TestRc</a> (NoMatch) <a href="#WindowStyle">WindowStyle</a> FixedPosition, FixedSize
+</pre><p>The
+<span class="emphasis"><em>FixedSize</em></span>
+condition excludes all windows that do not have a fixed size,
+either set through WM hints or the
+<span class="emphasis"><em>Style</em></span>
+option
+<span class="emphasis"><em>FixedSize</em></span>.</p><p>The
+<span class="emphasis"><em>Focused</em></span>
+matches on the window that currently has the keyboard focus.
+This is not useful for the
+<span class="emphasis"><em>Current</em></span>
+command but can be used with the other conditional commands.</p><p>The
+<span class="emphasis"><em>HasHandles</em></span>
+condition excludes all windows that do not have resize handles.</p><p>The
+<span class="emphasis"><em>HasPointer</em></span>
+condition excludes all windows that do not contain the pointer.</p><p>The
+<span class="emphasis"><em>Iconic</em></span>
+condition matches only iconic windows.</p><p>The
+<span class="emphasis"><em>Iconifiable</em></span>
+condition matches only windows that are allowed to be iconified.</p><p>The
+<span class="emphasis"><em>Layer [n]</em></span>
+condition matches only windows on the specified layer.  The
+optional argument of the
+<span class="emphasis"><em>Layer</em></span>
+condition defaults to the layer of the focused window.  The
+negation
+<span class="emphasis"><em>!Layer</em></span>
+switches off the
+<span class="emphasis"><em>Layer</em></span>
+condition.</p><p>The
+<span class="emphasis"><em>Maximizable</em></span>
+condition matches only windows that are allowed to be maximized.</p><p>The
+<span class="emphasis"><em>Maximized</em></span>
+condition matches only maximized windows.</p><p>The
+<span class="emphasis"><em>Overlapped</em></span>
+condition matches only windows that are overlapped by other windows
+on the same layer (or unmanaged windows if the option
+<span class="emphasis"><em>RaiseOverUnmanaged</em></span>
+of the
+<a href="#BugOpts">BugOpts</a>
+command is used).  Note that this condition can be slow if you
+have many windows or if RaiseOverUnmanaged is used and the
+connection to the X server is slow.</p><p>The
+<span class="emphasis"><em>PlacedByButton n</em></span>
+condition is fulfilled if the last interactive motion of the
+window (with the
+<a href="#Move">Move</a>
+command or as
+<span class="emphasis"><em>ManualPlacement</em></span>)
+was ended by pressing mouse button
+<span class="emphasis"><em>n</em></span>.
+Example:</p><pre class="programlisting">
+<a href="#Mouse">Mouse</a>   1 T     A       <a href="#Function">Function</a> MoveWindow
+
+<a href="#DestroyFunc">DestroyFunc</a> MoveWindow
+<a href="#AddToFunc">AddToFunc</a> MoveWindow
++ C <a href="#Move">Move</a>
++ C <a href="#ThisWindow">ThisWindow</a> (PlacedByButton 5) <a href="#WindowShade">WindowShade</a> off
++ C <a href="#TestRc">TestRc</a> (Match) <a href="#Maximize">Maximize</a> on 0 100
++ C <a href="#ThisWindow">ThisWindow</a> (PlacedByButton 4) <a href="#WindowShade">WindowShade</a> on
+</pre><p>The
+<span class="emphasis"><em>PlacedByButton3</em></span>
+condition has the same meaning as
+<span class="emphasis"><em>PlacedByButton</em></span>
+3. It remains only for backward compatibility.</p><p>The
+<span class="emphasis"><em>PlacedByFvwm</em></span>
+condition excludes all windows that have been placed manually or
+by using the user or program position hint.</p><p>The
+<span class="emphasis"><em>Raised</em></span>
+conditions matches only windows that are fully visible on the
+current viewport and not overlapped by any other window.</p><p>The
+<span class="emphasis"><em>Shaded</em></span>
+conditions matches only shaded windows (see
+<a href="#WindowShade">WindowShade</a>
+command).</p><p>The
+<span class="emphasis"><em>State n</em></span> or <span class="emphasis"><em>!State n</em></span>
+conditions match only windows with the specified integer state set
+(or unset).  See the
+<a href="#State">State</a>
+command for details.  The argument may range from 0 to 31.</p><p>The
+<span class="emphasis"><em>Sticky</em></span>, <span class="emphasis"><em>StickyAcrossDesks</em></span> and <span class="emphasis"><em>StickyAcrossPages</em></span>
+match only windows that are currently sticky, sticky across all
+desks or sticky across all pages.  Please refer to the
+<a href="#Style">Style</a>
+options with the same name and the commands
+<a href="#Stick">Stick</a>, <a href="#StickAcrossDesks">StickAcrossDesks</a> and <a href="#StickAcrossPages">StickAcrossPages</a>
+for details.</p><p>The
+<span class="emphasis"><em>StickyIcon</em></span>, <span class="emphasis"><em>StickyAcrossDesksIcon</em></span> and <span class="emphasis"><em>StickyAcrossPagesIcon</em></span>
+match only windows that become sticky, sticky across all desks or sticky
+across all pages when they are in iconified state.</p><p>The
+<span class="emphasis"><em>Transient</em></span>
+condition matches only windows that have the "transient"
+property set by the application.  This it usually the case for
+application popup menus and dialogs.  The
+<a href="../modules/FvwmIdent.html">FvwmIdent</a>
+module can be used to find out whether a specific window is
+transient.</p><p>The
+<span class="emphasis"><em>Visible</em></span>
+condition matches only windows that are at least partially
+visible on the current viewport and not completely overlapped by
+other windows.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="module_commands"></a>31.12. Module Commands</h3></div></div></div><p>Fvwm maintains a database of module configuration lines in a form</p><pre class="programlisting">
+<span class="emphasis"><em>*</em></span><span class="emphasis"><em>&lt;ModuleName&gt;</em></span><span class="emphasis"><em>: </em></span><span class="emphasis"><em>&lt;Config-Resource&gt;</em></span>
+</pre><p>where
+<span class="emphasis"><em>&lt;ModuleName&gt;</em></span>
+is either a real module name or an alias.</p><p>This database is initially filled from config file (or from
+output of
+<code class="option">-cmd</code>
+config command), and can be later modified either by user (via
+<a href="../modules/FvwmCommand.html">FvwmCommand</a>)
+or by modules.</p><p>When modules are run, they read appropriate portion of database.
+(The concept of this database is similar to one used in X resource
+database).</p><p>Commands for manipulating module configuration database are
+described below.</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Asterisk"></a>31.12.1. Asterisk</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">*</code>   <em class="replaceable"><code>module_config_line</code></em> </p></div><p>Defines a module configuration.
+<em class="replaceable"><code>module_config_line</code></em>
+consists of a module name (or a module alias) and a module
+resource line. The new syntax allows a delimiter, a colon and
+optional spaces, between the module name and the rest of the line,
+this is recommended to avoid conflicts.</p><pre class="programlisting">
+*FvwmPager: WindowBorderWidth 1
+*FvwmButtons-TopRight: Geometry 100x100-0+0
+*FvwmButtons-Bottom: Geometry +0-0
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="DestroyModuleConfig"></a>31.12.2. DestroyModuleConfig</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">DestroyModuleConfig</code>   <em class="replaceable"><code>module_config</code></em> </p></div><p>Deletes module configuration entries, so that new configuration
+lines may be entered instead.  This also sometimes the only way to
+turn back some module settings, previously defined.  This changes
+the way a module runs during a fvwm session without restarting.
+Wildcards can be used for portions of the name as well.</p><p>The new non-conflicting syntax allows a delimiter, a colon and
+optional spaces between the module name and the rest of the line.
+In this case a module name (or alias) can't have wildcards.</p><pre class="programlisting">
+DestroyModuleConfig FvwmButtons*
+DestroyModuleConfig FvwmForm: Fore
+DestroyModuleConfig FvwmIconMan: Tips*
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="KillModule"></a>31.12.3. KillModule</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">KillModule</code>   <em class="replaceable"><code>modulename</code></em>  [<em class="replaceable"><code>modulealias</code></em>]</p></div><p>Causes the module which was invoked with name
+<em class="replaceable"><code>modulename</code></em>
+to be killed.  The name may include wildcards. If
+<em class="replaceable"><code>modulealias</code></em>
+is given, only modules started with the given alias are killed.</p><pre class="programlisting">
+# kill all pagers
+KillModule FvwmPager
+
+<a href="#Module">Module</a> FvwmEvent SoundEvent
+KillModule FvwmEvent SoundEvent
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Module"></a>31.12.4. Module</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Module</code>   <em class="replaceable"><code>modulename</code></em>  [<em class="replaceable"><code>moduleparams</code></em>]</p></div><p>Specifies a module with its optional parameters which should be
+spawned. Currently several modules, including
+<a href="../modules/FvwmButtons.html">FvwmButtons</a>,
+<a href="../modules/FvwmEvent.html">FvwmEvent</a>,
+<a href="../modules/FvwmForm.html">FvwmForm</a>,
+<a href="../modules/FvwmPager.html">FvwmPager</a>,
+<a href="../modules/FvwmScript.html">FvwmScript</a>
+support aliases.  Aliases are useful if more than one instance of
+the module should be spawned.  Aliases may be configured
+separately using
+<span class="emphasis"><em>*</em></span>
+syntax.  To start a module
+<span class="emphasis"><em>FvwmForm</em></span>
+using an alias
+<span class="emphasis"><em>MyForm</em></span>,
+the following syntax may be used:</p><pre class="programlisting">
+Module FvwmForm MyForm
+</pre><p>At the current time the available modules (included with fvwm) are
+<a href="../modules/FvwmAnimate.html">FvwmAnimate</a> (produces animation effects when a window is iconified or de-iconified),
+<a href="../modules/FvwmAuto.html">FvwmAuto</a> (an auto raise module),
+<a href="../modules/FvwmBacker.html">FvwmBacker</a> (to change the background when you change desktops),
+<a href="../modules/FvwmBanner.html">FvwmBanner</a> (to display a spiffy XBM, XPM, PNG or SVG),
+<a href="../modules/FvwmButtons.html">FvwmButtons</a> (brings up a customizable tool bar),
+<a href="../modules/FvwmCommandS.html">FvwmCommandS</a> (a command server to use with shell's FvwmCommand client),
+<a href="../modules/FvwmConsole.html">FvwmConsole</a> (to execute fvwm commands directly),
+<a href="../modules/FvwmCpp.html">FvwmCpp</a> (to preprocess your <span class="emphasis"><em>config</em></span> with cpp),
+<a href="../modules/FvwmEvent.html">FvwmEvent</a> (trigger various actions by events),
+<a href="../modules/FvwmForm.html">FvwmForm</a> (to bring up dialogs),
+<a href="../modules/FvwmIconMan.html">FvwmIconMan</a> (a flexible icon manager),
+<a href="../modules/FvwmIdent.html">FvwmIdent</a> (to get window info),
+<a href="../modules/FvwmM4.html">FvwmM4</a> (to preprocess your <span class="emphasis"><em>config</em></span> with m4),
+<a href="../modules/FvwmPager.html">FvwmPager</a> (a mini version of the desktop),
+<a href="../modules/FvwmPerl.html">FvwmPerl</a> (a Perl manipulator and preprocessor),
+<a href="../modules/FvwmProxy.html">FvwmProxy</a> (to locate and control obscured windows by using small proxy windows),
+<a href="../modules/FvwmRearrange.html">FvwmRearrange</a> (to rearrange windows),
+<a href="../modules/FvwmScript.html">FvwmScript</a> (another powerful dialog toolkit),
+These modules have their own man
+pages.  There may be other modules out on there as well.</p><p>Modules can be short lived transient programs or, like
+<a href="../modules/FvwmButtons.html">FvwmButtons</a>
+,
+can remain for the duration of the X session.  Modules are
+terminated by the window manager prior to restarts and quits, if
+possible.  See the introductory section on modules.  The keyword
+<span class="emphasis"><em>Module</em></span>
+may be omitted if
+<em class="replaceable"><code>modulename</code></em>
+is distinct from all fvwm commands.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ModuleListenOnly"></a>31.12.5. ModuleListenOnly</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ModuleListenOnly</code>   <em class="replaceable"><code>modulename</code></em>  [<em class="replaceable"><code>moduleparams</code></em>]</p></div><p>This command works like the
+<a href="#Module">Module</a>
+command, but fvwm never sends any messages to the module. This may
+be handy to write a module as a shell script that is triggered by
+external events without the burden to answer packets sent by
+fvwm. For example, a module written as a shell script may change
+labels of the
+<a href="../modules/FvwmButtons.html">FvwmButtons</a>
+module to implement a simple clock.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ModulePath"></a>31.12.6. ModulePath</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ModulePath</code>   <em class="replaceable"><code>path</code></em> </p></div><p>Specifies a colon separated list of directories in which to search
+for modules.  To find a module, fvwm searches each directory in
+turn and uses the first file found.  Directory names on the list
+do not need trailing slashes.</p><p>The
+<span class="emphasis"><em>ModulePath</em></span>
+may contain environment variables such as
+<code class="envar">$HOME</code> (or <code class="envar">${HOME}</code>).
+Further, a '+' in the
+<em class="replaceable"><code>path</code></em>
+is expanded to the previous value of the
+<em class="replaceable"><code>path</code></em>,
+allowing easy appending or prepending to the
+<em class="replaceable"><code>path</code></em>.</p><p>For example:</p><pre class="programlisting">
+ModulePath ${HOME}/lib/fvwm/modules:+
+</pre><p>The directory containing the standard modules is available via the
+environment variable
+<code class="envar">$FVWM_MODULEDIR</code>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ModuleSynchronous"></a>31.12.7. ModuleSynchronous</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ModuleSynchronous</code>  [Expect <em class="replaceable"><code>string</code></em>] [Timeout <em class="replaceable"><code>secs</code></em>]  <em class="replaceable"><code>modulename</code></em> </p></div><p>The
+<span class="emphasis"><em>ModuleSynchronous</em></span>
+command is very similar to
+<a href="#Module">Module</a>.
+Fvwm stops processing any commands and user input until the module
+sends a string beginning with "NOP FINISHED STARTUP" back to fvwm.
+If the optional
+<a name="ModuleSynchronous_Timeout"></a><font class="fvwmopt">Timeout</font>
+is given fvwm gives up if the module sent no input back to fvwm
+for
+<em class="replaceable"><code>secs</code></em>
+seconds.  If the
+<a name="ModuleSynchronous_Expect"></a><font class="fvwmopt">Expect</font>
+option is given, fvwm waits for the given
+<em class="replaceable"><code>string</code></em>
+instead.
+<span class="emphasis"><em>ModuleSynchronous</em></span>
+should only be used during fvwm startup to enforce the order in
+which modules are started.  This command is intended for use with
+the (currently hypothetical) module that should be in place before
+other modules are started.</p><p>Warning: It is quite easy to hang fvwm with this command, even if
+a timeout is given.  Be extra careful choosing the string to wait
+for. Although all modules in the fvwm distribution send back the
+"NOP FINISHED STARTUP" string once they have properly started up,
+this may not be the case for third party modules.  Moreover, you
+can try to escape from a locked
+<span class="emphasis"><em>ModuleSynchronous</em></span>
+command by using the key sequence
+<span class="keysym">Ctrl-Alt-Escape</span>
+(see the
+<a href="#EscapeFunc">EscapeFunc</a>).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="ModuleTimeout"></a>31.12.8. ModuleTimeout</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">ModuleTimeout</code>   <em class="replaceable"><code>timeout</code></em> </p></div><p>Specifies how many seconds fvwm waits for a module to respond. If
+the module does not respond within the time limit then fvwm kills
+it.
+<em class="replaceable"><code>timeout</code></em>
+must be greater than zero, or it is reset to the default value of
+30 seconds.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="SendToModule"></a>31.12.9. SendToModule</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">SendToModule</code>   <em class="replaceable"><code>modulename</code></em>   <em class="replaceable"><code>string</code></em> </p></div><p>Sends an arbitrary string (no quotes required) to all modules,
+whose alias or name matching
+<em class="replaceable"><code>modulename</code></em>,
+which may contain wildcards.  This only makes sense if the module
+is set up to understand and deal with these strings though. Can be
+used for module to module communication, or implementation of more
+complex commands in modules.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="session_management_commands"></a>31.13. Session Management Commands</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Quit"></a>31.13.1. Quit</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Quit</code> </p></div><p>Exits fvwm, generally causing X to exit too.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="QuitScreen"></a>31.13.2. QuitScreen</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">QuitScreen</code> </p></div><p>Causes fvwm to stop managing the screen on which the command was
+issued.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Restart"></a>31.13.3. Restart</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Restart</code>  [<em class="replaceable"><code>window_manager</code></em> [<em class="replaceable"><code>params</code></em>]
+	]</p></div><p>Causes fvwm to restart itself if
+<em class="replaceable"><code>window_manager</code></em>
+is left blank, or to switch to an alternate window manager (or
+other fvwm version) if
+<em class="replaceable"><code>window_manager</code></em>
+is specified.  If the window manager is not in your default search
+path, then you should use the full path name for
+<em class="replaceable"><code>window_manager</code></em>.</p><p>This command should not have a trailing ampersand.  The command
+can have optional parameters with simple shell-like syntax.  You
+can use
+<code class="filename">~</code>
+(is expanded to the user's home directory) and environmental
+variables
+<code class="envar">$VAR</code> or <code class="envar">${VAR}</code>.
+Here are several examples:</p><pre class="programlisting">
+<a href="#Key">Key</a> F1 R N Restart
+<a href="#Key">Key</a> F1 R N Restart fvwm -s
+<a href="#Key">Key</a> F1 R N Restart ~/bin/fvwm -f $HOME/.fvwm/main
+<a href="#Key">Key</a> F1 R N Restart fvwm1 -s -f .fvwmrc
+<a href="#Key">Key</a> F1 R N Restart xterm -n '"X console"' \
+  -T \"X\ console\" -e fvwm1 -s
+</pre><p>If you need a native restart, we suggest only to use
+<span class="emphasis"><em>Restart</em></span>
+command without parameters unless there is a reason not to.  If you
+still use an old command 'Restart fvwm2' that was correct in 2.2.x,
+all current command line arguments are lost.  On a restart without
+parameters or with --pass-args, they are preserved.  Here are some
+cases when 'Restart fvwm2' or 'Restart fvwm' cause troubles:</p><pre class="programlisting">
+* running fvwm under a session manager
+* running fvwm with multi headed displays
+* having command line arguments, like
+  -f themes-rc or -cmd
+* if the first fvwm2 in the $PATH is a
+  different one
+</pre><p>This is why we are issuing a warning on an old usage. If you
+really want to restart to fvwm with no additional arguments, you
+may get rid of this warning by using "Restart fvwm -s" or
+"Restart /full/path/fvwm".</p><p>Note, currently with multi headed displays, restart of fvwms on
+different screens works independently.</p><div class="cmdsynopsis"><p><code class="command">Restart</code>   <code class="option">--pass-args</code>   <em class="replaceable"><code>window_manager</code></em> </p></div><p>The same as
+<span class="emphasis"><em>Restart</em></span>
+without parameters but the name for the current window manager is
+replaced with the specified
+<em class="replaceable"><code>window_manager</code></em>
+and original arguments are preserved.</p><p>This command is useful if you use initial arguments like</p><pre class="programlisting">
+-cmd FvwmCpp
+</pre><p>and want to switch to another fvwm version without losing the
+initial arguments.</p><div class="cmdsynopsis"><p><code class="command">Restart</code>   <code class="option">--dont-preserve-state</code>  [<em class="replaceable"><code>other-params</code></em>]</p></div><p>The same as</p><pre class="programlisting">
+<span class="emphasis"><em>Restart</em></span> [<span class="optional"><em class="replaceable"><code>other-params</code></em></span>]
+</pre><p>but it does not save any window states over the restart.</p><p>Without this option,
+<span class="emphasis"><em>Restart</em></span>
+preserves most per-window state by writing it to a file named
+<code class="filename">.fs-restart-<code class="envar">$HOSTDISPLAY</code></code>
+in the user's home directory.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="SaveSession"></a>31.13.4. SaveSession</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">SaveSession</code> </p></div><p>Causes a session manager (if any) to save the session.  This
+command does not work for xsm, it seems that xsm does not
+implement this functionality.  Use Unix signals to manage xsm
+remotely.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="SaveQuitSession"></a>31.13.5. SaveQuitSession</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">SaveQuitSession</code> </p></div><p>Causes a session manager (if any) to save and then shutdown the
+session. This command does not work for xsm, it seems that xsm
+does not implement this functionality.  Use Unix signals to manage
+xsm remotely.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="colorsets"></a>31.14. Colorsets</h3></div></div></div><p>Colorsets are a powerful method to control colors. Colorsets
+create appearance resources that are shared by fvwm and its
+modules.  When a colorset is modified all parts of fvwm react to
+that change. A colorset includes a foreground color, background
+color, shadow and highlight color (often based on the background
+color), background face (this includes images and all kinds of
+gradients).  There is a way to render background face and specify
+other color operations.</p><p>In the 2.4.x versions a special module
+<a href="../modules/FvwmTheme.html">FvwmTheme</a>
+was introduced to manage colorsets.  Starting with the 2.5.x beta
+version, the <a href="../modules/FvwmTheme.html">FvwmTheme</a> functionality was moved to the core fvwm,
+so this module became obsolete. In 2.6.7 the <a href="../modules/FvwmTheme.html">FvwmTheme</a>
+module was removed.</p><p>The old syntax:</p><pre class="programlisting">
+<a href="#DestroyModuleConfig">DestroyModuleConfig</a> <a href="../modules/FvwmTheme.html">FvwmTheme</a>: *
+*<a href="../modules/FvwmTheme.html">FvwmTheme</a>: <a href="#Colorset">Colorset</a> 0 fg black, bg rgb:b4/aa/94
+*<a href="../modules/FvwmTheme.html">FvwmTheme</a>: <a href="#Colorset">Colorset</a> 1 fg black, bg rgb:a1/b2/c8
+</pre><p>corresponds to the new syntax:</p><pre class="programlisting">
+<a href="#CleanupColorsets">CleanupColorsets</a>
+<a href="#Colorset">Colorset</a> 0 fg black, bg rgb:b4/aa/94
+<a href="#Colorset">Colorset</a> 1 fg black, bg rgb:a1/b2/c8
+</pre><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Colorset"></a>31.14.1. Colorset</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">Colorset</code>   <em class="replaceable"><code>num</code></em>  [<em class="replaceable"><code>options</code></em>]</p></div><p>Creates or modifies colorset
+<em class="replaceable"><code>num</code></em>.
+Colorsets are identified by this number. The number can start at
+zero and can be a very large number.</p><p>Warning: The highest colorset number used determines memory
+consumption. Thus, if you define 'Colorset 100000', the memory for
+100001 colorsets is used.  Keep your colorset numbers as small as
+possible.</p><p>By convention, colorsets are numbered like this:</p><pre class="programlisting">
+# 0 = Default colors
+# 1 = Inactive windows
+# 2 = Active windows
+# 3 = Inactive menu entry and menu background
+# 4 = Active menu entry
+# 5 = greyed out menu entry (only bg used)
+# 6 = module foreground and background
+# 7 = hilight colors
+</pre><p>If you need to have more colors and do not want to reinvent the
+wheel, you may use the convention used in fvwm-themes, it defines
+the meaning of the first 40 colorsets for nearly all purposes:</p><p>
+<a class="ulink" href="http://fvwm-themes.sourceforge.net/doc/colorsets" target="_top">http://fvwm-themes.sourceforge.net/doc/colorsets</a></p><p>Each colorset has four colors, an optional pixmap and an optional
+shape mask.  The four colors are used by modules as the
+foreground, background, highlight and shadow colors.  When a
+colorset is created it defaults to a foreground of black and
+background of gray.  The background and foreground are marked as
+"average" and "contrast" (see later) so that just specifying a
+pixmap or gradient gives sensible results.</p><p><em class="replaceable"><code>options</code></em>
+is a comma separated list containing some of the keywords:
+fg, Fore, Foreground,
+bg, Back, Background,
+hi, Hilite, Hilight,
+sh, Shade, Shadow,
+fgsh,
+Pixmap, TiledPixmap, AspectPixmap,
+Transparent, RootTransparent,
+Shape, TiledShape, AspectShape, NoShape,
+?Gradient,
+Tint, fgTint, bgTint,
+Alpha, fgAlpha,
+Dither, NoDither,
+IconTint,
+IconAlpha,
+Plain.</p><p>
+<a name="Colorset_fg"></a><font class="fvwmopt">fg</font>,
+<a name="Colorset_Fore"></a><font class="fvwmopt">Fore</font> and
+<a name="Colorset_Foreground"></a><font class="fvwmopt">Foreground</font>
+take a color name as an argument and set the foreground color.
+The special name
+<a name="Colorset_Contrast"></a><font class="fvwmopt">Contrast</font>
+may be used to select a color that contrasts well with the
+background color.  To reset the foreground color to the default
+value you can simply omit the color name.</p><p>
+<a name="Colorset_bg"></a><font class="fvwmopt">bg</font>,
+<a name="Colorset_Back"></a><font class="fvwmopt">Back</font> and
+<a name="Colorset_Background"></a><font class="fvwmopt">Background</font>
+take a color name as an argument and set the background color.  It
+also sets the highlight and shadow colors to values that give a 3d
+effect unless these have been explicitly set with the options
+below.  The special name
+<a name="Colorset_Average"></a><font class="fvwmopt">Average</font>
+may be used to select a color that is the average color of the
+pixmap.  If the pixmap is tinted with the
+<span class="emphasis"><em>Tint</em></span>
+option, the tint is not taken in account in the computation of the
+average color. You should use the
+<span class="emphasis"><em>bgTint</em></span>
+option to get the "real" average color.  The background color is
+reset to the default value if the color name is omitted.</p><p>
+<a name="Colorset_hi"></a><font class="fvwmopt">hi</font>,
+<a name="Colorset_Hilite"></a><font class="fvwmopt">Hilite</font> and
+<a name="Colorset_Hilight"></a><font class="fvwmopt">Hilight</font>
+take a color name as an argument and set the highlight color.  If
+the highlight color is not explicitly set, the default is to
+calculate it from the background color.  To switch back to the
+default behavior the color name can be omitted.</p><p>
+<a name="Colorset_sh"></a><font class="fvwmopt">sh</font>,
+<a name="Colorset_Shade"></a><font class="fvwmopt">Shade</font> and
+<a name="Colorset_Shadow"></a><font class="fvwmopt">Shadow</font>
+take a color name as an argument and set the shadow color.  If the
+shadow color is not explicitly set, the default is to calculate it
+from the background color.  To switch back to the default behavior
+the color name can be omitted.</p><p>
+<a name="Colorset_fgsh"></a><font class="fvwmopt">fgsh</font>
+takes a color name as an argument and sets the color used by the
+shadowing font effect. See the
+<a href="#font_shadow_effects">Font Shadow Effects</a>
+section of the fvwm man page.  By default this color is computed
+from the foreground and background colors.  To switch back to the
+default the color name can be omitted.</p><p>
+<a name="Colorset_Pixmap"></a><font class="fvwmopt">Pixmap</font>,
+<a name="Colorset_TiledPixmap"></a><font class="fvwmopt">TiledPixmap</font> and
+<a name="Colorset_AspectPixmap"></a><font class="fvwmopt">AspectPixmap</font>
+take a file name as an argument, search the
+<a href="#ImagePath">ImagePath</a>
+and use it as the background pixmap.  Any transparent parts are
+filled with the background color.  Not specifying a file name
+removes any existing image from the colorset.
+<span class="emphasis"><em>TiledPixmap</em></span>
+produces repeated copies of the image with no scaling,
+<span class="emphasis"><em>Pixmap</em></span>
+causes the image to be stretched to fit whatever object the
+colorset is applied to and
+<span class="emphasis"><em>AspectPixmap</em></span>
+stretches to fit but retains the image aspect ratio.</p><p>
+<a name="Colorset_Transparent"></a><font class="fvwmopt">Transparent</font>
+creates a transparent background pixmap.  The pixmap is used as a
+window background to achieve root transparency.  For this you
+should use the
+<a href="#Style_ParentalRelativity">ParentalRelativity</a>
+option to the
+<a href="#Style">Style</a>
+command.
+A subsequent root background change may be detected or not, this
+depends on the program used to set the background.  If you use
+<span><strong class="command">fvwm-root</strong></span>, <span><strong class="command">xsetbg</strong></span> (xli),
+<a href="../modules/FvwmBacker.html">FvwmBacker</a> with solid or colorset colors
+or a recent version of <span><strong class="command">Esetroot</strong></span> (&gt;= 9.2) a background change is
+detected. If background changes are not detected (e.g., if you use
+<span><strong class="command">xv</strong></span> or <span><strong class="command">xsetroot</strong></span>) you can force detection by using the <code class="option">-d</code> option of
+fvwm-root:</p><pre class="programlisting">
+xv -root -quit mybg.png; fvwm-root -d
+</pre><p>Due to the way X implements transparency no guarantees can be made
+that the desired effect can be achieved.  The application may even
+crash.  If you experience any problems with this option, do not
+use it.</p><p>Using outline move and resize (see the
+<a href="#OpaqueMoveSize">OpaqueMoveSize</a>
+command and the
+<a href="#Style_ResizeOpaque">ResizeOpaque</a>
+<a href="#Style">Style</a>
+option) as well as setting the
+<a href="#Style_WindowShadeShrinks">WindowShadeShrinks</a>
+style may help.  The transparency achieved with
+<span class="emphasis"><em>Transparent</em></span>
+depends on whether the colorset is applied to the foreground or
+the background of a window. In the second case the transparency is
+relative to the parent window of the window on which the colorset
+is defined.  For example:</p><pre class="programlisting">
+Colorset 12 VGradient 200 grey30 grey60
+Colorset 17 Transparent
+*<a href="../modules/FvwmIconMan.html">FvwmIconMan</a>: Colorset 12
+*<a href="../modules/FvwmIconMan.html">FvwmIconMan</a>: PlainColorset 17
+</pre><p>gives an IconMan with a vertical grey gradient background and the
+buttons use the background (by transparency). To obtain a (root)
+transparent IconMan:</p><pre class="programlisting">
+Colorset 12 Transparent
+Colorset 17 Transparent
+Colorset 18 Transparent
+Colorset 19 Transparent
+
+*<a href="../modules/FvwmIconMan.html">FvwmIconMan</a>: Colorset 12
+*<a href="../modules/FvwmIconMan.html">FvwmIconMan</a>: PlainColorset 17
+*<a href="../modules/FvwmIconMan.html">FvwmIconMan</a>: FocusColorset 18
+*<a href="../modules/FvwmIconMan.html">FvwmIconMan</a>: IconColorset  19
+</pre><p>The Colorset IconMan option defines the IconMan window background,
+but the PlainColorset and the FocusColorset are drawn on the
+foreground. So, the transparency of the IconMan buttons is
+achieved by drawing nothing.  Now if this IconMan is swallowed in
+an FvwmButtons as:</p><pre class="programlisting">
+<a href="../modules/FvwmButtons.html">FvwmButtons</a>:(Colorset 10, Swallow "FvwmIconMan" 'FvwmIconMan')
+</pre><p>then,
+<a href="../modules/FvwmIconMan.html">FvwmIconMan</a>
+becomes a child of
+<a href="../modules/FvwmButtons.html">FvwmButtons</a>
+and it is transparent relative to
+<a href="../modules/FvwmButtons.html">FvwmButtons</a>.
+So, in this case
+<a href="../modules/FvwmIconMan.html">FvwmIconMan</a>
+uses Colorset 10 as background. If you want root transparency use
+the
+<span class="emphasis"><em>RootTransparent</em></span>
+option.
+<a href="../modules/FvwmButtons.html">FvwmButtons</a>
+<a href="../modules/FvwmIconMan.html">FvwmIconMan</a>,
+and
+<a href="../modules/FvwmIdent.html">FvwmIdent</a>,
+are relatively simple. There is one main colorset option which
+defines the background of the window and the other colorsets (if
+any) are drawn on the foreground. The case of
+<a href="../modules/FvwmProxy.html">FvwmProxy</a>
+is simpler, the two colorsets refer to the window backgrounds.
+<a href="../modules/FvwmPager.html">FvwmPager</a>
+is more complicated as almost everything in the pager are windows
+with some parental relations (the mini windows are the child and
+the desktops are the parents and all this is complicated by the
+hilighted page). So, the colorsets apply to the background of
+these windows. You should experiment. For
+<a href="../modules/FvwmForm.html">FvwmForm</a> and
+<a href="../modules/FvwmScript.html">FvwmScript</a>
+the situation is similar. There is a main window (a child of the
+root window) which corresponds to the main colorset and most of
+the widgets are windows which are children of the main window.
+<span class="emphasis"><em>Tint</em></span>
+may work or not with the
+<span class="emphasis"><em>Transparent</em></span>
+option. When the colorset is drawn on the foreground
+<span class="emphasis"><em>Tint</em></span>
+should work. In some cases, tinting may be very slow. Tinting may
+work with fvwm menu (without animation). Tinting may work better
+if your X server has backing store enabled (try xdpyinfo to see if
+this the case). There is a chance that the backing store support
+of your X server does not work well with the terrible hack used to
+Tint the ParentRelative Pixmap. So, to get tinted root
+transparency it is more safe to use the
+<span class="emphasis"><em>RootTransparent</em></span>
+option.</p><p>
+<a name="Colorset_RootTransparent"></a><font class="fvwmopt">RootTransparent</font> [<span class="optional"> <span class="emphasis"><em>buffer</em></span> </span>]
+creates a root transparent background. To make this option work,
+you must use an <span><strong class="command">Esetroot</strong></span> compatible program, fvwm-root with the
+--retain-pixmap option or <a href="../modules/FvwmBacker.html">FvwmBacker</a> with the RetainPixmap option
+(and colorset or solid backgrounds).  The
+<span class="emphasis"><em>buffer</em></span>
+keyword is useful only when the
+<span class="emphasis"><em>Tint</em></span>
+option is used too. This speeds up creation of windows which use
+the colorset (useful for fvwm menus) at the cost of memory
+usage. It also speeds up opaque move and resize which can be
+unacceptably slow without
+<span class="emphasis"><em>buffer</em></span>.
+However, this option may add a lot of memory to your X server
+(depending on the size of the image used to set the
+background). In summary, using outline move and resize for modules
+which use such a colorset may be a good idea.</p><p>
+<a name="Colorset_Shape"></a><font class="fvwmopt">Shape</font>,
+<a name="Colorset_TiledShape"></a><font class="fvwmopt">TiledShape</font> and
+<a name="Colorset_AspectShape"></a><font class="fvwmopt">AspectShape</font>
+take a file name as an argument, search the
+<a href="#ImagePath">ImagePath</a>
+and use it as the shape bitmap.
+<span class="emphasis"><em>TiledShape</em></span>
+produces repeated copies of the bitmap with no scaling,
+<span class="emphasis"><em>Shape</em></span>
+causes the bitmap to be stretched to fit whatever object the
+colorset is applied to and
+<span class="emphasis"><em>AspectShape</em></span>
+stretches to fit but retains the bitmap aspect ratio.  If the file
+is a pixmap in xpm format the shape mask (all opaque pixels) of the
+pixmap is used.  For png and svg images, the shape mask is equivalent
+to all not completely transparent pixels (alpha &gt; 0).</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3>Due to the way X11 implements shapes you cannot take back
+making windows shaped. You may have to restart fvwm or the shaped
+application.</div><p>
+<span class="emphasis"><em>?Gradient ...</em></span>
+creates a pixmap and stretches it to fit the window.
+<span class="emphasis"><em>?Gradient</em></span>
+may be one of <a name="Colorset_HGradient"></a><font class="fvwmopt">HGradient</font>, <a name="Colorset_VGradient"></a><font class="fvwmopt">VGradient</font>,
+<a name="Colorset_DGradient"></a><font class="fvwmopt">DGradient</font>, <a name="Colorset_BGradient"></a><font class="fvwmopt">BGradient</font>,
+<a name="Colorset_SGradient"></a><font class="fvwmopt">SGradient</font>, <a name="Colorset_CGradient"></a><font class="fvwmopt">CGradient</font>,
+<a name="Colorset_RGradient"></a><font class="fvwmopt">RGradient</font> or <a name="Colorset_YGradient"></a><font class="fvwmopt">YGradient</font>.
+The gradient types
+are as follows:  H is horizontal; V is vertical; D is diagonal
+from top left to bottom right; B is a backwards diagonal from
+bottom left to top right; S is concentric squares; C is concentric
+circles; R is a radar like pattern and Y is a Yin Yang style (but
+without the dots).
+Please refer to the
+<a href="#color_gradients">Color Gradients</a>
+section for the syntax of gradients.</p><p>
+<a name="Colorset_Tint"></a><font class="fvwmopt">Tint</font>
+takes 2 arguments, a color and a percentage between 0 and 100. It
+causes the image defined using
+<span class="emphasis"><em>?Pixmap</em></span>
+or
+<span class="emphasis"><em>?Gradient</em></span>
+to be tinted with the specified color using the percentage. If the
+image is transparent
+<span class="emphasis"><em>Tint</em></span>
+tints only the image part. Unfortunately, a colorset background
+specified using the
+<span class="emphasis"><em>Transparent</em></span>
+option can give strange results. See the
+<span class="emphasis"><em>Transparent</em></span>
+option for details. With no arguments this option removes the
+tint.</p><p>
+<a name="Colorset_fgTint"></a><font class="fvwmopt">fgTint</font>
+takes 2 arguments, a color and a percentage between 0 and 100. It
+causes the color defined using
+<span class="emphasis"><em>fg</em></span>
+to be tinted with the specified color using the percentage. With
+no arguments this option removes the tint.</p><p>
+<a name="Colorset_bgTint"></a><font class="fvwmopt">bgTint</font>
+takes 2 arguments, a color and a percentage between 0 and 100. It
+causes the color defined using
+<span class="emphasis"><em>bg</em></span>
+to be tinted with the specified color using the percentage. If the
+<span class="emphasis"><em>sh</em></span>
+and
+<span class="emphasis"><em>hi</em></span>
+colors are not specified, they are recomputed from the tinted bg
+color. With no arguments this option removes the tint.</p><p>
+<a name="Colorset_Alpha"></a><font class="fvwmopt">Alpha</font>
+takes a percentage between 0 and 100 as an argument. It causes
+fvwm to merge the image defined using
+<span class="emphasis"><em>?Pixmap</em></span>
+or
+<span class="emphasis"><em>?Gradient</em></span>
+with the
+<span class="emphasis"><em>bg</em></span>
+color using the percentage. If the percentage is 0 the image is
+hidden and if it is 100 the image is displayed as usual (no
+merge). The default is 100 and it is restored if no argument is
+given.</p><p>
+<a name="Colorset_fgAlpha"></a><font class="fvwmopt">fgAlpha</font>
+takes a percentage between 0 and 100 as an argument. It causes
+fvwm to merge the text and the colorset background using the
+percentage. If the percentage is 0 the text is hidden and if it is
+100 the text is displayed as usual (no merge). This option has an
+effect only with fonts loaded by Xft, see the
+<a href="#font_names_and_font_loading">Font Names and Font Loading</a>
+section. The default is 100 and it is restored if no argument is
+given.</p><p>
+<a name="Colorset_Dither"></a><font class="fvwmopt">Dither</font>
+causes fvwm to dither the image defined using
+<span class="emphasis"><em>?Pixmap</em></span>
+or
+<span class="emphasis"><em>?Gradient.</em></span>
+This is useful only with displays with depth less than or equal to
+16 (i.e., on displays which can only display less than 65537
+colors at once). The dithering effect lets you simulate having
+more colors available that you actually have.
+<a name="Colorset_NoDither"></a><font class="fvwmopt">NoDither</font>
+causes fvwm to do not dither the images.
+<span class="emphasis"><em>Dither</em></span>
+is the default if the depth is less than or equal to 8 (a screen
+with 256 colors or less). In depth 15 (32768 colors) and 16 (65536
+colors), the default is
+<span class="emphasis"><em>NoDither</em></span>,
+however this effect can be useful with images which contain a lot
+of close colors. For example a fine gradient looks more
+smooth.</p><p>
+<a name="Colorset_IconTint"></a><font class="fvwmopt">IconTint</font>
+takes 2 arguments, a color and a percentage between 0 and 100. It
+causes fvwm or a module to tint the "icons" which are rendered
+into the colorset background with the specified color using a
+percentage. Here "icons" means, fvwm Icons, fvwm menu icons,
+MiniIcons which represent applications in various modules, images
+loaded by modules (e.g., images specified by the
+<a href="../modules/FvwmButtons.html#FvwmButtons_Icon">Icon</a>
+<a href="../modules/FvwmButtons.html">FvwmButtons</a>
+button option) ...etc. With no arguments this option removes the
+icon tint.</p><p>
+<a name="Colorset_IconAlpha"></a><font class="fvwmopt">IconAlpha</font>
+takes a percentage between 0 and 100 as an argument. It causes
+fvwm to merge the "icons" which are rendered into the colorset
+background using this percentage. The default is 100 and it is
+restored if no argument is given.</p><p><span class="emphasis"><em>Note</em></span>:
+It is equivalent to use "Tint a_color rate" and "Alpha a" if a =
+100 and the bg color is a_color. This equivalence does not hold
+for IconAlpha and IconTint as the background can be an image or a
+gradient (and not a uniform color background).
+However, in some cases you can achieve (almost) the same effect by
+using IconTint in the place of IconAlpha. This is preferable as,
+in general, IconAlpha generates more redrawing than IconTint.</p><p>
+<a name="Colorset_NoShape"></a><font class="fvwmopt">NoShape</font>
+removes the shape mask from the colorset while
+<a name="Colorset_Plain"></a><font class="fvwmopt">Plain</font>
+removes the background pixmap or gradient.</p><p>Examples</p><pre class="programlisting">
+Colorset 3 fg tan, bg navy
+</pre><p>If necessary this creates colorsets 0, 1, 2 and 3 and then changes
+colorset 3 to have a foreground of tan, a background of navy.</p><pre class="programlisting">
+Colorset 3 bg "navy blue"
+</pre><p>changes the background color of colorset 3 to navy blue. The
+foreground and pixmap are unchanged.</p><pre class="programlisting">
+Colorset 3 AspectPixmap large_murky_dungeon.xpm
+</pre><p>causes depression.</p><pre class="programlisting">
+Colorset 3 bg Average
+</pre><p>Sets the background color and the relief colors to match the
+background pixmap. This is the default setting but it must be used
+if a background color was specified and is now not required.</p><pre class="programlisting">
+Colorset 3 YGradient 200 3 blue 1000 navy 1 blue 1000 navy
+</pre><p>Adds a Yin Yang gradient background pixmap to colorset 3.  If the
+background is set to average it is recomputed along with the
+foreground if that is set to contrast.</p><pre class="programlisting">
+#!/bin/sh
+<a href="../modules/FvwmCommand.html">FvwmCommand</a> "Colorset 7 fg navy, bg gray"
+while true
+do
+  <a href="../modules/FvwmCommand.html">FvwmCommand</a> "Colorset 7 fg gray"
+  sleep 1
+  <a href="../modules/FvwmCommand.html">FvwmCommand</a> "Colorset 7 fg navy"
+  sleep 1
+done
+</pre><p>Makes colorset 7 blink.</p><p>The color names used in colorsets are saved as fvwm variables which
+can be substituted in any fvwm command. For example:</p><pre class="programlisting">
+<a href="#AddToFunc">AddToFunc</a> InitFunction
++ I <a href="#Exec">Exec</a> exec xterm -fg $[fg.cs0] -bg $[bg.cs0]
+</pre><p>Where $[fg.cs0] is the foreground color of colorset zero. Please
+refer to the
+<a href="#command_expansion">Command Expansion</a>
+section for more information.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="CleanupColorsets"></a>31.14.2. CleanupColorsets</h4></div></div></div><div class="cmdsynopsis"><p><code class="command">CleanupColorsets</code> </p></div><p>Resets a definition of all colorsets.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="color_gradients"></a>31.14.3. Color Gradients</h4></div></div></div><p>A color gradient is a background that changes its color gradually
+from one hue to a different one.  Color gradients can be used by
+various commands and modules of fvwm.  There are eight types of
+gradients:
+<span class="emphasis"><em>HGradient</em></span>
+is a horizontal gradient,
+<span class="emphasis"><em>VGradient</em></span>
+is vertical,
+<span class="emphasis"><em>DGradient</em></span>
+is diagonal from top left to bottom right,
+<span class="emphasis"><em>BGradient</em></span>
+is backwards diagonal from bottom left to top right,
+<span class="emphasis"><em>SGradient</em></span>
+is concentric squares,
+<span class="emphasis"><em>CGradient</em></span>
+is concentric circles,
+<span class="emphasis"><em>RGradient</em></span>
+is a radar like pattern and
+<span class="emphasis"><em>YGradient</em></span>
+is a Yin Yang style (but without the dots).</p><p>The color gradient syntax has two forms:</p><div class="cmdsynopsis"><p><code class="option">?Gradient</code>  <em class="replaceable"><code>colors</code></em>   <em class="replaceable"><code>start-color</code></em>   <em class="replaceable"><code>end-color</code></em> </p></div><p>This form specifies a linear gradient.  The arguments denote the
+total number of <em class="replaceable"><code>colors</code></em>
+to allocate (between 2 and 1000), the initial color and the final
+color.</p><p>Example:</p><pre class="programlisting">
+<a href="#TitleStyle">TitleStyle</a> VGradient 20 rgb:b8/ce/bc rgb:5b/85/d0
+</pre><div class="cmdsynopsis"><p><code class="option">?Gradient</code>  <em class="replaceable"><code>colors</code></em>   <em class="replaceable"><code>segments</code></em>   <em class="replaceable"><code>color</code></em>   <em class="replaceable"><code>length</code></em>   <em class="replaceable"><code>color</code></em>   [ <em class="replaceable"><code>length</code></em>   <em class="replaceable"><code>color</code></em> ]... </p></div><p>The second form specifies a nonlinear gradient.  The arguments are:
+the total number of <em class="replaceable"><code>colors</code></em>
+to allocate (between 2 and 1000), then the number of
+<em class="replaceable"><code>segments</code></em>.
+For each segment, specify the starting <em class="replaceable"><code>color</code></em>,
+a relative <em class="replaceable"><code>length</code></em>,
+then the ending color.  Each subsequent segment begins with the
+second color of the last segment.  The lengths may be any
+non-negative integers.  The length of one segment divided by the
+sum of all segments lengths is the fraction of the colors that
+are used for the segment.</p><p>Examples:</p><pre class="programlisting">
+<a href="#MenuStyle">MenuStyle</a> * MenuFace DGradient 128 2 lightgrey 50 blue 50 white
+
+# 20% gradient from red to blue,
+# 30% from blue to black,
+# 50% from black to grey
+<a href="#MenuStyle">MenuStyle</a> * MenuFace DGradient 100 3 Red 20 Blue 30 Black 50 Grey
+
+# 50% from blue to green, then
+# 50% from yellow to red
+<a href="#Colorset">Colorset</a> 0 HGradient 128 3 Blue 1000 Green 1 Yellow 1000 Red
+</pre></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="environment"></a>32. Environment</h2></div></div></div>
+The environment variables that have an effect on how fvwm operates
+are the following:
+<div class="variablelist"><dl><dt><span class="term"><code class="envar">DISPLAY</code></span></dt><dd><p>Fvwm starts on this display unless the <code class="option">-display</code>
+	option is given.</p></dd><dt><span class="term"><code class="envar">FVWM_MODULEDIR</code></span></dt><dd><p>Set by fvwm to the directory containing the standard fvwm
+	modules.</p></dd><dt><span class="term"><code class="envar">FVWM_USERDIR</code></span></dt><dd><p>Used to determine the user's data directory for reading and
+	sometimes writing personal files. If this variable is not already
+	set, it is set by fvwm to <code class="filename">$HOME/.fvwm</code>, which
+	is the default user's data directory.</p></dd><dt><span class="term"><code class="envar">SESSION_MANAGER</code></span></dt><dd><p>Fvwm tries to contact this session manager.</p></dd><dt><span class="term"><code class="envar">SESSION_MANAGER_NAME</code></span></dt><dd><p>This is used mainly to determine xsm running to work around its
+bug. If this variable is set to "xsm", DiscardCommand is set as
+xsm expects it and not as XSMP requires.  If you run fvwm under
+xsm, you should set this variable to "xsm", otherwise old state
+files are not removed.</p></dd><dt><span class="term"><code class="envar">SM_SAVE_DIR</code></span></dt><dd><p>If this is set, fvwm saves its session data in this
+directory. Otherwise it uses <code class="envar">$HOME</code>.
+Note, the state files are named <code class="filename">.fs-??????</code>
+and normally are removed automatically when not used anymore.</p></dd></dl></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="authors"></a>33. Authors</h2></div></div></div><p>Robert  Nation with help from many people, based on twm code, which was written by Tom LaStrange. After Robert Nation came Charles Hines, followed by Brady Montz. Currently fvwm is developed by a number of people on the fvwm-workers mailing list.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="copyright"></a>34. Copyright</h2></div></div></div><p>Fvwm and all the modules, scripts and other files coming with the  distribution  are  subject to the <acronym class="acronym">GNU</acronym> General Public License (GPL). Please refer to the COPYING file that came with fvwm for details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bugs"></a>35. Bugs</h2></div></div></div><p>Bug reports can be sent to the fvwm-workers mailing list at
+<code class="email">&lt;<a class="email" href="mailto:fvwm-workers@fvwm.org">fvwm-workers@fvwm.org</a>&gt;</code></p><p>The official fvwm homepage is
+<a class="ulink" href="http://fvwm.org/" target="_top">http://fvwm.org/</a>.</p></div></div>
+<HR>
+<P>fvwm 2.6.8</P>
+</body></html>
diff -Naru fvwm/htmlpages/groupedCommands.html fvwm.new/htmlpages/groupedCommands.html
--- fvwm/htmlpages/groupedCommands.html	1970-01-01 01:00:00.000000000 +0100
+++ fvwm.new/htmlpages/groupedCommands.html	2018-11-29 00:32:55.748708000 +0100
@@ -0,0 +1,306 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
+<title>Fvwm: Grouped Commands</title>
+<link href="style.css" rel="stylesheet" type="text/css"></head>
+
+<body>
+
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tbody>
+<tr>
+<td align="left" valign="top"><a href="http://www.fvwm.org"><img src="images/m.logo.png" align="left" border="0"></a></td>
+<td class="postheader" valign="top">
+	<a href="index.html"><font class="header">Home</font></a>&nbsp;&sdot;
+	<a href="allCommands.html"><font class="header">All&nbsp;Commands</font></a>&nbsp;&sdot;
+	<a href="groupedCommands.html"><font class="header">Grouped&nbsp;Commands</font>&nbsp;&sdot;
+	<a href="modules.html"><font class="header">List of all modules</font></a>&nbsp;&sdot;
+	<a href="http://www.fvwm.org/documentation/faq/"><font class="header">FAQ online</font></a>
+</td>
+
+<td align="right" valign="top"><a href="http://www.fvwm.org/"><img src="images/fvwm.logo2.png" align="right" border="0"></a></td>
+</tr>
+</tbody>
+</table>
+
+<h1 align="center"> Grouped&nbsp;&nbsp; <img src="images/fvwm.logo.png" alt="Fvwm"> &nbsp;&nbsp;Commands</h1>
+
+
+<table bgcolor="antiquewhite" bgcolor="#e5e5e5" border="0" cellpadding="2" cellspacing="1" width="100%">
+<tbody>
+	<tr>
+        <th bgcolor="#b5a7ec" width="25%">Keyboard &amp; Mouse Bindings</th>
+        <th bgcolor="#b5a7ec" width="25%">Modules</th>
+        <th bgcolor="#b5a7ec" width="25%">Menus</th>
+        <th bgcolor="#b5a7ec" width="25%">Session Management</th>
+	</tr>
+	<tr>
+        <td valign="top">
+        <ul>
+        <li><a href="commands/EdgeCommand.html">EdgeCommand</a></li>
+        <li><a href="commands/EdgeLeaveCommand.html">EdgeLeaveCommand</a></li>
+        <li><a href="commands/EscapeFunc.html">EscapeFunc</a></li>
+        <li><a href="commands/FakeClick.html">FakeClick</a></li>
+        <li><a href="commands/FakeKeypress.html">FakeKeypress</a></li>
+        <li><a href="commands/IgnoreModifiers.html">IgnoreModifiers</a></li>
+        <li><a href="commands/Key.html">Key</a></li>
+        <li><a href="commands/Mouse.html">Mouse</a></li>
+        <li><a href="commands/PointerKey.html">PointerKey</a></li>
+        <li><a href="commands/Stroke.html">Stroke</a></li>
+        <li><a href="commands/StrokeFunc.html">StrokeFunc</a></li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+        <li><a href="commands/DestroyModuleConfig.html">DestroyModuleConfig</a></li>
+        <li><a href="commands/KillModule.html">KillModule</a></li>
+        <li><a href="commands/Module.html">Module</a></li>
+        <li><a href="commands/ModuleListenOnly.html">ModuleListenOnly</a></li>
+        <li><a href="commands/ModulePath.html">ModulePath</a></li>
+        <li><a href="commands/ModuleSynchronous.html">ModuleSynchronous</a></li>
+        <li><a href="commands/ModuleTimeout.html">ModuleTimeout</a></li>
+        <li><a href="commands/SendToModule.html">SendToModule</a></li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+        <li><a href="commands/AddToMenu.html">AddToMenu</a></li>
+        <li><a href="commands/ChangeMenuStyle.html">ChangeMenuStyle</a></li>
+        <li><a href="commands/CopyMenuStyle.html">CopyMenuStyle</a></li>
+        <li><a href="commands/DestroyMenu.html">DestroyMenu</a></li>
+        <li><a href="commands/DestroyMenuStyle.html">DestroyMenuStyle</a></li>
+        <li><a href="commands/Menu.html">Menu</a></li>
+        <li><a href="commands/MenuStyle.html">MenuStyle</a></li>
+        <li><a href="commands/Popup.html">Popup</a></li>
+        <li><a href="commands/TearMenuOff.html">TearMenuOff</a></li>
+        <li><a href="commands/Title.html">Title</a></li>
+        <li><a href="commands/WindowList.html">WindowList</a></li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+        <li><a href="commands/Quit.html">Quit</a></li>
+        <li><a href="commands/QuitScreen.html">QuitScreen</a></li>
+        <li><a href="commands/QuitSession.html">QuitSession</a></li>
+        <li><a href="commands/Restart.html">Restart</a></li>
+        <li><a href="commands/SaveQuitSession.html">SaveQuitSession</a></li>
+        <li><a href="commands/SaveSession.html">SaveSession</a></li>
+        </ul>
+        </td>
+        </tr>
+        <tr>
+        <th bgcolor="#b5a7ec">Style &amp; Decor</th>
+        <th bgcolor="#b5a7ec">Window Movement &amp; Placement</th>
+        <th bgcolor="#b5a7ec">Window State</th>
+        <th bgcolor="#b5a7ec">Conditionals</th>
+        </tr>
+        <tr>
+        <td valign="top">
+        <ul>
+        <li><a href="commands/AddButtonStyle.html">AddButtonStyle</a></li>
+        <li><a href="commands/AddTitleStyle.html">AddTitleStyle</a></li>
+        <li><a href="commands/AddToDecor.html">AddToDecor</a></li>
+        <li><a href="commands/BorderStyle.html">BorderStyle</a></li>
+        <li><a href="commands/ButtonStyle.html">ButtonStyle</a></li>
+        <li><a href="commands/ButtonState.html">ButtonState</a></li>
+        <li><a href="commands/ChangeDecor.html">ChangeDecor</a></li>
+        <li><a href="commands/CursorStyle.html">CursorStyle</a></li>
+        <li><a href="commands/DestroyDecor.html">DestroyDecor</a></li>
+        <li><a href="commands/DestroyStyle.html">DestroyStyle</a></li>
+        <li><a href="commands/DestroyWindowStyle.html">DestroyWindowStyle</a></li>
+        <li><a href="commands/Refresh.html">Refresh</a></li>
+        <li><a href="commands/RefreshWindow.html">RefreshWindow</a></li>
+        <li><a href="commands/Style.html">Style</a></li>
+        <li><a href="commands/TitleStyle.html">TitleStyle</a></li>
+        <li><a href="commands/UpdateDecor.html">UpdateDecor</a></li>
+        <li><a href="commands/UpdateStyles.html">UpdateStyles</a></li>
+        <li><a href="commands/WindowStyle.html">WindowStyle</a></li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+        <li><a href="commands/AnimatedMove.html">AnimatedMove</a></li>
+        <li><a href="commands/HideGeometryWindow.html">HideGeometryWindow</a></li>
+        <li><a href="commands/Move.html">Move</a></li>
+        <li><a href="commands/MoveThreshold.html">MoveThreshold</a></li>
+        <li><a href="commands/MoveToDesk.html">MoveToDesk</a></li>
+        <li><a href="commands/MoveToPage.html">MoveToPage</a></li>
+        <li><a href="commands/MoveToScreen.html">MoveToScreen</a></li>
+        <li><a href="commands/OpaqueMoveSize.html">OpaqueMoveSize</a></li>
+        <li><a href="commands/PlaceAgain.html">PlaceAgain</a></li>
+        <li><a href="commands/Resize.html">Resize</a></li>
+        <li><a href="commands/ResizeMaximize.html">ResizeMaximize</a></li>
+        <li><a href="commands/ResizeMove.html">ResizeMove</a></li>
+        <li><a href="commands/ResizeMoveMaximize.html">ResizeMoveMaximize</a></li>
+        <li><a href="commands/SetAnimation.html">SetAnimation</a></li>
+        <li><a href="commands/SnapAttraction.html">SnapAttraction</a></li>
+        <li><a href="commands/SnapGrid.html">SnapGrid</a></li>
+        <li><a href="commands/XorPixmap.html">XorPixmap</a></li>
+        <li><a href="commands/XorValue.html">XorValue</a></li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+        <li><a href="commands/Close.html">Close</a></li>
+        <li><a href="commands/Delete.html">Delete</a></li>
+        <li><a href="commands/Destroy.html">Destroy</a></li>
+        <li><a href="commands/Iconify.html">Iconify</a></li>
+        <li><a href="commands/Layer.html">Layer</a></li>
+        <li><a href="commands/Lower.html">Lower</a></li>
+        <li><a href="commands/Maximize.html">Maximize</a></li>
+        <li><a href="commands/Raise.html">Raise</a></li>
+        <li><a href="commands/RaiseLower.html">RaiseLower</a></li>
+        <li><a href="commands/RestackTransients.html">RestackTransients</a></li>
+        <li><a href="commands/Stick.html">Stick</a></li>
+        <li><a href="commands/StickAcrossDesks.html">StickAcrossDesks</a></li>
+        <li><a href="commands/StickAcrossPages.html">StickAcrossPages</a></li>
+        <li><a href="commands/WindowShade.html">WindowShade</a></li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+		<li><a href="commands/All.html">All</a></li>
+        <li><a href="commands/Any.html">Any</a></li>
+        <li><a href="commands/Break.html">Break</a></li>
+        <li><a href="commands/Current.html">Current</a></li>
+        <li><a href="commands/Direction.html">Direction</a></li>
+        <li><a href="commands/KeepRc.html">KeepRc</a></li>
+        <li><a href="commands/Next.html">Next</a></li>
+        <li><a href="commands/None.html">None</a></li>
+        <li><a href="commands/NoWindow.html">NoWindow</a></li>
+        <li><a href="commands/Pick.html">Pick</a></li>
+        <li><a href="commands/PointerWindow.html">PointerWindow</a></li>
+        <li><a href="commands/Prev.html">Prev</a></li>
+        <li><a href="commands/ScanForWindow.html">ScanForWindow</a></li>
+        <li><a href="commands/State.html">State</a></li>
+        <li><a href="commands/Test.html">Test</a></li>
+        <li><a href="commands/TestRc.html">TestRc</a></li>
+        <li><a href="commands/ThisWindow.html">ThisWindow</a></li>
+        <li><a href="commands/WindowId.html">WindowId</a></li>
+        </ul>
+        </td>
+        </tr>
+        <tr>
+        <th bgcolor="#b5a7ec">User Functions &amp; Shell Commands</th>
+        <th bgcolor="#b5a7ec">Colors &amp; Colorsets</th>
+        <th bgcolor="#b5a7ec">EWMH &amp; GNOME</th>
+        <th bgcolor="#b5a7ec">Virtual Desktop</th>
+        </tr>
+        <tr>
+        <td valign="top">
+        <ul>
+        <li><a href="commands/AddToFunc.html">AddToFunc</a></li>
+        <li><a href="commands/Beep.html">Beep</a></li>
+        <li><a href="commands/ClickTime.html">ClickTime</a></li>
+        <li><a href="commands/DestroyFunc.html">DestroyFunc</a></li>
+        <li><a href="commands/Echo.html">Echo</a></li>
+        <li><a href="commands/EchoFuncDefinition.html">EchoFuncDefinition</a></li>
+        <li><a href="commands/Exec.html">Exec</a></li>
+        <li><a href="commands/ExecUseShell.html">ExecUseShell</a></li>
+        <li><a href="commands/Function.html">Function</a></li>
+        <li><a href="commands/InfoStoreAdd.html">InfoStoreAdd</a></li>
+        <li><a href="commands/InfoStoreRemove.html">InfoStoreRemove</a></li>
+        <li><a href="commands/Nop.html">Nop</a></li>
+        <li><a href="commands/PipeRead.html">PipeRead</a></li>
+        <li><a href="commands/Read.html">Read</a></li>
+        <li><a href="commands/SetEnv.html">SetEnv</a></li>
+        <li><a href="commands/Silent.html">Silent</a></li>
+        <li><a href="commands/UnsetEnv.html">UnsetEnv</a></li>
+        <li><a href="commands/Wait.html">Wait</a></li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+        <li><a href="commands/CleanupColorsets.html">CleanupColorsets</a></li>
+        <li><a href="commands/ColormapFocus.html">ColormapFocus</a></li>
+        <li><a href="commands/Colorset.html">Colorset</a></li>
+        <li><a href="commands/DefaultColors.html">DefaultColors</a></li>
+        <li><a href="commands/DefaultColorset.html">DefaultColorset</a></li>
+        <li><a href="commands/HilightColor.html">HilightColor</a></li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+        <li><a href="commands/EwmhBaseStruts.html">EwmhBaseStruts</a></li>
+        <li><a href="commands/EwmhNumberOfDesktops.html">EwmhNumberOfDesktops</a></li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+		<li><a href="commands/Desk.html">Desk</a></li>
+        <li><a href="commands/DesktopName.html">DesktopName</a></li>
+        <li><a href="commands/DesktopSize.html">DesktopSize</a></li>
+        <li><a href="commands/EdgeResistance.html">EdgeResistance</a></li>
+        <li><a href="commands/EdgeScroll.html">EdgeScroll</a></li>
+        <li><a href="commands/EdgeThickness.html">EdgeThickness</a></li>
+        <li><a href="commands/GotoDesk.html">GotoDesk</a></li>
+        <li><a href="commands/GotoDeskAndPage.html">GotoDeskAndPage</a></li>
+        <li><a href="commands/GotoPage.html">GotoPage</a></li>
+        <li><a href="commands/Scroll.html">Scroll</a></li>
+        <li><a href="commands/Xinerama.html">Xinerama</a></li>
+        <li><a href="commands/XineramaPrimaryScreen.html">XineramaPrimaryScreen</a></li>
+        <li><a href="commands/XineramaSls.html">XineramaSls</a></li>
+        <li><a href="commands/XineramaSlsScreens.html">XineramaSlsScreens</a></li>
+        <li><a href="commands/XineramaSlsSize.html">XineramaSlsSize</a></li>
+        </ul>
+        </td>
+        </tr>
+        <tr>
+        <th bgcolor="#b5a7ec">Focus &amp; Mouse Movement</th>
+        <th bgcolor="#b5a7ec">Miscellaneous</th>
+        <th bgcolor="#b5a7ec">Obsolete or Deprecated</th>
+        <th bgcolor="#b5a7ec">???</th>
+        </tr>
+        <tr>
+        <td valign="top">
+        <ul>
+        <li><a href="commands/CursorMove.html">CursorMove</a></li>
+        <li><a href="commands/FlipFocus.html">FlipFocus</a></li>
+        <li><a href="commands/Focus.html">Focus</a></li>
+        <li><a href="commands/FocusStyle.html">FocusStyle</a></li>
+        <li><a href="commands/WarpToWindow.html">WarpToWindow</a></li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+	<li><a href="commands/BugOpts.html">BugOpts</a></li>
+	<li><a href="commands/BusyCursor.html">BusyCursor</a></li>
+	<li><a href="commands/DefaultFont.html">DefaultFont</a></li>
+	<li><a href="commands/DefaultIcon.html">DefaultIcon</a></li>
+	<li><a href="commands/DefaultLayers.html">DefaultLayers</a></li>
+	<li><a href="commands/Deschedule.html">Deschedule</a></li>
+	<li><a href="commands/Emulate.html">Emulate</a></li>
+	<li><a href="commands/ImagePath.html">ImagePath</a></li>
+	<li><a href="commands/LocalePath.html">LocalePath</a></li>
+        <li><a href="commands/PrintInfo.html">PrintInfo</a></li>
+        <li><a href="commands/Repeat.html">Repeat</a></li>
+	<li><a href="commands/Schedule.html">Schedule</a></li>
+	<li><a href="commands/XSync.html">XSync</a></li>
+	<li><a href="commands/XSynchronize.html">XSynchronize</a></li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+	<li><a href="commands/ColorLimit.html"><font class="obsolete">ColorLimit</font></a></li>
+	<li><a href="commands/GlobalOpts.html"><font class="obsolete">GlobalOpts</font></a></li>
+        <li><a href="commands/HilightColor.html"><font class="obsolete">HilightColor</font></a></li>
+        <li><a href="commands/HilightColorset.html"><font class="obsolete">HilightColorset</font></a></li>
+	<li><a href="commands/IconFont.html"><font class="obsolete">IconFont</font></a></li>
+	<li><a href="commands/IconPath.html"><font class="obsolete">IconPath</font></a></li>
+	<li><a href="commands/PixmapPath.html"><font class="obsolete">PixmapPath</font></a></li>
+	<li><a href="commands/Recapture.html"><font class="obsolete">Recapture</font></a></li>
+	<li><a href="commands/RecaptureWindow.html"><font class="obsolete">RecaptureWindow</font></a></li>
+	<li><a href="commands/WindowFont.html"><font class="obsolete">WindowFont</font></a></li>
+	<li><a href="commands/WindowsDesk.html"><font class="obsolete">WindowsDesk</font></a></li>
+        <li><a href="commands/WindowShadeAnimate.html"><font class="obsolete">WindowShadeAnimate</font></a></li>
+        </ul>
+        </td>
+        </tr>
+</tbody></table>
+
+
+<hr><div align="center">
+<table border="0" cellspacing="0" width="100%"><tbody><tr class="address">
+<td width="30%"><img src="images/fvwm.logo2.png"></td>
+<td align="right" width="30%"><div align="right">fvwm 2.6.8</div></td>
+</tr></tbody></table></div></body></html>
diff -Naru fvwm/htmlpages/index.html fvwm.new/htmlpages/index.html
--- fvwm/htmlpages/index.html	1970-01-01 01:00:00.000000000 +0100
+++ fvwm.new/htmlpages/index.html	2018-11-29 11:16:59.450377000 +0100
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
+<title>Fvwm: Documentation</title>
+<link href="style.css" rel="stylesheet" type="text/css"></head>
+
+
+
+<body>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tbody>
+<tr>
+<td align="left" valign="top"><a href="http://www.fvwm.org"><img src="images/m.logo.png" align="left" border="0"></a></td>
+<td class="postheader" valign="top">
+	<a href="index.html"><font class="header">Home</font>&nbsp;&sdot;
+	<a href="allCommands.html"><font class="header">All&nbsp;Commands</font></a>&nbsp;&sdot;
+	<a href="groupedCommands.html"><font class="header">Grouped&nbsp;Commands</font></a>&nbsp;&sdot;
+	<a href="manpages.html"><font class="header">List of all man pages</font>&nbsp;&sdot;
+	<a href="http://www.fvwm.org/documentation/faq/"><font class="header">FAQ on line</font></a>
+</td>
+
+<td align="right" valign="top"><a href="http://www.fvwm.org/"><img src="images/fvwm.logo2.png" align="right" border="0"></a></td>
+</tr>
+</tbody>
+</table>
+
+<h1 align="center"><img src="images/fvwm.logo.png" alt="fvwm"> Documentation</h1>
+<table bgcolor="antiquewhite" bgcolor="#e5e5e5" border="0" cellpadding="2" cellspacing="1" width="100%">
+<tbody>
+	<tr>
+		<th bgcolor="#b5a7ec" width="33%">Getting Started</th>
+		<th bgcolor="#b5a7ec" width="33%">General</th>
+		<th bgcolor="#b5a7ec" width="33%">Reference</th>
+	</tr>
+	<tr>
+        <td valign="top">
+        <ul>
+        <li><strong><a href="fvwm/fvwm.man.html">Fvwm man page</a></strong></li>
+        <li><a href="manpages.html">List of all man pages</a></li>
+        <li><a href="http://www.fvwm.org/documentation/faq/">Frequently Asked Questions (on line)</a></li>
+        <li><a href="http://fvwm-themes.sf.net">Fvwm Themes (on line)</a></li>
+        <li>Unofficial <a href="http://www.zensites.net/fvwm/guide/">Tutorial (on line)</a></li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+        <li><a href="http://www.fvwm.org/news/">News (on line)</a></li>
+        <li><a href="http://www.fvwm.org/features/">Features (on line)</a></li>
+        <li><a href="http://www.fvwm.org/screenshots/">Screenshots (on line)</a></li>
+        <li><a href="http://www.fvwm.org/support/">Support: mailing list, forum, IRC (on line)</a></li>
+        <li><a href="http://fvwmforums.org/wiki/">FvwmWiki</a></li>
+        <li><a href="http://www.fvwm.org/authors/">Authors (on line)</a></li>
+
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+        <li><a href="allCommands.html">All Commands</a></li>
+        <li><a href="groupedCommands.html">Grouped Commands</a></li>
+        <li><a href="modules.html">List of all modules</a></li>
+        <li><a href="manpages.html">List of all man pages</a></li>
+        </ul>
+        </td>
+        </tr>
+        <tr>
+        <th bgcolor="#b5a7ec">Developer Resources</th>
+        <th bgcolor="#b5a7ec"></th>
+        <th bgcolor="#b5a7ec">License</th>
+        </tr>
+        <tr>
+        <td valign="top">
+        <ul>
+        <li><a href="http://www.fvwm.org/documentation/developers/">Developer information (on line)</a></li>
+        <li><a href="http://www.fvwm.org/documentation/moduleinterface/">Module Interface (on line)</a></li>
+        <li><a href="https://github.com/fvwmorg/fvwm">Link to the main Git repository</a></li>
+        <li><a href="http://www.fvwm.org/documentation/vectors/">Vector buttons viewer (on line)</a></li>
+        </ul>
+        </td>
+        <td valign="top">
+        </td>
+        <td valign="top">
+        <ul>
+        <li><a href="COPYING">COPYING</a></li>
+        </ul>
+        </td>
+        </tr>
+</tbody></table>
+    <p></p><address></address><hr><div align="center">
+<table border="0" cellspacing="0" width="100%"><tbody><tr class="address">
+<td width="30%"><img src="images/fvwm.logo2.png"></td>
+<td align="right" width="30%"><div align="right">fvwm 2.6.8</div></td>
+</tr></tbody></table></div></body></html>
diff -Naru fvwm/htmlpages/manpages.html fvwm.new/htmlpages/manpages.html
--- fvwm/htmlpages/manpages.html	1970-01-01 01:00:00.000000000 +0100
+++ fvwm.new/htmlpages/manpages.html	2018-11-29 00:32:55.749708000 +0100
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
+<title>Fvwm: Modules</title>
+<link href="style.css" rel="stylesheet" type="text/css"></head>
+
+
+
+<body>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tbody>
+<tr>
+<td align="left" valign="top"><a href="http://www.fvwm.org"><img src="images/m.logo.png" align="left" border="0"></a></td>
+<td class="postheader" valign="top">
+	<a href="index.html"><font class="header">Home</font></a>&nbsp;&sdot;
+	<a href="allCommands.html"><font class="header">All&nbsp;Commands</font></a>&nbsp;&sdot;
+	<a href="groupedCommands.html"><font class="header">Grouped&nbsp;Commands</font></a>&nbsp;&sdot;
+	<a href="manpages.html"><font class="header">List of all man pages</font>&nbsp;&sdot;
+	<a href="http://www.fvwm.org/documentation/faq/"><font class="header">FAQ on line</font></a>
+</td>
+
+<td align="right" valign="top"><a href="http://www.fvwm.org/"><img src="images/fvwm.logo2.png" align="right" border="0"></a></td>
+</tr>
+</tbody>
+</table>
+
+<h1 align="center"><img src="images/fvwm.logo.png" alt="fvwm"> List of all man pages</h1>
+<table bgcolor="antiquewhite" bgcolor="#e5e5e5" border="0" cellpadding="2" cellspacing="1" width="100%">
+<tbody>
+	<tr>
+		<!-- #a4ec9f #f6a4b2 #da91f5 -->
+		<th bgcolor="#b5a7ec" width="33%">A - E</th>
+		<th bgcolor="#b5a7ec" width="33%">F - Z</th>
+		<th bgcolor="#b5a7ec" width="33%">fvwm</th>
+	</tr>
+	<tr>
+        <td valign="top">
+        <ul>
+        <li>FvwmAnimate</li>
+        <li>FvwmAuto</li>
+        <li>FvwmBacker</li>
+        <li>FvwmBanner</li>
+        <li>FvwmButtons</li>
+        <li>FvwmCommand</li>
+        <li>FvwmConsole</li>
+        <li>FvwmConsoleC.pl</li>
+        <li>FvwmCpp</li>
+        <li>FvwmEvent</li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+        <li>FvwmForm</li>
+        <li>FvwmIconMan</li>
+        <li>FvwmIdent</li>
+        <li>FvwmM4</li>
+        <li>FvwmPager</li>
+        <li>FvwmPerl</li>
+        <li>FvwmProxy</li>
+        <li>FvwmRearrange</li>
+        <li>FvwmScript</li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+        <li>fvwm-bug</li>
+        <li>fvwm-config</li>
+        <li>fvwm-convert-2.6</li>
+        <li>fvwm-menu-desktop</li>
+        <li>fvwm-menu-directory</li>
+        <li>fvwm-menu-headlines</li>
+        <li>fvwm-menu-xlock</li>
+        <li>fvwm-perllib</li>
+        <li>fvwm-root</li>
+        <li>fvwm</li>
+        <li>fvwm2</li>
+        </ul>
+        </td>
+        </tr>
+</tbody>
+</table>
+
+<p></p><address></address><hr><div align="center">
+<table border="0" cellspacing="0" width="100%"><tbody><tr class="address">
+<td width="30%"><img src="images/fvwm.logo2.png"></td>
+<td align="right" width="30%"><div align="right">fvwm 2.6.8</div></td>
+</tr></tbody></table></div></body></html>
diff -Naru fvwm/htmlpages/modules.html fvwm.new/htmlpages/modules.html
--- fvwm/htmlpages/modules.html	1970-01-01 01:00:00.000000000 +0100
+++ fvwm.new/htmlpages/modules.html	2018-11-29 00:32:55.749708000 +0100
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
+<title>Fvwm: Modules</title>
+<link href="style.css" rel="stylesheet" type="text/css"></head>
+
+
+
+<body>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tbody>
+<tr>
+<td align="left" valign="top"><a href="http://www.fvwm.org"><img src="images/m.logo.png" align="left" border="0"></a></td>
+<td class="postheader" valign="top">
+	<a href="index.html"><font class="header">Home</font>&nbsp;&sdot;
+	<a href="allCommands.html"><font class="header">All&nbsp;Commands</font></a>&nbsp;&sdot;
+	<a href="groupedCommands.html"><font class="header">Grouped&nbsp;Commands</font></a>&nbsp;&sdot;
+	<a href="modules.html"><font class="header">List of all modules</font>&nbsp;&sdot;
+	<a href="http://www.fvwm.org/documentation/faq/"><font class="header">FAQ on line</font></a>
+</td>
+
+<td align="right" valign="top"><a href="http://www.fvwm.org/"><img src="images/fvwm.logo2.png" align="right" border="0"></a></td>
+</tr>
+</tbody>
+</table>
+
+<h1 align="center"><img src="images/fvwm.logo.png" alt="fvwm"> List of all modules</h1>
+<table bgcolor="antiquewhite" bgcolor="#e5e5e5" border="0" cellpadding="2" cellspacing="1" width="100%">
+<tbody>
+	<tr>
+		<!-- #a4ec9f #f6a4b2 #da91f5 -->
+		<th bgcolor="#b5a7ec" width="33%">A - E</th>
+		<th bgcolor="#b5a7ec" width="33%">F - R</th>
+		<th bgcolor="#b5a7ec" width="33%">S - Z</th>
+	</tr>
+	<tr>
+        <td valign="top">
+        <ul>
+        <li>FvwmAnimate</li>
+        <li>FvwmAuto</li>
+        <li>FvwmBacker</li>
+        <li>FvwmBanner</li>
+        <li>FvwmButtons</li>
+        <li>FvwmCommand</li>
+        <li>FvwmConsole</li>
+        <li>FvwmDebug</li>
+        <li>FvwmEvent</li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+        <li>FvwmForm</li>
+        <li>FvwmIconMan</li>
+        <li>FvwmIdent</li>
+        <li>FvwmM4</li>
+        <li>FvwmPager</li>
+        <li>FvwmPerl</li>
+        <li>FvwmProxy</li>
+        <li>FvwmRearrange</li>
+        </ul>
+        </td>
+        <td valign="top">
+        <ul>
+        <li>FvwmScript</li>
+        <li>FvwmTabs</a></li>
+        </ul>
+        </td>
+        </tr>
+</tbody>
+</table>
+
+<p></p><address></address><hr><div align="center">
+<table border="0" cellspacing="0" width="100%"><tbody><tr class="address">
+<td width="30%"><img src="images/fvwm.logo2.png"></td>
+<td align="center" width="40%"><a href="modules/todo.html">???</a></td>
+<td align="right" width="30%"><div align="right">fvwm 2.5.x</div></td>
+</tr></tbody></table></div></body></html>
