sync code with last improvements from OpenBSD
This commit is contained in:
commit
88965415ff
26235 changed files with 29195616 additions and 0 deletions
98
app/fvwm/docs/ANNOUNCE
Normal file
98
app/fvwm/docs/ANNOUNCE
Normal file
|
@ -0,0 +1,98 @@
|
|||
Nobody believed it would ever happen, but
|
||||
|
||||
_______ __ __ __
|
||||
/ _____/__ / / / / / /
|
||||
/ / /_/ / / / / / /
|
||||
/ /___ __ ______ _____ / / / / __ __ / /
|
||||
/ ____/ / / / ____ \ / ___ \ / / / / / / / / / /
|
||||
/ / / / / / / / / / / / / / / / / / / / /_/
|
||||
/ / / / / / / / / /__/ / / / / / / /___/ / __
|
||||
/_/ /_/ /_/ /_/ /_______//_/ /_/ /_____ / /_/
|
||||
____________________________________________ / / ____
|
||||
_____/ /
|
||||
/______/
|
||||
|
||||
|
||||
The F???? Virtual Window Manager workers list is very pleased to
|
||||
announce the first official version of Fvwm2 ever:
|
||||
|
||||
___ __ __ __ __ _ _ ___ ___
|
||||
| __| || || || || /\\//\ // \\ // \\
|
||||
||_ || || || || // \/ \\ // //
|
||||
| _| || || || || || || // //
|
||||
|| \\// \\ /\ // || || //__ _ //__
|
||||
|| \/ \//\\/ || || /____| |_| /____|
|
||||
|
||||
|
||||
Available at http://www.fvwm.org/ it includes the following
|
||||
|
||||
Highlights:
|
||||
|
||||
** GNU autoconf support for better portability.
|
||||
|
||||
** Dramatically improved menu handling with animated menus,
|
||||
proper cursor key navigation and better overall flexibility.
|
||||
|
||||
** SnapAttraction and SnapGrid commands allow you to line up
|
||||
windows and icons with ease.
|
||||
|
||||
** FvwmAnimate module controlling animated iconification.
|
||||
|
||||
** New syntax for menu styles (MenuStyle) with greatly enhanced
|
||||
configurability.
|
||||
|
||||
** Enhanced focus handling (Direction commands).
|
||||
|
||||
** Animated panels in FvwmButtons (like in CDE or VUE).
|
||||
|
||||
** FvwmEvent is the more flexible successor of FvwmAudio.
|
||||
FvwmAudio is still available.
|
||||
|
||||
And more...
|
||||
|
||||
* The ClickToFocusClickRaises option to the GlobalOpts command
|
||||
(click in a window to raise it if you use mouse focus).
|
||||
|
||||
* A new web site and a bug tracking system.
|
||||
|
||||
* Faster startup.
|
||||
|
||||
* Limiting color usage with the ColorLimit command.
|
||||
|
||||
* Mini titles for FvwmPager (aka Balloons).
|
||||
|
||||
* Multiple Icon Boxes, Icon box grids, and Icon box fill
|
||||
direction control.
|
||||
|
||||
* Improved FvwmButtons button placement to give absolute control
|
||||
over where the buttons are placed.
|
||||
|
||||
* FvwmTile and FvwmCascade modules have been combined into the
|
||||
new module FvwmRearrange. Shell scripts for FvwmTile and
|
||||
FvwmCascade provide backwards compatibility.
|
||||
|
||||
* FvwmPager displays the current desk.
|
||||
|
||||
* Consistent page handling commands MoveToPage and MoveToDesk.
|
||||
|
||||
* Switch window focus with Alt-Tab, as in other popular GUI
|
||||
systems (please read question 3.3 in the FAQ).
|
||||
|
||||
* The EdgeThickness command offers a way to make auto hide work
|
||||
more smoothly in FvwmTaskBar.
|
||||
|
||||
* New commands DefaultFont, DefaultColors and Emulate.
|
||||
|
||||
* More consistent and often simpler syntax of configuration file.
|
||||
|
||||
* Lots of bug fixes to improve stability and portability.
|
||||
|
||||
* Consistent copying policy.
|
||||
|
||||
and many small enhancements too numerous to list here.
|
||||
|
||||
|
||||
More detailed information on the contents of this release can be
|
||||
found at:
|
||||
|
||||
http://www.fvwm.org/NEWS.html
|
79
app/fvwm/docs/BUGS
Normal file
79
app/fvwm/docs/BUGS
Normal file
|
@ -0,0 +1,79 @@
|
|||
Herein lies the (partial?) list of Known Bugs. Further bug reports
|
||||
(or even better, solutions) can be sent to the FVWM mailing list (see
|
||||
the FAQ for address and how to PROPERLY report bugs).
|
||||
|
||||
See 'Bugfixes' section of the TODO list for additional known bugs and
|
||||
be sure to have a look at the bug tracking system that can be reached
|
||||
from our home page.
|
||||
|
||||
======================================================================
|
||||
======================================================================
|
||||
|
||||
- No geometry can be specified for FvwmButtons panels.
|
||||
- Running fvwm2 on an XNest X server does not work well.
|
||||
- FvwmSave and FvwmSaveDesk are not up to date.
|
||||
- The fvwm_convert script is not up to date.
|
||||
- xscreensaver may not be able to allocate a private colormap
|
||||
- FvwmButtons and possibly other modules may survive shutdown of the X
|
||||
server.
|
||||
- AutoHide in FvwmTaskBar does not work well. See 'EdgeThickness' command in
|
||||
the manpage.
|
||||
- DestroyMenu/DestroyFunc causes a coredump if a function/menu destroys
|
||||
itself.
|
||||
- Maximize does not work well when applied to a window that is not on
|
||||
the current page.
|
||||
- A piperead command may hang if used in .fvwm2rc (if the pipe is never
|
||||
closed).
|
||||
- StartsOnPage does not work as expected? Please read the manpage carefully.
|
||||
|
||||
|
||||
======================================================================
|
||||
======================================================================
|
||||
|
||||
Configure remembers too many things, particularly with respect to the
|
||||
optional libraries. If you ever need to re-run configure, using
|
||||
different --with options, please remove "config.cache" file first.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Binding a key to a window decoration but not to the window itself is
|
||||
discouraged because when the key-press event finally gets to the
|
||||
window it will be marked as SYNTHETIC and will be ignored by many
|
||||
applications.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Sending DESTROY window manager options to applications is a bad way to
|
||||
close them and should only be used as a last resort. Strange things
|
||||
can happen. Please try DELETE and CLOSE first.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Some users have seen intermittent problems with XEmacs version 19.13
|
||||
not being refreshed correctly after a restart of fvwm2. If this
|
||||
occurs, you should be able to open a new frame and delete the old one.
|
||||
I can't debug this, as I don't see this problem. I don't know if the
|
||||
problem is from XEmacs, fvwm2, or something specific to a few user's
|
||||
setups.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Some users have been getting odd startup problems, like total lockups.
|
||||
I cannot reproduce this, and have no idea why. Let me know if you see
|
||||
this and find a way to consistently reproduce it.
|
||||
|
||||
Actually, I've recently discovered that this is often from not having
|
||||
a .fvwm2rc file, so check that first... But this is fixed in the
|
||||
later versions.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Fvwm attempts to be ICCCM 1.1 compliant. In addition, ICCCM
|
||||
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 fvwm2 and
|
||||
another fvwm2 running within Xnest (a nested X server). The same problem
|
||||
exists with mouse bindings.
|
||||
|
||||
----------------------------------------------------------------------
|
154
app/fvwm/docs/ChangeLog
Normal file
154
app/fvwm/docs/ChangeLog
Normal file
|
@ -0,0 +1,154 @@
|
|||
1999-10-15 Dominik Vogt <dominik.vogt@gmx.de>
|
||||
|
||||
* Makefile.am (HTML): removed version.html again
|
||||
|
||||
1999-02-19 Dominik Vogt <dominik_vogt@hp.com>
|
||||
|
||||
* download.html: updated for 2.2
|
||||
|
||||
* version.html: updated for 2.2
|
||||
|
||||
* fvwm.lsm: updated for 2.2
|
||||
|
||||
* ANNOUNCE: Updated for 2.2
|
||||
|
||||
1999-02-18 Dominik Vogt <dominik_vogt@hp.com>
|
||||
|
||||
* FAQ: restructured FAQ and incorporated configuration-hints file
|
||||
* configuration-hints: file removed
|
||||
|
||||
1999-02-15 Dominik Vogt <dominik_vogt@hp.com>
|
||||
|
||||
* configuration-hints: Added new file.
|
||||
|
||||
* ANNOUNCE: updated for 2.1.13
|
||||
|
||||
1999-02-14 Dominik Vogt <dominik_vogt@hp.com>
|
||||
|
||||
* Makefile.am (EXTRA_DIST): removed fvwm-2.xx.lsm from distribution
|
||||
|
||||
* FAQ (15): Added RedHat configuration question
|
||||
|
||||
1999-02-04 Paul D. Smith <psmith@gnu.org>
|
||||
|
||||
* cvs.html: Update CVS pserver hostname.
|
||||
* links.html: Update web site, ftp site, and mailing list URLs.
|
||||
* FAQ: Ditto.
|
||||
* download.html: Ditto.
|
||||
* ftp.html: Ditto.
|
||||
* fvwm-2.2.lsm: Ditto.
|
||||
* mailinglist.html: Ditto.
|
||||
* version.html: Ditto.
|
||||
* fvwm-2.xx.lsm: Ditto.
|
||||
|
||||
1999-02-02 Paul D. Smith <psmith@gnu.org>
|
||||
|
||||
* FAQ: Rewrote question 13 about XPM support.
|
||||
|
||||
1999-01-19 Paul D. Smith <psmith@gnu.org>
|
||||
|
||||
* ANNOUNCE: Update.
|
||||
* FAQ: Update new URLs.
|
||||
|
||||
1999-01-19 Steven Michael ROBBINS <stever@jeff.cs.mcgill.ca>
|
||||
|
||||
* cvs.html: Major overhaul, bringing it up-to-date with current
|
||||
conventions. Added links to the GNU tools needed for building the
|
||||
CVS tree.
|
||||
|
||||
* DEVELOPERS: Fixed a bug in the recipe for building a
|
||||
distribution (use "cvs tag", rather than "cvs rtag"). Also
|
||||
updated to reflect the situation after the auto*-generated files
|
||||
are removed.
|
||||
|
||||
* BUGS: Removed Xpm library v4.7 coredump note. The configure
|
||||
script now ensures up-to-date xpm is used. Added note about
|
||||
removing config.cache file before reconfiguring.
|
||||
|
||||
1999-01-18 Paul D. Smith <psmith@gnu.org>
|
||||
|
||||
* BUGS: Remove install-strip issue.
|
||||
|
||||
Sun Jan 17 16:07:15 1999 Steve Robbins <steve@nyongwa.montreal.qc.ca>
|
||||
|
||||
* FAQ: Fiddled with answers to: 4, 7, 13, 24, 32, 40. A few other
|
||||
spelling fixes.
|
||||
|
||||
1999-01-16 Bob Woodside <proteus@pcnet.com>
|
||||
|
||||
* docs/FAQ: Removed Question 20 (why do Motif popups disappear
|
||||
under the window with Autoraise in effect, etc.?). This no longer
|
||||
happens as of 2.1.8. Added Question 49 (why can't I use StartIconic
|
||||
with Netscape, etc.?).
|
||||
|
||||
1999-01-16 Dominik Vogt <dominik_vogt@hp.com>
|
||||
|
||||
* ANNOUNCE: updated for 2.1.8
|
||||
|
||||
1999-01-04 Dan Espen <dane@mk.bellcore.com>
|
||||
|
||||
* version.html: Changed to ask for bug reports to be entered into
|
||||
the Fvwm bug tracking system.
|
||||
|
||||
* download.html: Changed to ask for bug reports to be entered into
|
||||
the Fvwm bug tracking system.
|
||||
|
||||
Tue Dec 1 15:33:26 1998 DanEspen <dje@blue>
|
||||
|
||||
* download.html: Updated beta download URL to 2.1.4.
|
||||
|
||||
1998-11-30 Dan Espen <dane@mk.bellcore.com>
|
||||
|
||||
* download.html: Updated beta download URL to 2.1.3.
|
||||
Added link to /pub/fvwm.
|
||||
|
||||
* index.html: Corrected URL for bug tracking system.
|
||||
|
||||
1998-11-25 Dan Espen <dane@mk.bellcore.com>
|
||||
|
||||
* index.html: Linked main page to bug tracking system.
|
||||
|
||||
* black-stone1.jpg: A little darker version.
|
||||
|
||||
1998-11-23 Dan Espen <dane@mk.bellcore.com>
|
||||
|
||||
* man-pages.html: removed -man from the file names.
|
||||
|
||||
1998-11-12 Dan Espen <dane@mk.bellcore.com>
|
||||
|
||||
* cvs.html (Deleting Directories and Files): Added description of
|
||||
file deletion process.
|
||||
|
||||
* cvs.html (Getting_Updates): Added example of how to resolve a
|
||||
conflict during an update.
|
||||
|
||||
Tue Nov 10 07:11:44 1998 Steve Robbins <steve@nyongwa.montreal.qc.ca>
|
||||
|
||||
* Makefile.am: Fixed up the list of files *again*.
|
||||
|
||||
1998-11-05 Steven Michael ROBBINS <stever@jeff.cs.mcgill.ca>
|
||||
|
||||
* cvs.html: Fixed the examples of anonymous CVS. Added a note
|
||||
that the head of the CVS tree is alpha code.
|
||||
|
||||
* Makefile.am: Fixed up the distributed-files list to include all
|
||||
the HTML Dan added yesterday.
|
||||
|
||||
1998-11-05 Dan Espen <dane@mk.bellcore.com>
|
||||
|
||||
* txt2html.sh (outfile): Replaced txt2html.ksh with txt2html.sh.
|
||||
Added logic to handle '<>&' special characters in text.
|
||||
|
||||
1998-11-04 Dan Espen <dane@mk.bellcore.com>
|
||||
|
||||
* Added README, black-stone1.jpg, index.html, fvwm.gif,
|
||||
download.html features.html, mailinglist.html, docs.html,
|
||||
modules.html, mod_changes.html, mod_concept.html,
|
||||
mod_security.html, mod_initialization.html,
|
||||
mod_m2f_communication.html, mod_f2m_communication.html,
|
||||
links.html, txt2html.ksh.
|
||||
|
||||
The main docs come from the web site, the module docs are restructured,
|
||||
and updated.
|
||||
|
||||
|
114
app/fvwm/docs/DEVELOPERS
Normal file
114
app/fvwm/docs/DEVELOPERS
Normal file
|
@ -0,0 +1,114 @@
|
|||
Living with CVS and Autoconf -*-text-*-
|
||||
----------------------------
|
||||
|
||||
These notes are intended for code developers.
|
||||
|
||||
You will need to install several GNU tools to be able to use the cvs
|
||||
sources. If you do not have these tools available, build from the tar
|
||||
file distribution instead, available from ftp.fvwm.org.
|
||||
|
||||
To build from the CVS sources, you will need:
|
||||
* GNU gcc
|
||||
* GNU make
|
||||
* autoconf (version >= 2.13)
|
||||
* automake (version >= 1.4)
|
||||
|
||||
|
||||
Changing a Makefile
|
||||
-------------------
|
||||
|
||||
First of all, NEVER edit anything named Makefile, or Makefile.in. These
|
||||
are both derived from the corresponding Makefile.am. The most common
|
||||
reason for editing is to change the list of sources.
|
||||
|
||||
Steps: 1. edit foo/blah/Makefile.am
|
||||
2. re-run "make" from the top of the build directory
|
||||
|
||||
Step 2 will take care of rebuilding the Makefile.in and Makefile from your
|
||||
changed Makefile.am.
|
||||
|
||||
Makefile.am has a simple format, basically:
|
||||
|
||||
bin_PROGRAMS = fvwm2
|
||||
|
||||
fvmw2_SOURCES = blah.c blah.h foo.c foo.h ...
|
||||
|
||||
Notice that you have to add all files, C-code *and* headers, to the
|
||||
_SOURCES line. This is vital, because this is the list of files that are
|
||||
packed into the distribution. If you leave one out, nobody will be able
|
||||
to build the distributed tar file!
|
||||
|
||||
|
||||
Changing configure.in
|
||||
---------------------
|
||||
|
||||
The most common reason to do this is to change the version string. If
|
||||
you're editing it for any other reason, I will assume you know what you're
|
||||
doing.
|
||||
|
||||
Steps: 1. edit configure.in, and find the line containing
|
||||
AM_INIT_AUTOMAKE(fvwm, x.y.z) at the top of the file
|
||||
2. change x.y.z to the new version string
|
||||
3. re-run "make" from the top of the build directory
|
||||
|
||||
Step 3 will take care of rebuilding the configure script, and usually all
|
||||
the other Makefiles.
|
||||
|
||||
|
||||
Building a distribution
|
||||
-----------------------
|
||||
|
||||
By this, I mean the file "fvwm-x.y.z.tar.gz".
|
||||
|
||||
Steps: 1. make sure you have XPM and a C++ compiler
|
||||
2. configure with the flag --enable-extras
|
||||
3. make
|
||||
4. make distcheck
|
||||
5. ensure that you see the message
|
||||
"fvwm-x.y.z.tar.gz ready for distribution"
|
||||
|
||||
If this is to be an "official" release, then do also the following:
|
||||
|
||||
6. tag the CVS tree:
|
||||
cvs tag version-x_y_z
|
||||
7. increase the version number in configure.in (see above)
|
||||
8. upload the file fvwm-x.y.z.tar.gz to
|
||||
ftp://ftp.fvwm.org/pub/incoming/fvwm
|
||||
9. notify fvwm-owner@fvwm.org of the upload
|
||||
|
||||
|
||||
One thing I've learned the hard way:
|
||||
|
||||
You have to configure with ALL THE OPTIONAL SUBDIRECTORIES
|
||||
in order to build a distribution!
|
||||
|
||||
In short: this means you need Xpm, and a C++ compiler, AND you have to
|
||||
configure using the flag --enable-extras. The reason for this is that
|
||||
a couple of subdirectories are only built when using Xpm (xpmroot, for
|
||||
example) or C++ (extras/FvwmConfig). It is fine for end users to not
|
||||
build these. However, the distribution-maker has to have all the
|
||||
directories enabled, else the files don't make it into the
|
||||
distribution tar file.
|
||||
|
||||
Similarly, you need to have actually built everything before packing
|
||||
the distribution, hence step #4. Among other things, this puts into
|
||||
the Makefile.in's the proper dependency information.
|
||||
|
||||
Step 5 will create the tar file, then unpack it and attempt a build &
|
||||
install (to a scratch directory, not /usr/local). This makes sure
|
||||
that you really DID include all the files necessary to build the
|
||||
package into the tar file. It may be hard to appreciate how useful
|
||||
this is, until it has reminded you that you forgot file "foo.h" in
|
||||
some _SOURCES line. But trust me, it will save your bacon in this way
|
||||
some day!
|
||||
|
||||
|
||||
Modules and Extras
|
||||
------------------
|
||||
|
||||
There are short notes at the top of all the extras/*/Makefile.am files
|
||||
about what may have differed vis-a-vis the old Imakefiles. Some of
|
||||
the modules, for example (currently fvwmpython and fvwmperl) have no
|
||||
install rules at all.
|
||||
|
||||
|
1521
app/fvwm/docs/FAQ
Normal file
1521
app/fvwm/docs/FAQ
Normal file
File diff suppressed because it is too large
Load diff
58
app/fvwm/docs/README
Normal file
58
app/fvwm/docs/README
Normal file
|
@ -0,0 +1,58 @@
|
|||
Dan Espen, November 1, 1998. No particular copyright attached.
|
||||
|
||||
This directory contains some of the fvwm2 documentation, including the
|
||||
web pages that normally reside at the fvwm hosting site.
|
||||
|
||||
Unless you don't have internet access, there is no reason to install
|
||||
these files at your site.
|
||||
|
||||
In this directory is the shell, txt2html.sh. This is normally run
|
||||
to take text files from the fvwm source distribution and turn them
|
||||
into HTML.
|
||||
|
||||
Also in this directory is the shell run_man2html.sh. This shell
|
||||
invokes man2html which must be separately installed. (Special fvwm2
|
||||
sytle headers and colors are generated by the shell.)
|
||||
|
||||
As a release is shipped, txt2html.sh and run_man2html.sh would
|
||||
normally be run in the directory where the resulting html is wanted.
|
||||
|
||||
This shell would be run for the files, NEWS, TODO, and FAQ.
|
||||
|
||||
This is a description of the files in this directory, showing the
|
||||
heirarchical structure of the web pages. Cross-reference type links
|
||||
from one page to another are not shown.
|
||||
|
||||
|
||||
README - This file
|
||||
black-stone1.jpg - Background for all the pages
|
||||
index.html - main page
|
||||
fvwm.gif - image, only used on index page
|
||||
download.html
|
||||
features.html
|
||||
mailinglist.html
|
||||
(mail archive not here, tool generated)
|
||||
docs.html
|
||||
(FAQ.html - txt2html.sh generated)
|
||||
(mail archive not here, tool generated)
|
||||
(TODO.html - txt2html.sh generated)
|
||||
(manual pages not here, tool generated)
|
||||
modules.html
|
||||
mod_changes.html
|
||||
mod_concept.html
|
||||
mod_security.html
|
||||
mod_initialization.html
|
||||
mod_m2f_communication.html
|
||||
mod_f2m_communication.html
|
||||
links.html
|
||||
(news.html - txt2html.sh generated)
|
||||
txt2html.sh - shell for converting text to html
|
||||
run_man2html.sh - shell for generating fvwm sytle man pages
|
||||
|
||||
Generated files:
|
||||
NEWS.html
|
||||
TODO.html
|
||||
FAQ.html
|
||||
|
||||
All the man pages need to be generated. The need to be installed
|
||||
before the html can be generated. See run_man2html.sh.
|
297
app/fvwm/docs/TODO
Normal file
297
app/fvwm/docs/TODO
Normal file
|
@ -0,0 +1,297 @@
|
|||
======================================================================
|
||||
TO-DO list for fvwm 2.xx
|
||||
======================================================================
|
||||
|
||||
Please note that not everything on this list will be done, in
|
||||
particular the ones that end in '?' which are really just meant to be
|
||||
'think about this and perhaps investigate'. But they are things that
|
||||
I didn't want to lose track of. It may periodically get out of date
|
||||
too...
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Cleanups:
|
||||
|
||||
- Reindent the code and implement coding conventions(minimal).
|
||||
- Modules should be installed with 'install-exec', rather than
|
||||
'install-data' target. This requires putting 'exec' in the
|
||||
automake variable for the module directory; i.e. moduledir -->
|
||||
moduleexecdir?
|
||||
- Make fvwmlib a shared lib?
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Administration:
|
||||
|
||||
- Copy the entries from the debian bug tracking system
|
||||
http://www.debian.org/Bugs/db/pa/lfvwm2.html
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Doc cleanups:
|
||||
|
||||
- Add to FAQ
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Old Patches:
|
||||
|
||||
- Safer config file reading patch?
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Bugfixes:
|
||||
|
||||
- Change flags implementation to allow adding more Styles easily
|
||||
(bitfields?) - THE GREAT STYLE FLAG REWRITE (GSFR)
|
||||
- Rewrite VISIBLE/RAISED lags to do something comprehensible.
|
||||
- Fix Restart to not pass original (fvwm specific) options to other wm's
|
||||
- Run profiling on FVWM to see if I can speed it up any more
|
||||
- Try to decrease memory usage a little more
|
||||
- clean up code duplication (esp in modules) - more stuff in
|
||||
libfvwm2.a, plus perhaps a second module lib?
|
||||
- Change Motion vs Click vs DoubleClick to be calculated via a
|
||||
MotionThreshold and ClickTime:
|
||||
MotionThreshold exceeded -> Motion
|
||||
MotionThreshold not exceeded & ClickTime exceeded -> Click
|
||||
MotionThreshold not exceeded & ClickTime not exceeded -> DoubleClick
|
||||
- Make transient FvwmWinList reposition itself & pointer if popped up
|
||||
off the screen (like built in menus)
|
||||
- Maximize XTerm, change font, UnMaximize, XTerm goes to wrong window size
|
||||
(still unfixed on 28-Nov-1998)
|
||||
- Colormaps and xlock -install -mode blank (& swirl) interaction still
|
||||
isn't 100% correct?
|
||||
- bring back 'TogglePage'?
|
||||
- Setting keys via FvwmTalk or Read requires Recapture to take effect?
|
||||
- System Modal dialogs bug - popup menus shouldn't be allowed?? I think
|
||||
this is ok, actually...
|
||||
- Fix FvwmDeskTopScale size calculation
|
||||
- Need to fix to work correctly under 24bit (TrueColor) displays
|
||||
- Esc during moves, etc can result in windows being "lost" off desktop
|
||||
- Should also have way to make windows off desktop be recovered easier
|
||||
- Transients of transients don't get raised correctly sometimes?
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
New stuff:
|
||||
|
||||
- Official themes support
|
||||
|
||||
- Allow resizing to leave the x/y ratio intact?
|
||||
|
||||
- Pin up menus? (aka known as tear-off menus)
|
||||
- Multi column menus? (for LONG lists) Or scrolling menus?
|
||||
|
||||
- Private colormap option for menus?
|
||||
|
||||
- Recapture, one window only option
|
||||
|
||||
- Access to certain window attribs from .fvwm2rc funcs, and
|
||||
simple if/else capabilities (or perhaps a module to do so)??
|
||||
- Simple static variables for .fvwm2rc functions (for toggles, etc)??
|
||||
|
||||
- Add StayOnBottom style?
|
||||
|
||||
- Add ClickToFocusDontPassClick style (so initial click inside
|
||||
window doesn't get passed to the app, just changes focus).
|
||||
- Add ClickToFocusNoInitialFocus so windows don't get the focus when
|
||||
they pop up.
|
||||
- Should the previous be parms to ClickToFocus instead of styles?
|
||||
|
||||
- Add NeverFocus style?
|
||||
- Make sure fvwm handles all 4 focus states from the ICCCM (I don't
|
||||
think it handles a certain one of them 100% correctly).
|
||||
|
||||
- Resurrect StubbornPlacement style
|
||||
- Add StickyOnDesk <number> style, to allow stickyness on certain
|
||||
desks only, or perhaps a StaysOnDesk <num> style, to replace
|
||||
StartsOnDesk and work with the Sticky attribute, I'm not sure...
|
||||
Either way, multiple values need to be allowed
|
||||
- Need to indicate sticky icons somehow, and perhaps sticky windows
|
||||
that don't have a titlebar. I'd like to bring back the different
|
||||
color for the sticky windows as an option, if I can do it cleanly.
|
||||
Perhaps a special Decor now?
|
||||
|
||||
- Function to simulate button presses, to go with CursorMove? Might
|
||||
not be possible since many apps ignore SYNTHETIC events...
|
||||
|
||||
- Easy module name changes from .fvwm2rc (either using changes in
|
||||
module exec code & rc parser, or in modules themselves)
|
||||
|
||||
- Improved FvwmPager (add/rename desktops on fly)
|
||||
- A module that just has buttons for the active desktops, like desktop
|
||||
switcher in dtwm (COSE). Could be munged into FvwmPager.
|
||||
- See if it's possible to drop windows onto the pager ala olvwm?
|
||||
Don't really think it is.
|
||||
- Add option to not show sticky windows in pager. Perhaps also add
|
||||
ability to filter out windows based on name/class/resource?
|
||||
|
||||
- "Captive" fvwm (ala ctwm)?
|
||||
|
||||
- Allow size geometry specs for FvwmButtons & perhaps other modules
|
||||
(Pager).
|
||||
|
||||
- FvwmAuto additions for AutoLower & per window config (requires keywds?)
|
||||
- Module to X Select window Name, Class, Resource, ID, etc...??
|
||||
- FvwmMsgLog module to pop up a log of fvwm error msgs?
|
||||
|
||||
- Support for passwords in FvwmForm
|
||||
- Support for cut & paste in FvwmForm text fields (paste at least)
|
||||
- Add simple history mechanism for FvwmForm text fields?
|
||||
- Make FvwmForm have Resource & Class values
|
||||
- Fix line spacing in FvwmForm for lines that have only text (no buttons)
|
||||
so that FvwmForm can be used as a "Help" form.
|
||||
|
||||
- Add to module commincations to pass titlebar & button window ids to
|
||||
allow modules to muck with those windows (for animation, or whatever)?
|
||||
|
||||
- Mouse button chording?
|
||||
|
||||
- Add better overall icon handling options?
|
||||
Make an optional global free icon placement grid?
|
||||
|
||||
- More control over icon appearance (non 3D, fg/bg colors, constant
|
||||
size, gradients, etc)?
|
||||
|
||||
- Implement (or at least investigate) dynamic loading of functions
|
||||
on systems that support it?
|
||||
AIX - load
|
||||
Linux - dld (gnu) or dlopen (ELF)
|
||||
SunOS, Solaris, OSF - dlopen
|
||||
HP-UX - shl_*
|
||||
I don't know how much of a win this is over modules though. Less
|
||||
portable. Could be useful for changing border and menu styles or
|
||||
adding complex functions to the rc language dynamically.
|
||||
(Actually, this might be a big win for some modules, like the
|
||||
pager, autoraise, and the preprocessor modules - it would
|
||||
eliminate time delays in socket comm. Idea - dynloaded modules
|
||||
add hook functions that module comm functions invoke. Gives
|
||||
modules greater access to fvwm internals, although generic
|
||||
functions should be provided to actually access them. Both
|
||||
types of modules, socket & dyn, could be supported
|
||||
simultaneously?)
|
||||
|
||||
- Improve modules communications interface (collect the code, make it
|
||||
more intuitive, provide more generic interface to it, etc)
|
||||
|
||||
- A WindowGravity option that controlls placement direction choices
|
||||
for SmartPlacement (and perhaps RandomPlacement)? Perhaps make it
|
||||
a Style option??
|
||||
|
||||
- Add option for Prev/Next function to 'wrap' at ends of list?
|
||||
|
||||
- Ressurrect OpaqueResize (as a style option)
|
||||
|
||||
- Add twm SqeezeTitle functionality to TitleStyle stuff & merge into
|
||||
Style command, perhaps???
|
||||
|
||||
- Allow neg vals for Maximize to indicate from bottom/right of screen
|
||||
- Allow neg vals for Move to indicate from bottom/right of screen
|
||||
|
||||
- Add way to set keyword/value pairs to windows (via Atoms?) as a
|
||||
way for giving extra info to modules through style commands?
|
||||
|
||||
- Make GetConfigLine be more intelligent, to filter out what gets
|
||||
sent (for instance, pass module prefix to look for) and be able to
|
||||
ask for PixmapPath, etc instead of sending those w/ all the config
|
||||
info, so only the modules that need it could ask for it.
|
||||
(Note there is some functionality in libs/Parse.c to allow this).
|
||||
|
||||
- Go to just one IconPath instead of PixmapPath too?
|
||||
|
||||
- Allow Resize to have units of "what the window resizes by"
|
||||
- Bug in:
|
||||
AddToFunc resize-and-move "I" resize 100 100
|
||||
+ "I" move 100 300
|
||||
|
||||
- ToggleButtonStyle (to keep pushed in)?
|
||||
- Allow bitmap/mask files to define buttons as well?
|
||||
(Better: new alternate def like hl(x1,y1,x2,y2) sh(x1,y1,x2,y2))
|
||||
|
||||
- Make parm to Restart optional (to just restart current if not specified)
|
||||
|
||||
- Add a WaitForExec to force waiting for the last Exec command to
|
||||
finish, or an ExecAndWait function that doesn't return until
|
||||
command is finished (perhaps call it 'System', to match the C function)
|
||||
|
||||
- Make fvwm look at gravity when moving windows when reparenting, to
|
||||
change corner that gets "anchored" so windows w/ neg offsets are
|
||||
still placed correctly when bordered initially
|
||||
|
||||
- Investigate internationalization issues (handling of compound
|
||||
text, messages placed in a message catalog, etc) to see if they
|
||||
should be added at some point.
|
||||
|
||||
- Allow env var to specify an additional read directory ($FVWMRCDIR
|
||||
or $FVWMHOME or something similiar)?
|
||||
|
||||
- New module combining aspects of FvwmButtons, FvwmScript, FvwmForm,
|
||||
and Wharf to make one super module? (FvwmGUI or something like that?)
|
||||
|
||||
- Investigate reporting file, and line number when issuing error messages.
|
||||
Note that some commands are generated by modules, on pipes and in
|
||||
these cases it could be a little tricky figuring out where the command
|
||||
came from, and it doesn't really have a line number.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
My ideas for the GSFR:
|
||||
|
||||
Basically, I'd like to replace the current shifted bit masks over the
|
||||
'unsigned long flags' variable in the FvwmWindow structure with a
|
||||
union of an array of unsigned ints and a bunch of bitfields. Roughly
|
||||
like so:
|
||||
|
||||
/********************************/
|
||||
typedef struct FvwmWindow
|
||||
{
|
||||
...
|
||||
union flags
|
||||
{
|
||||
unsigned int allflags[NUM_INTS_FOR_FLAGS];
|
||||
struct f
|
||||
{
|
||||
unsigned int StartIconic:1;
|
||||
unsigned int OnTop:1;
|
||||
unsigned int Sticky:1;
|
||||
unsigned int StickyIcon:1;
|
||||
unsigned int SuppressIcon:1;
|
||||
unsigned int NoIconTitle:1;
|
||||
unsigned int Lenience:1;
|
||||
unsigned int WindowListSkip:1;
|
||||
unsigned int CirculateSkip:1;
|
||||
unsigned int CirculateSkipIcon:1;
|
||||
unsigned int FocusPolicy:2; /* MOUSE, SLOPPY, CLICK, NEVER */
|
||||
unsigned int ShowOnMap:1;
|
||||
unsigned int Border:1;
|
||||
unsigned int Title:1;
|
||||
unsigned int Mapped:1;
|
||||
unsigned int Iconified:1;
|
||||
unsigned int Transient:1;
|
||||
unsigned int Raised:1;
|
||||
unsigned int Visible:1;
|
||||
unsigned int IconOurs:1;
|
||||
unsigned int PixmapOurs:1;
|
||||
unsigned int ShapedIcon:1;
|
||||
unsigned int Maximized:1;
|
||||
} f;
|
||||
} flags;
|
||||
|
||||
} FvwmWindow;
|
||||
/********************************/
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
----------------------
|
||||
Bob Woodside's To-Do's
|
||||
----------------------
|
||||
|
||||
- investigate re-implementing the 2.0.46 Animated Windowshade patch
|
||||
using the module interface, like FvwmAnimate does for iconification
|
||||
|
||||
- merge (well, probably re-implement) my 2.0.46 patch to cause icon
|
||||
positions to be remembered across a Restart
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
7
app/fvwm/docs/Y2K-Compliance
Normal file
7
app/fvwm/docs/Y2K-Compliance
Normal file
|
@ -0,0 +1,7 @@
|
|||
Question: Is fvwm1/fvwm2 (version ...) year 2000 compliant?
|
||||
|
||||
Answer: Perhaps. Fvwm is a free software project. It is given away without
|
||||
charge and without any warranty. Everybody is invited to obtain the sources and
|
||||
check the code for year 2000 compliance (see our web page how to get the latest
|
||||
sources). We won't make any promises.
|
||||
|
BIN
app/fvwm/docs/black-stone1.jpg
Normal file
BIN
app/fvwm/docs/black-stone1.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
176
app/fvwm/docs/color_combos
Normal file
176
app/fvwm/docs/color_combos
Normal file
|
@ -0,0 +1,176 @@
|
|||
Return-Path: pdcruze@orac.iinet.com.au
|
||||
Return-Path: <pdcruze@orac.iinet.com.au>
|
||||
Received: from eagle.lmsc.lockheed.com by rocket (SPCOT.6)
|
||||
id AA28781; Wed, 8 Jun 94 09:59:32 EDT
|
||||
Errors-To: postmaster@iinet.com.au
|
||||
Received: from uniwa.uwa.edu.au by eagle.lmsc.lockheed.com (5.65/Ultrix4.3-C)
|
||||
id AA13589; Wed, 8 Jun 1994 06:57:23 -0700
|
||||
Received: from orac by iinet.com.au with smtp
|
||||
(Smail3.1.28.1 #7) id m0qBO9x-0003dGC; Wed, 8 Jun 94 21:59 WST
|
||||
Message-Id: <m0qBOB2-000D39C@orac>
|
||||
Cc: pdcruze@orac.iinet.com.au
|
||||
Subject: Color schemes
|
||||
X-Mailer: exmh version 1.3 4/7/94
|
||||
Date: Wed, 08 Jun 1994 22:00:19 +0800
|
||||
From: "Patrick D'Cruze" <pdcruze@orac.iinet.com.au>
|
||||
Errors-To: postmaster@iinet.com.au
|
||||
|
||||
Hi Robert,
|
||||
|
||||
I managed to compile a few color schemes from replies to my posting on
|
||||
the mailing list. I don't know whether you want to include them in the
|
||||
fvwm source files or just place them on a FTP site somewhere. I hope
|
||||
you find them useful.
|
||||
|
||||
Regards,
|
||||
Patrick D'Cruze
|
||||
pdcruze@orac.iinet.com.au
|
||||
|
||||
|
||||
-----
|
||||
|
||||
|
||||
Here's a few color schemes that you might want to try out when
|
||||
configuring Fvwm. The 6 color combinations listed below should at least
|
||||
provide you with a good starting point for you to continue to play
|
||||
around to suit your own tastes.
|
||||
|
||||
|
||||
-- Color combo 1 --
|
||||
contributed by Brian Decker (bdd@melpar.esys.com)
|
||||
|
||||
Fvwm settings
|
||||
HiForeColor Gold
|
||||
HiBackColor PaleTurquoise4
|
||||
PagerBackColor #5c54c0
|
||||
PagerForeColor orchid
|
||||
MenuForeColor Black
|
||||
MenuBackColor PaleTurquoise3
|
||||
MenuStippleColor SlateGrey
|
||||
|
||||
Style "*" Color Gold3/Turquoise4
|
||||
|
||||
Other settings
|
||||
xterm white foreground, midnight blue background
|
||||
|
||||
|
||||
|
||||
-- Color combo 2 --
|
||||
contributed by Greg Thompson (gregt@porsche.visix.COM)
|
||||
|
||||
Fvwm settings
|
||||
HiForeColor AntiqueWhite1
|
||||
HiBackColor grey60
|
||||
StickyForeColor AntiqueWhite1
|
||||
StickyBackColor grey30
|
||||
MenuForeColor AntiqueWhite1
|
||||
MenuBackColor grey60
|
||||
MenuStippleColor SlateGrey
|
||||
|
||||
Font rom14
|
||||
WindowFont rom14
|
||||
|
||||
Style "*" Color AntiqueWhite1/grey40
|
||||
|
||||
Other settings
|
||||
Background xsetroot -default
|
||||
xterm white foreground/black background
|
||||
|
||||
|
||||
|
||||
-- Color combo 3 --
|
||||
contributed by Mathew Harrell (harrell@remus.nrl.navy.mil)
|
||||
|
||||
Fvwm settings
|
||||
HiBackColor #5f589e8ea082
|
||||
HiForeColor #000000000000
|
||||
MenuForeColor #000000000000
|
||||
MenuBackColor #a41898228e1b
|
||||
MenuStippleColor SlateGrey
|
||||
StickyForeColor #000000000000
|
||||
StickyBackColor #464e8261b4bc
|
||||
|
||||
Style "*" Color #000000000000/#7F007A007800
|
||||
|
||||
Other settings
|
||||
Background xsetroot -solid black
|
||||
xterm black foreground/MediumAquamarine background
|
||||
|
||||
|
||||
|
||||
-- Color combo 4 --
|
||||
contributed by Lou (nsyslaw@acs.ncsu.edu)
|
||||
|
||||
Fvwm settings
|
||||
HiForeColor Black
|
||||
HiBackColor #c06077
|
||||
PagerBackColor #5c54c0
|
||||
PagerForeColor orchid
|
||||
StickyForeColor Black
|
||||
StickyBackColor #60c0a0
|
||||
MenuForeColor Black
|
||||
MenuBackColor wheat
|
||||
MenuStippleColor SlateGrey
|
||||
|
||||
Style "*" Color Black/LightSkyBlue
|
||||
Style "xterm" Icon xterm.xpm, Color black/Green
|
||||
|
||||
# And, found inside the Function "InitFunction" section:
|
||||
#
|
||||
Exec "I" xpmroot /usr/local/X11/fvwm/pixmaps/fvwm.xpm &
|
||||
|
||||
|
||||
Other settings
|
||||
XTerm*background: MidnightBlue
|
||||
XTerm*cursorColor: #ffff00
|
||||
XTerm*foreground: wheat
|
||||
|
||||
|
||||
|
||||
-- Color combo 5 --
|
||||
contributed by Dan Schneidewend (c1idrs@kocrsv01.delcoelect.com)
|
||||
|
||||
Fvwm settings
|
||||
HiForeColor white
|
||||
HiBackColor DarkSeaGreen
|
||||
PagerBackColor Black
|
||||
PagerForeColor CadetBlue
|
||||
StickyForeColor Black
|
||||
StickyBackColor MediumSeaGreen
|
||||
MenuForeColor white
|
||||
MenuBackColor RosyBrown
|
||||
MenuStippleColor SlateGrey
|
||||
|
||||
Style "*" Color white/MediumSeaGreen
|
||||
|
||||
*GoodStuffFore Black
|
||||
*GoodStuffBack RosyBrown
|
||||
|
||||
Other settings
|
||||
Background xsetroot -bitmap <whatever> -fg Black -bg CadetBlue
|
||||
xterm black foreground/white background
|
||||
|
||||
|
||||
|
||||
-- Color combo 6 --
|
||||
contributed by Patrick D'Cruze (pdcruze@orac.iinet.com.au)
|
||||
|
||||
Fvwm settings
|
||||
HiForeColor Black
|
||||
HiBackColor #c06077
|
||||
StickyForeColor Gold
|
||||
StickyBackColor PaleTurquoise4
|
||||
MenuForeColor white
|
||||
MenuBackColor RosyBrown
|
||||
MenuStippleColor SlateGray
|
||||
PagerBackColor #5c54c0
|
||||
PagerForeColor orchid
|
||||
|
||||
Style "*" Color Black/#61859a69aeba
|
||||
|
||||
Style "xterm" Color AntiqueWhite1/grey60
|
||||
|
||||
Other settings
|
||||
Background xsetroot -solid "#60a0c0"
|
||||
xterm black foreground/ "#FFFFE79DC71B" background
|
||||
|
249
app/fvwm/docs/cvs.html
Normal file
249
app/fvwm/docs/cvs.html
Normal file
|
@ -0,0 +1,249 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - CVS Procedures</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
|
||||
<h1><font color="pink">The Official FVWM Homepage - CVS Procedures</font></h1>
|
||||
</center>
|
||||
|
||||
Fvwm2 development uses a CVS server.
|
||||
|
||||
<p><b>Note:</b> the state of code in the CVS repository fluctuates
|
||||
wildly. It will contain bugs, maybe ones that crash the program. It
|
||||
may not even compile for you. Consider it alpha-quality code.
|
||||
You have been warned.
|
||||
|
||||
|
||||
<H2> <font color="turquoise">Overview</font></h2>
|
||||
|
||||
To know what is going in with the source tree you should be reading
|
||||
mail on the Fvwm Workers List. See the <a
|
||||
href="mailinglist.html">Mailing List Info</a> page for more
|
||||
information.
|
||||
|
||||
<p>To build fvwm2 from the CVS sources, you need to have several <a
|
||||
href="http://www.gnu.org/">GNU</a> tools:
|
||||
<ul>
|
||||
<li>the <a href="http://www.gnu.org/software/cvs/cvs.html">CVS</a> client
|
||||
version 1.9 or better,
|
||||
<li><a href="http://www.gnu.org/software/gcc/gcc.html">GCC</a>,
|
||||
<li>GNU <a href="http://www.gnu.org/software/make/make.html">make</a>,
|
||||
<li><a
|
||||
href="http://www.gnu.org/software/autoconf/autoconf.html">autoconf</a>,
|
||||
version 2.13 or better, and
|
||||
<li><a
|
||||
href="http://www.gnu.org/software/automake/automake.html">automake</a>,
|
||||
version 1.4 or better.
|
||||
</ul>
|
||||
|
||||
|
||||
<H2> <font color="turquoise">The Initial Download</font></h2>
|
||||
|
||||
To make life easier on yourself, create the file `~/.cvsrc', and
|
||||
insert the following lines. These set useful default options for the
|
||||
three most used CVS commands. Do this now before going any further.
|
||||
|
||||
<pre><font color="yellow"> diff -u -b -B
|
||||
checkout -P
|
||||
update -d -P
|
||||
</font></pre>
|
||||
|
||||
Also, if you are on a slow net link (like a dialup), you'll also want
|
||||
a line saying `cvs -z3' in the file. This turns on a useful
|
||||
compression level for all cvs commands. Setting it higher will only
|
||||
waste your CPU time.
|
||||
|
||||
<p>Before you can download development source code for the first time,
|
||||
you must login.
|
||||
|
||||
<pre><font color="yellow"> cvs -d :pserver:anonymous@cvs.fvwm.org:/home/cvs/fvwm login
|
||||
</font></pre>
|
||||
|
||||
The password is `guest'. The command outputs nothing if it works, and
|
||||
an error message if it failed. You only need to log in once; all
|
||||
subsequent CVS commands read the password stored in the file
|
||||
`~/.cvspass'.
|
||||
|
||||
<p>Next, you checkout the latest source code.
|
||||
|
||||
<pre><font color="yellow"> cvs -d :pserver:anonymous@cvs.fvwm.org:/home/cvs/fvwm checkout fvwm
|
||||
</font></pre>
|
||||
|
||||
This creates a "fvwm" directory in your current directory. Get in
|
||||
there and get to work.
|
||||
|
||||
<pre><font color="yellow"> cd fvwm
|
||||
autoreconf
|
||||
</font></pre>
|
||||
|
||||
You <em>did</em> remember to install autoconf and automake, right?
|
||||
|
||||
<p>Once you are inside the working directory, you no longer need the
|
||||
long "-d :pserver:..." argument when issuing cvs commands.
|
||||
|
||||
<p>CVS commands work from <em>anywhere</em> inside the source tree,
|
||||
and recurse downwards. So if you happen to issue an update from
|
||||
inside the `docs' subdirectory, it will work fine, but only update the
|
||||
docs. In all of the following command examples, we assume that you
|
||||
have <font color="yellow">cd</font>'d to the top of the fvwm source
|
||||
tree.
|
||||
|
||||
|
||||
<H2> <font color="turquoise">Code Updates</font></h2>
|
||||
|
||||
From time to time, the dedicated FVWM Workers will make changes to the
|
||||
cvs repository. Announcements of this are automatically sent to the
|
||||
fvwm-workers list. You will want to be subscribed to this list!
|
||||
|
||||
<p>You can update your copy of the sources to match the master
|
||||
repository with the update command.
|
||||
|
||||
<pre><font color="yellow"> cvs update
|
||||
</font></pre>
|
||||
|
||||
|
||||
<H2> <font color="turquoise">Hacking the Code</font></h2>
|
||||
|
||||
So you've found a bug you want to fix? Want to implement a feature
|
||||
from the TODO list? Got a new feature to implement? Hacking the code
|
||||
couldn't be easier. Just edit your copy of the sources. No need to copy
|
||||
files to `.orig' or anything. CVS keeps track of the original files
|
||||
for you!
|
||||
|
||||
<p>When you have the code in a working state, generate a patch against
|
||||
the <em>current</em> sources in the CVS repository.
|
||||
|
||||
<pre><font color="yellow"> cvs update
|
||||
cvs diff -u > patchfile
|
||||
</font></pre>
|
||||
|
||||
Mail the patch to the fvwm-workers list with a description of what you
|
||||
did. But read the FAQ file about ChangeLog entries before doing so.
|
||||
|
||||
|
||||
<H2> <font color="turquoise">Conflicts</font></h2>
|
||||
|
||||
If someone else has been working on the same files as you have, you may
|
||||
find that you have made conflicting modifications. You'll discover this
|
||||
when you try to update your sources.
|
||||
|
||||
<pre><font color="yellow"> cvs update
|
||||
RCS file: /home/cvs/fvwm/fvwm/fvwm/icons.c,v
|
||||
retrieving revision 1.5
|
||||
retrieving revision 1.6
|
||||
Merging differences between 1.5 and 1.6 into icons.c
|
||||
rcsmerge: warning: conflicts during merge
|
||||
cvs server: conflicts found in fvwm/icons.c
|
||||
C fvwm/icons.c
|
||||
</font></pre>
|
||||
|
||||
<font color="green">Don't Panic!</font> Your working file, as it
|
||||
existed before the update, is saved under the filename
|
||||
`.#icons.c.1.5'; hence you can always recover it, should things go
|
||||
horribly wrong. The file named `icons.c' now contains <b>both</b> the
|
||||
old (i.e. your) version and new version of lines that conflicted. You
|
||||
simply edit the file and resolve each conflict by deleting the
|
||||
unwanted version of the lines involved.
|
||||
|
||||
<pre><font color="yellow"> <<<<<<< icons.c
|
||||
XpmImage my_image = {0}; /* testing */
|
||||
=======
|
||||
>>>>>>> 1.6
|
||||
</font></pre>
|
||||
|
||||
Don't forget to delete the lines with all the "<", "=", and ">"
|
||||
symbols.
|
||||
|
||||
|
||||
<H2> <font color="turquoise">Getting Other Versions</font></h2>
|
||||
|
||||
Sometimes you may want to get a specific version of the sources. For
|
||||
example, let's say you want the sources as they existed for 2.1.5.
|
||||
|
||||
<p>Since you'll want to check out a fresh copy of the sources, you'll
|
||||
need to <font color="yellow">cd</font> out of the fvwm source tree
|
||||
before issuing the following command.
|
||||
|
||||
<pre><font color="yellow"> cvs -d :pserver:anonymous@cvs.fvwm.org:/home/cvs/fvwm checkout -r version-2_1_5 fvwm
|
||||
</font></pre>
|
||||
|
||||
This creates a directory called `fvwm', with the sources as they
|
||||
existed for the version 2.1.5. There may be other tags in the
|
||||
repository, and you can use them as parameters for the `-r' option.
|
||||
Do <font color="yellow">cvs status -v README</font> for a list.
|
||||
|
||||
|
||||
<H2> <font color="turquoise">Getting Commit Access</font></h2>
|
||||
|
||||
Using the procedures described above, and being on the workers list
|
||||
are a pre-requisite to gaining update access. We expect to have heard
|
||||
from you more than once on the fvwm-workers list so that we have some
|
||||
idea who you are.
|
||||
|
||||
<p>Doing some testing, submitting some patches, and getting involved
|
||||
in the discussions will help us know about you.
|
||||
|
||||
<p>After you have been involved for a while, if we don't suggest it, then
|
||||
ask. The fvwm2 development team is not a closed environment, we
|
||||
welcome new members. There are no required duties, all work is
|
||||
strictly voluntary.
|
||||
|
||||
<p>If there is agreement on the list that you should be given update
|
||||
access, you will need to choose a CVS user ID and provide an encrypted
|
||||
password. The latter can be obtained with the following Perl snippet:
|
||||
|
||||
<pre><font color="yellow"> perl -e 'print crypt("yourpass",join("",((a..z,A..Z,0..9)[rand(62),rand(62)]))), "\n"'
|
||||
</font></pre>
|
||||
|
||||
Change 'yourpass' to whatever you want your password to be.
|
||||
|
||||
<p>Once you have update access, re-do the "login" command above using
|
||||
your CVS user ID in place of 'anonymous', and your password in place
|
||||
of 'guest', and you are on your way.
|
||||
|
||||
|
||||
<H2> <font color="turquoise">Starting a Project</font></h2>
|
||||
|
||||
Discuss your ideas on the workers list before you start. Someone may
|
||||
be working on the same thing you have in mind. Or they may have good
|
||||
ideas about how to go about it.
|
||||
|
||||
<p>If you just have a small patch you want to make, you may just
|
||||
commit it to the main branch. If the change is large, and lots of
|
||||
other work is going on, you may want to do your changes on a "side
|
||||
branch" which will get merged into the main branch later on. Before
|
||||
creating a branch, you discuss the matter with the other workers. If
|
||||
you are new to CVS, you should read the CVS documentation several
|
||||
times, and ask for help. The documentation is sufficiently large and
|
||||
confusing that it is rather difficult to get right the first few
|
||||
times.
|
||||
|
||||
|
||||
<H2> <font color="turquoise">Adding Directories and Files</font></h2>
|
||||
|
||||
First create the new directories and files locally. Then, assuming
|
||||
the new directory is named "newdir" and the new file is "newmod.c":
|
||||
|
||||
<pre><font color="yellow"> cvs add -m "New directory for ..." newdir
|
||||
cd newdir
|
||||
cvs add -m "File newmod.c is a module that ..." newmod.c
|
||||
</font></pre>
|
||||
|
||||
|
||||
<H2> <font color="turquoise">Deleting Directories and Files</font></h2>
|
||||
|
||||
You don't directly delete directories, you delete all the files in a
|
||||
directory and the directory goes away during an "update -dP". To
|
||||
delete one or more files:
|
||||
|
||||
<pre><font color="yellow"> cvs remove -f filename...
|
||||
cvs commit -m 'deleted files because' filename...
|
||||
</font></pre>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
24
app/fvwm/docs/docs.html
Normal file
24
app/fvwm/docs/docs.html
Normal file
|
@ -0,0 +1,24 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - Docs, FAQ, & Other Info</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
<h1><font color="pink">
|
||||
The Official FVWM Homepage - Docs, FAQ, & Other Info</font></h1>
|
||||
</center>
|
||||
<ul>
|
||||
<li><a href="FAQ.html">FAQ (Frequently Asked Questions)</a>
|
||||
<li><a href="http://www.hpc.uh.edu/fvwm/archive/">Mailing List Archives</a>
|
||||
<li><a href="TODO.html">The TODO list</a>
|
||||
<li><a href="man-pages.html">Manual Pages</a>
|
||||
<li><a href="cvs.html">CVS Information</a>
|
||||
<li><a href="modules.html">Module Developer Information</a>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
</body>
|
||||
</html>
|
53
app/fvwm/docs/download.html
Normal file
53
app/fvwm/docs/download.html
Normal file
|
@ -0,0 +1,53 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - Downloads</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
<h1><font color="pink">The Official FVWM Homepage - Downloads</font></h1>
|
||||
</center>
|
||||
<ul>
|
||||
<li>Latest Release: <a href="ftp://ftp.fvwm.org/pub/fvwm/version-2/fvwm-2.2.3.tar.gz">2.2.3</a>
|
||||
<p>
|
||||
<li>Latest Beta Version: N/A
|
||||
<p>
|
||||
<li>Last 1.xx Version: <a
|
||||
href="ftp://ftp.fvwm.org/pub/fvwm/version-1/fvwm-1.24r.tar.gz">1.24r</a>
|
||||
(<strong>Note!</strong> This version is no longer supported.)
|
||||
</ul>
|
||||
|
||||
Just click on the version numbers above to download them.
|
||||
|
||||
<p>
|
||||
Older releases of fvwm1 and fvwm2 and (for the brave) the latest alpha
|
||||
and beta releases, as well as unofficial patches, can be found
|
||||
<a href="ftp://ftp.fvwm.org/pub/fvwm/">here</a>.
|
||||
|
||||
<p>
|
||||
Please keep in mind that the Beta code can potentially become
|
||||
unstable or buggy at any time, so USE AT YOUR OWN RISK.
|
||||
Of course you may find bugs in "Official" versions also.
|
||||
|
||||
<p>
|
||||
If you find any bugs, you can enter them into the
|
||||
<a href="http://www.fvwm.org/cgi-bin/fvwm-bug">FVWM Bug Tracking System</a>.
|
||||
If possible, please try searching to see if someone else has already
|
||||
reported this bug. If you have more or better information, feel
|
||||
free to add a note!
|
||||
|
||||
<p>
|
||||
If you just have a question, be sure to read our
|
||||
<a href="docs.html">Documentation</a> first, then you might want to
|
||||
try our <a href="mailinglist.html">Mailing List</a>.
|
||||
|
||||
<p>
|
||||
When asking for help, of course always remember to provide the release
|
||||
number of fvwm, your operating system, and any other information you
|
||||
think might be pertinent.
|
||||
|
||||
<p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
209
app/fvwm/docs/error_codes
Normal file
209
app/fvwm/docs/error_codes
Normal file
|
@ -0,0 +1,209 @@
|
|||
/**********************************************************************
|
||||
*
|
||||
* This file contains the codes needed to descipher an Fvwm Internal
|
||||
* Error. This list is compiled from pieces of the X include files,
|
||||
* but is not actually used by the fvwm code. It is included for
|
||||
* debugging purposes.
|
||||
*********************************************************************/
|
||||
|
||||
/*************************************************************************
|
||||
* Request codes
|
||||
* From Xproto.h
|
||||
*************************************************************************/
|
||||
|
||||
#define X_CreateWindow 1
|
||||
#define X_ChangeWindowAttributes 2
|
||||
#define X_GetWindowAttributes 3
|
||||
#define X_DestroyWindow 4
|
||||
#define X_DestroySubwindows 5
|
||||
#define X_ChangeSaveSet 6
|
||||
#define X_ReparentWindow 7
|
||||
#define X_MapWindow 8
|
||||
#define X_MapSubwindows 9
|
||||
#define X_UnmapWindow 10
|
||||
#define X_UnmapSubwindows 11
|
||||
#define X_ConfigureWindow 12
|
||||
#define X_CirculateWindow 13
|
||||
#define X_GetGeometry 14
|
||||
#define X_QueryTree 15
|
||||
#define X_InternAtom 16
|
||||
#define X_GetAtomName 17
|
||||
#define X_ChangeProperty 18
|
||||
#define X_DeleteProperty 19
|
||||
#define X_GetProperty 20
|
||||
#define X_ListProperties 21
|
||||
#define X_SetSelectionOwner 22
|
||||
#define X_GetSelectionOwner 23
|
||||
#define X_ConvertSelection 24
|
||||
#define X_SendEvent 25
|
||||
#define X_GrabPointer 26
|
||||
#define X_UngrabPointer 27
|
||||
#define X_GrabButton 28
|
||||
#define X_UngrabButton 29
|
||||
#define X_ChangeActivePointerGrab 30
|
||||
#define X_GrabKeyboard 31
|
||||
#define X_UngrabKeyboard 32
|
||||
#define X_GrabKey 33
|
||||
#define X_UngrabKey 34
|
||||
#define X_AllowEvents 35
|
||||
#define X_GrabServer 36
|
||||
#define X_UngrabServer 37
|
||||
#define X_QueryPointer 38
|
||||
#define X_GetMotionEvents 39
|
||||
#define X_TranslateCoords 40
|
||||
#define X_WarpPointer 41
|
||||
#define X_SetInputFocus 42
|
||||
#define X_GetInputFocus 43
|
||||
#define X_QueryKeymap 44
|
||||
#define X_OpenFont 45
|
||||
#define X_CloseFont 46
|
||||
#define X_QueryFont 47
|
||||
#define X_QueryTextExtents 48
|
||||
#define X_ListFonts 49
|
||||
#define X_ListFontsWithInfo 50
|
||||
#define X_SetFontPath 51
|
||||
#define X_GetFontPath 52
|
||||
#define X_CreatePixmap 53
|
||||
#define X_FreePixmap 54
|
||||
#define X_CreateGC 55
|
||||
#define X_ChangeGC 56
|
||||
#define X_CopyGC 57
|
||||
#define X_SetDashes 58
|
||||
#define X_SetClipRectangles 59
|
||||
#define X_FreeGC 60
|
||||
#define X_ClearArea 61
|
||||
#define X_CopyArea 62
|
||||
#define X_CopyPlane 63
|
||||
#define X_PolyPoint 64
|
||||
#define X_PolyLine 65
|
||||
#define X_PolySegment 66
|
||||
#define X_PolyRectangle 67
|
||||
#define X_PolyArc 68
|
||||
#define X_FillPoly 69
|
||||
#define X_PolyFillRectangle 70
|
||||
#define X_PolyFillArc 71
|
||||
#define X_PutImage 72
|
||||
#define X_GetImage 73
|
||||
#define X_PolyText8 74
|
||||
#define X_PolyText16 75
|
||||
#define X_ImageText8 76
|
||||
#define X_ImageText16 77
|
||||
#define X_CreateColormap 78
|
||||
#define X_FreeColormap 79
|
||||
#define X_CopyColormapAndFree 80
|
||||
#define X_InstallColormap 81
|
||||
#define X_UninstallColormap 82
|
||||
#define X_ListInstalledColormaps 83
|
||||
#define X_AllocColor 84
|
||||
#define X_AllocNamedColor 85
|
||||
#define X_AllocColorCells 86
|
||||
#define X_AllocColorPlanes 87
|
||||
#define X_FreeColors 88
|
||||
#define X_StoreColors 89
|
||||
#define X_StoreNamedColor 90
|
||||
#define X_QueryColors 91
|
||||
#define X_LookupColor 92
|
||||
#define X_CreateCursor 93
|
||||
#define X_CreateGlyphCursor 94
|
||||
#define X_FreeCursor 95
|
||||
#define X_RecolorCursor 96
|
||||
#define X_QueryBestSize 97
|
||||
#define X_QueryExtension 98
|
||||
#define X_ListExtensions 99
|
||||
#define X_ChangeKeyboardMapping 100
|
||||
#define X_GetKeyboardMapping 101
|
||||
#define X_ChangeKeyboardControl 102
|
||||
#define X_GetKeyboardControl 103
|
||||
#define X_Bell 104
|
||||
#define X_ChangePointerControl 105
|
||||
#define X_GetPointerControl 106
|
||||
#define X_SetScreenSaver 107
|
||||
#define X_GetScreenSaver 108
|
||||
#define X_ChangeHosts 109
|
||||
#define X_ListHosts 110
|
||||
#define X_SetAccessControl 111
|
||||
#define X_SetCloseDownMode 112
|
||||
#define X_KillClient 113
|
||||
#define X_RotateProperties 114
|
||||
#define X_ForceScreenSaver 115
|
||||
#define X_SetPointerMapping 116
|
||||
#define X_GetPointerMapping 117
|
||||
#define X_SetModifierMapping 118
|
||||
#define X_GetModifierMapping 119
|
||||
#define X_NoOperation 127
|
||||
|
||||
/*****************************************************************
|
||||
* ERROR CODES
|
||||
* from X.h
|
||||
*****************************************************************/
|
||||
|
||||
#define Success 0 /* everything's okay */
|
||||
#define BadRequest 1 /* bad request code */
|
||||
#define BadValue 2 /* int parameter out of range */
|
||||
#define BadWindow 3 /* parameter not a Window */
|
||||
#define BadPixmap 4 /* parameter not a Pixmap */
|
||||
#define BadAtom 5 /* parameter not an Atom */
|
||||
#define BadCursor 6 /* parameter not a Cursor */
|
||||
#define BadFont 7 /* parameter not a Font */
|
||||
#define BadMatch 8 /* parameter mismatch */
|
||||
#define BadDrawable 9 /* parameter not a Pixmap or Window */
|
||||
#define BadAccess 10 /* depending on context:
|
||||
- key/button already grabbed
|
||||
- attempt to free an illegal
|
||||
cmap entry
|
||||
- attempt to store into a read-only
|
||||
color map entry.
|
||||
- attempt to modify the access control
|
||||
list from other than the local host.
|
||||
*/
|
||||
#define BadAlloc 11 /* insufficient resources */
|
||||
#define BadColor 12 /* no such colormap */
|
||||
#define BadGC 13 /* parameter not a GC */
|
||||
#define BadIDChoice 14 /* choice not in range or already used */
|
||||
#define BadName 15 /* font or color name doesn't exist */
|
||||
#define BadLength 16 /* Request length incorrect */
|
||||
#define BadImplementation 17 /* server is defective */
|
||||
|
||||
#define FirstExtension Error 128
|
||||
#define LastExtensionError 255
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* Event Types
|
||||
* From X.h
|
||||
*************************************************************************/
|
||||
#define KeyPress 2
|
||||
#define KeyRelease 3
|
||||
#define ButtonPress 4
|
||||
#define ButtonRelease 5
|
||||
#define MotionNotify 6
|
||||
#define EnterNotify 7
|
||||
#define LeaveNotify 8
|
||||
#define FocusIn 9
|
||||
#define FocusOut 10
|
||||
#define KeymapNotify 11
|
||||
#define Expose 12
|
||||
#define GraphicsExpose 13
|
||||
#define NoExpose 14
|
||||
#define VisibilityNotify 15
|
||||
#define CreateNotify 16
|
||||
#define DestroyNotify 17
|
||||
#define UnmapNotify 18
|
||||
#define MapNotify 19
|
||||
#define MapRequest 20
|
||||
#define ReparentNotify 21
|
||||
#define ConfigureNotify 22
|
||||
#define ConfigureRequest 23
|
||||
#define GravityNotify 24
|
||||
#define ResizeRequest 25
|
||||
#define CirculateNotify 26
|
||||
#define CirculateRequest 27
|
||||
#define PropertyNotify 28
|
||||
#define SelectionClear 29
|
||||
#define SelectionRequest 30
|
||||
#define SelectionNotify 31
|
||||
#define ColormapNotify 32
|
||||
#define ClientMessage 33
|
||||
#define MappingNotify 34
|
||||
#define LASTEvent 35 /* must be bigger than any event # */
|
||||
|
61
app/fvwm/docs/features.html
Normal file
61
app/fvwm/docs/features.html
Normal file
|
@ -0,0 +1,61 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - Features</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
<h1><font color="pink">The Official FVWM Homepage - Features</font></h1>
|
||||
</center>
|
||||
|
||||
Partial list of features common to 1.xx and 2.xx:
|
||||
|
||||
<ul>
|
||||
<li>Multiple Disjoint Large Virtual Desktops
|
||||
<li>Smaller memory usage (more so in 1.xx)
|
||||
<li>Dynamically extensable via modules
|
||||
<li>Recognizes Motif MWM hints
|
||||
<li>Keyboard or Mouse operation
|
||||
<li>Attempts to be ICCCM 1.1 compliant
|
||||
<li>3-D look to window frames
|
||||
<li>Full color shaped icons
|
||||
<li>M4 preprocesing of the config file
|
||||
<li>Auto-raising of windows
|
||||
<li>Multi-screen support
|
||||
<li>Cursor (Mouse Pointer) control on a context basis
|
||||
<li>Viewport scrolling by moving the mouse off the edge of the screen
|
||||
<li>Different window decorations for window that have or don't have focus
|
||||
<li>Multiple ways to control icon placement
|
||||
<li>Multiple ways to control initial window placement
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
|
||||
Partial list of features new to 2.xx:
|
||||
|
||||
<ul>
|
||||
<li>New more powerful and sensible rc file format
|
||||
<li>Change more features on per-window basis
|
||||
<li>Change many features on the fly
|
||||
<li>Optional Flat or Pixmap window borders
|
||||
<li>Recogizes Open Look hints
|
||||
<li>Just about any focus style you can think of
|
||||
<li>Unwanted features can be removed at compile time
|
||||
<li>CPP preprocesing of the config file
|
||||
<li>Titlebars can be suppressed, Pixmaps, gradients, or plain
|
||||
<li>Titlebar buttons can be vector graphics, pixmaps or gradients
|
||||
<li>Menu hot-keys, continuation menus, pixmaps in and to the side
|
||||
of menus
|
||||
<li>Macro definition in the config file
|
||||
<li>Animated window movement
|
||||
<li>A way to limit the amount of color used by fvwm (for 8 bit displays)
|
||||
<li>Window manager commands can come from external programs
|
||||
<li>Roll-up type window shading
|
||||
<li>Some ability to centrally configure fvwm
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
</body>
|
||||
</html>
|
74
app/fvwm/docs/ftp.html
Normal file
74
app/fvwm/docs/ftp.html
Normal file
|
@ -0,0 +1,74 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - FTP and Mailing List Info</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg" bgcolor="#000000" text="#ffffff" link="#FFFF66" vlink="#40FF40" alink="#ff0000">
|
||||
<center>
|
||||
<h1>The Official FVWM Homepage - FTP and Mailing List Info</h1>
|
||||
</center>
|
||||
|
||||
<h2>FTP and Mailing List Info</h2>
|
||||
|
||||
The official FTP site for FVWM is
|
||||
|
||||
<p>
|
||||
|
||||
<center>
|
||||
<a href="ftp://ftp.fvwm.org/pub/fvwm/">ftp://ftp.fvwm.org/pub/fvwm/</a>
|
||||
</center>
|
||||
|
||||
<p>
|
||||
|
||||
The mailing list addresses are:
|
||||
|
||||
<p>
|
||||
|
||||
<center>
|
||||
<a href="mailto:fvwm@fvwm.org">fvwm@fvwm.org (Discussion and questions list)</a> <br>
|
||||
and<br>
|
||||
<a href="mailto:fvwm-announce@fvwm.org">fvwm-announce@fvwm.org (Announcement only list)</a> <br>
|
||||
and<br>
|
||||
<a href="mailto:fvwm-workers@fvwm.org">fvwm-workers@fvwm.org (Beta testers and contributors list)</a>
|
||||
</center>
|
||||
|
||||
<p>
|
||||
|
||||
They are maintained by Jason Tibbitts, and are Majordomo based mailing
|
||||
lists. To subscribe to a list, send "<code>subscribe</code>"
|
||||
in the body of a message to the appropriate <code>*-request</code>
|
||||
address.
|
||||
|
||||
<p>
|
||||
|
||||
To unsubscribe from the list, send "<code>unsubscribe</code>" in the
|
||||
body of a message to the appropriate <code>*-request</code> address.
|
||||
|
||||
<p>
|
||||
<code>*-request</code> addresses are:
|
||||
|
||||
<ul>
|
||||
<li> <a href="mailto:fvwm-request@fvwm.org">fvwm-request@fvwm.org</a>
|
||||
<li> <a href="mailto:fvwm-announce-request@fvwm.org">fvwm-announce-request@fvwm.org</a>
|
||||
<li> <a href="mailto:fvwm-workers-request@fvwm.org">fvwm-workers-request@fvwm.org</a>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
|
||||
<bold>Subscription requests sent to the list will be ignored!</bold><br>
|
||||
Please follow the above instructions for subscribing properly.
|
||||
|
||||
<p>
|
||||
|
||||
To report problems with any of the mailing lists, send mail to
|
||||
<a href="mailto:fvwm-owner@fvwm.org">fvwm-owner@fvwm.org</a>.
|
||||
|
||||
<p>
|
||||
|
||||
Also the mailing lists are now <a href="http://www.hpc.uh.edu/fvwm/archive/">archived</a>!
|
||||
|
||||
<p>
|
||||
|
||||
<hr>
|
||||
|
||||
</body>
|
||||
</html>
|
BIN
app/fvwm/docs/fvwm.gif
Normal file
BIN
app/fvwm/docs/fvwm.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
22
app/fvwm/docs/fvwm.lsm
Normal file
22
app/fvwm/docs/fvwm.lsm
Normal file
|
@ -0,0 +1,22 @@
|
|||
Begin3
|
||||
Title: FVWM (F? Virtual Window Manager)
|
||||
Version: 2.2
|
||||
Entered-date: 19Feb99
|
||||
Description: FVWM2 is an ICCCM-compliant X window manager providing a 3D
|
||||
look for window decorations, multiple discontiguous virtual
|
||||
desktops, a high degree of configurability, and an external
|
||||
module interface for implementing functional extensions.
|
||||
Keywords: window manager, X11, virtual
|
||||
Author: Rob Nation
|
||||
Maintained-by: Fvwm Workers List <fvwm-workers@fvwm.org>
|
||||
Primary-site: ftp.fvwm.org
|
||||
1036k fvwm-2.2.tar.gz
|
||||
Alternate-site: sunsite.unc.edu/pub/Linux/X11/window-managers/fvwm-2.2.tar.gz
|
||||
1k fvwm.lsm
|
||||
1036k fvwm-2.2.tar.gz
|
||||
Original-site:
|
||||
Platform: Unix, X, Xpm package (for optional xpm support)
|
||||
Copying-policy: May only be distributied without restrictions. For further
|
||||
permissions check the COPYING file that comes with the
|
||||
distribution.
|
||||
End
|
BIN
app/fvwm/docs/fvwm_smaller.gif
Normal file
BIN
app/fvwm/docs/fvwm_smaller.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
58
app/fvwm/docs/index.html
Normal file
58
app/fvwm/docs/index.html
Normal file
|
@ -0,0 +1,58 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
<h1><font color="pink">Welcome to the Official FVWM Homepage</font></h1>
|
||||
<p>
|
||||
<img src="fvwm.gif" width=307 height=129 align=middle>
|
||||
</center>
|
||||
|
||||
<p><hr>
|
||||
|
||||
<h3><font color="yellow">NEWS FLASH!</font></h3>
|
||||
<blockquote>
|
||||
<p>
|
||||
FVWM 2.2, the first official version of FVWM 2, is now available for <a
|
||||
href="download.html">download</a>!
|
||||
|
||||
<p>
|
||||
FVWM version 2 has been available in various stages of beta for years;
|
||||
now it has finally been officially released. Get your copy today!
|
||||
</blockquote>
|
||||
|
||||
<p><hr>
|
||||
|
||||
<p>
|
||||
FVWM is an ICCCM-compliant multiple virtual desktop window manager for
|
||||
X11 created by Robert Nation, derived originally from <code>twm</code>
|
||||
code. Thanks, Rob!
|
||||
|
||||
<p>
|
||||
Rob then passed the torch on to Charles Hines, who passed the torch to
|
||||
Brady Montz, who passed the torch to the <code>fvwm-workers</code> list.
|
||||
Jason Tibbitts continues to provide infrastructure in the form of
|
||||
mailing lists, a web site, an FTP site, a CVS tree, and anonymous rsync.
|
||||
|
||||
<p><hr>
|
||||
|
||||
<h2>Table Of Contents</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="download.html">Downloads</a>
|
||||
<li><a href="features.html">Features</a>
|
||||
<li><a href="mailinglist.html">Mailing List Info</a>
|
||||
<li><a href="http://www.hpc.uh.edu/fvwm/archive">Mailing List Archive</a>
|
||||
<li><a href="docs.html">Docs, FAQ, & Other Info</a>
|
||||
<li><a href="links.html">Other FVWM Related WWW Sites, etc</a>
|
||||
<li><a href="NEWS.html">LATEST FVWM NEWS (patches, announcements, etc)</a>
|
||||
<li><a href="http://www.fvwm.org/cgi-bin/fvwm-bug">FVWM Bug Tracking System</a>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
Created: Jan 31, 1996 ----- Last Updated: February 22, 1999.
|
||||
</body>
|
||||
</html>
|
85
app/fvwm/docs/links.html
Normal file
85
app/fvwm/docs/links.html
Normal file
|
@ -0,0 +1,85 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - Links</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
<h1><font color="pink">The Official FVWM Homepage - Links</font></h1>
|
||||
</center>
|
||||
|
||||
Here's a few other sites (besides the <a href="http://www.fvwm.org/">official</a> one) that have FVWM info:
|
||||
|
||||
<ul>
|
||||
<!-- <li><a href="http://www.cs.hmc.edu/~tkelly/docs/proj/fvwm.html">T.J. Kelly's FVWM HomePage</a> -->
|
||||
<!-- <li><a href="http://www.cobaltgroup.com/~roland/fvwm/fvwm.html">Liem Bahneman's FVWM Page</a> (Configuration Examples for fvwm 1.24r) -->
|
||||
<!-- <li><a href="http://xenon.chem.uidaho.edu/~fvwm/">Todd Postma's FVWM Page</a> (More Configuration Examples) -->
|
||||
<li><a href="http://mars.superlink.net/user/ekahler/fvwm.html">Eric Kahler's FVWM Page</a>
|
||||
<li><a href="http://www.public.iastate.edu/~crode/fvwm/">Chris Rode's Configuration Samples page</a>
|
||||
<!-- <li><a href="ftp://ftp.best.com/pub/tdgilman/Fvwmrcs/">Todd Gilmann's Collection of fvwmrc's</a> (an ftp site) -->
|
||||
<li><a href="http://www.giccs.georgetown.edu/~ric/software/fvwm/pager.html">Pager Balloon patch</a>
|
||||
<li><a href="http://www.pcnet.com/~proteus/Fvwm/FvwmPatches.html">Bob Woodside's Miscellaneous patches</a>
|
||||
<li><a href="http://www.CS.McGill.CA/~stever/software/fvwm/">Steve
|
||||
Robbins' autofonf patches</a>
|
||||
<li><a href="http://www.python.org/~bwarsaw/pyware/">Barry Warsaw's
|
||||
Python/FVWM pages</a>
|
||||
<li><a
|
||||
href="http://www.dilnet.upd.edu.ph/~orly/unixcentral/FvwmCDE.html">Orlando Andico's CDE panel lookalike</a>
|
||||
</ul>
|
||||
|
||||
And here's a few others that have info on programs that are designed
|
||||
to work with FVWM in some manner:
|
||||
|
||||
<ul>
|
||||
<li><a href="http://www.imada.ou.dk/~blackie/dotfile/">The Dotfile Generator Home Page</a> - A program that helps you generate .emacs, .cshrc, .fvwmrc, etc.
|
||||
<li><a href="http://www.physics.arizona.edu/~lapeyre/fvwmconf">John Lapeyre's FvwmConf</a>
|
||||
<li><a href="http://www-personal.umich.edu/~markcrim/tkgoodstuff/">The TkGoodStuff Home Page</a> - A Tcl/Tk Program that performs like GoodStuff/FvwmButtons.
|
||||
</ul>
|
||||
|
||||
And here's some window managers that were originally created from fvwm
|
||||
source, but PLEASE DON'T ASK QUESTIONS ABOUT THEM ON THE FVWM LISTS!
|
||||
Rather, contact the parties responsible for them directly:
|
||||
|
||||
<ul>
|
||||
<li><a href="http://web.mit.edu/mstachow/www/scwm.html">SCWM</a> - The
|
||||
Scheme Configurable Window Manager
|
||||
|
||||
<li><a href="http://www-acs.ucsd.edu/~byang/bowman/">Bowman</a> - A NeXT Lookalike created from 1.24r (link no longer exists?)
|
||||
<li><a href="http://www.afterstep.org/">AfterStep</a> - A continuation of Bowman
|
||||
<li><a href="http://www.terraware.net/ftp/pub/Mirrors/FVWM95/fvwm95.html">Fvwm95</a> - A hack of an fvwm2 beta that looks more like (shudder) Win95
|
||||
<li><a href="http://fvwm.themes.org/">Fvwm decorations</a> - A collection of fvwm screenshots and config files
|
||||
<li><a href="http://www.staticbomb.com/fvwm2gnome/">Fvwm decorations</a> - Another collection of fvwm screenshots and config files
|
||||
<li><a href="http://www.plig.org/~xwinman/fvwm.html">Fvwm decorations</a> - Even more fvwm screenshots and config files
|
||||
</ul>
|
||||
|
||||
And here's an excellent site with all sorts of window manager
|
||||
information and comparisons (new location):
|
||||
|
||||
<ul>
|
||||
<li><a href="http://www.PLiG.org/xwinman/">Window Managers for X</a>
|
||||
</ul>
|
||||
|
||||
Be sure to vote for FVWM in the voting section! :)
|
||||
|
||||
<p>
|
||||
|
||||
And don't forget about Newsgroups:
|
||||
|
||||
<ul>
|
||||
<li><a href="news:comp.windows.x.apps">comp.windows.x.apps</a> - for discussing and announcing apps like FVWM.
|
||||
<li><a href="news:comp.windows.x">comp.windows.x</a> - for general X11 discussions and advice.
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
|
||||
And how about an online version of the ICCCM:
|
||||
|
||||
<ul>
|
||||
<li><A HREF="http://tronche.com/gui/x/icccm/">Inter-Client Communication Conventions Manual</A>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
</body>
|
||||
</html>
|
127
app/fvwm/docs/m4_hacks
Normal file
127
app/fvwm/docs/m4_hacks
Normal file
|
@ -0,0 +1,127 @@
|
|||
Return-Path: dale@felix.dircon.co.uk
|
||||
Return-Path: <dale@felix.dircon.co.uk>
|
||||
Received: from eagle.is.lmsc.lockheed.com by rocket (SPCOT.6)
|
||||
id AA07582; Wed, 30 Mar 94 21:26:48 EST
|
||||
Received: from felix.dircon.co.uk by eagle.is.lmsc.lockheed.com (5.65/Ultrix4.3-C)
|
||||
id AA27884; Wed, 30 Mar 1994 18:24:30 -0800
|
||||
Received: from ISOlde.dale.co.uk by tristan.dale.co.uk with smtp
|
||||
(Linux Smail3.1.28.1 #25) id m0pm2IB-0002kOC; Wed, 30 Mar 94 16:34 BST
|
||||
Received: by ISOlde.dale.co.uk (Linux Smail3.1.28.1 #25)
|
||||
id m0pm2IP-000JHaC; Wed, 30 Mar 94 16:35 BST
|
||||
Message-Id: <m0pm2IP-000JHaC@ISOlde.dale.co.uk>
|
||||
Date: Wed, 30 Mar 94 16:35 BST
|
||||
From: Pete.Chown@dale.dircon.co.uk
|
||||
Subject: fvwm, copyright infringement, m4, etc...
|
||||
|
||||
I came up with a hack in m4 to get round the problem where you get
|
||||
substitution for ordinary words, like 'include'. I wanted to
|
||||
substitute a # onto the beginning of every command, so you say
|
||||
#include as in cpp. I couldn't do that because only the underscore
|
||||
and the alphabetics are recognised by m4 as being legitimate in
|
||||
identifiers. However, I put an underscore onto the beginning, and
|
||||
that seems to work quite well.
|
||||
|
||||
Given that you refer to the same problem in the documentation for
|
||||
fvwm, I thought I would send the hack to you:
|
||||
|
||||
------ snip ------ snip ------ snip ------ snip ------ snip ------ snip
|
||||
divert(-1)
|
||||
changequote(+,-)
|
||||
changequote(@`,@')
|
||||
define(_,@`_dnl @')
|
||||
|
||||
# We now add an underscore onto the front of all the builtins, to prevent
|
||||
# unexpected conflicts with words in the text. The following gross hack does
|
||||
# this. Understand it if you can... ;-)
|
||||
|
||||
define(def,defn(@`define@'))
|
||||
define(definition,defn(@`defn@'))
|
||||
define(remove,defn(@`undefine@'))
|
||||
define(alias,@`def(@`$2@',definition(@`$1@'))@')
|
||||
define(hack,@`alias(@`$1@',@`_$1@') remove(@`$1@')@')
|
||||
|
||||
hack(@`builtin@')
|
||||
hack(@`changecom@')
|
||||
hack(@`changequote@')
|
||||
hack(@`debugfile@')
|
||||
hack(@`debugmode@')
|
||||
hack(@`decr@')
|
||||
hack(@`define@')
|
||||
hack(@`defn@')
|
||||
hack(@`divert@')
|
||||
hack(@`divnum@')
|
||||
hack(@`dnl@')
|
||||
hack(@`dumpdef@')
|
||||
hack(@`errprint@')
|
||||
hack(@`esyscmd@')
|
||||
hack(@`eval@')
|
||||
hack(@`file@')
|
||||
hack(@`format@')
|
||||
hack(@`gnu@')
|
||||
hack(@`ifdef@')
|
||||
hack(@`ifelse@')
|
||||
hack(@`include@')
|
||||
hack(@`incr@')
|
||||
hack(@`index@')
|
||||
hack(@`indir@')
|
||||
hack(@`len@')
|
||||
hack(@`line@')
|
||||
hack(@`m4exit@')
|
||||
hack(@`m4wrap@')
|
||||
hack(@`maketemp@')
|
||||
hack(@`patsubst@')
|
||||
hack(@`popdef@')
|
||||
hack(@`pushdef@')
|
||||
hack(@`regexp@')
|
||||
hack(@`shift@')
|
||||
hack(@`sinclude@')
|
||||
hack(@`substr@')
|
||||
hack(@`syscmd@')
|
||||
hack(@`sysval@')
|
||||
hack(@`traceoff@')
|
||||
hack(@`traceon@')
|
||||
hack(@`translit@')
|
||||
hack(@`undefine@')
|
||||
hack(@`undivert@')
|
||||
hack(@`unix@')
|
||||
|
||||
_undefine(@`def@')
|
||||
_undefine(@`definition@')
|
||||
_undefine(@`alias@')
|
||||
_undefine(@`hack@')
|
||||
|
||||
_divert(0)
|
||||
------ snip ------ snip ------ snip ------ snip ------ snip ------ snip
|
||||
|
||||
(I redefine the quotes as well, because I find that the ordinary
|
||||
single quote characters are much too common in text that you want to
|
||||
preprocess.)
|
||||
|
||||
One problem with this script is that if someone extends m4 by adding a
|
||||
new builtin command foo, say, then it will not get an underscore
|
||||
prepended; this is because you can't get m4 to give you a complete
|
||||
list of builtins. For the same reason, the script will probably give
|
||||
trouble with System V m4, because it won't have definitions for the
|
||||
GNU extensions.
|
||||
|
||||
Anyway, do what you want with the script - if you think it might be
|
||||
useful to fvwm users you are more than welcome to include it in the
|
||||
distribution. Or file it away in /dev/null if you are unimpressed.
|
||||
|
||||
I was rather concerned by the little bit of Motif that is getting
|
||||
distributed along with fvwm. It may be only a couple of pages out of
|
||||
10M (is Motif really that big? Argh!) but that will not stop you
|
||||
getting sued. If the Motif people start to get the idea that they are
|
||||
not selling so many copies because people use fvwm instead of twm,
|
||||
they will sue you for copyright infringement - not because there is
|
||||
any particular justice to them protecting two pages of code, but just
|
||||
because it is the easiest way of making you go away.
|
||||
|
||||
It is correct that there is no copyright in structures, only in the
|
||||
source code that defines them. So you would be quite within your
|
||||
rights to rewrite the offending two pages, and then I can't see that
|
||||
there is anything that the Motif people could do.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
Pete.Chown@dale.dircon.co.uk "The Pen is mightier than the Quill"
|
||||
-- anonymous
|
65
app/fvwm/docs/mailinglist.html
Normal file
65
app/fvwm/docs/mailinglist.html
Normal file
|
@ -0,0 +1,65 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - Mailing List Info</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
<h1><font color="pink">The Official FVWM Homepage - Mailing List Info
|
||||
</font></h1>
|
||||
</center>
|
||||
|
||||
The mailing list addresses are:
|
||||
|
||||
<p>
|
||||
|
||||
<center>
|
||||
<a href="mailto:fvwm@fvwm.org">fvwm@fvwm.org (Discussion and questions list)</a> <br>
|
||||
and<br>
|
||||
<a href="mailto:fvwm-announce@fvwm.org">fvwm-announce@fvwm.org (Announcement only list)</a> <br>
|
||||
and<br>
|
||||
<a href="mailto:fvwm-workers@fvwm.org">fvwm-workers@fvwm.org (Beta testers and contributors list)</a>
|
||||
</center>
|
||||
|
||||
<p>
|
||||
|
||||
They are maintained by Jason Tibbitts, and are Majordomo based mailing
|
||||
lists. To subscribe to a list, send "<code>subscribe</code>"
|
||||
in the body of a message to the appropriate <code>*-request</code>
|
||||
address.
|
||||
|
||||
<p>
|
||||
|
||||
To unsubscribe from the list, send "<code>unsubscribe</code>" in the
|
||||
body of a message to the appropriate <code>*-request</code> address.
|
||||
|
||||
<p>
|
||||
<code>*-request</code> addresses are:
|
||||
|
||||
<ul>
|
||||
<li> <a href="mailto:fvwm-request@fvwm.org">fvwm-request@fvwm.org</a>
|
||||
<li> <a href="mailto:fvwm-announce-request@fvwm.org">fvwm-announce-request@fvwm.org</a>
|
||||
<li> <a href="mailto:fvwm-workers-request@fvwm.org">fvwm-workers-request@fvwm.org</a>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
|
||||
<strong>Subscription requests sent to the list will be ignored!</strong><br>
|
||||
Please follow the above instructions for subscribing properly.
|
||||
|
||||
<p>
|
||||
|
||||
To report problems with any of the mailing lists, send mail to
|
||||
<a href="mailto:fvwm-owner@fvwm.org">fvwm-owner@fvwm.org</a>.
|
||||
|
||||
<p>
|
||||
|
||||
Also the mailing lists are now <a href="http://www.hpc.uh.edu/fvwm/archive/">archived</a>!
|
||||
|
||||
<p>
|
||||
|
||||
<hr>
|
||||
|
||||
</body>
|
||||
</html>
|
38
app/fvwm/docs/man-pages.html
Normal file
38
app/fvwm/docs/man-pages.html
Normal file
|
@ -0,0 +1,38 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - Man Pages for FVWM 2.xx</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg" bgcolor="#000000" text="#ffffff" link="#FFFF66" vlink="#40FF40" alink="#ff0000">
|
||||
<center>
|
||||
<h1>The Official FVWM Homepage - Man Pages for FVWM 2.xx</h1>
|
||||
</center>
|
||||
<hr>
|
||||
|
||||
<ul>
|
||||
<li><a href="fvwm2.html">fvwm2.man</a>
|
||||
<p>
|
||||
<li><a href="xpmroot.html">xpmroot.man</a>
|
||||
<p>
|
||||
<li><a href="FvwmAudio.html">FvwmAudio.man</a>
|
||||
<li><a href="FvwmAuto.html">FvwmAuto.man</a>
|
||||
<li><a href="FvwmBacker.html">FvwmBacker.man</a>
|
||||
<li><a href="FvwmBanner.html">FvwmBanner.man</a>
|
||||
<li><a href="FvwmButtons.html">FvwmButtons.man</a>
|
||||
<li><a href="FvwmCpp.html">FvwmCpp.man</a>
|
||||
<li><a href="FvwmForm.html">FvwmForm.man</a>
|
||||
<li><a href="FvwmIconBox.html">FvwmIconBox.man</a>
|
||||
<li><a href="FvwmIconMan.html">FvwmIconMan.man</a>
|
||||
<li><a href="FvwmIdent.html">FvwmIdent.man</a>
|
||||
<li><a href="FvwmM4.html">FvwmM4.man</a>
|
||||
<li><a href="FvwmPager.html">FvwmPager.man</a>
|
||||
<li><a href="FvwmRearrange.html">FvwmRearrange.man</a>
|
||||
<li><a href="FvwmSave.html">FvwmSave.man</a>
|
||||
<li><a href="FvwmSaveDesk.html">FvwmSaveDesk.man</a>
|
||||
<li><a href="FvwmScroll.html">FvwmScroll.man</a>
|
||||
<li><a href="FvwmTalk.html">FvwmTalk.man</a>
|
||||
<li><a href="FvwmWinList.html">FvwmWinList.man</a>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
49
app/fvwm/docs/mod_changes.html
Normal file
49
app/fvwm/docs/mod_changes.html
Normal file
|
@ -0,0 +1,49 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - Important Changes Since Fvwm-1.xx</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
<h1><font color="pink">The Official FVWM Homepage - Important Changes Since Fvwm-1.xx</font></h1>
|
||||
</center>
|
||||
<P>
|
||||
The module interface remained fairly stable when going from Fvwm-1.xx
|
||||
to Fvwm-2.xx. The change most likely to affect modules is the addition
|
||||
of an extra value to the header. This value is a timestamp. Most
|
||||
modules contained the line:
|
||||
<FONT COLOR="YELLOW"><PRE>
|
||||
unsigned long header[3];
|
||||
</FONT></PRE>
|
||||
This must be changed to:
|
||||
<FONT COLOR="YELLOW"><PRE>
|
||||
unsigned long header[HEADER_SIZE];
|
||||
</FONT></PRE>
|
||||
The rest of the changes are handled in the library function
|
||||
ReadFvwmPacket.
|
||||
<P>
|
||||
Another notable change is that modules do not have to read the .fvwmrc
|
||||
file themselves. They can request the appropriate lines from fvwm:
|
||||
<!-- dje, from FvwmAnimate.c -->
|
||||
<FONT COLOR="YELLOW"><PRE>
|
||||
static void ParseOptions() {
|
||||
char *buf;
|
||||
while (GetConfigLine(Channel,&buf), buf != NULL) {
|
||||
ParseConfigLine(buf);
|
||||
} /* end config lines */
|
||||
} /* end function */
|
||||
</FONT></PRE>
|
||||
This is the preferred method of getting module-specific
|
||||
configuration lines.
|
||||
<P>
|
||||
Starting in fvwm-2.0 pl 1, fvwm2 passes command line arguments
|
||||
to the modules, so if the user said ``FvwmPager 2 4'', the module
|
||||
will see argv[6] = 2 and argv[7] = 4, instead of argv[6] = ``2 4''.
|
||||
<P>
|
||||
Some new packet types are defined, and a few values were added to
|
||||
some packet types.
|
||||
<P>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
35
app/fvwm/docs/mod_concept.html
Normal file
35
app/fvwm/docs/mod_concept.html
Normal file
|
@ -0,0 +1,35 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - Concept</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
<h1><font color="pink">The Official FVWM Homepage - Concept</font></h1>
|
||||
</center>
|
||||
<P>
|
||||
The module interface has several design goals:
|
||||
<UL>
|
||||
<LI>Modules are used to implement "extra" or "elaborate" features so
|
||||
that the additional resources these features take don't affect users that
|
||||
don't want to sacrifice the resources.
|
||||
<LI>Modules (user programs) should be able to provide the window
|
||||
manager with a limited amount of instruction regarding instructions to
|
||||
execute.
|
||||
<LI>Modules should not be able to corrupt the internal data bases
|
||||
maintained by Fvwm, nor should unauthorized modules be able to
|
||||
interface to Fvwm.
|
||||
<LI>Modules should be able to extract all or nearly all information
|
||||
held by the window manager, in a simple manner, to provide users with
|
||||
feedback not available from built in services.
|
||||
<LI>Modules should gracefully terminate when the window manager
|
||||
dies, quits, or is re-started.
|
||||
<LI>It should be possible for programmer-users to add modules
|
||||
without understanding the internals of Fvwm. Ideally, modules could be
|
||||
written in some scripting language such as Tcl/Tk.
|
||||
</UL>
|
||||
<P>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
356
app/fvwm/docs/mod_f2m_communication.html
Normal file
356
app/fvwm/docs/mod_f2m_communication.html
Normal file
|
@ -0,0 +1,356 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - Fvwm-to-Module Communication</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
<h1><font color="pink">The Official FVWM Homepage - Fvwm-to-Module Communication</font></h1>
|
||||
</center>
|
||||
<H2> <font color="turquoise">When communication takes place</font></h2>
|
||||
Fvwm
|
||||
can send messages to the modules in either a broadcast mode, or a
|
||||
module specific mode. Certain messages regarding important window or
|
||||
desktop manipulations are broadcast to all modules, whether they
|
||||
want it or not. Modules are able to request information about current windows
|
||||
from fvwm, via the Send_WindowList built-in. When invoked this way,
|
||||
only requesting module receives the data.
|
||||
<H2> <font color="turquoise">Communication packet format</font></h2>
|
||||
Packets from fvwm to modules conform to a standard format, so modules
|
||||
which are not interested in broadcast messages can easily ignore them.
|
||||
A header consisting of 4 unsigned long integers, followed by a body of
|
||||
a variable length make up a packet. The header always begins with
|
||||
0xffffffff. This is provided to help modules re-synchronize to the
|
||||
data stream if necessary. The next entry describes the packet type.
|
||||
Existing packet types are listed in the file fvwm/module.h:
|
||||
<font color="yellow"><PRE>
|
||||
#define <A href="#M_NEW_PAGE">M_NEW_PAGE</A> (1)
|
||||
#define <A href="#M_NEW_DESK">M_NEW_DESK</A> (1<<1)
|
||||
#define <A href="#M_ADD_WINDOW">M_ADD_WINDOW</A> (1<<2)
|
||||
#define <A href="#M_RAISE_WINDOW">M_RAISE_WINDOW</A> (1<<3)
|
||||
#define <A href="#M_LOWER_WINDOW">M_LOWER_WINDOW</A> (1<<4)
|
||||
#define <A href="#M_CONFIGURE_WINDOW">M_CONFIGURE_WINDOW</A> (1<<5)
|
||||
#define <A href="#M_FOCUS_CHANGE">M_FOCUS_CHANGE</A> (1<<6)
|
||||
#define <A href="#M_DESTROY_WINDOW">M_DESTROY_WINDOW</A> (1<<7)
|
||||
#define <A href="#M_ICONIFY">M_ICONIFY</A> (1<<8)
|
||||
#define <A href="#M_DEICONIFY">M_DEICONIFY</A> (1<<9)
|
||||
#define <A href="#M_WINDOW_NAME">M_WINDOW_NAME</A> (1<<10)
|
||||
#define <A href="#M_ICON_NAME">M_ICON_NAME</A> (1<<11)
|
||||
#define <A href="#M_RES_CLASS">M_RES_CLASS</A> (1<<12)
|
||||
#define <A href="#M_RES_NAME">M_RES_NAME</A> (1<<13)
|
||||
#define <A href="#M_END_WINDOWLIST">M_END_WINDOWLIST</A> (1<<14)
|
||||
#define <A href="#M_ICON_LOCATION">M_ICON_LOCATION</A> (1<<15)
|
||||
#define <A href="#M_MAP">M_MAP</A> (1<<16)
|
||||
#define <A href="#M_ERROR">M_ERROR</A> (1<<17)
|
||||
#define <A href="#M_CONFIG_INFO">M_CONFIG_INFO</A> (1<<18)
|
||||
#define <A href="#M_END_CONFIG_INFO">M_END_CONFIG_INFO</A> (1<<19)
|
||||
#define <A href="#M_ICON_FILE">M_ICON_FILE</A> (1<<20)
|
||||
#define <A href="#M_DEFAULTICON">M_DEFAULTICON</A> (1<<21)
|
||||
#define <A href="#M_STRING">M_STRING</A> (1<<22)
|
||||
#define <A href="#M_MINI_ICON">M_MINI_ICON</A> (1<<23)
|
||||
#define <A href="#M_WINDOWSHADE">M_WINDOWSHADE</A> (1<<24)
|
||||
#define <A href="#M_DEWINDOWSHADE">M_DEWINDOWSHADE</A> (1<<25)
|
||||
#define <A href="#M_LOCKONSEND">M_LOCKONSEND</A> (1<<26)
|
||||
#define <A href="#M_SENDCONFIG">M_SENDCONFIG</A> (1<<27)
|
||||
</PRE></font>
|
||||
<P>
|
||||
Additional packet types will be defined in the future. The third entry
|
||||
in the header tells the total length of the packet, in unsigned longs,
|
||||
including the header. The fourth entry is the last time stamp received
|
||||
from the X server, which is expressed in milliseconds.
|
||||
<P>
|
||||
The body information is packet specific, as described below.
|
||||
<H2><A NAME="M_NEW_PAGE">M_NEW_PAGE</A></H2>
|
||||
<P>
|
||||
These packets contain 5 integers. The first two are the x and y
|
||||
coordinates of the upper left corner of the current viewport on the
|
||||
virtual desktop. The third value is the number of the current desktop.
|
||||
The fourth and fifth values are the maximum allowed values of the
|
||||
coordinates of the upper-left hand corner of the viewport.
|
||||
<P>
|
||||
<H2><A NAME="M_NEW_DESK">M_NEW_DESK</A></H2>
|
||||
<P>
|
||||
The body of this packet consists of a single long integer, whose value
|
||||
is the number of the currently active desktop. This packet is
|
||||
transmitted whenever the desktop number is changed.
|
||||
<P>
|
||||
<H2><A NAME="M_ADD_WINDOW">M_ADD_WINDOW</A>, and <A NAME="M_CONFIGURE_WINDOW">M_CONFIGURE_WINDOW</A></H2>
|
||||
<P>
|
||||
These packets contain 24 values. The first 3 identify the window, and
|
||||
the next twelve identify the location and size, as described in the
|
||||
table below. Configure packets will be generated when the
|
||||
viewport on the current desktop changes, or when the size or location
|
||||
of the window is changed. The flags field is an bitwise OR of the
|
||||
flags defined in fvwm.h.
|
||||
<P>
|
||||
<P><DIV ALIGN=CENTER><P ALIGN=CENTER><TABLE COLS=2 BORDER FRAME=BOX RULES=GROUPS>
|
||||
<COLGROUP><COL ALIGN=LEFT><COLGROUP><COL ALIGN=LEFT>
|
||||
<TBODY>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=CENTER NOWRAP COLSPAN=2>
|
||||
Format for Add and Configure Window Packets</TD></TR>
|
||||
</TBODY><TBODY>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>Byte </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>Significance </TD></TR>
|
||||
</TBODY><TBODY>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>0 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> 0xffffffff - Start of packet </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
1 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> packet type </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
2 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> length of packet, including header, expressed in long integers
|
||||
</TD></TR>
|
||||
</TBODY><TBODY>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>3 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> ID of the application's top level window </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
4 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> ID of the Fvwm frame window </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
5 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Pointer to the Fvwm database entry </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
6 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> X location of the window's frame </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
7 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Y location of the window's frame</TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
8 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Width of the window's frame (pixels) </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
9 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Height of the window's frame (pixels) </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
10 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Desktop number</TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
11 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Windows flags field</TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
12 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Title Height (pixels) </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
13 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Border Width (pixels) </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
14 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Base Width (pixels) </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
15 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Base Height (pixels) </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
16 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Resize Width Increment(pixels) </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
17 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Resize Height Increment (pixels) </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
18 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Minimum Width (pixels) </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
19 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Minimum Height (pixels) </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
20 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Maximum Width Increment(pixels) </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
21 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Maximum Height Increment (pixels) </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
22 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Icon Label Window ID, or 0</TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
23 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Icon Pixmap Window ID, or 0</TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
24 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Gravity</TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> \
|
||||
25 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Pixel value of the text color </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
26 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Pixel value of the window border color </TD></TR>
|
||||
</TBODY>
|
||||
</TABLE>
|
||||
</P></DIV><P><H2>
|
||||
<A NAME="M_LOWER_WINDOW">M_LOWER_WINDOW</A>,
|
||||
<A NAME="M_RAISE_WINDOW">M_RAISE_WINDOW</A>, and
|
||||
<A NAME="M_DESTROY_WINDOW">M_DESTROY_WINDOW</A>
|
||||
</H2>
|
||||
<P>
|
||||
These packets contain 3 values, all of the same size as an unsigned
|
||||
long. The first value is the ID of the affected application's top level
|
||||
window, the next is the ID of the Fvwm frame window, and the final
|
||||
value is the pointer to Fvwm's internal database entry for that
|
||||
window. Although the pointer itself is of no use to a module, it can
|
||||
be used as a reference number when referring to the window.
|
||||
<P>
|
||||
<P><DIV ALIGN=CENTER><P ALIGN=CENTER><TABLE COLS=2 BORDER FRAME=BOX RULES=GROUPS>
|
||||
<COLGROUP><COL ALIGN=LEFT><COLGROUP><COL ALIGN=LEFT>
|
||||
<TBODY>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=CENTER NOWRAP COLSPAN=2>
|
||||
Format for Lower, Raise, and Focus Change Packets</TD></TR>
|
||||
</TBODY><TBODY>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>Byte </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>Significance </TD></TR>
|
||||
</TBODY><TBODY>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>0 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> 0xffffffff - Start of packet </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
1 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> packet type </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
2 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> length of packet, including header, expressed in long integers
|
||||
</TD></TR>
|
||||
</TBODY><TBODY>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>3 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> ID of the application's top level window </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
4 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> ID of the Fvwm frame window </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
5 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Pointer to the Fvwm database entry </TD></TR>
|
||||
</TBODY>
|
||||
</TABLE>
|
||||
</P></DIV><P><H2><A NAME="M_FOCUS_CHANGE">M_FOCUS_CHANGE</A></H2>
|
||||
<P>
|
||||
These packets contain 5 values, all of the same size as an unsigned
|
||||
long. The first value is the ID of the affected application's (the
|
||||
application which now has the input focus) top level
|
||||
window, the next is the ID of the Fvwm frame window, and the final
|
||||
value is the pointer to Fvwm's internal database entry for that
|
||||
window. Although the pointer itself is of no use to a module, it can
|
||||
be used as a reference number when referring to the window. The fourth
|
||||
and fifth values are the text focus color's pixel value and the window
|
||||
border's focus color's pixel value. In the
|
||||
event that the window which now has the focus is not a window which
|
||||
fvwm recognizes, only the ID of the affected application's top level
|
||||
window is passed. Zeros are passed for the other values.
|
||||
<P>
|
||||
<H2>
|
||||
<A NAME="M_ICONIFY">M_ICONIFY</A> and
|
||||
<A NAME="M_ICON_LOCATION">M_ICON_LOCATION</A>
|
||||
</H2>
|
||||
<P>
|
||||
These packets contain up to 11 values. The first 3 are the usual identifiers,
|
||||
and the next four describe the location and size of the window being iconified,
|
||||
as described in the table.
|
||||
Under the conditons where an actual builtin icon is created or destroyed,
|
||||
the next 4 values describe the location and size of the icon.
|
||||
Note that M_ICONIFY packets are sent
|
||||
whenever a window is first iconified, or when the icon window is changed
|
||||
via the XA_WM_HINTS in a property notify event. An M_ICON_LOCATION
|
||||
packet will be sent when the icon is moved.
|
||||
In addition, if a window which has transients is
|
||||
iconified, then an M_ICONIFY packet is sent for each transient
|
||||
window, with the x, y, width, and height fields set to 0. This packet
|
||||
will be sent even if the transients were already iconified. Note that
|
||||
no icons are actually generated for the transients in this case.
|
||||
<P>
|
||||
<P><DIV ALIGN=CENTER><P ALIGN=CENTER><TABLE COLS=2 BORDER FRAME=BOX RULES=GROUPS>
|
||||
<COLGROUP><COL ALIGN=LEFT><COLGROUP><COL ALIGN=LEFT>
|
||||
<TBODY>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=CENTER NOWRAP COLSPAN=2>
|
||||
Format for Iconify and Icon Location Packets</TD></TR>
|
||||
</TBODY><TBODY>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>Byte </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>Significance </TD></TR>
|
||||
</TBODY><TBODY>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>0 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> 0xffffffff - Start of packet </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
1 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> packet type </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
2 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> length of packet, including header, expressed in long integers
|
||||
</TD></TR>
|
||||
</TBODY><TBODY>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>3 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> ID of the application's top level window </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
4 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> ID of the Fvwm frame window </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
5 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Pointer to the Fvwm database entry </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
6 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> X location of the window's frame </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
7 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Y location of the window's frame</TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
8 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Width of the window's frame </TD></TR>
|
||||
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||||
9 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Height of the window's frame </TD></TR>
|
||||
</TBODY>
|
||||
</TABLE>
|
||||
</P></DIV><P><H2><A NAME="M_DEICONIFY">M_DEICONIFY</A></H2>
|
||||
<P>
|
||||
These packets contain up to 11 values, starting with the usual window
|
||||
identifiers. The packet is sent when a window is de-iconified.
|
||||
Like M_ICONIFY, window and icon location and size are sent except
|
||||
that icon information comes first followed by window information.
|
||||
<P>
|
||||
<H2><A NAME="M_MAP">M_MAP</A></H2>
|
||||
<P>
|
||||
These packets contain 3 values, which are the usual window
|
||||
identifiers. The packets are sent when a window is mapped, if it is
|
||||
not being deiconified. This is useful to determine when a window is
|
||||
finally mapped, after being added.
|
||||
<P>
|
||||
<H2>
|
||||
<A NAME="M_WINDOW_NAME">M_WINDOW_NAME</A>,
|
||||
<A NAME="M_ICON_NAME">M_ICON_NAME</A>,
|
||||
<A NAME="M_RES_CLASS">M_RES_CLASS</A>,
|
||||
<A NAME="M_RES_NAME">M_RES_NAME</A>,
|
||||
</H2>
|
||||
<P>
|
||||
These packets contain 3 values, which are the usual window
|
||||
identifiers, followed by a variable length character string. The
|
||||
packet size field in the header is expressed in units of unsigned
|
||||
longs, and the packet is zero-padded until it is the size of an
|
||||
unsigned long. The RES_CLASS and RES_NAME fields are fields in the
|
||||
XClass structure for the window. Icon and Window name packets will
|
||||
will be sent upon window creation or whenever the name is changed. The
|
||||
RES_CLASS and RES_NAME packets are sent on window creation. All
|
||||
packets are sent in response to a Send_WindowList request from a module.
|
||||
<P>
|
||||
<H2><A NAME="M_END_WINDOWLIST">M_END_WINDOWLIST</A></H2>
|
||||
<P>
|
||||
These packets contain no values. This packet is sent to mark the end
|
||||
of transmission in response to a Send_WindowList request. A module
|
||||
which request Send_WindowList, and processes all packets received
|
||||
between the request and the M_END_WINDOWLIST will have a snapshot of
|
||||
the status of the desktop.
|
||||
<P>
|
||||
<H2><A NAME="M_ERROR">M_ERROR</A></H2>
|
||||
<P>
|
||||
When fvwm has an error message to report, it is echoed to the modules
|
||||
in a packet of this type. This packet has 3 values, all zero, followed
|
||||
by a variable length string which contains the error message.
|
||||
<P>
|
||||
<H2><A NAME="M_CONFIG_INFO">M_CONFIG_INFO</A></H2>
|
||||
<P>
|
||||
Fvwm records all configuration commands that it encounters which
|
||||
begins with the character ``*''. When the built-in command
|
||||
``Send_ConfigInfo'' is invoked by a module, this entire list is
|
||||
transmitted to the module in packets (one line per packet) of this
|
||||
type. The packet consists of three zeros, followed by a variable
|
||||
length character string. In addition, the PixmapPath, IconPath, and
|
||||
ClickTime are sent to the module.
|
||||
<P>
|
||||
Note that all the module configuration commands are sent. Each
|
||||
module has to check the configuration commands to see if
|
||||
it is a command for that specific module. This is actually
|
||||
a feature. This way one module can learn about all other
|
||||
modules configurations. Also fvwm2 doesn't currently know
|
||||
anything about module aliases so all module configuration
|
||||
commands have to be sent for at least 2 reasons.
|
||||
It is unlikely that this behavior will ever change.
|
||||
<P>
|
||||
Starting with release 2.0.47, a module can set M_SENDCONFIG on in its
|
||||
mask and recieve M_CONFIG_INFO packets while it is running.
|
||||
(M_CONFIG_INFO has to be on also.) A module can use M_SENDCONFIG
|
||||
to be able to change configuration while it is running.
|
||||
Refer to module FvwmAnimate for an example.
|
||||
<P>
|
||||
<H2><A NAME="M_END_CONFIG_INFO">M_END_CONFIG_INFO</A></H2>
|
||||
<P>
|
||||
After fvwm sends all of its M_CONFIG_INFO packets to a module, it
|
||||
sends a packet of this type to indicate the end of the configuration
|
||||
information. This packet contains no values.
|
||||
This packet it not sent for subsequent config lines sent when the
|
||||
M_SENDCONFIG mask bit is on.
|
||||
<H2><A NAME="M_ICON_FILE">M_ICON_FILE</A></H2>
|
||||
This packet is broadcast when a window is added or during
|
||||
send window list. It is only sent for windows that have icons
|
||||
defined, and contains the filename of the icon.
|
||||
<H2><A NAME="M_DEFAULTICON">M_DEFAULTICON</A></H2>
|
||||
This packet is sent during
|
||||
send window list. This is the icon associated with Style "*".
|
||||
The packet contains the filename of the icon.
|
||||
<H2><A NAME="M_STRING">M_STRING</A></H2>
|
||||
This packet is sent when a "SendToModule" command is processed.
|
||||
<H2><A NAME="M_MINI_ICON">M_MINI_ICON</A></H2>
|
||||
This packet is broadcast when a window is added or during
|
||||
send window list. It is only sent for windows that have mini_icons
|
||||
defined, and contains the filename of the mini_icon.
|
||||
<H2><A NAME="M_WINDOWSHADE">M_WINDOWSHADE</A> and
|
||||
<A NAME="M_DEWINDOWSHADE">M_DEWINDOWSHADE</A>
|
||||
</H2>
|
||||
This packet is sent when a window is window shaded.
|
||||
It contains no additional information.
|
||||
<H2><A NAME="M_LOCKONSEND">M_LOCKONSEND</A></H2>
|
||||
This is a request sent from modules to fvwm and is described
|
||||
under <a href="mod_m2f_communication.html">Module to Fvwm communication</a>.
|
||||
<H2><A NAME="M_SENDCONFIG">M_SENDCONFIG</A></H2>
|
||||
This is a request sent from modules to fvwm and is described
|
||||
under <a href="mod_m2f_communication.html">Module to Fvwm communication</a>.
|
||||
<P>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
124
app/fvwm/docs/mod_initialization.html
Normal file
124
app/fvwm/docs/mod_initialization.html
Normal file
|
@ -0,0 +1,124 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - Interface and Initialization Mechanism</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
<h1><font color="pink">The Official FVWM Homepage - Interface and Initialization Mechanism</font></h1>
|
||||
</center>
|
||||
<H2> <font color="turquoise">Module Invocation</font></h2>
|
||||
Modules MUST be launched by Fvwm. Fvwm will first open a pair of pipes
|
||||
for communication with the module. One pipe is for messages to Fvwm
|
||||
from the module, and the other is for messages to the module from
|
||||
Fvwm. Each module has its own pair of pipes. After the pipes are open,
|
||||
Fvwm will fork and spawn the module. Modules must be located in the
|
||||
ModulePath, as specified in the user's .fvwm2rc file. Modules can be
|
||||
initiated as fvwm starts up, or can be launched part way through an X
|
||||
session.
|
||||
<H2> <font color="turquoise">Module Arguments</font></h2>
|
||||
<h3>Args 0</h3>
|
||||
Like any UNIX program, arg 0 is the full pathname of the module.
|
||||
Most modules acquire this for use in error message, parsing their
|
||||
own configuration commands, some other possible uses.
|
||||
Arg 0 is related to the optional arg 6 described under "Module Aliases".
|
||||
<h3>Args 1 and 2</h3>
|
||||
The pipes are open when the module starts execution. The
|
||||
integer file descriptors are passed to the module as the first and
|
||||
second command line arguments.
|
||||
<h3>Arg 3</h3>
|
||||
The third command line argument is a character pointer pointing to the
|
||||
full path name of the last configuration file that fvwm read in.
|
||||
If there was no configuration file this arg points as to a string
|
||||
containing "none".
|
||||
In fvwm2, there is little reason for a module to use this argument.
|
||||
<h3>Arg 4</h3>
|
||||
The next command line argument is the application
|
||||
window in whose context the module was launched. This is 0 if the
|
||||
module is launched without an application window context.
|
||||
<h3>Arg 5</h3>
|
||||
The next
|
||||
argument is the context of the window decoration in which the module
|
||||
was launched. Contexts are listed below:
|
||||
<FONT COLOR="YELLOW"><PRE>#define C_NO_CONTEXT 0 - launched during initialization
|
||||
#define C_WINDOW 1 - launched from an application window
|
||||
#define C_TITLE 2 - launched from a title bar
|
||||
#define C_ICON 4 - launched from an icon window
|
||||
#define C_ROOT 8 - launched from the root window
|
||||
#define C_FRAME 16 - launched from a corner piece
|
||||
#define C_SIDEBAR 32 - launched from a side-bar
|
||||
#define C_L1 64 - launched from left button #1
|
||||
#define C_L2 128 - launched from left button #2
|
||||
#define C_L3 256 - launched from left button #3
|
||||
#define C_L4 512 - launched from left button #4
|
||||
#define C_L5 1024 - launched from left button #5
|
||||
#define C_R1 2048 - launched from right button #1
|
||||
#define C_R2 4096 - launched from right button #2
|
||||
#define C_R3 8192 - launched from right button #3
|
||||
#define C_R4 16384 - launched from right button #4
|
||||
#define C_R5 32768 - launched from right button #5</FONT></PRE>
|
||||
<h3>Arg 6 and above</h3>
|
||||
A number of user specified command line arguments may be present
|
||||
(optional). Up to 35 arguments may be passed. For example, in:
|
||||
<FONT COLOR="YELLOW"><PRE>
|
||||
Module "FvwmIdentify" FvwmIdentify Hello rob! ``-fg purple''
|
||||
</FONT></PRE>
|
||||
we would get argv[6] = ``Hello'', argv[7] = ``rob!'', argv[8] = ``-fg purple''.
|
||||
<P>
|
||||
<H2> <font color="turquoise">Module Aliases</font></h2>
|
||||
In the original fvwm, if you wanted to run 2 copies of a module, you
|
||||
where advised to copy or soft-link the module executable to another name.
|
||||
For example, you might have had to copies of FvwmButtons running.
|
||||
Some of the modules now accept arg 6 as an Alias of the module name.
|
||||
<p>
|
||||
This alias is used in module generated messages, in recognizing configuration
|
||||
commands, and possibly other uses. FvwmAnimate makes full use of this
|
||||
and might provide a good model to follow.
|
||||
|
||||
<H2> <font color="turquoise">Acquiring the read/write pipes</font></h2>
|
||||
The following mechanism is recommended to acquire the pipe
|
||||
descriptors:
|
||||
<FONT COLOR="YELLOW"><PRE>
|
||||
int fd[2];
|
||||
void main(int argc, char **argv) {
|
||||
if((argc < 6)) {
|
||||
fprintf(stderr,
|
||||
"%s: Should only be executed by fvwm!\n", argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
fd[0] = atoi(argv[1]);
|
||||
fd[1] = atoi(argv[2]);</FONT></PRE>
|
||||
<P>
|
||||
The descriptor fd[0] is available for the module to send messages to
|
||||
fvwm, while the descriptor fd[1] is available to read messages from
|
||||
fvwm.
|
||||
Since "int fd[2]" is an array, you will often see modules send commands
|
||||
to fvwm with the construct "SendText(fd,"Command",0);".
|
||||
Of course, they really mean "SendText(&fd[0],"Command",0);".
|
||||
<H2> <font color="turquoise">Pipe Status</font></h2>
|
||||
Special attention is paid to the status of the pipe. If Fvwm gets a
|
||||
read error on a module-to-fvwm pipe, then it assumes that the module
|
||||
is terminating,
|
||||
and all communication with the module is terminated. Similarly, if a
|
||||
module gets a read error on an fvwm-to-module pipe, then it should
|
||||
assume that fvwm is terminating, and it should gracefully shut down.
|
||||
All modules should also allow themselves to be shut down via the
|
||||
Delete Window protocol for X-11.
|
||||
|
||||
<H2> <font color="turquoise">Reading initial configuration information
|
||||
</font></h2>
|
||||
In previous implementations, the modules were expected to read and
|
||||
parse the .fvwmrc file by themselves. This caused some difficulty if a
|
||||
pre-processor was used on the .fvwmrc file. In fvwm-2.0 and later,
|
||||
fvwm retains the module command lines (those which start with a
|
||||
``*''), and passes them to any module on request. Modules can
|
||||
request the command list by sending a ``Send_ConfigInfo'' command to
|
||||
fvwm. Modules can request configuration commands interactively,
|
||||
see M_SENDCONFIG in
|
||||
<A href="mod_f2m_communication.html">Fvwm-to-Module Communication</a>
|
||||
and
|
||||
<A href="mod_m2f_communication.html">Module-to-Fvwm Communication</a>.
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
121
app/fvwm/docs/mod_m2f_communication.html
Normal file
121
app/fvwm/docs/mod_m2f_communication.html
Normal file
|
@ -0,0 +1,121 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - Module-to-Fvwm Communication</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
<h1><font color="pink">The Official FVWM Homepage - Module-to-Fvwm Communication</font></h1>
|
||||
</center>
|
||||
<H2> <font color="turquoise">Module Writing</font></h2>
|
||||
Before you write a module, you will want to look at a few different
|
||||
fvwm modules. The techniques used have evolved over time, and no
|
||||
one module contains all the best techniques. Some of them may be on
|
||||
this page, but undoubtedly some of them are buried in the source code.
|
||||
|
||||
<H2> <font color="turquoise">Module communications protocol</font></h2>
|
||||
Modules communicate with fvwm via a simple protocol. In essence, a
|
||||
textual command line, similar to a command line which could be bound
|
||||
to a mouse, or key-stroke in the .fvwm2rc, is transmitted to fvwm.
|
||||
<P>
|
||||
First, the module should send the ID of the window which should be
|
||||
manipulated. A window ID of ``None'' may be used, in which case Fvwm
|
||||
will prompt the user to select a window if needed. Next, length of
|
||||
the the command line is send as an integer. After that, the command
|
||||
line itself is sent. Finally, an integer 1 is sent if the module plans
|
||||
to continue operating, or 0 if the module is finished. The following
|
||||
subroutine is provided as an example of a suitable method of sending
|
||||
messages to fvwm:
|
||||
<FONT COLOR="YELLOW"><PRE>
|
||||
void SendText(int *fd, char *message, unsigned long window) {
|
||||
int w;
|
||||
if (message != NULL) {
|
||||
write(fd[0],&win,sizeof(Window));
|
||||
w=strlen(message); /* calc the length of the message */
|
||||
write(fd[0],&w,sizeof(int)); /* send the message length */
|
||||
write(fd[0],message,w); /* send the message itself */
|
||||
/* send a 1, indicating that this module will keep going */
|
||||
/* a 0 would mean that this module is done */
|
||||
w=1;
|
||||
write(fd[0],&w,sizeof(int));
|
||||
}
|
||||
}
|
||||
</PRE></font>
|
||||
This routine is available as a library function in libfvwm.
|
||||
For compatibility with older code, there is a macro "SendInfo"
|
||||
which can be used instead of the function name SentText.
|
||||
|
||||
<H2> <font color="turquoise">Module information requests</font></h2>
|
||||
There are special built-in functions, Send_WindowList and
|
||||
Send_ConfigInfo.
|
||||
Send_WindowList causes fvwm to transmit everything that it is
|
||||
currently thinking about to the module which requests the information.
|
||||
This information contains the paging status (enabled/disabled),
|
||||
current desktop number, position on the desktop, current focus and,
|
||||
for each window, the window configuration, window, icon, and class
|
||||
names, and, if the window is iconified, the icon location and size.
|
||||
For example, some modules during start up want to know the state of
|
||||
all current windows. The would ask fvwm for this information like this:
|
||||
<font color="yellow"><pre>
|
||||
SendText(Channel,"Send_WindowList",0);
|
||||
</font></pre>
|
||||
Send_ConfigInfo causes fvwm to send the module a list of all
|
||||
commands it has received which start with a ``*'', as well as the
|
||||
PixmapPath, IconPath, ColorLimit, and ClickTime commands that fvwm is
|
||||
currently using.
|
||||
This is implemented in fvwm/modconf.c.
|
||||
Note that "SendConfigInfo" is sort of a memory dump type request,
|
||||
and the number of commands a module might get from this request
|
||||
may change over time. The module should be prepared to ignore commands
|
||||
it is not interested in without generating a warning or error.
|
||||
This request is normally made during module startup for a module
|
||||
to read its current configuration and some general information.
|
||||
Fvwm provides some subroutines to make this process fairly painless.
|
||||
Here is an example from FvwmAnimate.c:
|
||||
<font color="yellow"><pre>
|
||||
static void ParseOptions() {
|
||||
char *buf;
|
||||
while (GetConfigLine(Channel,&buf), buf != NULL) {
|
||||
ParseConfigLine(buf);
|
||||
} /* end config lines */
|
||||
} /* end function */
|
||||
</font></pre>
|
||||
|
||||
<H2> <font color="turquoise">Controlling information sent to
|
||||
modules</font></h2>
|
||||
fvwm lets each module control exactly what
|
||||
information is passed to the module. A module can send the
|
||||
command Set_Mask, followed by
|
||||
a number which is the bitwise OR of the packet-types the
|
||||
module wishes to receive. If the module never sends the Set_Mask
|
||||
command, then all message types in the default mask are sent. The
|
||||
default mask is defined in fvwm/module.h as "MAX_MASK". This
|
||||
currently (October 1998) includes all messages except M_LOCKONSEND and
|
||||
M_SENDCONFIG. A library function, SetMessageMask, makes it
|
||||
easy to set this mask. Here is an example from FvwmBacker.c: <font
|
||||
color="yellow"><pre>
|
||||
SetMessageMask(Fvwm_fd,M_NEW_DESK|M_CONFIG_INFO|M_END_CONFIG_INFO);
|
||||
</font></pre> This mask is used to reduce the amount of communication
|
||||
between fvwm and its modules so that a module only gets the messages it
|
||||
needs.
|
||||
|
||||
<H2> <font color="turquoise">Synchronous vs. Asynchronous Operation</font></h2>
|
||||
A module normally runs asynchrously with fvwm2. For example FvwmPager
|
||||
may be updating its display to show a window being iconified while fvwm2
|
||||
may have already iconfied and de-iconified the window. This is usually
|
||||
desirable.
|
||||
Other modules might need to synchronize their processing with fvwm.
|
||||
If this is the case, a module will include in its message mask
|
||||
"M_LOCKONSEND". When this mask bit is on, every message sent to the
|
||||
module from fvwm must be answered with an "UNLOCK" message.
|
||||
FvwmAnimate is (was?) the first module to implement this and should be
|
||||
used as a reference implementation. Note that FvwmAnimate sends the command
|
||||
"UNLOCK 1". The "1" is currently ignored but may be used in the future.
|
||||
This whole facility comes from Afterstep, and we are just tracking what they
|
||||
have done. The Afterstep documentation doesn't seem to say, but most
|
||||
likely this is the time in seconds that fvwm should wait for the module
|
||||
to respond with "UNLOCK" before it proceeds without the module's response.
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
24
app/fvwm/docs/mod_security.html
Normal file
24
app/fvwm/docs/mod_security.html
Normal file
|
@ -0,0 +1,24 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - Security</title>
|
||||
</head>
|
||||
<body BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
<h1><font color="pink">The Official FVWM Homepage - Security</font></h1>
|
||||
</center>
|
||||
<H2><A NAME="SECTION00031000000000000000">Security</A></H2>
|
||||
<P>
|
||||
Limited effort has been placed on security issues. In short, modules
|
||||
can not communicate with Fvwm unless they are launched by Fvwm, which
|
||||
means that they must be listed in the user's .fvwmrc file.
|
||||
Modules can only issue commands to Fvwm that could be issued from a
|
||||
menu or key binding. These measures do not keep a poorly written
|
||||
module from destroying windows or terminating an X session, but they
|
||||
do keep users from maliciously connecting to another users window
|
||||
manager, and it should keep modules from corrupting the Fvwm internal
|
||||
databases.
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
35
app/fvwm/docs/modules.html
Normal file
35
app/fvwm/docs/modules.html
Normal file
|
@ -0,0 +1,35 @@
|
|||
<!-- Modification History -->
|
||||
|
||||
<!-- Changed on 10/31/98 by DanEspen (dje): -->
|
||||
<!-- - This file was originally created from a tex file using -->
|
||||
<!-- LaTeX2HTML. I'm sorry to not continue with that approach, but -->
|
||||
<!-- I just don't have a working version of that program. -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>>The Official FVWM Homepage - Module Interface</TITLE>
|
||||
<META NAME="description" CONTENT="The Fvwm Module Interface">
|
||||
<META NAME="keywords" CONTENT="modules">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
</HEAD>
|
||||
<body LANG="EN" BACKGROUND="black-stone1.jpg"
|
||||
bgcolor="#000000" text="#ffffff"
|
||||
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||||
<center>
|
||||
<h1><font color="pink">
|
||||
The Official FVWM Homepage - Module Interface</font></h1>
|
||||
</center>
|
||||
<hr>
|
||||
<h2>Table Of Contents</h2>
|
||||
<UL>
|
||||
<li><a href="mod_changes.html">Important Changes Since Fvwm-1.xx</a>
|
||||
<li><a href="mod_concept.html">Concept</a>
|
||||
<li><a href="mod_security.html">Security</a>
|
||||
<li><a href="mod_initialization.html">Initialization</a>
|
||||
<li><a href="mod_m2f_communication.html">Module-to-Fvwm Communication</a>
|
||||
<li><a href="mod_f2m_communication.html">Fvwm-to-Module Communication</a>
|
||||
</ul>
|
||||
<P>
|
||||
<P>
|
||||
</BODY>
|
||||
</HTML>
|
49
app/fvwm/docs/run_man2html.sh
Normal file
49
app/fvwm/docs/run_man2html.sh
Normal file
|
@ -0,0 +1,49 @@
|
|||
#/bin/sh
|
||||
|
||||
# Modification History
|
||||
|
||||
# Created on 11/06/98 by DanEspen (dje):
|
||||
# - Use man2html to convert fvwm2 man pages to html.
|
||||
|
||||
# Arg 1 is the man page name.
|
||||
# The man pages have to be installed so the man command can find them.
|
||||
# This has to be run from the directory where the output file is wanted.
|
||||
#
|
||||
# If you run, run_man2html.sh fvwm2, this creates "fvwm2.html" in
|
||||
# the current directory.
|
||||
|
||||
name=`basename $1`
|
||||
outfile=$name.html
|
||||
|
||||
# make header:
|
||||
echo "<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - $name Man Page</title>
|
||||
</head>
|
||||
<body BACKGROUND=\"black-stone1.jpg\"
|
||||
bgcolor=\"#000000\" text=\"#ffffff\"
|
||||
link=\"#FFFF88\" vlink=\"#EEDDDD\" alink=\"#ff0000\">
|
||||
<center>
|
||||
<h1><font color=\"pink\">The Official FVWM Homepage - $name Man Page</font></h1>
|
||||
</center>
|
||||
<pre>
|
||||
" > $outfile
|
||||
|
||||
# Embed the text with some adjustment:
|
||||
# Italics are shown in yellow. References, (if there were any)
|
||||
# would be shown in cyan. Unfortunately bold stuff in man pages
|
||||
# is lost. Maybe in the man command, maybe in man2html.
|
||||
# Output looks pretty good anyway (to my eyes).
|
||||
man $name | man2html -bare \
|
||||
-uelem 'font color="yellow"'\
|
||||
-belem 'font color="cyan"'\
|
||||
>> $outfile
|
||||
|
||||
# make footer:
|
||||
echo "</pre>
|
||||
<hr>
|
||||
<!-- This file automatically generated by run_man2html.sh
|
||||
on `date` -->
|
||||
</body>
|
||||
</html>
|
||||
" >> $outfile
|
45
app/fvwm/docs/txt2html.sh
Normal file
45
app/fvwm/docs/txt2html.sh
Normal file
|
@ -0,0 +1,45 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Modification History
|
||||
|
||||
# Changed on 11/05/98 by DanEspen (dje):
|
||||
# - Changed from ksh to sh for extra portability.
|
||||
|
||||
# Created on 10/31/98 by DanEspen (dje):
|
||||
# - Takes certain text files from the Fvwm distribution and
|
||||
# converts them to html.
|
||||
|
||||
# Arg 1 is the input file name.
|
||||
# This has to be run from the directory where the output file is wanted.
|
||||
# This is designed for the files, ChangeLog, TO-DO, FAQ
|
||||
|
||||
name=`basename $1`
|
||||
outfile=$name.html
|
||||
|
||||
# make header:
|
||||
echo "<html>
|
||||
<head>
|
||||
<title>The Official FVWM Homepage - $name Information</title>
|
||||
</head>
|
||||
<body BACKGROUND=\"black-stone1.jpg\"
|
||||
bgcolor=\"#000000\" text=\"#ffffff\"
|
||||
link=\"#FFFF88\" vlink=\"#EEDDDD\" alink=\"#ff0000\">
|
||||
<center>
|
||||
<h1><font color=\"pink\">The Official FVWM Homepage - $name Information</font></h1>
|
||||
</center>
|
||||
<pre>
|
||||
" > $outfile
|
||||
|
||||
# Embed the text with some adjustment:
|
||||
sed -e 's/&/\&/' \
|
||||
-e 's/</\</' \
|
||||
-e 's/>/\>/' $1 >> $outfile
|
||||
|
||||
# make footer:
|
||||
echo "</pre>
|
||||
<hr>
|
||||
<!-- This file automatically generated by txt2html.sh
|
||||
on `date` -->
|
||||
</body>
|
||||
</html>
|
||||
" >> $outfile
|
Loading…
Add table
Add a link
Reference in a new issue