Subject: FVWM: fvwm2 crash using Wabi...

From: "Mohammed Iqbal (VLSI Subsystems)" <[email-masked]>
Date: Wed, 09 Jul 1997 12:33:05 +0100

Hi,

I've been using fvwm2 in my previous company very happily running on
Pentium via Exceed Unix emulation software. I've joined Nortel Semi and
have started running fvwm2 on Sun workstation 10.

Although everything else is working fine both myself and colleagues have
come across one lethal bug/ problem and that is whenever we run Wabi the
fvwm2 wm crashes with an error message "Broke Pipe".

Wabi is Windows Application Binary Interface from Sun Microsystems and
provides execution of Micrsoft Windows 3.1 on Sun Workstations. Wabi is
valuable free software for users wanting to run Microsoft Office and
other Windows 3.1 Applications.

Does any one know of any work-arounds/ fixes.

Machine/ Env details:

o Machine: SunOS bhars53f 5.5.1 Generic sun4u sparc SUNW,Ultra-1
o Running Openwindow X server under SunOS
o fvwm version 2.0.45
o compiled on the above machine using
/usr/local/lib/gcc-lib/sparc-sun-sunos4.1.2/2.6.3/specs gcc version
2.6.3
o The Imake file attached for your info

I have RTFM'd and haven't found any mention of Broken Pipes or wabi
execution.

Thanks & Regards,
Mohammed. 
________________________________________________________________________
Mohammed Iqbal, Principal VLSI CAD Eng. (01279-403897; [email-masked])
Nortel Semiconductors, VLSI Subsystems, London Rd, Harlow Essex CM17 9NA
/***************************************************************************
 * Fvwm Imake template
 *
 * Edit this file to change compile time defaults and options
 ***************************************************************************/

#ifndef XCOMM
#define XCOMM #
#endif

XCOMM Fvwm.tmpl
XCOMM Template file for Fvwm

/***************************************************************************
 * #define RenameFVWM2
 *
 * If you want to install both fvwm 1.xx and fvwm 2.xx concurently, specify
 * #define RenameFVWM2. Otherwise, comment out the following line.
 * This will affect the name of the "fvwm" binary, library, and manual.
 *
 * I HIGHLY RECOMMEND THAT YOU LEAVE THIS DEFINED, TO AVOID CONFUSION!!!!
 ***************************************************************************/
#define RenameFVWM2

/***************************************************************************
 * #define FvwmCompiler
 * #define FvwmCompilerFlags
 *
 * To force a certain compiler and/or flags to be used to compile Fvwm.
 * Commonly used to force gcc to be used instead of your normal compiler
 * and/or flags that Imake would use.  If your Imake setup is ok, you
 * shouldn't need to set these.
 ***************************************************************************/
#define FvwmCompiler gcc 
/* #define FvwmCompilerFlags -g -Wall */

/***************************************************************************
 * Where to search for the fvwm icons.
 *
 * Define this if you want a different search path from the default which is
 * the `bitmaps' and `pixmaps' directories beneath the X include directory.
 *
 * Note that you have to escape the ':' with a '\' otherwise make gets
 * confused, and make sure you don't have any spaces in there.
 ***************************************************************************/

/* #define FvwmIconPath /usr/include/X11/bitmaps\:/usr/include/X11/pixmaps */

/***************************************************************************
 * #define HasXpm
 *
 * If you want color icons, define HasXpm as YES, and get libXpm from
 * sunsite.unc.edu (precompiled for Linux), or the source from
 * ftp.x.org.  If you want more color icons in addition to the ones
 * included in the fvwm package, check out the ctwm distribution,
 * which has lots of nice color icons.
 *
 * For monochrome, Xpm icons still work, but they're only better than regular
 * bitmaps because they're shaped (if you specify #define SHAPE).
 *
 * If Xpm is not installed with the rest of your X, set XpmLibs and
 * XpmIncs to the paths where the library and include files are located.
 ***************************************************************************/
#define HasXpm  NO /* YES */  
/* #define XpmLibs -L/usr/local/lib */
/* #define XpmIncs -I/usr/local/include */

/***************************************************************************
 * #define HasRPlay
 *
 * To add builtin support for the rplay library.  Also make sure that the 
 * include and lib settings are correct for your rplay installation.
 * This currently only effects the FvwmAudio module.
 ***************************************************************************/
#define HasRPlay NO     /* YES */
#define AudioLibs -L/usr/local/lib
#define AudioIncs -I/usr/local/include

