Subject: Re: FVWM: FVWM configuration.

From: Alex Wallis <[email-masked]>
Date: Fri, 01 Feb 2002 23:05:39 +1030

Dominik Vogt wrote:
> 
> On Thu, Jan 24, 2002 at 08:05:13PM +0530, Narendra.M. wrote:
> > Hello guys,
> >
> > I am working on a configuration tool for FVWM (and similar WMs). Its called fvwmrcedit
> > and is hosted at SourceForge.net (fvwmrcedit.sourceforge.net). It writes and edits fvwmrc
> > files and is written using the Xt toolkit and the Athena widget set. I have covered basic
> > options to some extent and am now working on editing menus (that part is not complete).
> > Hope you guys will have a look at it and try it out. Thanks in advance.
> 
> We are definitely interested in such a tool.  I didn't have time
> to look at it yet, but I'll do so as soon as I can.  It would be
> a good idea to join the fvwm-workers mailing and to discuss the
> overall design and how the tool is intended to be integrated with
> fvwm.
> 

I'd just like to point out that fvwm already has everything it needs to
create a set of configuration gui's due to Dan's enhancements of the
FvwmForm module to enable them to read & write to file. A couple of
years ago I actually attempted to utilise this method to create a
complete config tool but received very little or no interest.

Eventually I was persuaded to abandon the project in favour of the new
fvwm-themes project, but I'm hoping to now ressurect it to create some
gui config tools for fvwm-themes.

I attach a simple form to configure the FvwmWinList module as an
example. This form is still just an example and should be optimised at
some stage but it works. Invoke it normally as Module FvwmForm
FvwmForm-WinList then once you have saved your settings it should
automatically reload them upon each invocation a la FvwmForm-Form.

This method would enable building a config tool without the need for any
other software other than fvwm itself. Perhaps FvwmScript's capabilities
of swallowing other forms and scripts could be used to keep the suite of
gui's tidy?

Alex

#-------------------------------------------------------------------------------------------#
#                   FvwmForm-WinList   by   Alex Wallis <[email-masked]>
#-------------------------------------------------------------------------------------------#
DestroyModuleConfig FvwmForm-WinList: *