/**************************************************************************
 * InstallSample
 *
 * Set this to NO If you would not like sample.fvwmrc/system.fvwmrc to be
 * installed.
 * You probably want this if you have a modified FVWMDIR/FVWMRC. 
 *************************************************************************/
#define InstallSample YES

/**************************************************************************
 * InstallUtils
 *
 * Set this to YES if you would like the programs in the utils directory
 * installed.
 *************************************************************************/
#define InstallUtils NO

/**************************************************************************
 * InstallLibs
 *
 * Set this to YES if you would like libfvwm2.a to be installed.
 *************************************************************************/
#define InstallLibs NO

/**************************************************************************
 *
 * OPTION_DEFINES
 *
 * Pick and mix your desired options from this list and add them to
 * OPTIONS_DEFINES below:
 *
 *
 * -DMODALITY_IS_EVIL
 *
 * Totally disables motif applications ability to have modal dialogs.
 * Use with care.
 *
 *
 * -DNO_SAVEUNDERS 
 *
 * Tells the WM not to request save unders for pop-up
 * menus. A quick test using monochrome X11 shows that save
 * unders cost about 4Kbytes RAM, but saves a lot of
 * window redraws if you have windows that take a while
 * to refresh. For xcolor, I assume the cost is more like
 * 4Kbytesx8 = 32kbytes (256 color).
 *
 *
 * -DSHAPE
 *
 * If you want the Shaped window extensions.
 * Shaped window extensions seem to increase the window managers RSS
 * by about 60 Kbytes. They provide for leaving a title-bar on the window
 * without a border.
 * If you don't use shaped window extension, you can either make your 
 * shaped windows undecorated, or live with a border and backdrop around
 * all your shaped windows (oclock, xeyes)
 *
 * If you normally use a shaped window (xeyes or oclock), you might as
 * well compile this extension in, since the memory cost is  minimal in
 * this case (The shaped window shared libs will be loaded anyway). If you
 * don't normally use a shaped window, you have to decide for yourself.
 *
 * Note: if it is compiled in, run time detection is used to make sure that
 * the currently running X server supports it.
 *
 *
 * -DACTIVEDOWN_BTNS
 *
 * Enables the ActiveDown button state.  This allows different button
 * styles for pressed down buttons on active windows (also for the
 * title-bar if EXTENDED_TITLESTYLE is enabled below).  The man page
 * refers to this button state as "ActiveDown."  If not defined, the
 * "ActiveUp" state is used instead.  Disabling this reduces memory
 * usage.
 * 
 *
 * -DINACTIVE_BTNS
 *
 * Enables the Inactive button state.  This allows different button
 * styles for inactive windows (also for the title-bar if
 * EXTENDED_TITLESTYLE is enabled below).  The man page refers to this
 * button state as "Inactive."  If not defined, the "ActiveUp" state
 * is used instead.  Disabling this reduces memory usage.
 * 
 *
 * -DMINI_ICONS
 *
 * Enables the "MiniIcon" Style option to specify a small pixmap which
 * can be used as one of the title-bar buttons, shown in window list,
 * utilized by modules, etc.  Requires PIXMAP_BUTTONS to be defined
 * (see below).
 *
 *
 * -DVECTOR_BUTTONS
 *
 * Enables the vector button style.  This button type is considered
 * "standard," so it is recommended that you leave it in.
 * 
 * 
 * -DPIXMAP_BUTTONS
 *
 * Enables the pixmap button style.  You must have Xpm support to use
 * color pixmaps.  See the man page button style entries for "Pixmap"
 * and "TiledPixmap" for usage information.
 *
 *
 * -DGRADIENT_BUTTONS
 *
 * Enables the gradient button style.  See the man page button style
 * entries for "HGradient" and "VGradient" for usage information.
 *
 *
 * -DMULTISTYLE
 *
 * Enables stacked button styles (also for the title-bar if
 * EXTENDED_TITLESTYLE is enabled below).  There is a slight memory
 * penalty for each additional style. See the man page entries for
 * AddButtonStyle and AddTitleStyle for usage information.
 *
 * 
 * -DEXTENDED_TITLESTYLE
 * 
 * Enables styled title-bars (specified with the TitleStyle command in
 * a similar fashion to the ButtonStyle command).  It also compiles in
 * support to change the title-bar height.
 *
 *
 * -DBORDERSTYLE
 *
 * Enables the BorderStyle command.  Not all button styles are
 * available.  See the man page entry for BorderStyle for usage
 * information.  If you are also using PIXMAP_BUTTONS, you can also
 * texture your borders with tiled pixmaps.  The BorderStyle command
 * has Active and Inactive states, regardless of the -DACTIVEDOWN_BTNS
 * and -DINACTIVE_BTNS defines.
 *
 *
 * -DUSEDECOR
 *
 * Enables tagged general decoration styles which can be assigned to
 * windows using the UseDecor Style option, or dynamically updated
 * with ChangeDecor.  To create and destroy "decor" definitions, see
 * the man page entries for AddToDecor and DestroyDecor.  There is a
 * slight memory penalty for each additionally defined decor.
 * 
 *
 * -DWINDOWSHADE
 *
 * Enables the WindowShade function.  This function "rolls" the window
 * up so only the title-bar remains.  See the man page entry for
 * "WindowShade" for more information.
 *
 ***************************************************************************/