*FvwmForm-WinList: WarpPointer
*FvwmForm-WinList: Line center
*FvwmForm-WinList: Text "Form to configure FvwmWinList"
*FvwmForm-WinList: Line center
*FvwmForm-WinList: Text "#--------------------------------------------------------------------#"
*FvwmForm-WinList: Line center
*FvwmForm-WinList: Text "Refer \"man FvwmWinList\" for details."
*FvwmForm-WinList: Line center
*FvwmForm-WinList: Text "Geometry"
*FvwmForm-WinList: Input GeomX 6 ""
*FvwmForm-WinList: Text "X"
*FvwmForm-WinList: Input GeomY 6 ""
*FvwmForm-WinList: Text "Y  --  Font"
*FvwmForm-WinList: Input WLFont 40 ""
*FvwmForm-WinList: Line right
*FvwmForm-WinList: Text "Colorset"
*FvwmForm-WinList: Input ColMain 3 ""
*FvwmForm-WinList: Text "          ButtonFrameWidth"
*FvwmForm-WinList: Input BFWidth 3 ""
*FvwmForm-WinList: Text "                "
*FvwmForm-WinList: Line right
*FvwmForm-WinList: Text "FocusColorset"
*FvwmForm-WinList: Input ColFocus 3 ""
*FvwmForm-WinList: Text "                  MinWidth"
*FvwmForm-WinList: Input MinW 3 ""
*FvwmForm-WinList: Text "                "
*FvwmForm-WinList: Line right
*FvwmForm-WinList: Text "IconColorset"
*FvwmForm-WinList: Input ColIcon 3 ""
*FvwmForm-WinList: Text "                  MaxWidth"
*FvwmForm-WinList: Input MaxW 3 ""
*FvwmForm-WinList: Text "                "
*FvwmForm-WinList: Line center
*FvwmForm-WinList: Text "#------------------------- Options -------------------------#"
*FvwmForm-WinList: Line center
*FvwmForm-WinList: Selection	Opts	multiple
*FvwmForm-WinList: Choice	DepFoc	DepFoc	off	"DontDepressFocus"
*FvwmForm-WinList: Choice	FWList	FWList	off	"FollowWindowList"
*FvwmForm-WinList: Choice	USList	USList	off	"UseSkipList     "
*FvwmForm-WinList: Choice	SCDesk	SCDesk	off	"ShowCurrentDesk "
*FvwmForm-WinList: Line center
*FvwmForm-WinList: Choice	NoAnch	NoAnch	off	"NoAnchor        "
*FvwmForm-WinList: Choice	UIName	UIName	off	"UseIconNames    "
*FvwmForm-WinList: Choice	LeftJ	LeftJ	off	"LeftJustify     "
*FvwmForm-WinList: Choice	TruncL	TruncL	off	"TruncateLeft    "
*FvwmForm-WinList: Line center
*FvwmForm-WinList: Text "#-------------------- Actions & Responses --------------------#"
*FvwmForm-WinList: Line center
*FvwmForm-WinList: Text "Click1"
*FvwmForm-WinList: Input	Clk1	30	""
*FvwmForm-WinList: Text "      Click2"
*FvwmForm-WinList: Input	Clk2	30	""
*FvwmForm-WinList: Line center
*FvwmForm-WinList: Text "Click3"
*FvwmForm-WinList: Input	Clk3	30	""
*FvwmForm-WinList: Text "NoIconAction"
*FvwmForm-WinList: Input NoIAct	30	""
*FvwmForm-WinList: Line left
*FvwmForm-WinList: Text ""
*FvwmForm-WinList: Line expand
*FvwmForm-WinList: Button	quit	"F1 - Save"	F1
*FvwmForm-WinList: Command	DestroyModuleConfig SavedFvwmWinList*
*FvwmForm-WinList: Command !(/bin/echo \
'# This file last created by FvwmForm-WinList. on :`/bin/date`.'	; /bin/echo \
'*SavedFvwmWinList: WLTheme $(WLTheme)'				; /bin/echo \
'*SavedFvwmWinList: GeomX $(GeomX)'				; /bin/echo \
'*SavedFvwmWinList: GeomY $(GeomY)'				; /bin/echo \
'*SavedFvwmWinList: WLFont $(WLFont)'				; /bin/echo \
'*SavedFvwmWinList: ColMain $(ColMain)'				; /bin/echo \
'*SavedFvwmWinList: ColFocus $(ColFocus)'			; /bin/echo \
'*SavedFvwmWinList: ColIcon $(ColIcon)'				; /bin/echo \
'*SavedFvwmWinList: BFWidth $(BFWidth)'				; /bin/echo \
'*SavedFvwmWinList: MinW $(MinW)'				; /bin/echo \
'*SavedFvwmWinList: MaxW $(MaxW)' ) > $HOME/.fvwm/.FvwmWinList
*FvwmForm-WinList: Command !(/bin/echo \
'*SavedFvwmWinList: DepFoc "$(DepFoc?on)'			; /bin/echo \
'*SavedFvwmWinList: FWList $(FWList?on)'			; /bin/echo \
'*SavedFvwmWinList: USList $(USList?on)'			; /bin/echo \
'*SavedFvwmWinList: SCDesk $(SCDesk?on)'			; /bin/echo \
'*SavedFvwmWinList: NoAnch $(NoAnch?on)'			; /bin/echo \
'*SavedFvwmWinList: UIName $(UIName?on)'			; /bin/echo \
'*SavedFvwmWinList: LeftJ $(LeftJ?on)'				; /bin/echo \
'*SavedFvwmWinList: TruncL $(TruncL?on)'			; /bin/echo \
'*SavedFvwmWinList: Clk1 $(Clk1)'				; /bin/echo \
'*SavedFvwmWinList: Clk2 $(Clk2)'				; /bin/echo \
'*SavedFvwmWinList: Clk3 $(Clk3)'				; /bin/echo \
'*SavedFvwmWinList: NoIAct $(NoIAct)' ) >> $HOME/.fvwm/.FvwmWinList
*FvwmForm-WinList: Command !(/bin/echo \
'# This file last created by FvwmForm-WinList. on :`/bin/date`.'	; /bin/echo \
'DestroyModuleConfig FvwmWinList: * '				; /bin/echo \
'$(GeomX?*FvwmWinList: Geometry $(GeomX) $(GeomY))'		; /bin/echo \
'$(WLFont?*FvwmWinList: Font $(WLFont))'			; /bin/echo \
'$(ColMain?*FvwmWinList: Colorset $(ColMain))'			; /bin/echo \
'$(ColFocus?*FvwmWinList: FocusColorset $(ColFocus))'		; /bin/echo \
'$(ColIcon?*FvwmWinList: IconColorset $(ColIcon))'		; /bin/echo \
'$(BFWidth?*FvwmWinList: ButtonFrameWidth $(BFWidth))'		; /bin/echo \
'$(MinW?*FvwmWinList: MinWidth $(MinW))' ) > $HOME/.fvwm/ConfigFvwmWinList
*FvwmForm-WinList: Command !(/bin/echo \
'$(MaxW?*FvwmWinList: MaxWidth $(MaxW))'			; /bin/echo \
'$(DepFoc?*FvwmWinList: DontDepressFocus)'			; /bin/echo \
'$(FWList?*FvwmWinList: FollowWindowList)'			; /bin/echo \
'$(USList?*FvwmWinList: UseSkipList)'				; /bin/echo \
'$(SCDesk?*FvwmWinList: ShowCurrentDesk)'			; /bin/echo \
'$(NoAnch?*FvwmWinList: NoAnchor)'				; /bin/echo \
'$(UIName?*FvwmWinList: UseIconNames)'				; /bin/echo \
'$(LeftJ?*FvwmWinList: LeftJustify)'				; /bin/echo \
'$(TruncL?*FvwmWinList: TruncateLeft)' ) > $HOME/.fvwm/ConfigFvwmWinList
*FvwmForm-WinList: Command !(/bin/echo \
'$(Clk1?*FvwmWinList: Action Click1 $(Clk1))'			; /bin/echo \
'$(Clk2?*FvwmWinList: Action Click2 $(Clk2))'			; /bin/echo \
'$(Clk3?*FvwmWinList: Action Click3 $(Clk3))'			; /bin/echo \
'$(NoIAct?*FvwmWinList: NoIconAction $(NoIAct))' ) >> $HOME/.fvwm/ConfigFvwmWinList
*FvwmForm-WinList: Command Module FvwmForm FvwmForm-WinList "WLFile=$HOME/.fvwm/.FvwmWinList"
*FvwmForm-WinList: Button	continue	"F2 - Test"	F2
*FvwmForm-WinList: Command KillModule FvwmWinList
*FvwmForm-WinList: Command Read $HOME/.fvwm/ConfigFvwmWinList
*FvwmForm-WinList: Command Module FvwmWinList
*FvwmForm-WinList: Button	restart	"F3 - Reset"	F3
*FvwmForm-WinList: Command	Nop
*FvwmForm-WinList: Button	quit	"F4 - Dismiss"	F4
*FvwmForm-WinList: Command	DestroyModuleConfig SavedFvwmWinList*
*FvwmForm-WinList: Command	Nop
*FvwmForm-WinList: UseData $HOME/.fvwm/.FvwmWinList *SavedFvwmWinList
#-------------------------------------End of Form--------------------------------------------#