/* 
** note - not all build environments like the '+=' useage below, so if you
**        want to use it, change the following #if 0 to #if 1
*/

#if 0

/* the works: */
OPTION_DEFINES  = -DSHAPE
OPTION_DEFINES += -DACTIVEDOWN_BTNS -DINACTIVE_BTNS -DMINI_ICONS
OPTION_DEFINES += -DVECTOR_BUTTONS -DPIXMAP_BUTTONS -DGRADIENT_BUTTONS
OPTION_DEFINES += -DMULTISTYLE -DEXTENDED_TITLESTYLE
OPTION_DEFINES += -DBORDERSTYLE -DUSEDECOR -DWINDOWSHADE

#else

/* the works, not using '+=': */
OPTION_DEFINES  = -DSHAPE -DACTIVEDOWN_BTNS -DINACTIVE_BTNS -DMINI_ICONS -DVECTOR_BUTTONS -DPIXMAP_BUTTONS -DGRADIENT_BUTTONS -DMULTISTYLE -DEXTENDED_TITLESTYLE -DBORDERSTYLE -DUSEDECOR -DWINDOWSHADE

#endif

/* Or if you prefer a more minimal setup, you could try something like: */
/* OPTION_DEFINES = -DSHAPE -DVECTOR_BUTTONS */

/***************************************************************************
 * The following section only needs to be changed if you do not want
 * Imake's default behaviour. 
 * Uncomment and edit to suit your requirements.
 ***************************************************************************/

/* Where do you want the fvwm binaries installed. */
/* #define FvwmBinDir /usr/local/X11R6/bin */
#define FvwmBinDir /bhars540/home1/ccttools/bin/fvwm-2.0.45/bin

/* Where do you want the fvwm modules installed. */
/* #define FvwmDir /usr/local/X11R6/lib/X11/fvwm2 */
#define FvwmDir /bhars540/home1/ccttools/bin/fvwm-2.0.45/lib

/* Where do you want the fvwm libraries installed. */
/* #define FvwmLibDir /usr/local/X11R6/lib */
#define FvwmLibDir /bhars540/home1/ccttools/bin/fvwm-2.0.45/lib

/* Where do you want the fvwm man pages installed. */
/* #define FvwmManPath /usr/local/X11R6/man */
#define FvwmManPath /bhars540/home1/ccttools/bin/fvwm-2.0.45/man

/* #define FvwmManSuffix 1 */

/***************************************************************************
 ***************************************************************************
 ***************************************************************************
   End of user configuration items.  You shouldn't need to edit below here.
 ***************************************************************************
 ***************************************************************************
 ***************************************************************************/

/*
** FvwmName is the name of the module
** FvwmRc is the name of the rc file to read by default
*/

#ifdef RenameFVWM2
#define FvwmName fvwm2
#define FvwmRc .fvwm2rc
#else
#define FvwmName fvwm
#define FvwmRc .fvwmrc
#endif /* RenameFVWM2 */

#ifndef HasXpm
#define HasXpm NO
#endif
#ifndef HasRPlay
#define HasRPlay NO
#endif
#ifndef InstallLibs
#define InstallLibs NO
#endif
#ifndef InstallUtils
#define InstallUtils NO
#endif
#ifndef InstallSample
#define InstallSample NO
#endif
#ifndef XpmIncs
#define XpmIncs /* as nothing */
#endif
#ifndef XpmLibs
#define XpmLibs /* as nothing */
#endif
#ifndef AudioIncs
#define AudioIncs /* as nothing */
#endif
#ifndef AudioLibs
#define AudioLibs /* as nothing */
#endif

#if HasXpm
    XPM_DEFINES = -DXPM
   XPM_INCLUDES = XpmIncs
  XPM_LIBRARIES = XpmLibs -lXpm
#endif

#if HasRPlay
    AUDIO_DEFINES = -DHAVE_RPLAY
   AUDIO_INCLUDES = AudioIncs
  AUDIO_LIBRARIES = AudioLibs -lrplay
#endif

#ifdef FvwmCompiler
        CC = FvwmCompiler
#endif
#ifdef FvwmCompilerFlags
XCOMM   CFLAGS = FvwmCompilerFlags
XCOMM   CCOPTIONS = FvwmCompilerFlags /* should I have another var for this? */
        CDEBUGFLAGS = FvwmCompilerFlags
#endif

#ifdef FvwmBinDir
        FVWMBINDIR = FvwmBinDir
#else
        FVWMBINDIR = $(BINDIR)
#endif

#ifdef FvwmLibDir
        FVWMLIBDIR = FvwmLibDir
#else
        FVWMLIBDIR = $(USRLIBDIR)
#endif

#ifdef FvwmManPath
        MANPATH = FvwmManPath
#endif

#ifdef FvwmManSuffix
        MANSUFFIX = FvwmManSuffix
#endif

#ifdef FvwmDir
        FVWMDIR = FvwmDir
#else
        FVWMDIR = $(LIBDIR)/FvwmName
#endif

#ifndef FvwmIconPath
#define FvwmIconPath $(INCDIR)/bitmaps\:$(INCDIR)/pixmaps
#endif

   ICONPATH = FvwmIconPath
     FVWMRC = FvwmRc
        LIB = FvwmName

/* take care of libs not correctly added by Imake on some systems */
/* #ifdef AlphaArchitecture */
#if defined(AlphaArchitecture) && !defined(linux)
KLUDGE_LIBS = -ldnet_stub
#else
#ifdef HPArchitecture
KLUDGE_LIBS = -lV3
#else
#ifdef i386SVR4Architecture
KLUDGE_LIBS = -lnsl -lsocket
#else /* all other systems shouldn't need anything */
KLUDGE_LIBS = 
#endif /* i386SVR4Architecture */
#endif /* HPArchitecture */
#endif /* AlphaArchitecture */

XCOMM  FVWM_LIBS = -L$(FVWM_SRCDIR)/libs -l$(LIB) $(XPM_LIBRARIES) $(KLUDGE_LIBS)
  FVWM_LIBS = $(FVWM_SRCDIR)/libs/lib$(LIB).a $(XPM_LIBRARIES) $(KLUDGE_LIBS)
FVWM_DEPLIB = $(FVWM_SRCDIR)/libs/lib$(LIB).a

    DEFINES = $(OPTION_DEFINES) $(XPM_DEFINES) $(AUDIO_DEFINES)
   INCLUDES = -I/bhars540/home1/ccttools/bin/fvwm-2.0.45/ginclude -I/usr/openwin/include $(XPM_INCLUDES) $(AUDIO_INCLUDES) -I. -I$(FVWM_SRCDIR)/libs
    DEPLIBS = $(DEPXLIB) $(FVWM_DEPLIB)

   LINTLIBS = $(LINTXLIB)

/***************************************************************************
 * 
 *      Special rules for Fvwm
 * 
 **************************************************************************/

#ifndef InstallNamedNonExec
#define InstallNamedNonExec(what,as,where) InstallNonExec(what,where/as)
#endif /* InstallNamedNonExec() */

#ifndef InstallNonExecFile()
#define InstallNonExecFile(file,dest) InstallNonExec(file,dest)
#endif /* InstallNonExecFile() */

#ifndef NullMake
#define NullMake()							@@\
all::									@@\
	@echo "make in $(CURRENT_DIR) done"
#endif /* NullMake */

#ifndef InstallExecTarget
#define InstallExecTarget(file,destdir)					@@\
install:: file								@@\
	$(INSTALL) -c $(INSTBINFLAGS) file $(DESTDIR)destdir
#endif /* InstallExecTarget */

/*
 * FvwmModuleTarget - generate rules for compiling and linking the 
 * program specified by $(OBJS) and $(SRCS), installing the program and its
 * man page, and generating dependencies.  It should only be used in 
 * Imakefiles that describe a single program.
 */
#ifndef FvwmModuleTarget
#define	FvwmModuleTarget(program)					@@\
        PROGRAM = program						@@\
									@@\
AllTarget(program)							@@\
									@@\
program: $(OBJS) $(DEPLIBS)						@@\
	RemoveTargetProgram($@)						@@\
	$(CC) -o $@ $(OBJS) $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS) @@\
									@@\
InstallProgram(program,$(FVWMDIR))					@@\
InstallManPage(program,$(MANDIR))					@@\
DependTarget()								@@\
LintTarget()								@@\
									@@\
clean::									@@\
	$(RM) $(PROGRAM)
#endif /* FvwmModuleTarget */

/*
 * FvwmProgramTarget - generate rules for compiling and linking the 
 * program specified by $(OBJS) and $(SRCS), installing the program and its
 * man page, and generating dependencies.  It should only be used in 
 * Imakefiles that describe a single program.
 */
#ifndef FvwmProgramTarget
#define	FvwmProgramTarget(program)					@@\
        PROGRAM = program						@@\
									@@\
AllTarget(program)							@@\
									@@\
program: $(OBJS) $(DEPLIBS)						@@\
	RemoveTargetProgram($@)						@@\
	$(CC) -o $@ $(OBJS) $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS) @@\
									@@\
InstallProgram(program,$(FVWMBINDIR))					@@\
InstallManPage(program,$(MANDIR))					@@\
DependTarget()								@@\
LintTarget()								@@\
									@@\
clean::									@@\
	$(RM) $(PROGRAM)
#endif /* FvwmProgramTarget */

#if ProjectX > 5

#ifndef FvwmCplusplusProgramTargetHelper
#if defined(i386BsdArchitecture) && defined(i386Bsdi)
        C++FLAGS = $(CXXFLAGS)
#endif
#define	FvwmCplusplusProgramTargetHelper(program,srcs,objs,deplib,locallib,syslib) @@\
ProgramTargetName(program): $(objs) $(deplib)				@@\
	RemoveTargetProgram($@)						@@\
	CplusplusLinkRule($@,$(CXXLDOPTIONS),$(objs),locallib $(LDLIBS) syslib) @@\
									@@\
CenterProgramTarget(program,$(srcs),$(objs),locallib,syslib)		@@\
SentinelCplusplusProgramTarget(program,$(objs) $(deplib),$(objs) locallib $(LDLIBS) syslib) @@\
PurifyCplusplusProgramTarget(program,$(objs) $(deplib),$(objs) locallib $(LDLIBS) syslib) @@\
ProofCplusplusProgramTarget(program,$(objs) $(deplib),$(objs) locallib $(LDLIBS) syslib) @@\
									@@\
InstallProgram(program,$(FVWMDIR))					@@\
InstallManPage(program,$(MANDIR))
#endif /* FvwmCplusplusProgramTargetHelper */

#ifndef FvwmComplexCplusplusProgramTarget
#define	FvwmComplexCplusplusProgramTarget(program)			@@\
        PROGRAM = program						@@\
									@@\
AllTarget(program)							@@\
									@@\
FvwmCplusplusProgramTargetHelper(program,SRCS,OBJS,DEPLIBS,$(LOCAL_LIBRARIES),NullParameter) @@\
									@@\
DependTarget()								@@\
LintTarget()								@@\
									@@\
clean::									@@\
	RemoveFile(ProgramTargetName(program))
#endif /* FvwmComplexCplusplusProgramTarget */

#endif /* ProjectX > 5 */

---

From: Gary Sargent <[email-masked]>
Date: Thu, 10 Jul 1997 08:52:27 +0100

> fvwm2 wm crashes with an error message "Broke Pipe".

I too am suffering from this major bug, so its unlikely fvwm was installed
incorrectly (as I suspected until now). Its really annoying having to
switch back to openwindows to run Wabi.

If anyone has a workaround or patch - PLEASE tell us!

Cheers,

Gary Sargent.

--
Visit the official FVWM web page at <URL:http://www.hpc.uh.edu/fvwm/>.
To unsubscribe from the list, send "unsubscribe fvwm" in the body of a
message to [email-masked].
To report problems, send mail to [email-masked].

---

From: "Eric S. Raymond" <[email-masked]>
Date: Thu, 10 Jul 1997 09:39:58 -0400 (EDT)

> switch back to openwindows to run Wabi.

Oddly enough, I can run WABI without crashing fvwm2.

Try it with this config:

############################################################################
# Eric's Big Blue-Steel Desktop
#	by Eric S. Raymond <[email-masked]> http://www.ccil.org/~esr
#
# $Id: .fvwm2rc,v 1.1 1997/07/09 02:59:48 esr Exp $
#
# An uncluttered desktop design for serious hacking, using tiled windows on a
# 21" 1600x1200 monitor.  Requires stock RedHat 4.2 plus fvwm2 2.0.45 RPMs.
#
# This configuration sets up a one-row toolbar in the lower left hand corner
# (xterm, emacs, netscape, swallowed xclock, swallowed xbiff, swallowed xload, 
# swallowed xeyes).  You may want to uncomment the fvwm-reset button while
# tuning it. There is an icon box area above the  toolbar sufficent for two
# rows of standard xterm icons.  
#
# This configuration is designed to be used with an Emacs wired for 16-pixel
# type at 100dpi.  If you set your xterm to use a 15-pixel font, you'll be able
# to fit an 80-column, 77-row xterm to the left of the Emacs.  Set 
#
#	xterm*Font:-*-fixed-*-r-*-*-15-*-100-100-*-*-*-*
#	emacs.Font:-*-courier-*-r-*-*-16-*-100-100-*-*-*-*
#
# The emacs will take up the entire right side of the screen (the toolbar and
# icon box are sized not to overlap with it).  You should get 64 lines of
# Emacs buffer (and status line and minibuffer of course).  
#
# These font sizes have been carefully chosen to make optimal use of screen
# space; they're the largest ones that will fit 160 columns of text on a
# 1600-pixel-wide display without overlap.  The 16-pixel font goes to Emacs,
# on the assumption that the Emacs window will usually contain large
# amounts of complex text and therefore needs the edge in size and readability.
#
# No pager (with this big a screen, who needs one?).  No window list (that's
# what the mouse and border decorations are for). SloppyFocus and a 25msec
# AutoRaise so focus changes if you linger in a window other than root.
# Simple menus -- the root menu carries nearly everything.
#
# The only site-specific stuff is the telnets to locke, sunsite etc. in
# the root menu.  I have these hooked to expect scripts that do the
# login/password thing.  You can remove those or replace them with your own.
#
# I use this with `xearth -pos "orbit 3 70" -label -nomarkers -night 40 &'
# set up as a background in my .xinitrc, and nothing else in there besides 
# the fvwm2 startup. I also recommend replacing the ugly default xbiff
# bitmaps with the following resource lines:
#
#	xbiff*flip:false
#	xbiff*fullPixmap:mailfull
#	xbiff*emptyPixmap:mailempty
#	xbiff*fullPixmapMask:mailfullmsk
#	xbiff*emptyPixmapMask:mailemptymsk
#	xbiff*shapeWindow:true
#
# You may also find you need to set
#
#	Netscape.Navigator.geometry: =750x920+0+0
#
# as some versions of Netscape don't do -geometry, despite their docs.
#
# Known bugs: 
# * Stock RedHat 4.2 doesn't include a Netscape icon, so this makes
#   do with a Mosaic one.
#
############################################################################
# FvwmButtons
#
*FvwmButtonsFore Black
*FvwmButtonsBack SteelBlue3
*FvwmButtonsFont -adobe-helvetica-bold-r-*-*-18-*-*-*-*-*-*-*
*FvwmButtonsGeometry +0-0
*FvwmButtonsRows 1

#*FvwmButtons Restart	fvwm.xpm	Restart
*FvwmButtons Xterm	xterm.xpm	Exec "xterm" xterm &
*FvwmButtons Emacs	gnu-animal.xpm	Exec "Emacs" emacs -geometry =80x66-0+0 &
*FvwmButtons Netscape	Mosaic.xpm	Exec "Netscape" netscape -geometry =750x920+0+0 &
*FvwmButtons(Swallow XClock 'Exec xclock -fg white -bg SteelBlue3 &')
*FvwmButtons(Swallow XBiff 'Exec xbiff &')
*FvwmButtons(Swallow(UseOld,NoKill) "xload" \
	`Exec xload -title xload -bg SteelBlue3 -update 3 -nolabel &`)
*FvwmButtons(Swallow XEyes 'Exec xeyes -center LightGrey &')

##############################################################################
# MENU Setup
#

# This defines the most common window operations
AddToMenu Window-Ops    "Window Ops"    Title
+                       "Move"          Move-or-Raise2
+                       "Resize"        Resize-or-Raise2
+                       "Raise"         Raise
+                       "Lower"         Lower
+                       "(De)Iconify"   Iconify
+                       "(Un)Stick"     Stick
+                       "(Un)Maximize"  maximize_func
+                       ""              Nop
+                       "Delete"        Delete
+                       "Close"         Close
+                       "Destroy"       Destroy
+                       ""              Nop
+                       "Refresh Screen" Refresh

# A trimmed down version of "Window Ops", good for binding to decorations
AddToMenu Window-Ops2   "Move"          Move-or-Raise
+                       "Resize"        Resize-or-Raise
+                       "Raise/Lower"   RaiseLower
+                       "Iconify"       Iconify
+                       "(Un)Stick"     Stick
+                       ""              Nop
+                       "Delete"        Delete
+                       "Close"         Close
+                       "Destroy"       Destroy
+                       ""              Nop
+                       "ScrollBar"     Module FvwmScroll 2 2
+                       "Print"         PrintFunction

# This is the root menu
AddToMenu RootMenu "Root Menu"  Title
+	"Xterm"			exec xterm &
+	"emacs"			exec emacs &
+	"Netscape"		exec netscape &
+	"Telnet to locke"	exec xterm -T locke -n locke -e locke-telnet &
+	"Ssh to sunsite"	exec xterm -T sunsite -n sunsite -e sunsite-ssh &
+	"Slrn"			exec xterm =80x66 -T Netnews -n Netnews -e "NNTPSERVER=netnews.netaxs.com slrn &
+	"Archie"		exec xterm -T archie -n archie -e archie &
+	"Xman"			exec xman &
+	"" 			Nop
+	"Restart Fvwm2"		Restart fvwm2
+ 	"Exit Fvwm"		Quit

############################################################################
# COLORS and FONTS
#
# Set the fore and back border colors for the window that has focus
HilightColor		linen Red3

# Set fore/back border colors for all other windows 
Style "*" Color linen/SteelBlue3

# Set colors/font for pop-up menus
# Syntax: MenuStyle forecolor backcolor shadecolor font style(fvwm/mwm)
MenuStyle black grey slategrey -adobe-times-bold-r-*-*-18-*-*-*-*-*-*-* fvwm 

# Set fonts to use on title bar and icon label
WindowFont              -adobe-helvetica-bold-r-*-*-18-*-*-*-*-*-*-*
IconFont                -adobe-helvetica-bold-r-*-*-18-*-*-*-*-*-*-*

############################################################################
# MISC Setup
#
# Uncomment this to make windows auto-raise after [x] milliseconds 
Module FvwmAuto 25

# Auto Place Icons is a nice feature (Left Top Right Bottom)
Style "*" IconBox 0 960 750 1550

# Keep the last focus while in root window
Style "*" SloppyFocus

# Click/release must occur in <n milliseconds to be a "click"
ClickTime 250

# I have fast graphics, so always do opaque moves
OpaqueMoveSize 100

# Suppress the pager 
DeskTopSize 1 1

############################################################################
# WINDOW Placement
#
# SmartPlacement makes new windows pop-up in blank regions of screen 
Style "*" SmartPlacement

# If SmartPlacement fails, this places it randomly instead of making you do it
Style "*" RandomPlacement

############################################################################
# STYLE Flag Setup
#
# (decorations and window options) 
# Note: Order is important!! If compatible styles are set, styles are ORed
# together. If conflicting styles are set, the last one specified is used.

# change the default width, set a global icon, and give borders to popups
Style "*" BorderWidth 7, HandleWidth 7, Icon x.xpm, DecorateTransient

Style "Fvwm*"		NoTitle, Sticky, WindowListSkip, NoHandles, BorderWidth 0
Style "*lock"		NoTitle, Sticky, WindowListSkip
Style "xbiff"		NoTitle, Sticky, WindowListSkip
Style "xload"		NoTitle, Sticky, WindowListSkip, ClickToFocus
Style "*term"		Icon xterm.xpm
Style "xman"		Icon xman.xpm
Style "emacs"		NoPPosition, NoTitle, NoHandles, BorderWidth 5, Icon gnu-animal.xpm

#############################################################################
# START-UP Functions
#
AddToFunc "InitFunction" "I" Module FvwmButtons
+		"I" Next [!iconic CurrentScreen xterm] Focus
+		"I" CursorMove 30 40

AddToFunc "RestartFunction" "I" Module FvwmButtons
+		"I" Next [!iconic CurrentScreen xterm] Focus
+		"I" CursorMove 30 40

############################################################################
# COMPLEX FUNCTIONS
#
AddToFunc Move-or-Raise		"I" Raise
+				"M" Move
+				"D" Lower

AddToFunc Move-or-Raise2        "M" Raise
+				"M" Move
+				"D" Lower

AddToFunc Maximize-Func         "C" Maximize     0 100
+                               "D" Maximize     100 100

AddToFunc Move-or-Iconify       "I" Raise
+                               "M" Move
+                               "D" Iconify

AddToFunc Resize-or-Raise       "I" Raise
+                               "M" Resize
+                               "D" Lower

AddToFunc Resize-or-Raise2      "M" Raise
+                               "M" Resize
+                               "D" Lower

AddToFunc PrintFunction         "I" Raise
+                               "I" Exec xdpr -id $w

AddToFunc Iconify-and-Raise     "I" Iconify
+                               "I" Raise

############################################################################
# MOUSE Setup
#
# First, the root window. Button 1 brings up the Main Menu. B2 is the
# window operations list, and B3 is the winlist module
#     Button	Context Modifi 	Function
Mouse 1		R   	A       Menu RootMenu Nop
Mouse 2		R    	A       Menu Window-Ops Nop
Mouse 3		R    	A      	WindowList

# Now, title bar buttons
# Left button is the Window-Ops2 menu, right is iconify, rightmost is maximize
#     Button	Context Modifi 	Function
Mouse 0		1       A       Menu Window-Ops2 Close
Mouse 0		2    	A     	Maximize-Func
Mouse 0		4    	A     	Iconify
Mouse 0		3       A       Stick

# Button 1 in Frame or Sides is a resize-or-raise, in Icons is a move or 
# de-iconify, and on Top does a move-or-raise
#     Button	Context Modifi 	Function
Mouse 1 	FS      A       Resize-or-Raise
Mouse 1		I       A       Move-or-Iconify
Mouse 1		T       A       Move-or-Raise

# Button 2 in an Icon is de-iconify, in Corners/Sides/Titlebar gets Ops Menu
#     Button	Context Modifi 	Function
Mouse 2 	I       A       Iconify
Mouse 2 	FST     A       Menu Window-Ops2 Nop

# Button 3 does a raise-lower on anything
Mouse 3 	TSIF    A       RaiseLower

############################################################################
# KEYBOARD Setup
#
# press shift arrow + control anywhere, and move the pointer by 1% of a page
Key Left	A	SC	CursorMove -1  +0
Key Right	A	SC	CursorMove +1  +0
Key Up		A	SC	CursorMove +0  -1
Key Down	A	SC	CursorMove +0  +1

# press shift arrow + meta key, and move the pointer by 1/10 of a page
Key Left	A	SM	CursorMove -10  +0
Key Right	A	SM	CursorMove +10  +0
Key Up		A	SM	CursorMove +0  -10
Key Down	A	SM	CursorMove +0  +10

# Keyboard accelerators
Key F1		A	MC	Popup "RootMenu"
Key F2		A	MC	Popup "Window-Ops"
Key F3		A	MC	Iconify
Key F4		A	MC	Move
Key F5		A	MC	Resize
Key F6		A	MC	Next [*] focus
Key F7		A	MC	Prev [*] focus

# .fvwm2rc ends here.
############################################################################

-- 
		<a href="http://www.ccil.org/~esr">Eric S. Raymond</a>

---

From: Don Fisher <[email-masked]>
Date: Thu, 10 Jul 1997 12:18:03 -0700

I am running Wabi 2.28 under FVWM with no patches or problems.  I am now
using FVWM95 2.0.43a.

Just another data point!

don
-- 
*******************************************************************
*    Don Fisher				  [email-masked]  *
*    MMT Observatory			  VOICE: (520)621-7647	  *
*    University of Arizona    		  FAX:   (520)670-5740	  *            
*    Tucson, AZ  85721                				  *              
*******************************************************************
--
Visit the official FVWM web page at <URL:http://www.hpc.uh.edu/fvwm/>.
To unsubscribe from the list, send "unsubscribe fvwm" in the body of a
message to [email-masked].
To report problems, send mail to [email-masked].