diff --git a/app/fvwm/.gitignore b/app/fvwm/.gitignore new file mode 100644 index 000000000..a87b1b25c --- /dev/null +++ b/app/fvwm/.gitignore @@ -0,0 +1,2 @@ +obj +*~ diff --git a/app/fvwm/AUTHORS b/app/fvwm/AUTHORS new file mode 100644 index 000000000..58e3306a2 --- /dev/null +++ b/app/fvwm/AUTHORS @@ -0,0 +1,125 @@ +To find out what should go in this file, see "Information For +Maintainers of GNU Software" (maintain.texi), the section called +"Recording Changes". + +Dan Espen: +Color Limiting, Multiple IconBoxes, Iconification Animation, new 3d +hilight/shadow calc from scwm as a library routine, updated web docs. + +German Gomez Garcia: +Named MenuStyles. + +Chris Rankin: +Rework of signal handlers (fvwm, FvwmButtons, FvwmIconMan, FvwmPager and +FvwmEvent). + +Steven M. Robbins: +Autoconf & automake support. + +Paul D. Smith: +Purify support (heap rot, array overwrites, memory stompage of all sorts). +Some autoconf/automake/portability help. Initial cut at a generic +debugging API. Rework module interface API on fvwm's side. +General code gadfly: tiptoe in; change some code; run away, run away! + +Dominik Vogt: +Improved ShuffleButtons algorithm (FvwmButtons), button geometries +(FvwmButtons), Menu Position Hints, XResources.c, various move/resize +and menu enhancements, MoveToPage, MoveToDesk, various parsing +functions, COPYING file, a myriad of bugfixes, Rewrite of MenuStyle syntax. + +A.J. Weber: +SnapAttraction patch. + +Bob Woodside: +StartsOnPage style, Stacking Order chain. + + + +Along with a cast of thousands (well, dozens) mentioned in old +ChangeLog entries. If you find your name below, please send an entry +in the style of the above entries, to the mailing list fvwm-workers@fvwm.org. + +Dan Astoorian +Andrew (a.b.) Atrens +John Aughey +Greg Badros +Graham Barr +David Barth +Mike Blatchley +Mark Boyns +Eli Burke +Martin Cartwright +Beat Christen +Frederic Cordier +Andrew Davison +Frederic Devernay +Austin Donnelly +Matthias Ettrich +Evans & Sutherland Computer Corporation +Frank Fejes +Thomas Zuwei Feng +Mike Finger +Pete Forman +Patrice Fortier +Todd Fries +Larry Gensch +Romano Giannetti +Peter Gray +Kaj Groner +Eddy J. Gurney +Markus Gutschke +Georg Hager +John Heidemann +Charles Hines +Paul Hudson +Sverre H. Huseby +Toshi Isogai +Thimo Jansen +Albrecht Kadlec +Michael A. Kazda +Jonathan Kelley +Andreas Klemm +Alfredo Kengi Kojima +Chris Laas +Tom LaStrange +Ric Lister +David MacKenzie +Don Mahurin +Pekka Marjola +Anthony Martin +Christophe Martin +Makoto Matushita +Grant McDorman +Henry R. McTague +Brady Montz +Robert Nation +Dan Niles +Ludvig A. Norin +Bill Oswald +Carsten Paeth +Hector Peraza +Per Persson +Tim Phipps +Pekka Pietik{inen +Mark Powell +Randy Ray +William E. Roadcap +Frank Scheelen +Eric Schott +Mark Scott +Kit Smithers +Nobutaka Suzuki +Szijarto Szabolcs +Andrew Taylor +Jason L. Tibbitts +Jarl Totland +Ilkka E T Tuohela +Andrew Veliath +Barry A. Warsaw +Dan Weeks +Brian Wellington +Rob Whapham +Alan Wild +Randall Winchester +Bo Yang diff --git a/app/fvwm/COPYING b/app/fvwm/COPYING new file mode 100644 index 000000000..7f75af853 --- /dev/null +++ b/app/fvwm/COPYING @@ -0,0 +1,371 @@ +Permission is granted to distribute all software within this +distribution freely as long as the individual copyrights, +copyright notices and associated disclaimers remain intact +in the sources and the supporting documentation. + +The name of the Copyright Holders may not be used to endorse or +promote products derived from this software without specific prior +written permission. + +THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +---------------------------------------------------------------------- + +In addition - with the exception of the following directories +and all files within: + + modules/FvwmRearrange + extras/FvwmPipe + modules/FvwmAnimate + modules/FvwmAudio + modules/FvwmEvents + +- permission is granted to use this software for any purpose, as +long as the individual copyrights, copyright notices and +associated disclaimers remain intact in the sources and the +supporting documentation. The following pieces of software are +exempt from this statement. + +The modules modules/FvwmAnimate, modules/FvwmAudio and modules/FvwmEvents +are subject to the GNU public license (see below). + +---------------------------------------------------------------------- + +The copyrights of the fvwm main module are: + +fvwm is copyright 1988 by Evans and Sutherland Computer +Corporation, Salt Lake City, Utah, and 1989 by the Massachusetts +Institute of Technology, Cambridge, Massachusetts, All rights +reserved. It is also copyright 1993 and 1994 by Robert Nation. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Evans & Sutherland and +M.I.T. not be used in advertising in publicity pertaining to +distribution of the software without specific, written prior +permission. + +ROBERT NATION, CHARLES HINES, EVANS & SUTHERLAND, AND M.I.T. DISCLAIM +ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL EVANS & +SUTHERLAND OR M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF +USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +------------------------------------------------------------------------- + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + diff --git a/app/fvwm/ChangeLog b/app/fvwm/ChangeLog new file mode 100644 index 000000000..1919d0011 --- /dev/null +++ b/app/fvwm/ChangeLog @@ -0,0 +1,2142 @@ +2001-02-25 Dan Espen + + * fvwm/fvwm.c (main): Read commands from config files without + doing XSync on each comamnd. (Speed up.) + * NEWS: Add speedup to NEWS. + +2001-02-21 Mikhael Goikhman + + * fvwm/fvwm2.1: + fixed the description of Focus, added example; use Next () instead [] + + * README: + added a link to www.fvwm.org + +2001-02-21 Dominik Vogt + + * fvwm/fvwm.h: + fixed type mismatches + +2001-02-03 Dominik Vogt + + * fvwm/read.c (ReadSubFunc): + fixed a core dump when using read or the -f option with an abosulute + path + +2001-01-19 Dominik Vogt + + * fvwm/read.c (ReadSubFunc): + security fix by Tilmann Boess; do not use the .fvwm2rc from . if HOME + variable is not set + +2000-05-31 Dominik Vogt + + * fvwm/placement.c.orig (SmartPlacement): + some minor fixes in smart placement + +2000-01-13 Dan Espen + + * .cvsignore: Add .cvsignore to try to stop things coming out of the + attic spontaneously. Remove generated file, configure. + +2000-01-10 Dan Espen + + * libs/Picture.c: Fix colorlimit for case when there is only monochrome + or grayscale in the pixmap. + +1999-11-30 Dominik Vogt + + * configure.in: set version to 2.2.5. + +1999-10-19 Dominik Vogt + + * configure.in: set version to 2.2.4. + +1999-10-02 Mikhael Goikhman + + * fvwm/fvwm.c (StartupStuff): add support for StartFunction + * fvwm/function.c (setPath, setImagePath): new functions for ImagePath + * NEWS, fvwm/fvwm2.1: document StartFunction & ImagePath support + + * fvwm/events.c (HandlePropertyNotify): fix cut-and-paste typo + +1999-10-02 Dominik Vogt + + * fvwm/events.c (HandlePropertyNotify): limits names of icons/windows + to 200 characters to prevent hanging X server + +1999-22-06 Dominik Vogt + + * fvwm/move.c (InteractiveMove): Small interactive move fix (bug #377) + +Thu May 27 07:38:11 1999 DanEspen + + * fvwm/fvwm2.1 (EdgeThickness): Updated man pages, EdgeThickness + can be used at any time. + + * NEWS: Updated news for 2.2.2 release. + + * fvwm/complex.c (expand): Applied patch from Brad for empty args. + +1999-05-10 Steven Michael ROBBINS + + * configure.in: set version to 2.2.2. + +1999-05-10 Steven Michael ROBBINS + + * utils/fvwmrc_convert: fixes by Julian Gilbey; updated to + cvs version 1.4. + +1999-03-17 Steven Michael ROBBINS + + * INSTALL.fvwm: add note about include directories for optional + libraries. + +1999-03-16 Dominik Vogt + + * fvwm/menus.c (DoMenusOverlap): Use real numbers for the width + modifier to avoid excessive roundoff. + +1999-02-28 Matthias Clasen + + * libs/ModParse.c (GetArgument): fix GetArgument for quoted args. + (DoPeekArgument): new function needed in GetArgument. + Use safemalloc instead of malloc ( change copied from + modules/FvwmEvent/Parse.c ). + (PeekArgument): now call DoPeekArgument. + + * fvwm/move.c (InteractiveMove): fix behaviour of + InteractiveMove when called from a context other than a + ButtonPress or KeyPress. + + * fvwm/builtins.c (WindowShade): fix an off-by-one error + with shaded FvwmBorder windows. + +1999-02-26 Hippo + + * fvwm/builtins.c: Emulate command updates feedback window position. + + * fvwm/virtual.c: EdgeThickness command can be used at any time to alter + the panframe windows. Panframe windows unmapped when paging to the end + page and wrapping is disabled. Panframe windows go right into the + corners. + + * fvwm/placement.c: fixed wandering on restart/recapture caused by + old_bw being ignored. + +1999-02-25 Paul D. Smith + + * configure.in: Updated for 2.2.1. + * NEWS: Updated for 2.2.1. + +1999-02-22 Dominik Vogt + + * fvwm/fvwm2.1 (WindowsDesk): some clarification that this command has + gone. + (QuitScreen): entry added. + + * sample.fvwmrc/new-features: corrected module path + + * fvwm/fvwm2.1 (Popup): Corrected typo (double-click-action -> + default-action). + (Read): Put braces around optional parameter + (SetAnimations): dito + (SnapAttraction): dito + (UpdateDecor): dito + (ColormapFocus): removed braces around required argument + + * sample.fvwmrc/Makefile.am (EXTRA_DIST): added new-features + +1999-02-19 Dominik Vogt + + * configure.in: Updated for 2.2 + + * NEWS: updated for 2.2 + + * fvwm/fvwm2.1: swapped 'Read' and 'Recapture' + +1999-02-18 Dominik Vogt + + * fvwm/menus.c (FPopupMenu): use menu style of parent menu for popup + offset instead of own menu style. + +Wed Feb 17 08:24:46 1999 Steve Robbins + + * configure.in: Clear cache variables relating to + --with-{xpm,rplay,readline}-* options so the presence of these + libraries will always be recomputed. This avoids the problem of + not finding the library (or finding the wrong one) if configure is + re-run with different options. + +1999-02-17 Dominik Vogt + + * configure.in: updated for 2.1.14 + +1999-02-16 Dominik Vogt + + * fvwm/bindings.c (ParseBindEntry): Specifying 'any' modifier and + specific modifiers together in a key binding made the whole binding + fail to work + +1999-02-15 Dominik Vogt + + * fvwm/functions.c (FindBuiltinFunction): + (ExecuteFunction): NULL pointer coredump fixed + +1999-02-14 Bob Woodside + + * fvwm/fvwm2.1: Added a description of the DecorateTransient and + NakedTransient Style options to the man page. + +1999-02-14 Dominik Vogt + + * configure.in: Change version to 2.1.13 + + * fvwm/add_window.c: + * fvwm/resize.c: + * fvwm/events.c: removed debug statements for wandering/growing + windows bug + + * fvwm/borders.c (RelieveWindowHH): + (RelieveWindow): + * fvwm/misc.h: removed inline from declarations of RelieveWindow and + RelieveWindowHH + +1999-02-12 Bob Woodside + * fvwm/events.c: Corrected failure to focus/auto-raise NoIconTitle + icon windows. + + * fvwm/focus.c: Ibid. + + * fvwm/misc.c: Ibid. + +1999-02-12 Dominik Vogt + + * fvwm/bindings.c (ParseBindEntry): fixed key binding bug + + * libs/Module.c (SendText): applied patch by Adam Rice to make fvwm2 + work with 2.2.x Linux kernels (trivial patch). + +1999-02-11 Dominik Vogt + + * fvwm/misc.c (GetOneMenuPositionArgument): rewrote syntax of menu + position hints. + + * fvwm/fvwm2.1: quoting ^, @, * and % added to 'Menu' entry + +1999-02-11 Dominik Vogt + + * fvwm/builtins.c (CreateFlagString): corrected restptr to return NULL + on error + (PrevFunc): check for NULL pointer added + (NextFunc): check for NULL pointer added + (NoneFunc): check for NULL pointer added + (CurrentFunc): check for NULL pointer added + (DirectionFunc): check for NULL pointer added + + * fvwm/functions.c (ExecuteFunction): check for NULL pointer added + (find_func_type): check for NULL pointer added + +1999-02-11 Dan Espen + + * fvwm/builtins.c (UpdateMenuStyle): Handle menu arrow reliefs on + black and white terminal. + +1999-02-11 Hippo + + * modules/FvwmWinList/FvwmWinList.c: Added XFlush() to fix focus + following problem. + +1999-02-05 Bob Woodside + + * fvwm-2.xx.lsm: Removed. + + * fvwm-2.2.lsm: Removed. + + * fvwm.lsm: Updated (actually, deleted and renamed fvwm-2.2.lsm to + fvwm.lsm). + +1999-02-02 Paul D. Smith + + * configure.in: Change version to 2.1.12 + +1999-02-02 Hippo + + * fvwm/menus.c (PaintMenu) Rewrote DGradient/BGradient menu code to + use only integer arithmetic and draw in one pass to fix some missing + pixel errors on some servers. + +1999-02-01 Paul D. Smith + + * INSTALL.fvwm: Added note about config.cache. Tweaked shared + libs information. + + * README: Mention the INSTALL.fvwm file. + +1999-01-29 Hippo + + * fvwm/menus.c (PaintMenu): Fixed {D,B}Gradient's being clipped by the + last mini-icon, fixed drawing errors with some compilers not + auto-casting from float to int very well. + +1999-01-28 Dominik Vogt + + * fvwm/menus.c (PaintEntry): Prevent menu titles from being hilighted + with ActiveFore + (MenuInteraction): fixed bug that caused menus ('Menu' command) being + popped down immediately if the pointer moved even a single pixel. + + * fvwm/builtins.c (GetMenuStyleIndex): + (NewMenuStyle): Changed PrepopMenus -> PopupImmediately and + PrepopMenusOff -> PopupDelayed + + * fvwm/menus.c (MenuInteraction): + * fvwm/menus.h: changed PrepopMenus -> PopupImmediately + +1999-01-27 Dominik Vogt + + * fvwm/menus.c (MenuInteraction): check for expose events first to + ensure the menu is drawn properly before navigating + (FPopupMenu): fixed *badly* broken code to avoid overlapping menus + (with and without animation). + (DoMenusOverlap): fixed broken overlapping algorithm + + * fvwm/menus.h (MenuRoot): removed 'redrawn' flag + + * fvwm/menus.c (DoMenusOverlap): fixed gradient menu drawing bug + (MenuInteraction): + (PopDownAndRepaintParent): + (PaintMenu): + (SetMenuItemSelected): removed 'redrawn' flag. Use flush_expose + instead: simpler and fixes a drawing bug + +1999-01-27 Bob Woodside + + * modules/FvwmPager/x_pager.c: Backed out the change to prevent + sending focus to No Input windows regardless of the Lenience setting. + The change to send FVWM a Focus command had the effect of causing + unwanted viewport changes. We'll revisit this after 2.2; the proper + fix will probably involve expanding the message protocol to send the + wmhints, so that the module can determine whether the window should + get focus. + +1999-01-26 Bob Woodside + + * fvwm/events.c: Changed the stacking order chain rebuilder to seek + out the icon window's position in the stacking order, not the app + window frame's position, if a window is iconic (and the icon is not + being suppressed). + + * fvwm/misc.c: Corrected the new RaiseWindow logic to recognize the + case of an icon window's being at the top of the stacking chain. This + corrects the problem of not being able to raise an app window above + an icon that has been specifically raised. + +1999-01-26 Bob Woodside + + * fvwm/fvwm.c: Changed default from ActivePlacementHonorsStartsOnPage + to ActivePlacementIgnoresStartsOnPage. We'll all be the happier for it. + + * fvwm/placement.c: Fixed improper placement of windows that start + iconic, but are not StartsOnPage, and use ActivePlacement. This fix + reverts to the former handling - the icon is simply dumped onto the + current desk/page without going through any fancy placement logic or + expecting the user to place the window interactively. + +1999-01-25 Steven Michael ROBBINS + + * configure.in: Forget values cached for libreadline; it messes up + detecting whether termcap or ncurses is needed. + +1999-01-25 Dan Espen + + * libs/Grab.c: Make the grab count externally visible. + + * fvwm/module.c (PositiveWrite): Don't send iconify message to + lock on send modules while fvwm2 has the server grabbed. This + fixes an hang during recapture while FvwmAnimate is running. + +1999-01-23 Bob Woodside + + * fvwm/fvwm2.1: Update the section that said there was no way to + map a window to someplace other than the current viewport. + +1999-01-20 Paul D. Smith + + * INSTALL.fvwm: Document new install-strip issue and workaround. + + * Makefile.am (AUTOMAKE_OPTIONS): Require automake 1.4. Needed + now that the VERSION and PACKAGE undefs are removed. + +Wed Jan 20 01:13:38 1999 Steve Robbins + + * INSTALL.fvwm: Removed doubled paragraph. + +1999-02-09 Dominik Vogt + + * fvwm/builtins.c (CreateFlagString): corrected restptr to return NULL + on error + (PrevFunc): check for NULL pointer added + (NextFunc): check for NULL pointer added + (NoneFunc): check for NULL pointer added + (CurrentFunc): check for NULL pointer added + (DirectionFunc): check for NULL pointer added + + * fvwm/functions.c (ExecuteFunction): check for NULL pointer added + (find_func_type): check for NULL pointer added + +1999-01-19 Paul D. Smith + + * README: Update new URLs; a few spelling corrections; specify + that the fvwm-workers maintain FVWM now. + +1999-01-19 Steven Michael ROBBINS + + * README: Changed "care and feeding" info from Brady Montz to the + Fvwm Workers. + + * INSTALL.fvwm: Updated the info & verified the URLs for the three + optional libraries (xpm, rplay, and readline). Other small + wording changes. + + * configure.in: + * */Makefile.am: Make sure xpm_CFLAGS preceeds X_CFLAGS, so that + the include directory for xpm-includes is searched ahead of the + system's X11 include directory. + + * acconfig.h: Removed #undefs for VERSION & PACKAGE; autoheader + from autoconf 1.13 now generates them automatically. + +1999-01-19 Dominik Vogt + + * fvwm/menus.c (MenuInteraction): fixed keyboard shortcut bug + +1999-01-18 Paul D. Smith + + * configure.in: Update version number. + +1999-01-17 Paul D. Smith + + * configure.in: Test for siginterrupt(). + +1999-01-16 Steven Michael ROBBINS + + * configure.in: Nuke cached values before retrying check for + libreadline (using -lncurses rather than -ltermcap). + +Sat Jan 16 03:14:31 1999 Steve Robbins + + * Moved ANNOUNCE, BUGS, DEVELOPERS, FAQ, TODO, and Y2K-Compliance + from top-level directory to docs. + + * tests: Created directory; put in script to test combinations of + build options. + * tests/purify: Created directory; this holds docs and scripts + helpful for running purify on the source code. This is not + distributed in the .tar.gz files. + +Fri Jan 15 22:10:18 1999 Steve Robbins + + * fvwm/fvwm2.1: Corrected the search sequence for startup files. + +1999-01-16 Dominik Vogt + + * BUGS: updated for 2.2 + +1999-01-14 Paul D. Smith + + * configure.in: If readline doesn't work with termcap, see if it + works with ncurses (some installations are built against + ncurses). + + * INSTALL.fvwm: Updated to document cpp issues. + Updated to document shared library / -R issues. + +1999-01-15 Dominik Vogt + + * fvwm/fvwm2.1: marked -blackout option as obsolete + moved copyright notice to COPYING file + + * FAQ: updated/removed some questions and fixed some typos + +1999-01-14 Tim Phipps + + * Added alt-tab explanation to FAQ + +1999-01-13 Bob Woodside + + * fvwm/placement.c: Fixed SmartPlacement and CleverPlacemet failure + to avoid sticky windows when placing SkipMapping, StartsOnPage or + StartsOnDesk windows. Also fixed CleverPlacement bug that sometimes + caused windows to be placed entirely outside of the virtual desktop. + +1999-01-14 Dominik Vogt + + * fvwm/resize.c (ConstrainSize): fixed bug: moving a shaded window in + FvwmPager screwed up the window's height + + * fvwm/fvwmdebug.c (DB_WI_ALL): fixed coredump + + * fvwm/menus.c (SetMenuItemSelected): removed malformed DBUG calls + + * fvwm/builtins.c (ButtonStyle): fixed parsing bug causing a hang + + * fvwm/module.c (HandleModuleInput): fixed parsing with popup + +1999-01-13 Dominik Vogt + + * fvwm/icons.c (AutoPlace): fixed a bug in icon placement (netscape 4.5 + refused to go into the icon box + +1999-01-13 Steven Michael ROBBINS + + * fvwm/builtins.c (DirectionFunc): Made variable "dir" an int, to + match return type of GetTokenIndex(). + +1999-01-12 Dominik Vogt + + * configure: changed readline prototype (char -> char *) + + * fvwm/fvwm2.1: updated MenuStyle for SideColor + + * fvwm/menus.c (scanForColor): + * fvwm/builtins.c (NewMenuStyle): added SideColor option to MenuStyle + + * fvwm/modconf.c (SendDataToModule): + * fvwm/add_window.c (AddWindow): + * fvwm/menus.c (scanForPixmap): + * fvwm/builtins.c (setPixmapPath): + (ReadButtonFace): + removed ifdefs around char *PixmapPath + + * libs/Picture.c (CachePicture): introduced ifdef to handle XPM + scanning in a central place. Should enable me to remove lots of other + ifdefs. + + * fvwm/fvwm2.1: updated MenuStyle for SidePixmap + + * fvwm/builtins.c (FreeMenuStyle): + (NewMenuStyle): + * fvwm/menus.c (PaintEntry): + added support for MenuStyle sidePic + + * fvwm/builtins.c (ChangeMenuStyle): MakeMenu called only for menus + that changed + + * fvwm/menus.c (MenuInteraction): removed f_type temporary variable + + * fvwm/misc.h (struct functions): changed 'int type' to + 'Bool func_needs_window' and 'int code' to 'short func_type' + + * fvwm/complex.c (ComplexFunction): removed reference to function code + to determine if a window is needed. The logic uses the F_NO_WINDOW and + F_NEEDS_WINDOW entries from functions.c now. + + * fvwm/parse.h: removed references to 'need window' logic + + * fvwm/menus.h: + * fvwm/functions.c (func_config): removed FUNC_POPUP, FUNC_NOP, + FUNC_TITLE + + * fvwm/menus.c (MenuInteraction): removed unnecessary call of + find_func_type + (AddToMenu): adapted new interface of find_func_type + + * fvwm/functions.c (find_func_type): changed interface to return both, + type and code + + * fvwm/menus.h (MenuItem): added func_needs_window flag. + + * fvwm/menus.c (FPopupMenu): made painted flag independent of gradients + (PaintMenu): dito + (MenuInteraction): cleaned up redrawing + (PopDownAndRepaintParent): new function to handle redrawing without an + expose event for servers without backing storage (fix for bug #118) + +Sun Jan 10 22:23:14 1999 Steve Robbins + + * libs/XResource.c: Now includes config.h to get function + prototypes, and removed const from XrmOptionDescRec. Both changes + are to placate the compiler. + +Sun Jan 10 22:13:10 1999 Steve Robbins + + * fvwm/module.c (make_packet): Removed dead code. + +Sun Jan 10 22:11:36 1999 Steve Robbins + + * fvwm/misc.c (GetMoveArguments): + * fvwm/menus.c: + * fvwm/icons.c (Iconify): + * fvwm/focus.c (SetFocus): + * fvwm/builtins.c (ButtonStyle): + * fvwm/borders.c (SetBorder): Inserted explicit braces to avoid + ambiguous `else'. + +Sun Jan 10 21:39:08 1999 Steve Robbins + + * libs/Parse.c (NukeToken): Removed assignment used as truth + value. + +Sun Jan 10 21:31:32 1999 Steve Robbins + + * acconfig.h: Include sys/types.h and unistd.h; most code will + benefit from the function prototypes contained therein. + +Sun Jan 10 21:22:22 1999 Steve Robbins + + * fvwm/read.c: + * fvwm/placement.c: + * fvwm/move.c: + * fvwm/menus.c: + * fvwm/builtins.c: Removed unused variables. + +Sun Jan 10 18:11:09 1999 Steve Robbins + + * fvwm/module.c (HandleModuleInput): Removed unnecessary cast of + integer to pointer. + +1999-01-09 Bob Woodside + + * fvwm/events.c (HandleConfigureRequest): added resynchronization of + * the stacking order ring when an app requests a change in its window's + * place in the Great Chain of Being. + * fvwm/misc.c (RaiseWindow): re-enabled Matthias Clasen's fix to keep + * FVWM-managed windows from being raised above override_redirect + * windows. + +Sat Jan 9 08:20:08 1999 Steve Robbins + + * xpmroot/*: Moved into utils directory. + * utils/xpmroot.c: Removed dead code (yet another version of + strcasecmp). + +1999-01-07 Dominik Vogt + + * **/*: Applied tons of cosmetic fixes from the Red Hat patches + but some real bugfixes too. Sorry Paul (PDS), this one simply has + too many files involved with trivial patches. + + * fvwm/builtins.c (DeferExecution): + * fvwm/move.c (move_window_doit): + * fvwm/resize.c (resize_window): applied Red Hat safety patch + + * fvwm/menus.c: applied latest patch for gradient hilighting + (MenuInteraction): ignore unbound keys (warped back to center of item + before). + + * fvwm/menus.c (FPopupMenu): fixed bug: menu item was not painted + properly when warped onto (with a key press) + + * fvwm/fvwm2.1: Some clarification on key bindings. + +1999-01-08 Paul D. Smith + + * configure.in: Check to see if we have sigaction() or not. + Test for atexit() and include atexit.c if it's not there. If it's + not there, test for on_exit() instead. + + * fvwm/fvwm.c (main): Remove USE_POSIX/USE_BSD stuff; they're not + autoconf-y. Instead, use check for sigaction(); if it doesn't + exist we'll fall back to the "traditional" signal(). + + * fvwm/misc.h: Use autoconf to find the proper return type for + signal handler function DeadPipe(). + * fvwm/module.c (DeadPipe): Define proper return type for DeadPipe() + * libs/Module.c (ReadFvwmPacket): Use proper return type for DeadPipe() + + * libs/atexit.c: New file. Add for systems which don't have + atexit() (SunOS has on_exit(); if any others use different things + they'll have to be handled too). + +Thu Jan 7 21:44:43 1999 Steve Robbins + + * configure.in: Add checks for system headers that are required + before using AC_FUNC_SELECT_ARGTYPES. Workaround for autoconf + 2.13 bug. + +1999-01-06 Paul D. Smith + + * configure.in: Update to autoconf 2.13. + Use new AC_FUNC_SELECT_ARGTYPES to get select() argtypes. + If we can't find cpp, only print a warning. + Move testing of xpm, readline, etc. until later in the script so + we have a chance to find any necessary extra libs before then. + Remove the search for socket, since it wasn't accurate (on + Solaris, for example, -lsocket needs -lnsl too) and will be found + by X_EXTRA_LIBS anyway. + + * fvwm/events.c (My_XNextEvent): Updated to use new #defines for + select(). + +1999-01-06 Bob Woodside + + * fvwm/misc.c (RaiseWindow): Disabled Matthias Clasen's patch to keep + from raising StaysOnTop windows above override_redirect windows: there + are situations where non override_redirect windows raise themselves + without FVWM's knowledge, and it breaks normal raising in these cases. + It's on the right track, but more work is needed post-2.2. + +1999-01-06 Dominik Vogt + + * fvwm/events.c (GetContext): fixed fixed fix for fix (made + MouseFocusClickRaises work again). + + * fvwm/fvwm2.1: corrected the manpage on '@foo.xpm@' for AddToMenu. + + * fvwm/**: Applied updated signal handler patch by Chris Rankin + + * fvwm/events.c (GetContext): fixed button bindings on client portion + of window. + + * archive/ChangeLog: File added to have a ChangeLog for the files that + are not distributed. + +1999-01-05 Bob Woodside + + * fvwm/misc.c (RaiseWindow): Added Matthias Clasen's patch to keep + from raising StaysOnTop windows above override_redirect windows; fixed + the stacking order chain reorg to keep StaysOnTop windows at the + beginning of the chain. + +1998-01-05 Dominik Vogt + + * BUGS: Removed some fixed bugs. + +1999-01-05 Paul D. Smith + + * NEWS: Updated with new configure options. + + * acinclude.m4 (smr_CHECK_LIB): A few tweaks: don't print out + extra lines; make sure $with_xxx is set properly. + + * configure.in: Added output section to the end, mainly to make a + missing XPM lib more obvious. + Added a new XPM check grabbed from XEmacs, which verifies we have + a "new enough" version of XPM. + Add a new check for the type of arguments to select(); whether we + like fd_set* or require int*. + Allow the user to specify a location for cpp with --with-cpp. + If cpp can't be found, stop immediately. + + * fvwm/events.c (My_XNextEvent): Replace __hpux check with select + arg check from configure. + + * BUGS: Documented install-strip problem. + +1998-01-05 Dominik Vogt + + * configure.in: Changed version to 2.1.8. + * NEWS: Ditto. + + * Released fvwm 2.1.7 beta (CVS tag version-2_1_7). + +1999-01-04 Dominik Vogt + + * fvwm/menus.c (FPopupMenu): force menus on screen if making them non + overlapping moves them partially off screen. + +1999-01-03 Dominik Vogt + + * fvwm/menus.c (MenuInteraction): fixed various bugs in drawing + gradient menus when overlapping the parent menu. Fixed bug with + hilighting an item before the menu was painted (it stayed hilighted + with gradient menus and Hilight3D). + + (MenuInteraction): fixed a *bad* bug with MenuStyles. At several places + I used the style of the submenu instead of the menu itself. + + * FAQ: + * fvwm/fvwm2.1: Some comments on gradient menus + + * fvwm/menus.c (DoMenusOverlap): fixed PopupOffsetAdd in MenuStyle + (only positive values worked) + + * fvwm/builtins.c (NewMenuStyle): fixed coredump with menu styles + other than * + + * fvwm/fvwm2.1: Removed SetMenuStyle, updated MenuStyle (and others) + + * fvwm/fvwm.c (SetRCDefaults): changed SetMenuStyle to MenuStyle + + * fvwm/builtins.c (GetMenuStyleIndex): new function + (NewMenuStyle): This is the former SetMenuStyle + (SetMenuStyle): Wrapper to decide if a MenuStyle line has the old or + the new syntax. Dispatches a call to Old/NewMenuStyle + * fvwm/functions.c (func_config): removed SetMenuStyle command; + MenuStyle handles the old and the new syntax now + * fvwm/parse.h: removed F_SET_MENUSTYLE + +1999-01-02 Dominik Vogt + + * fvwm/menus.c (SetMenuItemSelected): fixed slow XGetImage (?) Why does + fetching a XYPixmap take so long while ZPixmaps are grabbed instantly? + + * fvwm/events.c (HandleButtonPress): removed unnecessary code + + * fvwm/fvwm.h: switched context defines to hex (instead of decimal) + + * fvwm/add_window.c (AddWindow): backed out a patch that caused a mouse + binding problem + +1998-12-31 Dominik Vogt + + * fvwm/events.c (My_XNextEvent): applied cleanup patch by Chris Rankin + +1998-12-30 Dominik Vogt + + * fvwm/menus.c (MakeMenu): fixed font-change bug with menus: If a menu + has a continuation and then the font is changed (to a smaller one) the + continuations are not recalculated (i.e. the menus are too short). + + * fvwm/placement.c (test_fit): applied placement fix for iconified + windows without an icon (by Trent Piepho) + + * libs/Picture.c (GetPicture): fixed use of freed memory (path) + + * fvwm/read.c (ReadSubFunc): fixed PipeRead memory leak + + * fvwm/builtins.c (SetMenuStyle): removed unused code + + * fvwm/menus.h: remove unused flag 'hasFont' from MenuLook + + * fvwm/builtins.c (SetMenuStyle): fixed font memory leak + + * fvwm/menus.c (MakeMenu): fixed bug in menu continuations: + menuContinuation->first->prev still pointed to last item of parent menu + (AddToMenu): fixed memory leak with "Title top" + + * fvwm/add_window.c (AddWindow): fixed memory leak (tmp_win->name + assigned twice in the same function: duplicate code removed) + + * FAQ: updated question 1. Miaow. + + * fvwm/builtins.c (SetMenuStyle): fixed TrianglesRelief option + +1998-12-28 Dominik Vogt + + * fvwm/builtins.c (MatchesConditionMask): fixed name matching broken in + last patch + +1998-12-27 Dominik Vogt + + * libs/Parse.c (SkipQuote): fixed coredump (random return value) + +1998-12-27 Dominik Vogt + + * configure.in: Changed version to 2.1.7. + * NEWS: Ditto. + + * Released fvwm 2.1.6 beta (CVS tag version-2_1_6). + +1998-12-27 Dominik Vogt + + * BUGS: updated for 2.1.6 + + * fvwm/fvwm2.1: updated manpage for SetMenuStyle (see below) + + * fvwm/menus.c (PaintEntry): + (SetMenuItemSelected): + (FPopupMenu): + (PaintMenu): gradients work with other kinds of hilighting + + * fvwm/misc.c (GetMenuOptions): fixed select_warp (didn't work at all). + + * fvwm/windows.c: + * fvwm/builtins.c: + * fvwm/misc.c: + * fvwm/menus.h: + * fvwm/menus.c: GSFR for menus (just a small test for the real GSFR). + +1998-12-26 Dominik Vogt + + * fvwm/move.c (moveLoop): Position in feedback window relative to + current page, not the whole desktop + +1998-12-24 Dominik Vogt + + * fvwm/builtins.c (MatchesContitionMask): rewrote the contition so that + a mere mortal can read it (costs a few bytes though). + + * fvwm/builtins.c (MatchesContitionMask): + * fvwm/icons.c (DeIconify): + (Iconify): bugfix for transient iconification bug + +1998-12-23 Dominik Vogt + + * fvwm/virtual.c (MoveViewport): moved ViewportMoved into new tmpflags + + * fvwm/add_window.c (AddWindow): IconifiedByParent flag for transient + iconification bug + + * fvwm/fvwm2.1 (Examples): added examples for SetMenuStyle, reformatted + SnapAttraction + + * fvwm/menus.c (do_menu): + (menuShortcuts): replaced DOUBLECLICK_TIMEOUT with + Scr.menus.DoubleClickTime. + + * fvwm/fvwm2.1: added description of DoubleClickTime option + + * fvwm/fvwm.c (InitVariables): added DEFAULT_POPUP_DELAY, + DEFAULT_MENU_CLICKTIME and DEFAULT_CLICKTIME + (InitVariables): + + * fvwm/builtins.c (SetClick): use DEFAULT_CLICKTIME if called without + a parameter + (SetMenuStyle): use DEFAULT_POPUP_DELAY + (SetMenuStyle): introduced option 'DuobleClickTime' + + * fvwm/defaults.h: new file for default values that may be set + throughout the code. + +1998-12-22 Dominik Vogt + + * fvwm/builtins.c (menu_func): default-action does not need to be + quoted anymore. Another few lines of code saved :) + + * fvwm/fvwm2.1: updated Popup syntax, corrected Menu syntax + + * fvwm/builtins.c (staysup_func): + (popup_func): + (menu_func): merged popup_func and staysup_func to menu_func. Popup + menus have a default action now too. It is invoked if the user presses + the button to invoke the popup menu but releases it before + DOUBLECLICK_TIMEOUT expired. With keys it works the same way as with + Menu. And it is less code too :-) + + * fvwm/fvwm2.1: corrected PopupDelay menu style documentation + + * ------ end of my changes for MenuStyle rework ------ + + * fvwm/fvwm2.1: a little cleanup on 'Style' + documented new commands DefaultFont, DefaultColors, Emulate + documented new SetMenuStyle syntax + +1998-12-21 Dominik Vogt + + * fvwm/builtins.c (ReadMenuFace): fixed coredumps: freeing NULL + pointers for item and s_colors[i] + (ReadMenuFace): fixed memory leak: perc not freed + + * fvwm/fvwm2.1 (Note): updated manpage for FvwmAnimate/FvwmEvent + +1998-12-21 Dominik Vogt + + * fvwm/menus.c (PaintEntry): Why the hell were the popup triangles + placed dynamically? An offset of five pixels from the right edge of + the menu siply has to do. The dynamic placement might put the tringle + over the text of the menu item. + + * fvwm/builtins.c (DestroyMenuStyle): it is possible to destroy a used + menu style. Menus using it revert back to the default menu style + +1998-12-20 Dominik Vogt + + * libs/Parse.c (GetTokenIndex): repaired behaviour with (len == 0) + + * fvwm/menus.c: + DELAY_POPUP_MENUS macro removed + switched to new MenuFace structure + replaced c10msDelaysBeforePopup by menu-specific value PopupDelay10ms + (MenuInteraction): fixed bug: mouse movement considered only if moved + in x and y direction by more that three pixels + + * fvwm/resize.c (DisplaySize): + * fvwm/add_window.c (AddWindow): + * fvwm/builtins.c: + * fvwm/fvwm.c (main): + * fvwm/move.c: removed some menu dependencies + + * fvwm/builtins.c (SetGlobalStyle): new command + + * fvwm/builtins.c (SetGlobalOptions): + * fvwm/fvwm.c (InitVariables): + * fvwm/placement.c (PlaceWindow): + * fvwm/screen.h (ScreenInfo): moved global options into 'go' structure + created 'gs' structure for global styles + + * fvwm/builtins.c: + * fvwm/functions.c (func_config): + * fvwm/parse.h: + * fvwm/misc.h: new command GlobalStyle + + * fvwm/move.c (DisplayPosition): removed some of the menu dependencies + +1998-12-19 Dominik Vogt + + * fvwm/icons.c: + (CreateIconWindow): + (DrawIconWindow): + removed dependencies to menu code + + * fvwm/fvwm2.1: documented DefaultFont command + updated syntax for IconFont and WIndowFont + + * fvwm/builtins.c (ReadMenuFace): static now + (FreeMenuFaceStyle): changes for new MenuStyle syntax + (ReadMenuFace): fixed coredump: Pixmap/TiledPixmap without pixmap name + (ReadMenuFace): fixem meory leaks + (ReadMenuFace): fixed coredump: incomplete gradients freed + + * fvwm/menus.h: new structures MenuLookStyle and MenuFeelStyle, + modified MenuFace. + + * fvwm/fvwm.c (InitVariables): + * fvwm/screen.h (ScreenInfo): added StdGC, StdReliefGC and StdShadowGC. + + * fvwm/fvwm.c (main): modified logic for creation of SizeWindow + (SetRCDefaults): 'DefaultFont' replaces 'WindowFont' and 'IconFont' + in list of initial config commands + + * fvwm/screen.h: added ApplyWindowFont declaration + (ScreenInfo): new hasIconFont and hasWindowFont + + * fvwm/parse.h: + * fvwm/functions.c (func_config): Added 'DefaultFont' and + 'DefaultColors' + + * fvwm/builtins.c (ApplyIconFont): + (LoadIconFont): + (ApplyWindowFont): + (LoadWindowFont): moved calculations based on the font into separate + functions so that 'SetDefaultFont' may do this too. + + * fvwm/builtins.c (ChangeMenuStyle): fixed memory leaks in parsing + (DestroyMenuStyle): cleaned up + +1998-12-18 Dominik Vogt + + * libs/Parse.c (GetQuotedString): + (SkipQuote): new functions for ease of parsing. + + * ------ beginning of my changes for MenuStyle rework ------ + +Sun Dec 20 09:34:19 1998 DanEspen + + * fvwm/functions.c (func_config): Oops, put EdgeThickness command + in right place in command table. Really thought I tested that. + + * fvwm/fvwm.h: Remove #defines for PAN_FRAME_THICKNESS + and SCROLL_REGION. + + * fvwm/misc.h: Add prototype for setEdgeThickness, and a macro + for the args to any fvwm2 command. + + * NEWS: + * fvwm/fvwm2.1: + * fvwm/functions.c (func_config): + * fvwm/virtual.c (setEdgeThickness): Add new command, "EdgeThickness + 0 | 1 | 2". + +1998-12-18 Bob Woodside + + * fvwm/placement.c (PlaceWindow): Removed checks for IconicState + property that prevented StartsOnPage from working when an app was + started with the -iconic argument. + +1998-12-18 Dan Espen + + * fvwm/move.c (moveLoop): Remove some fprintfs left behind by + accident. + +1998-12-18 Dominik Vogt + + * fvwm/bindings.c (ParseBindEntry): fixed older patch to combine + mouse and key binding parsing. Dos this prevent the key binding + problem? + +1998-12-17 Dominik Vogt + + * fvwm/module.c: + * fvwm/fvwm.c: applied signal handler patches by Chris Rankin + + * fvwm/fvwm2.1: documented that EdgeScroll handles the "p" suffix too + + * fvwm/move.c (moveLoop): fixed bug: moving windows over page + boundaries not possible if EdgeScroll 0 0 was used. + + * fvwm/menus.c: backed out my prvious patch for 'recursive' menus and + did it another (much simpler) way. Now we ignore the popup completely + if it is already mapped but has a parent different from the current + menu. + + * fvwm/fvwm2.1: documented syntax changes for SetMenuStyle, + sorted manpage + + * fvwm/menus.c: + * fvwm/menus.h: + * fvwm/builtins.c (ReadMenuFace): implmented visual_style for menus + that should fix the 'menuface' bug. all traces of the former 'next' + menu style have been eliminated. + +1998-12-16 Paul D. Smith + + * libs/fvwmlib.h: Added #defines to handle the __attribute__ GCC + extensions. Use them normally (see the GCC manual for details) + and they'll be removed harmlessly if you're not using an + appropriate version of GCC. + + * DEVELOPERS: Added some notes about the automake $TAR issues. + +1998-12-16 Dominik Vogt + + * fvwm/fvwm2.1: Updated manpage for SetMenuStyle: 'next' does not exist + anymore. + + * fvwm/builtins.c (Recapture): Recapture now swallows all mouse and + keyboard events (and a few others). This speeds up things dramatically. + +1998-12-15 Dan Espen + + * fvwm/fvwm2.1 (Note): Document the way menustyle affects the placement + of the feedback windows. + +1998-12-15 Dominik Vogt + + * fvwm/builtins.c (MatchesContitionMask): tried to fix transient icons + bug with Next [iconic] + + * libs/System.c (getostype): Fixed uname bug for Solaris 2.6. Is this + guaranteed to work with any every system? or could automake do + something for us there? + + * fvwm/menus.c (MenuInteraction): + (FPopupMenu): fixed last patch (mrDynamicPrev not set, menu not popped + down when an item is selected) + + * fvwm/menus.c: + (do_menu): + (MenuInteraction): + (PopDownMenu): Fixed bug: A menu containing itself as a 'Popup' was + unmapped when the popup item was entered and left. Fixed this by + introducing a new parameter to PopDownMenu: a MenuRoot to search for + mrPopup before actually popping down. + +1998-12-14 Dominik Vogt + + * fvwm/events.c (HandleConfigureRequest): added ' - Tmp_win->bw' that + caused wandering FvwmBorder windows + +1998-12-14 Dominik Vogt + + * configure.in: Changed version to 2.1.4. + * NEWS: Ditto. + + Released fvwm 2.1.3 beta (CVS tag version-2_1_3). + +1998-12-13 Dominik Vogt + + * fvwm/read.c (ReadSubFunc): the piperead string was set as the last + read filename + + * fvwm/module.c (executeModule): removed useless code: + if(args[nargs] != NULL) + free(args[nargs]); + when args[nargs] is guaranteed to be NULL + + * fvwm/fvwm.c (SetRCDefaults): added missing comma after "SetMenuStyle" + default + + * fvwm/builtins.c (SetMenuStyle): + * fvwm/fvwm2.1: removed SetMenuStyle ... next. The menuface option can + be applied to any menu style. I don't understand what this was good for + anyway since when you specified 'next', the menu style itself + (mwm/fvwm/win) was undefined. + + * fvwm/builtins.c (SetMenuStyle1): removed unused code + + * fvwm/misc.h: changed signature of DisplaySize + + * fvwm/events.c (HandleConfigureRequest): + * fvwm/add_window.c (AddWindow): changed signature of ConstrainSize + + * fvwm/resize.c: made statics orig... and drag..., xmotion, ymotion + parameters to DoResize/ConstrainSize, moved static globals last_... + into DisplaySize and introduced a parameter to reset them. + + * fvwm/misc.h: removed DoResize from header file (this cannot be safely + called from outside resize.c!) + + * fvwm/add_window.c: + * fvwm/resize.c: + * fvwm/events.c: even more debug code + + * fvwm/resize.c (MoveOutline): removed duplicate code + +1998-12-12 Dominik Vogt + + * fvwm/add_window.c: + * fvwm/resize.c: + * fvwm/events.c: added massive debug information + + * libs/debug.c: corrected typo: HAVE_VPRINTF -> HAVE_VFPRINTF + + * fvwm/Makefile.am (fvwm2_SOURCES): + * fvwm/fvwm.h: + * fvwm/fvwmdebug.h: + * fvwm/fvwmdebug.c: added debug stuff (for main module only) + + * fvwm/FAQ: corrected some typos, added FAQ for the + click-in-a-window-to-raise-it question. + + * fvwm/fvwm2.1: + * BUGS: documented problem with keyboard shortcuts in Xnest + +1998-12-11 Dominik Vogt + + * fvwm/fvwm2.1: Documented menu hotkeys + +1998-12-11 Tim Phipps + + * modules/FvwmWinList/*: Without mini-icons text is centred by default. + Fixed Focus colouring. Added DontDepressFocus config variable. + Fixed relief drawing. + +1998-12-11 Bob Woodside + + * fvwm/events.c: Fixed "window under mouse at startup doesn't + get focus" bug - suppressed stashing the event time if an old + LeaveNotify was found on the queue. + +1998-12-10 Dominik Vogt + + * fvwm/move.c (et al.): Applied updated SnapAttraction patch but put + the SnapAttration stuff in a new function called DoSnapAttract to save + us duplicate code. + +1998-12-09 Paul D. Smith + + * fvwm/fvwm2.1: Clarify the uses and abuses of the Exec function. + +1998-12-09 Dominik Vogt + + * fvwm/builtins.c (ReadButtonFace): Removed MiniIcons memory leak fix. + No chance to get this stable without a rewrite of large parts of code. + + * libs/ColorUtils.c (color_mult): applied fix by Adam Rice that caused + some colours to be wrong + +1998-12-09 Bob Woodside + + * fvwm/virtual.c (GetDeskNumber): changed parsing to restore old + behavior of Desk cmd with a single arg, fixed handling of 4 args. + + * fvwm/functions.c: removed WindowsDesk command. + + * modules/FvwmPager/x_pager.c: changed to use MoveToDesk + instead of WindowsDesk command. + + * fvwm/fvwm2.1: clarified description of Desk cmd, documented + WindowsDesk as obsolete. + +1998-12-09 Dominik Vogt + + * fvwm/builtins.c (add_item_to_decor): a little clean up + (SetBorderStyle): fix for MiniIcon coredump + (SetBorderStyle): fix for MiniIcon coredump + + * fvwm/resize.c: don't wait for buttons up before resizing a window + when initially placing it + + * fvwm/move.c (moveLoop): a little clean up + (DisplayPosition): a little clean up + (Keyboard_shortcuts): patch to make cursor key work when placing + windows invoked from a menu + (Keyboard_shortcuts): removed old reference to menu code (not called + anymore from there). + + * fvwm/misc.h: + * fvwm/builtins.c (DeferExecution): + * fvwm/resize.c (resize_window): + * fvwm/move.c (Keyboard_shortcuts): + (moveLoop): patch to Keyboard_shortcut (was used for other things than + move/resize which didn't work well). + +1998-12-08 Dominik Vogt + + * fvwm/menus.c (menuShortcuts): fixed coredump with isgraph + + * fvwm/resize.c: + Removed globals constrainx/constrainy. Calculate them in ConstrainSize + when needed. This fixes the growing windows bug. Had to change the + signature of ConstrainSize. + + * fvwm/misc.h: + * fvwm/resize.c (resize_window): + (DoResize): + (ConstrainSize): + * fvwm/add_window.c (AddWindow): + (AddWindow): + * fvwm/builtins.c (Maximize): + * fvwm/events.c (HandlePropertyNotify): + (HandleConfigureRequest): + added new parameter fNoConstrain to ConstrainSize function + +1998-12-05 Dominik Vogt + + * fvwm/builtins.c (ReadButtonFace): fixed memory leak (?) + (SetEnv): fixed memory leak + + * fvwm/windows.c (do_windowList): DestroyMenu called as soon as + possible (might cause problems with WindowList as doubleclick action). + +1998-12-02 Paul D. Smith + + * fvwm/fvwm.c (main): Add FVWM_MODULEDIR to the environment + containing the default module directory. + * fvwm/fvwm2.1: Document it. + + * archive/purify/purify.fvwm2rc: Comment out things that cause + heap corruption, until they can be fixed. + + * fvwm/icons.c (Iconify): Initialize winattrs to empty to avoid + possible uninitialized memory reads in your_event_mask. + + * fvwm/colors.c (AllocLinearGradient): Added an error message for + invalid npixels. + +1998-12-01 Paul D. Smith + + * fvwm/builtins.c (AddTitleStyle): Free the parm string each time + through the loop. + + * fvwm/menus.c (DestroyMenu): Free the menu name string. + + * fvwm/builtins.c (set_animation): Free the first option string. + + * fvwm/bindings.c (remove_binding): Free the key_name and Action + strings when deleting the binding. + + * fvwm/windows.c (do_windowList): Make sure to free func, if not + already freed. Use tfunc to contain the menu title, not tlabel + (which is fixed-size). + + * libs/Parse.c (GetOnePercentArgument): Free the token returned + from GetNextToken(). + + * fvwm/builtins.c (ReadButtonFace): Free the perc array. + + * fvwm/fvwm.c (DestroyFvwmDecor): Free the Decor font if one was + allocated. + + * fvwm/builtins.c (SetMenuStyle): Free the StdFont before + resetting it. + + * libs/Parse.c (DoGetNextToken): Cast chars to unsigned before + using the is*() functions on them, to handle 8-bit chars + correctly. + (PeekToken): Ditto. + +1998-11-30 Paul D. Smith + + * fvwm/colors.c (nocolor): Make sure we don't call fvwm_msg with a + NULL ptr for a string. + +1998-11-30 Paul D. Smith + + * configure.in: Changed version to 2.1.4. + * NEWS: Ditto. + + Released fvwm 2.1.3 beta (CVS tag version-2_1_3). + +1998-11-30 Dominik Vogt + + * fvwm/fvwm.c (main): removed unused option -outfile + + * fvwm/fvwm2.1: added description for undocumented options -blackout + and -h. Fixed type (ame -> same) + + * fvwm/fvwm.c (StartupStuff): removed old ClickTime patch (the new one + is more rigorous). + +1998-11-29 Dominik Vogt + + * fvwm/builtins.c (SetClick): + * fvwm/fvwm.c (InitVariables): + (main): + More speedup with ClickTime during startup. A negative value will + becone positive when the event loop is entered (before that the user + cannot give input anyway). + + * fvwm/fvwm.h: + * fvwm/fvwm.c: added global flag fFvwmInStartup. This is set to False + when the event loop is entered. + +1998-11-28 Dominik Vogt + + * TODO: updated + + * fvwm/events.c: reindented some code + (HandleConfigureRequest): Phew, after a 10 hour debug session I was + finally able to surround and bag the xterm/active icon/resize bug. + Xterm sends a configure request to resize the icon pixmap window, but + HandleConfigureRequest dealt with the icon window only. Now what was + this fuzz about growing windows bugs? Bring 'em on :-[ + (HandleEnterNotify): removed garbage (old ifdef). + (GetContext): a little speedup + +1998-11-27 Bob Woodside + + * fvwm/fvwm.c, fvwm/fvwm2.1: changed GlobalOpts default from + ActivePlacementIgnoresStartsOnPage to ActivePlacementHonorsStartsOnPage. + +1998-11-27 Dominik Vogt + + * fvwm/fvwm2.1: entry for 'Direction' + + * fvwm/events.c (HandleMapNotify): changed logic for new + click-to-focus windows to receive focus (as hinted at by Tim Phipps). + +1998-11-26 Dominik Vogt + + * fvwm/builtins.c (DirectionFunc): implemented ne, se, sw, nw; based + scoring function of window centers. + + * libs/Parse.c (GetTokenIndex): fixed a coredump with an empty list + or token + + * fvmw/**: applied patches by Tim Phipps (see below) + + * fvwm/builtins.c (focus_func): cleaned up + (flip_focus_func): cleaned up + + * fvwm/fvwm2.1: changes on FlipFocus/Focus/WindowList + + * fvwm/focus.c (SetFocus): fixed SetFocus so that calling Focus from a + function moves the windowlist around to make the target window appears + at the top of the windowlist. + + * fvwm/windows.c (do_windowList): Applied alt-tab/unsort windowlist fix + + * fvwm/builtins.c (DirectionFunc): fixed coredump (empty direction) + +1998-11-24 Dominik Vogt + + * fvwm/windows.c (do_windowList): applied alt-tab patch by Tim Phipps + +1998-11-24 Paul D. Smith + + * fvwm/functions.c (FindBuiltinFunction): Cast the return value + for systems where bsearch() isn't declared to return void*. + + * acconfig.h: Include malloc.h if it's found, and we don't have + STDC_HEADERS (just in case). + + * libs/ModParse.h (LFindToken): Remove this macro. It's not + used, and it uses a non-standard function lfind(). Best to not + use it at all. + (search.h): Removed #include. + +1998-11-24 Dan Espen + + * fvwm/builtins.c (SetColorLimit): Check return code from + GetIntegerArguments not equal 1 for arg parse failure test. + +1998-11-24 Dominik Vogt + + * fvwm/virtual.c (checkPanFrames): made sure appropriate pan frames + are visible (Tim Phipps) + + * fvwm/fvwm.h: cleaned up some pan frame stuff (Tim Phipps) + + * fvwm/add_window.c (AddWindow): + applied border width patch by Tim Phipps + + * fvwm/builtins.c (SetDeskSize): + replaced GetTwoArguments with GetIntegerArguments and + GetRectangleArguments, some cleanup + (movecursor): rewrote function to get consistent behaviour. + + * fvwm/builtins.c (SetEdgeResistance): + * fvwm/virtual.c (goto_page_func): + * fvwm/move.c (move_window_doit): + replaced GetTwoArguments with GetIntegerArguments + + * fvwm/misc.c: + * fvwm/misc.h: + * libs/Parse.c: + * libs/fvwmlib.h: + moved GetOneArgument and GetTwoArguments to libs/Parse.c and renamed + them to Get...PercentArgument(s). GetTwoArguments remains as a wrapper + to GetTwoPercentArguments. Added GetRectangleArguments function. + +1998-11-23 Dominik Vogt + + * fvwm/misc.c (GetOneArgument): rewrote function to do something + useful + + * fvwm/builtins.c (DirectionFunc): applied patch for better scoring + funtion. + + * fvwm/builtins.c (iconify_function): + (SetClick): + (SetColorLimit): + (SetSnapAttraction): + (SetOpaque): + * fvwm/module.c (set_mask_function): + replaced GetOneArgument with GetIntegerArguments + +1998-11-22 Dominik Vogt + + * fvwm/builtins.c: Fixed broken string (contained a newline) + + * extras/FvwmCommand/FvwmCommand.c: fixed >= comparison on pointer + + * modules/FvwmButtons/FvwmButtons.c: fixed pager breakage bug + + * fvwm/bindings.c (Parse...Entry): fixed compile error (void returned) + +1998-11-23 Dan Espen + + * NEWS: Moved stuff from end of old ChangeLog into the NEWS file. + +1998-11-22 Dominik Vogt + + * fvwm/**: + * libs/**: removed trailing spaces from the files I touched since 11-20 + + * fvwm/fvwm.c (StartupStuff): Added call to checkPanFrames to make + page flipping via EdgeScroll work with FvwmCpp too. + + * fvwm/misc.c (Destroy): remove window from window list before doing + anything else. Should fix race condition coredump with + Close/Delete/Destroy. + + * TODO: updated + + * FAQ (44): added section for FvwmButtons/Swallow + +1998-11-21 Dominik Vogt + + * fvwm/menus.c (AddToMenu): fixed uninitialised memory read in item2 + and s. + + * fvwm/builtins.c (DirectionFunc): + (Circulate): fixed free of possible NULL pointer. + + * fvwm/style.c (ProcessNewStyle): fixed uninitialised memory read: + 'BUTTON'/'NOBUTTON' with invalid button number + + * fvwm/add_window.c (AddWindow): fixed uninitialised memory read: + attributes.background_pixmap not set. + + * libs/Parse.c (DoGetNextToken): cleaned up a bit because of the + array bounds violation in SetGlobalOptions, but I don't believe that + fixes it. Reformatted for further debugging. + + * fvwm/functions.c (find_func_type): a little speedup + +1998-11-20 Bob Woodside + + * add_window.c + * placement.c + * style.c + Fixed StartsOnDesk/StartsOnPage bug that prevented a desk or page + specification of -1 from working. + + * AUTHORS: added entry. + +1998-11-20 Dominik Vogt + + * fvwm/complex.c (expand): a little speedup + + * fvwm/functions.c (ExecuteFunction): a little speedup + + * fvwm/menus.c (NewMenuRoot): + (FMenuMapped): + fixed uninitialised memory reads + + * fvwm/menus.c (NewMenuRoot): + put parentheses around macro parameters + + * fvwm/menus.c (NewMenuRoot): + (MakeMenu): + * fvwm/windows.c (do_windowList): + * fvwm/misc.h: + * fvwm/builtins.c (add_item_to_func): + (add_item_to_menu): + changed NewMenuRoot signature + + * configure.in: Version 2.1.2 released (CVS tag = version-2_1_2) + and current version bumped to 2.1.3. + +1998-11-19 Dominik Vogt + + * libs/envvar.c (strIns): fixed array bounds read viaolation + + * fvwm/menus.c (AddToMenu): multiple tabs allowed between left and + right part of menu item name; all other tabs are replaced by spaced + + * fvwm/fvwm2.1: updated AddToMenu/AddToFunc syntax + + * fvwm/builtins.c (CreateFlagString): + (FreeConditionMask): + (DefaultConditionMask): + (CreateConditionMask): + (MatchesContitionMask): + (Circulate): + (DirectionFunc): + Applied 'Direction' patch (added and modified some functions). + + * fvwm/builtins.c (SetMenuStyle): fixed coredump (NULL action + referenced with NEXT style). + +1998-11-18 Dominik Vogt + + * fvwm/move.c (moveLoop): Applied SnapAttraction update patch + + * fvwm/resize.c (resize_window): fixed bug that prevented moving from + a mouse button from working with ClickToFocus + + * fvwm/move.c (moveLoop): Applied SnapAttraction patch. + (moveLoop): fixed bug that prevented moving from a mouse button from + working with ClickToFocus + + * fvwm/builtins.c (SetMenuStyle1): fixed memory leak + + * fvwm/menus.c (MakeMenu): bugfix: Titles in newmenu patch drawn too + far right. + + * fvwm/**: Applied newmenu patch by German Gomez Garcia. + +1998-11-18 Paul D. Smith + + * fvwm/menus.c (NewMenuRoot): Initialize the in_use flag. + + * fvwm/builtins.c (ReadButtonFace): Don't free() NULL pointers. + (CursorStyle): Message was printing already-freed memory; don't + free until afterwards. + +1998-11-17 Dominik Vogt + + * fvwm/misc.c (Destroy): applied mini-icon compile patch by Tim Phipps + +Mon Nov 16 20:30:16 1998 DanEspen + + * libs/ColorUtils.c (BRIGHTNESS_FACTOR): Set adjustment factors + to fvwm2 defaults instead of scwm numbers. + +Sun Nov 15 12:24:12 1998 DanEspen + + * NEWS: Document shadow/hilite change. + +1998-11-15 Dominik Vogt + + * fvwm/builtins.c (wait_func): Wait builtin can be aborted with + Control-Escape. + (movecursor): fixed bugs: cursor move didn't work on edge of screen; + didn't compile if NON_VIRTUAL is defined + +1998-11-14 Dominik Vogt + + * fvwm/builtins.c (CursorStyle): fixed coredump + (echo_func): empty line is ok now + (set_animation): rewrote parser to fix coredump (empty config line) + (SetMenuStyle): fixed 'exit' if no font is given + (add_item_to_func): fixed coredump (empty config line) + (add_item_to_menu): empty name not allowed + +Sat Nov 14 19:56:11 1998 DanEspen + + * libs/Picture.c: Made PictureCMap and PictureSaveDisplay globals + so ColorUtils.c can see the result of calling InitPictureCMap. + + * libs/fvwmlib.h: moved GetShadow, GetHilite prototypes from + fvwm/misc.h + + * fvwm/misc.h: moved GetShadow, GetHilite prototypes to + libs/fvwmlib.h + + * fvwm/builtins.c: Removed funny use of externs for the strings + "black" and "white". + + * libs/Makefile.am (libfvwm_a_SOURCES): Added ColorUtils.c, + got automake, now generating Makefile.in. + + * fvwm/colors.c: moved GetShadow, GetHilite to libs/ColorUtil.c. + +1998-11-13 Bob Woodside + + * Upgraded FvwmCommand to 1.5.1 and FvwmConsole to 1.3 - the latest + versions from Toshi Isogai. + + * Added the StackingOrder rewrite + +1998-11-12 Dan Espen + + * Under the sample.fvwmrc directory, removed everything in the + BradyMontz directory. This kind of "theme" stuff will be distributed + separatly. + +1998-11-12 Dominik Vogt + + * fvwm/misc.c (free_window_names): simplified code + (Destroy): fixed memory leaks: icon_maskPixmap and mini_icon were + not free'd + + * fvwm/add_window.c (AddWindow): removed stripcpy patch. Old stuff was + ok. + + * fvwm/menus.c (AddToMenu): fixed memory leak (freeing menu items) + + * fvwm/read.c (ReadSubFunc): coredump fix and a little cleanup + +1998-11-11 Dominik Vogt + + * fvwm/menus.c (menuShortcuts): removed call of Keyboard_shortcuts + (dosn't make sense). + + * fvwm/move.c (Keyboard_shortcuts): fixed coredump when no window + has the focus (e.g. possible with menus and MouseFocus policy). + + * fvwm/bindings.c (ParseKeyEntry): Speedup for Key binding parsing + (ParseBindEntry): Merged ParseMouseEntry and ParseKeyEntry. + + * fvwm/menus.c (FreeMenuItem): function added + +1998-11-10 Dominik Vogt + + * fvwm/menus.c (MakeMenu): Border size fix by Ryomi Murai + (PaintEntry): Drawing fixes by Ryomi Murai + + * fvwm/move.c (move_window_doit): + * fvwm/misc.c: + * fvwm/misc.h: + * fvwm/fvwm2.1: + Applied Warp option patch for Move by Tim Phipps (see below). + + * fvwm/misc.{c,h}: changed GetPositionArguments to GetMoveArguments + and added parsing for optional Warp flag for Move/AnimatedMove + + * fvwm/move.c: Added optional Warp flag for Move/AnimatedMove + + * fvwm/fvwm2.1: Documented optional Warp flag for Move/AnimatedMove + +1998-11-10 Dominik Vogt + + * fvwm/builtins.c (SetMenuStyle): fixed memory leak. + (SetXOR): fixed memory leak + (ReadButtonFace): fixed memory leak. + + * fvwm/menus.c (MakeMenu): fixed memory leak. + + * fvwm/add_window.c (AddWindow): fixed XGetCommand memory leak. + + * fvwm/add_window.c (AddWindow): I think I fixed the XGetWMName + memory leak. The manpage doesn't say that the name storage must be + free'd, but it does not coredump and is hinted at by other manpages(?) + +1998-11-09 Dominik Vogt + + * FvwmButtons/parse.c (seekright): switched to new syntax of + DoGetNextToken. + + * modules/FvwmIconMan/readconfig.c: Fixed bug that prevented function + lists from working if they contained a comma. Fixed a memory leak too. + + * libs/Parse.c (DoGetNextToken): Added parameter to return the + character that ended the string. + +Mon Nov 9 18:51:19 1998 Steve Robbins + + * Makefile.am (EXTRA_SUBDIRS): Removed textures from list of SUBDIRS. + +1998-11-09 Dominik Vogt + + * fvwm/move.c: Applied the bugfix for the move-lagging-behind + problem. + + * modules/FvwmRearrange: new module added (merged FvwmTile and + FvwmCascade). + + * fvwm/fvwm2.1: updated and cleaned up the manpage, reformatted + examples to a consistent style + +1998-11-08 Dominik Vogt + + * fvwm/resize.c (resize_window): + * fvwm/move.c (moveLoop): + Cleaned up aborting with a mouse button: + If the move/resize started with a button down, pressing any button + aborts the operation. If no button was down, pressing button 1 confirms + the operation, any other button aborts. + + * fvwm/builtins.c (SetClick): + * fvwm/modconf.c (SendDataToModule): + * fvwm/fvwm.c (StartupStuff): Patch to speed up (re)starting fvwm. + Scr.ClickTime is set to -Scr.Clicktime so functions that use this + value do not wait for user input. Saves some seconds during startup, + depending on the ClickTime value in the startup file. + + * libs/Picture.c (CachePicture): + * fvwm/modules.c (executeModule): + fixed bugs introduced during the merge on saturday + +1998-11-08 Paul D. Smith + + * fvwm/icons.c (GetXPMFile): Free pixmap after use. + +1998-11-07 Dominik Vogt + + * fvwm/menus.c (MenuInteraction): fixed bug with non-animated + fvwm-menus and in a submenu + + * fvwm/windows.c: removed obsolete code, added safety checks + + * libs/Picture.c (GetPicture): + (CachePicture): + (findIconFile): + fixed memory leak + + * fvwm/move.c (moveLoop): fixed move from button menu + + * fvwm/resize.c (resize_window): fixed resize from button menu + + * fvwm/bindings.c: + * fvwm/builtins.c: + * fvwm/complex.c: + * fvwm/functions.c: + * fvwm/menus.c: + * fvwm/misc.c: + * fvwm/modconf.c: + * fvwm/module.c: + * fvwm/read.c: + * fvwm/style.c: + * modules/FvwmIconMan/readconfig.c: + * libs/Parse.c: + Changed behaviour of GetNextToken() to fix memory leaks. + Some parsing stuff may be instable now (coredumps!) + +1998-11-06 Dominik Vogt + + * fvwm/module.c (executeModule): fixed memory leaks + + * fvwm/modconf.c (DestroyModConfig): fixed memory leaks + + * fvwm/menus.c (MrPopupForMi): some optimizing and cleanup + (GetPopupOptions): some optimizing, fixed memory leak + + * libs/Parse.c (CmpToken): removed old code: GetToken() and old + version of GetNextToken. + (SkipNTokens): Added for smoother parsing. + + * fvwm/functions.c (ExecuteFunction): Cleanup for mem-leakage + fixes. + +Sat Nov 7 02:01:41 1998 Steve Robbins + + * configure.in: Version 2.1.1 released (CVS tag = version-2_1_1) + and current version bumped to 2.1.2. + +1998-11-06 Paul D. Smith + + * fvwm/Makefile.am (fvwm2_DEPENDENCIES): Add a dependency on libfvwm.a. + + * libs/Picture.c (CachePicture): Free the pathname returned by + findIconFile(). + + * libs/fvwmlib.h (DB): New debugging/logging definitions. + + * libs/debug.c: New file for a uniform debugging library. + * libs/Makefile.am (libfvwm_a_SOURCES): Build it. + + * fvwm/fvwm.c (ResetAllButtons): Rewrote to be a bit faster. Make + sure we reset the button flags in addition to the rest of the button. + + * configure.in: Add missing checks for memmove(), memcpy(), and + strchr(). Check also for malloc.h vs. stdlib.h headers, and + change to positive check for string.h instead of strings.h--we + want to use the former where possible. Check for vfprintf(). + + * acconfig.h: Rework definitions for memmove() and memcpy() (note + that some systems (SunOS) have memcpy() but not memmove(), so + check them separately). Rework header inclusion based on + tried-and-true methods from GNU make's configuration. + + * fvwm/menus.c (scanForPixmap): Don't define or malloc() + save_instring unless we're going to use it + (UGLY_WHEN_PIXMAPS_MISSING is defined). Also, make sure to always + free it (we had a bad memory leak here). + +1998-11-05 Bob Woodside + + * folded in StartsOnPage style modifications. + +1998-11-05 Paul D. Smith + + * configure.in: Check for the div() function (for extras/FvwmScript). + Remove check for stdarg.h; we'd need a lot fancier config to allow + the use of varargs.h or something else; for now assume we have it. + + * fvwm/module.c (make_vpacket): New function: creates a module + packet from a va_list. This is the most basic function: all + packet creating functions will eventually call this one to (at + least) fill in the header information. This is the only place + that's done, now. + (make_packet): A variadic function that uses make_vpacket() to + construct the packet. + (SendPacket): A generic function to send a packet to a module. + Rewrite to be variadic instead of taking a set number of + arguments. Use make_vpacket() to construct the packet. + (BroadcastPacket): Renamed from Broadcast(), and removed + Broadcase_v() which is now redundant. A variadic function to + broadcast a packet to all modules. Use make_vpacket() to + construct the packet. Rewrote to construct the packet first, then + send the same one to all modules, rather than calling SendPacket() + multiple times (each time reconstructing the same packet). + (CONFIGARGS): New macro to provide the arguments for the Config + packet. + (SendConfig): Rewrote to invoke SendPacket() passing the proper + config arguments (uses CONFIGARGS). + (BroadcastConfig): Rewrote to invoke BroadcastPacket() passing the + proper config arguments (uses CONFIGARGS). + (make_named_packet): A generic function to construct a packet + where the last item is a name (variable length string). Takes a + name and a variable number of arguments. Uses make_vpacket(). + (SendName): Use make_named_packet() to construct the packet to + send. + (BroadcastName): Use make_named_packet() to construct the packet + to send. Only construct it once, then send that same data to each + module, rather than reconstructing it each time. + (SendMiniIcon): Use make_named_packet() to construct the packet to + send. + (BroadcastMiniIcon): Use make_named_packet() to construct the packet + to send. Only construct it once, then send that same data to each + module, rather than reconstructing it each time. + (send_list_func): Remove padding arguments from SendPacket() + invocations. + + * fvwm/virtual.c (MoveViewport): Call new BroadcastPacket(). + (changeDesks): Call new BroadcastPacket(). + + * fvwm/move.c (move_window_doit): Call new BroadcastPacket(). + + * fvwm/misc.c (Destroy): Call new BroadcastPacket(). + (RaiseWindow): Call new BroadcastPacket(). + + * fvwm/icons.c (AutoPlace): Call new BroadcastPacket(). + (DeIconify): Call new BroadcastPacket(). + (Iconify): Call new BroadcastPacket(). + + * fvwm/events.c (HandleFocusIn): Call new BroadcastPacket(). + (HandlePropertyNotify): Call new BroadcastPacket(). + (HandleMapNotify): Call new BroadcastPacket(). + (HandleConfigureRequest): Call new BroadcastPacket(). + + * fvwm/builtins.c (WindowShade): Call new BroadcastPacket(). + (SetDeskSize): Call new BroadcastPacket(). + + Fix errors found by Purify: + + * fvwm/module.c (SendName): Zero out the end of the message to + avoid uninitialized memory reads. + + * fvwm/decorations.c (GetOlHints): Don't free(NULL). This is OK + in ANSI C, but it's not completely portable. + + * libs/Picture.c (CachePicture): Don't look past the end of + allocated memory. + (LoadPicture): Free pixmaps when we're done with them. + + * fvwm/builtins.c (SetMenuStyle): Free a previous font if it exists. + (LoadIconFont): Same. + (LoadWindowFont): Same. + + * fvwm/fvwm.c (InitVariables): Initialize Scr.IconFont. + (InitFvwmDecor): Set TitleHeight and the font pointer since + otherwise they might be used uninitialized (in LoadWindowFont). + +1998-11-05 Steven Michael ROBBINS + + * libs/XResource.c (MergeCmdLineResources): DEC's compiler claims + that a '&' in front of the array "default_opts" is ignored, so I + removed it. + + * libs/System.h: Removed. + * libs/System.c: Removed mygethostname(), replaced with + gethostname.c from some GNU utils package. Renamed mygetostype() + to just getostype(), in parallel with gethostname(). + + * libs/Strings.c: Pulled out mystrcasecmp() and mystrncasecmp() to + their own files. + + * libs/Parse.c (PeekToken): Add const qualifier to variable 'p' to + stop pstr from losing its constness. + + * fvwm/style.c: Cast arguments to memcpy() to placate gcc on DEC + alpha. + + * fvwm/module.c: Explicit checks for the presence of or + . If using , use the two-argument form of + va_start(), otherwise the single-argument form. + + * fvwm/menus.c (menuShortcuts): Fixed parameters in call to + XLookupString(). + + * fvwm/fvwm2.1: Replace references to Fvwm.tmpl with current + equivalents. Other fixes from Austin Donelly. + + * fvwm/functions.c (func_comp): Put const qualifiers on the + arguments, to match requirements for bsearch(). + + * fvwm/builtins.c: Moved strerror() function to libs/strerror.c. + + * libs/sleep.c: Removed and globally changed sleep_a_little() to + usleep(). + + * libs/gethostname.c: + * libs/strerror.c: + * libs/usleep.c: + * libs/strcasecmp.c: + * libs/strncasecmp.c: + + * libs/Makefile.am: Added the above files. Each file is compiled + into libfvwm only if the system libraries are missing the + corresponding function. Globally replaced the "my"-version of + these functions with the standard one. + + * include config.h: Moved #include to the top of the file in some + but not yet all the files that include config.h. + + * main: All main() functions return int rather than void. + + * symbols: Changed the ifdefs around header includes to read + #if HAVE_FOO_H, rather than a maze of machine-type symbols. + + * sun_headers.h: + * sunos_headers.h: + * alpha_header.h: Removed all traces of these. Removed + declarations of system functions when a conflict noticed. + + * configure.in: Require autoconf 2.12 as prerequisite. Changed + version string to 2.1.1. Added more checks. + + * acconfig.h: Code to define str[r]chr and mem{cpy,move} if not + available. Removed obsolete FVWM_INLINE and globally replaced + with "inline". + + * Makefile.am (AUTOMAKE_OPTIONS): Set to 1.3b, so that automake + complains if it is too old. + + * utils/xpm-reduce.c + * utils/xpm-reduced-rgb.txt: removed; obsoleted by a runtime + colour reduction scheme. + +1998-11-04 Paul D. Smith + + * Fix problems discovered by Purify: + + * fvwm/menus.c (MenuInteraction): Don't try to call + GetPopupOptions() until we know we're looking at a popup menu. + + * fvwm/misc.c (GetOneMenuPositionArgument): If the returned token + is an empty string, don't try to parse it. + +1998-11-04 Dominik Vogt + + * fvwm/fvwm2.1: + * fvwm/builtins.c (stick_function): + * fvwm/move.c (move_window_doit): + Change for 'Stick' to allow to make windows sticky that are on + a different screen. + + * modules/FvwmAudio/FvwmAudio.c: + * modules/FvwmEvent/FvwmEvent.c: Fixed rplay build problem + + * modules/FvwmEvent/Makefile.in (mkinstalldirs): + Added missing rplay library to link options + + * fvwm/menus.c (FPopupMenu): + Fixed broken left menus with mwm/noanimation style when near the + right edge of screen. + +1998-11-04 Dan Espen + + * TODO: Renamed TO-DO to standard name TODO + + * NEWS: Added web docs.html to end of NEWS file. + +Wed Nov 4 11:09:11 1998 Steve Robbins + + * added some files to cvs: modules/ChangeLog, extras/ChangeLog, + NEWS, and AUTHORS. + + * DEVELOPERS: replaces README.autoconf. + +1998-11-04 Dominik Vogt + + * fvwm/events.c (HandlePropertyNotify): Fixed the fix + for TransientFor Bug + + * extras/fvwmperl/*: Added correct copyright notices. + +1998-11-03 Dominik Vogt + + * fvwm/events.c (HandlePropertyNotify): + Added bugfix for TransientFor problem by Duane Guingrich. + + * TO-DO (Cleanups): Updated the TO-DO list + + * fvwm/misc.c (GetPositionArguments): + Added MkLinux fix from Mike Tilstra + +Tue Nov 2 00:35:30 1998 Dominik Vogt + + * fvwm/builtins.c: + * fvwm/complex.c: + * fvwm/menus.c: + * fvwm/move.c: + * fvwm/placement.c: + * fvwm/resize.c: + fixed XBell bug + + * modules/FvwmButtons/CHANGES: + * modules/FvwmButtons/FvwmButtons.h: + * modules/FvwmButtons/FvwmButtons.1: + * modules/FvwmButtons/TODO: + * modules/FvwmButtons/button.c: + * modules/FvwmButtons/draw.c: + * modules/FvwmButtons/parse.c: + Left/Right/Center option for buttons, did some cleanup + + * ...: + cleaned up lots of files for lclint + +Sun Nov 1 12:52:59 1998 Steve Robbins + + * sample.fvwmrc/system.fvwm2rc*: Removed the lines setting + ModulePath, IconPath, and PixmapPath, since the compiled-in + defaults can be set using configure. + +Sun Nov 1 12:26:01 1998 Steve Robbins + + * modules/FvwmM4/FvwmM4.c (m4_defs): + * modules/FvwmCpp/FvwmCpp.c (cpp_defs): Split FVWMDIR definition + into FVWM_MODULEDIR and FVWM_CONFIGDIR. + +Sun Nov 1 09:54:14 1998 Steve Robbins + + * extras/FvwmTaskBar/Goodies.c: Restored Goodies.c from -r 1.1 of + the repository. + + * libs/Picture.c (GetPicture): Removed the #ifdef NotUsed from + around this function. Appended "int color_limit" to the list of + parameters. Restored GetPicture() declaration to fvwmlib.h. + + * extras/FvwmTaskBar/Start.c: Fixed call to GetPicture function, + using "-1" as the color_limit (i.e., no color limit). + +Sun Nov 1 09:19:08 1998 Steve Robbins + + * configure.in: Set VERSION to 2.1.0. + +Sat Oct 31 06:44:50 1998 Steve Robbins + + * Basic autoconfiguration support added. + +Sat Oct 31 06:02:37 1998 Steve Robbins + + * modules/FvwmCpp: + * modules/FvwmM4: Changed FVWMDIR to FVWM_MODULEDIR. + diff --git a/app/fvwm/Fvwm.tmpl b/app/fvwm/Fvwm.tmpl new file mode 100644 index 000000000..abc9b6d39 --- /dev/null +++ b/app/fvwm/Fvwm.tmpl @@ -0,0 +1,28 @@ +XCOMM $OpenBSD: Fvwm.tmpl,v 1.1.1.1 2006/11/26 10:53:05 matthieu Exp $ + +/* Where to install modules and scripts */ +FVWMLIBDIR= $(LIBDIR)/fvwm + +/* Standard includes */ +FVWMINCLUDES= -I$(FVWMTOP) -I$(FVWMTOP)/libs + +/* Fvwm library */ +FVWMLIB= $(FVWMTOP)/libs/libfvwm.a + + +/* A set of rules to build Fvwm modules */ +#define FvwmSimpleModuleTarget(name) @@\ +SRCS= name.c @@\ +OBJS= name.o @@\ +INCLUDES= $(FVWMINCLUDES) @@\ +DEPLIBS= $(FVWMLIB) $(DEPXPMLIB) $(DEPXLIB) @@\ +LOCAL_LIBRARIES= $(FVWMLIB) $(XPMLIB) $(XLIB) @@\ +BINDIR= $(FVWMLIBDIR) @@\ +SimpleProgramTarget(name) @@\ +LinkFile(name.man,name.1) + +#define FvwmComplexModuleTarget(name) @@\ +INCLUDES= $(FVWMINCLUDES) @@\ +BINDIR= $(FVWMLIBDIR) @@\ +ComplexProgramTarget(name) @@\ +LinkFile(name.man,name.1) diff --git a/app/fvwm/Imakefile b/app/fvwm/Imakefile new file mode 100644 index 000000000..2df0d7838 --- /dev/null +++ b/app/fvwm/Imakefile @@ -0,0 +1,16 @@ +# $OpenBSD: Imakefile,v 1.1.1.1 2006/11/26 10:53:05 matthieu Exp $ + +#define IHaveSubdirs + +SUBDIRS= libs fvwm sample.fvwmrc utils icons \ + modules/FvwmAuto modules/FvwmBacker modules/FvwmBanner \ + modules/FvwmButtons modules/FvwmCpp \ + modules/FvwmForm modules/FvwmIconBox modules/FvwmIconMan \ + modules/FvwmIdent modules/FvwmM4 modules/FvwmPager \ + modules/FvwmRearrange modules/FvwmSave modules/FvwmSaveDesk \ + modules/FvwmScroll modules/FvwmTalk modules/FvwmWinList + +#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' + +MakeSubdirs($(SUBDIRS)) +DependSubdirs($(SUBDIRS)) diff --git a/app/fvwm/Makefile b/app/fvwm/Makefile new file mode 100644 index 000000000..9969e2362 --- /dev/null +++ b/app/fvwm/Makefile @@ -0,0 +1,15 @@ +# $Xenocara: Makefile,v 1.2 2006/04/17 20:16:24 matthieu Exp $ + +SUBDIR= libs fvwm sample.fvwmrc utils icons modules + +build: + ${MAKE} cleandir + ${MAKE} + ${SUDO} ${MAKE} install + +includes: + +update: + +.include + diff --git a/app/fvwm/Makefile.inc b/app/fvwm/Makefile.inc new file mode 100644 index 000000000..7fa5758a3 --- /dev/null +++ b/app/fvwm/Makefile.inc @@ -0,0 +1,25 @@ +# -*- makefile -*- +# $Xenocara: Makefile.inc,v 1.2 2006/04/17 20:16:24 matthieu Exp $ + +.ifndef FVWM_MAKEFILE_INC +FVWM_MAKEFILE_INC = done +.include + +X11BASE?= /usr/X11R6 + +CFLAGS+= -I${X11BASE}/include -I${.CURDIR} -I${.CURDIR}/.. \ + -I${.CURDIR}/../libs + +FVWMLIBDIR= ${X11BASE}/lib/X11/fvwm +MANDIR= ${X11BASE}/man/cat + +.include + +.if exists(${.CURDIR}/../libs/${__objdir}) +LDADD+= -L${X11BASE}/lib -L${.CURDIR}/../libs/${__objdir} -lfvwm +DPADD+= ${.CURDIR}/../libs/${__objdir}/libfvwm.a +.else +LDADD+= -L${.CURDIR}/../libs -lfvwm +DPADD+= ${.CURDIR}/../libs/libfvwm.a +.endif +.endif diff --git a/app/fvwm/NEWS b/app/fvwm/NEWS new file mode 100644 index 000000000..f0b744d49 --- /dev/null +++ b/app/fvwm/NEWS @@ -0,0 +1,976 @@ +Changes in official release 2.2.5 (not released yet) + +* When fvwm is run remotely, startup is noticably faster. + +* Fixed the description of Focus in the man page. + +* Fixed a compile problem with Slackware 7.1. + +* Security fix related to .fvwm2rc being searched in the current directory + when $HOME is not set. + +* A small fix in the code for SmartPlacement. + +* Core dump fix in pixmap code. + +Changes in official release 2.2.4 (November 1999) + +* Fixed HP-UX 10.20 build problems. + +* Fixed build problems without shape extension. + +Changes in official release 2.2.3 (October 1999) + +* Several minor bugfixes. + +* Fixed dragging windows out of the pager. + +* Added support for StartFunction & ImagePath not to break new configurations. + +* Fixed long-window-name-hangs-X bug. + +Changes in official release 2.2.2 (May 1999) + +* New "Emulate" command for independent control of the move/resize + feedback window. + +* EdgeThickness command can be issued at any time. + +* Pan frames not created when not needed. + +* Pan frames reach corners. + +* Fixed window wandering on restart, recapture. + +* International characters are accepted as input in FvwmForm. + +* Fix bug in window shading that left one row of pixels visible. + +* Fix to FvwmTaskbar so that it won't loop when there are too many + buttons. + +* Fix positioning bug on overlapping menus. + +* Fix M4 command problem, Problem Reports 201 and 246. + +* Fixed bug when calling a function without all args supplied. + +* Miscellaneous bug fixes, see ChangeLog for details. + + +Changes in official release 2.2 (February 1999) + +Changes in beta release 2.1.13 (February 1999) + +Changes in beta release 2.1.12 (February 1999) + +* Enhanced and changed the syntax for menu position hints. If you use negative + offsets you will have to change your configuration now. + +Changes in beta release 2.1.11 (January 1999) + +* Renamed MenuStyle options: PrepopMenus to PopupImmediately and + PrepopMenusOff to PopupDelayed. + +Changes in beta release 2.1.8 (January 1999) + +* New options SidePic and SideColor to MenuStyle + +* Configure generates a summary at the end of processing. In particular + this is useful to see if any of XPM, Readline, or RPlay are missing. + +* Configure now looks in more places to find cpp. If cpp can't be + found, you will need to specify '-cppprog' if you use the FvwmCpp + module. A warning to this effect is printed at configure time. + +* Configure now tries harder to ensure that XPM is the right version. + +Changes in beta release 2.1.7 (December 1998) + +* The SetMenuStyle command does not exist anymore. Its functionality has + been merged with MenuStyle. MenuStyle supports the old and the new syntax. + +Changes in beta release 2.1.6 (December 1998) + +* Recapture is now much faster + +* New command "EdgeThickness" to control the size of the pan frames, and + a new way to turn off mouse edgescrolling. + +* new commands DefaultFont, DefaultColors and Emulate + +* SetMenuStyle was completely rewritten to get a 'Style'-like syntax. + +* Removed SetMenuDelay command. + +* Popup menus can have a default action too. + +* FvwmButtons quoting cleaned up a bit. + +Changes in beta release 2.1.5 (December 1998) + +* SnapAttraction works for windows and/or icons. New command SnapGrid. + +* The WindowsDesk command is now obsolete. It has been replaced with the + MoveToDesk command, which uses an argument syntax identical to the + enhanced Desk command, and allows constraining a move within a range + of desks. + +Changes in beta release 2.1.4 (December 1998) + +* Fvwm creates an environment variable FVWM_MODULEDIR containing the path + to the default module directory, for use in config files, etc. +* The extras module FvwmCommand installs its user interface into the + bindir rather than the moduledir. + +Changes in alpha release 2.1.3 (November 1998) + +* Switched to GNU autoconf +* COPYING policy file +* Improved menu handling: Menu position hints, individual menu styles, + cursor key navigation, animated menus :-) +* Improved window movement: AnimatedMove, SetAnimation, SnapAttraction + (like in KDE), move/resize can be aborted with a mouse button, Warp option + to Move/AnimatedMove. +* Direction command (allows to switch windows via cursor (or other) keys in an + intuitive way). +* Recapture command is now faster. +* Startup is a bit faster if you have a large configuration file and + a high ClickTime. +* Desk/Page handling: $d in functions is replaced by the current desk number, + Desk parameters can be given a min/max allowed desk number, making a window + sticky moves it to the current page, MoveToDesk and MoveToPage functions, + enhanced WindowsDesk function +* Styles: temporary GlobalOpts command, MouseFocusOnStartup, StipledTitles +* Upgraded versions of FvwmCommand (1.5.1), FvwmConsole (1.3) and + FvwmIconMan. +* FvwmPager: Balloons (small text windows with the window title appear in the + pager), current desk (always the current desk on the pager). +* FvwmButtons improvements: animated panels (like CDE), better button + shuffling, button geometries (x and y position). + +Changes in alpha release 2.1.2 (November 1998) + +* Modules FvwmCascade and FvwmTile were replaced with FvwmRearrange. +* Improved Shadow/Hilite algorithm (from scwm). Logic moved into + library and all modules with 3D logic now use this routine. +* SnapAttraction Command: If during an interactive move a window comes + within a certain distance in pixels of another it will be moved to + make the borders adjoin. +* ...MenuStyle commands: allow to name different menu styles and apply them + to individual menus. +* Direction command + +Changes in alpha release 2.1.1 (October 1998) + +* Official home page html added to docs directory. + +Changes in alpha release 2.1.0 (October 1998) + +* basic autoconfiguration support; see INSTALL.fvwm and INSTALL +* modules installed into ${libexecdir}/fvwm/${VERSION} + - since the version string is encoded into the module directory, it + is safer to rely on the compiled-in ModulePath, rather than + setting it yourself in .fvwm2rc +* system configure (system.fvwm2rc) searched for in ${sysconfdir} +* FvwmCpp and FvwmM4 no longer define FVWMDIR variable; instead they + define FVWM_MODULEDIR and FVWM_CONFIGDIR +* FvwmAnimate added. +* Starting with this release, fvwm2 is in a public CVS tree. + +Changes in alpha release 2.1-pre-beta AKA 2.0.47 + + 1. FAQ updates + 2. Menu code & Move fixes & enhancements based on patch from + Greg Badros [+ some bugfixes] + 3. Added SetEnv function (also from Greg's patch) + 4. Fixed some memory leaks + 5. Cleaned up some ugly code pointed out by Peter Seebach + (like mystrcasecmp & mystrncasecmp - are these even needed + anyways? Is there any system that doesn't have the non-"my" + versions?) + 6. Builtin WindowList no longer searches for xpm's in window + titles (patch from Greg Badros) + 7. Various compiler fixes + 8. Created textures directory, put Martin Cartwright's + "marbles" and textures from http://www.PLiG.org/xwinman/ in + there as a start + 9. Pager balloon window patch from Ric Lister + 10. Signal handler safety patches (based on patch from Grant + McDorman) + 11. Cleaned up and consolidated allowed function checking code + 12. Made GetTwoArguments check for 'MxN' style numbers so cmds + like 'DeskTopSize 2x3' will work (since the man page has + always said that is the proper syntax) + 13. Fixed some minor parsing bugs + 14. Added check to GetWindowSizeHints to compensate for bad + aspect ratios (fixes some windows that startup HUGE) + 15. Patch to FvwmButtons to add animated panels to it (like CDE + or Wharf) from Jui-Hsuan Joshua Feng + 16. Brady Montz is the new maintainer. + 17. The Imakefile for FvwmCpp sets FVWM_CPP to CppCmd. If Imake + is incorrectly configured, you have to override this in Fvwm.tmpl. + 18. New version of FvwmIconMan + 19. Changed prototype of bzero() in alpha_headers.h. + 20. Applied Iconbox patch which added new styles IconGrid and IconFill + from Dan Espen. + 21. Applied Colorlimit patch which adds ColorLimit command to set + maxmimum number of colors fvwm can use for pixmaps from Dan Espen. + 22. Applied DontFocusOffscreen patch. + 23. Added StipledTitles globalopt. + 24. Fix to fvwmrc_convert from Pete Forman. + 25. Added FvwmEvent module (successor to FvwmAudio). Added notice to + FvwmAudio manpage to start using FvwmEvent. + 26. Added a usleep() for machines which don't have them. Set + HAVE_USLEEP accordingly in configure.h. + 27. Changed Fvwm.tmpl to use the CCENVSETUP Imake variable when + building executables to fix problem where run-time load path + wouldn't be set correctly on solaris. + 28. Added Albrecht Kadlec's SetupModule() routine to fvwmlib. + 29. Integrated MouseFocusOnStartup patch. + 30. Put my fvwm configuration in sample.fvwm/BradyMontz. + 31. Added FvwmAnimate which animates window Iconification. This is + a port from Afterstep with enhancements by Dan Espen. + 32. Extracted parsing routines from FvwmEvent and put in the libs + directory for general use. + 33. Modules can now operate synchronously with fvwm thru the + M_LOCKONSEND flag (from Afterstep). + 34. Modules can now be interactively configured with the M_SENDCONFIG + flag. + 35. Dominik Vogt is temporarily the new + maintainer. + 36. Added menu positioning patch and lots of bugfixes in the menu code. + 37. Improved FvwmButtons to recognize button geometries and did some + bugfixes. + 38. Enhanced FvwmPager to allow showing always the current desk. + 39. A range of valid desk numbers can be given to any command using + desks. + 40. New module XResources in the library to help future modules + parsing configuration files and XResources. + 41. Added a bugs section to the FvwmCpp manpage. + 42. Did some cleanup on the manpage. + 43. Added MoveToDesk and MoveToPage builtins and improved WindowsDesk + command. + 44. New variable $d for functions to get desktop number. + 45. The RaiseLower bug has been fixed. + 46. Enhancements to cursor navigation in menus. + 47. Improved warping with menus. + 48. Fixed memory leak and possible coredumps in WindowList function. + 49. Fixed bugs in Parse.c in the library and added some convenience + function. + 50. Improved adding titles to menus. + 51. Changed the syntax of Prev, Next, None and Current. The old + syntax is still supported (but undocumented). + 52. Renamed 2.0.47 to 2.1-pre-beta. + +2.0.46 + +Aug 20, 1997 + +Version 2.0.46 is now available, at long last... Doesn't have all of +the stuff that I wanted to get in there, but it was taking WAY too +long for me to put it together, so the rest will have to wait until +2.0.47. Namely, if you were looking for the animated menus patch or +the colorlimiting patch, some variation of each of those will most +likely appear in 2.0.47. The march towards 2.1.0 continues... + +Also, PLEASE be sure to read the ChangeLog entries each time you +upgrade to make sure you don't miss anything that might require you to +change something in your .fvwm2rc, etc. + + 1. Patch to remove forgotten CLICKTORAISE #if check, from + Markus Gutschke + 2. More mini xpm files + 3. Fix to XTerm font change problem + 4. There is no 4... + 5. Updated extras/FvwmScript from Frederic Cordier + 6. Changing default XORValue to 0, which now means "try and + guess what a good XORValue is for my display" (using recommended + method in the XLib Programming Manual) + 7. Updated FvwmM4 & Cpp man pages to show correct invocation... + 8. Updated extras/fvwmperl from Dan Astoorian + 9. FAQ updates + 10. Imakefile fixes + 11. Added info to FvwmIdent (transient) + 12. Brought back 1.xx like CursorStyle command (based on old + patch from Kit Smithers) + 13. Patch from Patrice Fortier to allow xpm backgrounds in + FvwmButtons (noticed some problems with this) + 14. Updated FvwmCommand from Toshi Isogai + 15. Builtin WinList fixes (geometry string makes more sense now, + plus alphabetic sort option from Eric Schott) + 16. Fix from Andrew for NoButton 0 problem + 17. GetDecor SCO CPP patch from Andrew + 18. Patch from Andrew for MWM buttons functions problems + 19. Fix from Dave Goldberg for NoTitle & MiniIcon conflict + 20. Move/Resize frame drawing bug patch from Makoto Matsushita + 21. Patch to FlipFocus (under MouseFocus) from Markus Gutschke + 22. Added patch from Rob Whapham/Thimo Jansen for FvwmPager + miniicons (plus small enhancements) + 23. FvwmBacker patch from Tim Phipps to have it run fvwm + commands instead of unix commands, so borders & the like + can be changed too (just use Exec to get old functionality) + 24. Latest FvwmIconMan (v1.0) from Brady Montz + 25. Fix for static buffer overflow in SendDataToModule in read.c + (when IconPath/PixmapPath greater than 255 chars) + 26. Patch from Tim Phipps to add Current op (like Prev & Next, + but operates only on Current window) and enhanced conditionals + for Prev/Next/Current/None (like the addition of !) + 27. Added FvwmWharf to extras dir (ported from AfterStep by Peter Gray) + 28. Added FvwmTaskBar to extras dir (ported from fvwm95 by Don Mahurin) + 29. Added FvwmWinList miniicons patch from Don Mahurin. Still + need to update docs for it... + 30. Patches from Randy Ray to make windowshade module packets + more "standard" & add filename to MINI_ICON packet + 31. Patch from Barry Warsaw to make multi head code work + slightly better (although it probably needs a total rewrite + to really work well - ctwm good model?) + 32. Patch to echo builtin needs to remove final \n if there is + one (Greg Badros sees this, but I don't so it might be a system + dependent bug) + 33. Patch from Dan Espen for keeping long icon names on screen + 34. Made builtin function searching faster (hopefully) using + simple binary search (mostly to help speed up startup + time). Please let me know how this works since my + relatively simple setup isn't a good test case for this... + 35. Removed 'raise_it' entirely, since no longer used + 36. Made window move paging match Edgescroll values instead of + always doing full screens (should this be an option?) + 37. Focus command no longer raises - use an interpreted + focus-and-raise function if that's desired + 38. Minor menu code bug fixed - wasn't always ungrabbing the + cursor before executing function (timing dependent - most + of the time ok) + 39. Fixes for DEC Alpha compile warnings + 40. Fix for IconBox -0 handling, from Ric Lister + +2.0.45 + +Jan 22, 1997 + +Version 2.0.45 is now available. Ok, 2.0.44 had a few flaws in +there... :) This is essentially a quick bugfix release. + + 1. Patches to WindowShade stuff, from Andrew Veliath + 2. Man page corrections & updates + 3. UseStyle fixes from Andrew + 4. CleverPlacement and RandomPlacement fixes from Anthony Martin + 5. Added (De)WindowShade module msgs + 6. FvwmAudio fix (for MINI_ICON & (DE)WINDOWSHADE) + 7. FvwmAuto fixes from Albrecht + 8. DestroyDecor window shrinkage fix, from Andrew + 9. Fix to Wait command lockup (from Makoto Matushita) + 10. Fix to undocumented LEFT_MENUS stuff (from Dan Espen) + 11. Updated FvwmIconMan to Brady's latest, and made it use + GetFdWidth instead of sysconf for portability (patch from + Makoto Matushita) + 12. Patch to make CLICKTORAISE define be GlobalOpts + MouseFocusClickRaises option, from Randal Winchester + 13. Fixes for problems w/ B&W visuals with new + EXTENED_TITLESTYLE stuff, patch from Andrew + 14. WindowsDesk patch from Pekka Marjola to be able to move + relative to current desk (now matches Desk builtin, plus + handles old behavior) + 15. Added decor_examples in sample.fvwmrc dir, which contains a + few examples of the new Decor/BorderStyle/TitleStyle stuff + (from lar3ry gensch, Martin Cartwright, Paul Smith) + +2.0.44 + +Jan 15, 1997 (figured I should start putting dates in here...) + +Version 2.0.44 has finially been released, with lots of fixes, and +some new stuff that I finially gave in on. For all you fans of the +various fvwm hacks that keep showing up (fvwm95, fvwm-xpm, etc) be +sure to check out the new optional at compile time +BorderStyle/TitleStyle/UseDecor stuff... I'm looking for good +examples for them to put in the sample fvwm2rc files. If anyone comes +up with some that they might like to contribute, feel free to mail +them to the fvwm mailing list. + + 1. More man page and FAQ updates + 2. More minor Imake fixes + 3. Patch for IconGeometry placement problems and probs running + on multiple displays from Graham Barr + 4. Changed Next/Prev 'CurrentScreen' to be 'CurrentPage' and + added 'CurrentPageAnyDesk', based on patch by Dan Niles + 5. Updated FvwmIconMan from Brady Montz + 6. Fix so FvwmGoodStuff in extras would compile ok + 7. Added Perl routines (fvwmperl in extras dir) for aid in + making modules written in Perl, from Dan Astoorian + 8. Hopefully fixed long standing startup timing bug in which + some windows didn't get Style attributes or borders (by + fixing when server was grabbed and making sure it didn't get + ungrabbed to early accidentally) + 9. Added FlipFocus function from Dan Niles, to toggle between + two windows easily + 10. Patch for EdgeResistance timer problem from Mike Blatchley + 11. Patch to FvwmAudio so it works again (new module message + type M_STRING wasn't recognized) plus other minor fixes and + enhancements (like being able to use the rplay 'say' + command and have arbitrary strings instead of sound file + names), from Albrecht Kadlec + 12. Fixes to FvwmConsole from Toshi Isogai, plus added his + FvwmCommand to the extras directory (for sending fvwm + commands from a shell script). + 13. Patch for dynamic icon title recalculation from Ric Lister. + 14. Updates to fvwmrc_convert from Bill Oswald, with some more + minor mods from me to make it easier to customize for your + site. + 15. Added 'Echo' function. + 16. Patch to FvwmForm to handle TrueColor from Chris Laas + 17. Changed fcntl in module.c to use O_NONBLOCK (POSIX) instead + of O_NDELAY (early SYSV) due to differences in behavior on + some systems (Pyramid SYSV for instance, pointed out by + Mark Wedel) + 18. Added Python routines (fvwmpython in extras dir) for aid in + making moduules written in Python, from Barry Warsaw + 19. FvwmBacker now sets root window when it's invoked as well + as on desk changes + 20. CatchFatal no longer makes XLib calls (to prevent some + infinite looping under Digital Unix & Solaris), patch from + Grant McDorman. + 21. Added Andrew Veliath's TitleBar pixmap patch (optional at + compile time) + 22. Added patch for timing bug in pager when dragging windows + across desktops under Solaris from Grant McDorman + 23. Added RefreshWindow function, at the request of Mike Kazda. + 24. Changed default XORValue to 1 + 25. Changed SmartPlacement behavior to be "stubborn" (like 1.xx + StubbornPlacement option) and not place over icons (if you + don't want this you can compile with NO_STUBBORN_PLACEMENT). + 26. Added extras/FvwmScript (which replaces extras/FvwmForm2) + from Frederic Cordier (although I think it should be + renamed to something like FvwmFormScript). It can now + swallow programs like FvwmButtons. + 27. Sample .fvwm2rc updates, default system.fvwm2rc file now + minimal to encourange site customization, added more sample + files to go with it. + 28. Added info to FvwmIdent + 29. Added MiniIcon patch from Brady Montz (optional at compile + time) + 30. Added BorderStyle border textures (+ TitleStyle, UseDecor, + etc) patch from Andrew Veliath, part of which was inspired + by the idea from 'The Rasterman' Carsten Haitzler (optional + at compile time) + 31. Consolidated Recapture and CaptureAllWindows + 32. Fixes for unmapping problems (patch from Grant McDorman) + 33. Removed redundancy in module.c in Broadcast* funcs. + 34. Multiple -f & -cmd parms now allowed (10 max) + 35. Merged fvwmlib code into some common files, and moved some + functions out of fvwm proper into them. + 36. Added GlobalOpts builtin (for various options that should + become Style options later) - this is temporary. I know + it's ugly, but I didn't feel like adding 6 (or more) + temporary functions (lazy, I know...) + 37. Added (GlobalOpts) global option + SmartPlacementIsReallySmart (may become parm to + SmartPlacement, or whole new CleverPlacement style after + the Great Style Flag Rewrite) which uses clever placement + code from Anthony Martin + 38. Started adding new parsing code based on ideas in patch + from Albrecht Kadlec, for more consistent parsing. More + and more code in fvwm will be converted to use these... + 39. Added WindowListFunc and made built in window list use it + by default (instead of RAISE_IT), to allow for various + actions to be controlled by the builtin window list (like + to warp the pointer or not warp the pointer when giving it + the focus, or perhaps do something like run FvwmIdent on + it). It is interpreted, so you can destroy it and write + your own version of this default WindowList function. + 40. WindowList now takes reasonable optional parameters instead + of those cryptic numbers (including an optional function to + use instead of the default WindowListFunc), based on patch + from Albrecht Kadlec. + 41. Added WindowId function, sort of like Next & Prev, to force + a function to happen on a specified WindowID. + 42. Updated FvwmAuto from Albrecht Kadlec (now takes parameters + for functions to be run on focus in & focus out). + 41. Read funcs now output what they are going to execute if + -debug parameter was passed in. + 42. Should now be sending synthetic ConfigureNotify on stacking + changes (for potential motif menubar problems). + 43. Added WindowShade function from Andrew Veliath + 44. Added (GlobalOpts) global options to modify ClickToFocus + selections: ClickToFocusDoesntPassClick/PassesClick, + ClickToFocusDoesntRaise/Raises (may become parms to + ClickToFocus after the Great Style Flag Rewrite) + 45. UseStyle should now parse quoted Style refs correctly, + courtesy of Andrew Veliath. + 46. Added Randall Winchester's CLICKTORAISE compile time option patch + 47. Patch from Greg Badros for FvwmButtons font coredump + 48. Patch from Greg Badros so FvwmM4 passes opts not recognized + directly to M4 (so -m4opt not needed) and -outfile option. + Added these to FvwmCpp as well. + 49. Fixes for compiling under Linux for DEC Alpha from Ilkka E + T Tuohela + +2.0.43 + 1. More man page updates & Imake fixes + 2. Simple patch to help take care of some timing bugs + 3. Patch to fix resize oddities when hitting 'hard' edge introduced + by EdgeScroll loop patch + 4. Fixed startup w/ no rc bug, plus added more defaults, so if + started without an rc file, things should run ok. Plus it now + outputs error messages if Read fails, then tries to Read + system.fvwm2rc (after first read fails). + 5. Patch to fix UseStyle problem w/ BackColor + 6. More FAQ updates + 7. Created an 'extras' dir, and moved some of the existing modules + in there (the ones that aren't being built by default). + 8. More potential speedups in event processing + 9. Decoupled warp from Focus, adding WarpToWindow function. + 10. Added SendToModule builtin to send arbitrary strings to modules + to help implement more complex dynamic module abilities and + allow for module to module communication + 11. Put old FvwmButtons back as FvwmGoodStuff, for people who + prefer the simpler older version (in extras dir). Also made it + able to be passed in the name parameter on invocation so it + doesn't have to be symbolically linked to the new names any + more. + 12. Adding a new module FvwmForm2 in the extras directory, + contributed by Frederic Cordier. Based on FvwmForm but + completely rewritten apparently. It uses scripts, has a new + more complex syntax (Pascal like) and adds RadioButtons. I + would like to eventually combine aspects of the two versions + (and more) to make one killer module, perhaps. + 13. Made fvwm_msg send errors to modules, so FvwmTalk sees them + like it used to (and any other module that looks for M_ERROR + in the future) + 14. Added DestroyModuleConfig, based on patch from Toshi Isogai + 15. Modules can now send module config commands to fvwm (eg FvwmTalk) + 16. Removed implicit Exec exec stuff for the time being, until I + come up with a better way to do it (back to old behavior) + 17. More mini icons added and some icons removed + 18. Added "KillMe" command that modules can send to fvwm asking for + an assisted suicide (almost called this Kevorkian :)). Mark + Crimmins wanted this for probs with TkGoodStuff. + 19. Fixed RaiseWindow bug under some servers when no icon pixmap. + 20. Fixed one prob w/ FvwmAuto and menus being hidden (under click + to focus - still needs work for other focus policies, but not + entirely sure how to approach this yet). + 21. Added ExitFunction, to be executed on exit (before restarts too). + Useful for explicitly killing modules, etc. + 22. Changed behavior of '-f' to just specify config file (now use + -cmd to perform an actual command, like -cmd 'FvwmM4 .fvwm2rc') + 23. Updates to FvwmSaveDesk from Carsten Paeth so it should now + actually work under 2.xx, plus some other bugfixes too I + believe. + 24. Added PipeRead function, which executes a program and Read's + it's output. Useful for making dynamic menus and such. + 25. Security fix for FvwmM4 & FvwmCpp from Austin Donnelly + 26. Added strerror for SunOS 4.1.x + 27. Added ability to remove mouse and key bindings without restart + (do the binding but specify '-' as the function). Probably + needs more checking for removing mouse bindings from title bar + buttons correctly, though. + 28. Updates to FvwmIconMan from Brady Montz. + 29. Updates to FvwmIconBox from Nobutaka Suzuki. + 30. Patch from Austin Donnelly for multi-keypress required for + WindowList problem. + 31. Patch to center text on left pixmaps in menus. + 32. Patch to allow menus to pop up left if not enough room on right + (currently in ifdef -> define LEFT_MENUS to enable when compiling). + +2.0.42 + 1. More small Imake fixes & man page updates + 2. Optional Xpm support for titlebar buttons patch from Andrew + Veliath + 3. Made event handler jump table be a bigger default size, since + LASTEvent doesn't account for X Extension related events (eg + SHAPE) + 4. FvwmPager display updates: DeskColor patch from Alan Wild, + line distinctions between desks and pages, reinstated message mask + 5. Patch to make fvwm recognize some OpenLook WM hints (like MWM + hints) from Andrew Taylor + 6. Added FvwmIconMan module (by Brady Montz) + 7. Replaced FvwmButtons with New & Improved version from Jarl Totland, + had to patch to get to work ok under AIX (char's are unsigned by + default under AIX) + 8. Added DestroyFunc for removing function definitions + 9. Made Exec use $SHELL, like mwm, if ExecUseSHELL is specified, + plus Exec now does an explicit "exec" as the first arg (if it's + not there already), to eliminate extra processes + 10. Completely replaced fvwm_err (removed) & most fprintf calls + (those that were appropriate) w/ fvwm_msg (which has + variable args, a consistent look, and will eventually + optionally output to a file as well as to stderr) + 11. Fix from Nobutaka Suzuki for probs w/ Next/Prev Focus + 12. Patch from Henrique to make EdgeScroll wrap cleaner + 13. Patches to FvwmIconBox from Nobutaka Suzuki + 14. Patches for caching xpm files, modules having Popups on + ButtonPress events, & rc line continuation (from Jarl) + 15. Make SHAPE extension runtime determinite in addition to compile + time so same exec can run on different machines better (John + Bazik, the author of XMX wanted this) - Haven't fixed up the + modules that use SHAPE yet though (next release) + 16. New module FvwmConsole (a good potential replacement for + FvwmTalk) from Toshi Isogai. Currently won't build as part of + the normal process (you'll have to do it by hand until I + integrate it further). + 17. Added more mini icons from list members. + 18. Added new-system.fvwmrc, which is the beginning of a + reformatted & commented rc file (from Eli Burke). Feel free to + provide your $0.02 on it. + +2.0.41 + 1. More FAQ updates & man page corrections + 2. Patch to limit GetFdWidth to FD_SETSIZE to prevent fvwm from + eating too much cpu under bsdi if 'unlimit descriptors' is used + 3. Ressurrected desktop edge wrap via EdgeScroll*1000 feature + 4. Fixed library link order (fixes the sometimes undefined + XLoadQueryFont problem) + 5. Renamed fvwm_icons subdir to be just icons, documentation to be + just docs + 6. Removed FvwmPrompt (use FvwmForm instead, since it's better anyways) + 7. Todd Fries 'UseStyle' patch + 8. XClientMessages sent to icon windows (that aren't + XA_WM_CHANGE_STATE ones) are now sent along to to the apps + window + 9. FvwmButtons fixes from Jarl for incorrectly drawn buttons and + better no title handling + 10. FvwmForm now uses GetFontOrFixed, instead of silently failing + if font can't be found + 11. New Imake setup based on patch from Mark Powell (let's see if + people have less problems with this, since it's more 'standard' + now) + 12. Changed top directory to contain version number + 13. Modified Style parsing to (hopefully) do less string compares + for a potential speedup + 14. Modified DispatchEvent to use a jump table instead of a switch + statement, again for a potential speedup + 15. FvwmIconBox patches from Nobutaka Suzuki + +2.0.40 + 1. Removed 'basename' reference + 2. More small Imake fixes + 3. Renamed FvwmConfig .cc files to .C, because some C++ compilers + can't handle the .cc extension (AIX's, for instance) + 4. FvwmForm now gets config info in standard way + 5. FvwmBanner now dissappears if you click on it (like in 1.xx) + 6. Renamed FvwmConfig's makefile to Makefile.std and cleaned it up + 7. More small man page cleanups + 8. Improved handling of nonexistant fonts (added GetFontOrFixed) + 9. More debug messges, and central fvwm_msg function for printing + msgs (started converting fvwm_err and fprintf calls to use this + instead, as it has variable args and allows for a consistent + message feel and I'll use this to add -outfile option + eventually to capture all fvwm output to a file as well as + stderr) + 10. Fixed function parm $9 coredump + 11. Added basic TitleStyle (for justfication & edge appearance) + +2.0.39 + 1. More Imake fixes from Randall Winchester + 2. Started adding optional debug messages, to help people help me + solve problems that I can't reproduce (a define in configure.h + to enable these, off by default) + 3. Added -blackout option, to black out screen during init and + recapture (no blackout is default now) + 4. Removed some unused variables, cleaned up some code that + generated compiler warnings + 5. More small doc & FAQ updates + 6. Fix for using "None" as font in FvwmPager to not have a Label + (it now works) + 7. Making Resource = "NoResource" instead of "Untitled" (if class + hints res_name is NULL) to differentiate between window Name & + window Resource so Style commands for windows that have a + WM_NAME but no WM_CLASS don't match Untitled + 8. Simple FvwmWinList refresh patch + 9. Added Imakefile for FvwmConfig (only works under X11R6) + +2.0.38 + 1. Fixed FvwmPager to die without causing X server to eat CPU if + running under FvwmButtons & FvwmButtons dies or is killed + 2. Went to new M.I.P version number system in preparation for first + official release (which will be 2.1.0 - until then fvwm2 is still + pre-official release) + 3. Small fix to makefile for FvwmConfig + 4. More [icon_]name == NULL checks/fixes + 5. Added some things left out from Imakefiles, makefile.h & configure.h + 6. FvwmButtons now handles Exec "" foobar correctly. + 7. Added Ludvig A. Norin's wonderful mini xpm icons + 8. Made scanForPixmap keep %name% or *name* in strings (restores + original string) if pixmaps can't be found (this also allows + window list to work for names w/ % or * in them too, or actually + display a pixmap if it's in the window name), and corrected 2 col + menu display bug that this showed (2nd col text didn't account for + width of left justified pixmap) + +pl 36 to 37 + 1. Fixed coredump due to incomplete backout of NoName/NoClass patch + 2. Fix for multiple env var expansion core dump from Sverre H. Huseby + 3. Small doc fixes (spelling, etc) + 4. Imakefile/configure.h enhancements from Randall S. Winchester + 5. Updated system.fvwmrc (FvwmIconBox changes from Nobutaka Suzuki) + +pl 35 to 36 + 1. Some more doc cleanups & FAQ updates, plus renamed fvwm.man to + fvwm2.man, w/ symlink for fvwm.man (so install.man works correctly + with rename of exec) + 2. Made utils subdir for scripts, added quantize_pixmap script + 3. FvwmPagerDeskTopScale patch + 4. Small changes to configure.h defaults, plus added XPMINCLUDE + and FVWM_MAN_DIR + 5. Added 'make depend' to MakeMakefiles script + 6. Reverting NoClass patch completely, as I think it's causing + other problems + 7. Small change to make windows seem to close faster (hopefully) + 8. Patches to FvwmButtons to make it behave better when killed + (kill swallowed modules, catch signals, etc) + 9. Patch from Sverre H. Huseby for env vars in ModulePath, PixmapPath + and IconPath + 10. Patch to FvwmCpp for -cppopt to work correctly + 11. Added FvwmDebug back to distribution (still needs to be updated) + 12. Added BUGS file for known bugs + +pl 34 to 35 + 0. New maintainer for fvwm now, please go easy on him :) + 1. Fixed Title & Icon name change bug introduced in pl 34 + 2. Applied another patch from Frederic Devernay + a. Keeps no class windows having no class & now handles + correctly + 3. Removed some extraneous files from the distribution, added + preliminary FAQ, INSTALL & TO-DO files, added small README. + 4. Made conversion_script runnable + 5. Fixed FvwmPrompt + 6. Patch to rename fvwm & .fvwmrc in configure.h added (on by default) + 7. Compile date & time added to -version. + 8. FvwmBanner Xpm & timeout can now be specified in fvwmrc + +pl 33 to 34 + 1. Applied patches from Frederic Devernay + a. Improved reading of window and icon names + b. improved handling of windows with no class. + +pl 32 to 33 + 1. More fixes to move/resize window when using m4. + 2. Added Sloppy Focus to FvwmConfig. Made FvwmConfig obtain initial + focus mode from fvwm. + 3. Add SCREEN macro to fvwmm4. + 4. Applied FvwmWinList patches. + +pl 31 to 32 + 1. Fixed color specification problem for ForeColor and BackCOlor + styles, so things like rgb:rr/gg/bb work again. + 2. Made MWMMenus style take effect on the Size/Resize window + even when using M4. Color selection of the Size/Resize window + is still broken. + +pl 30 to 31 + 1. Added patch to make FvwmButtons and FvwmPager accept -0 + geometries. + 2. Added code to FvwmConfig to make it read in current values for + colors and desktop sizes as it starts up. Made it handle case + of no more colors in colormap. + + +pl 29 to 30 + 1. Added color selection to fvwmconfig + +pl 28 to 29 + 1. Fixed problem of lost root window key bindings with FvwmM4 + 2. Minor adjustments to FvwmConfig. Included a makefile. Compiles + with Sun's CC now, as well as with g++ +pl 27 to 28 + 1. Patch to FvwmButtons to fix the button-popping out problem. + 1. Added FvwmConfig. Requires g++ version 2.6.3 or thereabouts. + not automatically built or installed. Do it yourself. + +pl 26 to 27 + 1. Minor fix to FvwmScroll affecting handling of window resizes. + 2. Fixed core-dump problem (maybe) in pl26 +pl 25 to 26 + 1. Corlormap handling bug fix. + 2. Finally, after years and years of saying, "thats not a + problem because people shouldn't have windows that small", + if fixed the handling of the corner pieces for teeny-tiny + windows. +pl 24 to 25 + 1. Incorporated colormap-focus patches + 2. Incorporated loads of patches - I have no idea what they + do, but at least the following + - allow use of ESC key to abort a move/resize + - Something about usign pager on B&W display. + - stuff for FvwmIconBox + - stuff for FvwmWinList + +pl 23 to 24 + 1. Man page updates for style function + 2. Added stuff to over-ride motif modal dialogs. Makes apps + think that mwm is running, but fvwm doesn't handle the + modality, so use with care. You have to set the + compilation flag: MODALITY_IS_EVIL in configure.h to enable this + feature. Netscape users may wish to try this out. + +pl 22 to 23 + 1. Applied patches to FvwmIconBox and FvwmWinList. + +pl 21 to 22 + 1. Applied patch to fix up multi-screen support a little. + 2. Changed some strcasecmp calls to mystrcasecmp. + 3. Other stuff, can't remember what! (bug fixes) + +pl 20 to 21 + 1. Little bug-fix with motif-pop-up/pull-down menus and window + focus + 2. Applied FvwmIconBox patch. + 3. Applied FvwmButtons patch to let you activate with a key press + (return key) instead of mouse button. + 4. Re-worked the forking process for multi-screen displays. Can't + test it, maybe someone can fix it now. + +pl 19 to 20. + 1. Fixed resize buglet + 2. applied FvwmIconBox patch + +pl 18 to 19. + 1. Not much + +pl 17 to 18 + 1. Fixed loss of key bindings on root window + 2. Fixed compile error in Picture.c +pl 16 to 17 + 1. Applied patch to FvwmAudio. + 2. Allow menu-pixmaps to be above or to the left of + menu labels, or both. + 3. Adjusted resize behavior for windows whose aspect + ratio had max == min. Behavior was a little weird before. + 4. Added built-in KillModule + 5. Some changes to allow evil, poorly designed override-redirect + windows to install their own colormaps. This abuse of override + redirect windows is primarily used by WABI, but a few others + too, I guess. This change is fairly fundamental, and could cause + problems. Also, if WABI comes up with a private colormap, it + is given control of the colormap immediately, since it thinks + that it should have focus. + +pl 15 to 16 + 1. Applied patch to make menu short cuts work + 2. Made this menu config work as expected: + "*xcalc.xpm*" Exec exec xcalc & + 3. Restored ability to insert blank lines in + menus, not just separators. + 4. Allow bitmaps in menus as well as xpm's +pl 14 to 15 + 1. Added option to put pixmaps in menus. + Modify your menu labels like so: + was: + ++ "Calculator" Exec exec xcalc & + is ++ "Calculator*xcalc.xpm*" Exec exec xcalc & + pretty kool, man! + +pl 13 to pl 14 + 1. Assorted minor bug patches. + +pl 12 to pl 13 + 1. Applied patches + A. Something about XSetIOErrorHandler. Doesn`t seem to hurt, + but I don't know what it does. + 2. Patches for FvwmIconBox. Nobutaka Suzuki has been working hard + on this top-notch module, and seems to be working to integrate + it more tightly with fvwm itself. The latest patches let the + IconBox read the Icon pixmap names from fvwm. Icons are only + shown in the IconBox if the NoIcon style is applied. Is this + right? + + To get something in the icon-box, you can use + Style "XTerm" Icon xterm.xpm, NoIcon + + 1. Added FvwmForm module. It looks like its for 1.24r, but seems + to work with Fvwm-2. + 2. Tried to add Tom Feng's GoodStuff patches, but they are + incompatible with other changes. + +pl 11 to pl 12 + 1. Really fixed that memory problem in builtins.c this time. + 2. Fixed the inverting shading of the maximize button + if MWMButtons is used. +pl 10 to pl 11 + 1. Fixed some references to already freed memory areas, + specifically related to FocusOnNextTimeStamp and Scr.Ungrabbed. + Only affected click-to-focus, and only soon after destroying + a window. + 2. Plugged a memory leak (?) in builtins.c. Watch out, maybe I + broke something instead of fixing it. Not sure. + + +pl 9 to pl 10 + 1. Fixed double click on title-button 1 problem. It used to work, + but only if the mouse was not moved at all. Now, 3 pixels of + mouse movement are allowed, and the double-click action will + still be performed. After 3 pixels, the double click action is + aborted. + 2. Fixed problem with focus in focus-follows-mouse mode, when + changing desks. Some click-to-focus person sent in a patch which + caused focus to be returned to the last window that had focus on + desk N, when you switch to desk N. That was fine, but if there + was no such window, focus went to a sticky window. That was bad. + You see, I'm focus-follows-mouse, but I make most of my sticky + windows click-to-focus (ie pager), because I really don't want + it to get the focus. The above patch made the sticky window get + focus when switching desks, when I really wanted the root window + to get the focus (for keyboard activated menus, etc). + 3. Added a DestroyMenu function. + + +pl 8 to 9 + 1. Fixed misc bugs. + A. Menus popped up in wrong place when NoButton style was + used. + B. Title bar would look pressed in if you moved out of it + by key presses. + 2. Added #define SCREEN 0 (or whatever) for fvwmcpp. + 3. Applied patch to FvwmIconBox. +pl7 to 8 + 1. Fixed (probably) some unwanted free()s in the code. + These caused core dumps on some machines. + +pl6 to 7: + 1. Fixed IconBox style + 2. Fixed (?) FvwmM4 problem with not executing InitFunction & + restartfunction, etc + 3. Fixed FvwmIdent module (Sticky, Ontop, Iconified, etc). + 4. Fixed StickyIcon style. + 5. Fixed FvwmWinList + +pl 5 to 6 + 1. Applied patch to FvwmAudio + 2. Applied patch to FvwmIconBox + 3. Got patch for m4 handling, didn't do anything. + 4. applied FvwmPager patch to eliminate flicker when + selecting a window on the current page. +pl4 to 5 + 1. Fixed FvwmM4 again. +pl3 to 4 + 1. Fixed FvwmM4. + +pl2 to 3 + 1. Removed an unnecessary debugging printf + 2. Fixed FvwmBanner + 3. switched vfork back to fork, since some people apparantly + don't have vfork. + 4. Changed the name of system.fvwmrc to .fvwmrc because its easier + to handle within the program. Modified documentation and the + install stuff in the Imakefile + 5. Fiddled with time-stamp stuff a bit, so that maybe when people + change their system clocks, it won't cause everything to stop. + 6. Fixed a cause of core-dumps in the Next, Prev, None commands. + +pl1 to pl2 + 1. Assorted trivial bug fixes. Maybe something important too, + I forgot. + +2.0 pl 1: + 1. Switched from fork() to vfork() in two places. Its supposed to + be better when you're only doing an exec anyway. + + 2. Made fvwm parse out module arguments in a more standard way. + see documentation/modules.tex for more details. + + 3. Added FvwmM4 module. See its man page. + 4. Added FvwmCpp module. + +2.0 The beginning of time. diff --git a/app/fvwm/README b/app/fvwm/README new file mode 100644 index 000000000..9d1ad38c1 --- /dev/null +++ b/app/fvwm/README @@ -0,0 +1,38 @@ +Welcome to FVWM version 2.2.5. FVWM is a multiple large virtual desktop +window manager, originally (a looooong time ago!) derived from twm. + +FVWM is intended to have a smaller memory footprint but a rich feature +set, be extremely customizable and extendible, and have a high degree of +Motif mwm compatibility. + +For users of the old FVWM 1.xx, please be aware that version 2.2 has a +lot of differences. + +For users of the FVWM 2.0.x betas, please be aware that version 2.2 uses +GNU autoconf/automake rather than Imake, so things will install in +different places by default. + +FVWM's original author, Rob Nation (THANKS ROB!), has "retired" from +work on it, so please don't bother him with silly little things like bug +reports or enhancement requests. Care and feeding of FVWM is now +handled by a group of people on the fvwm-workers mailing list, with many +contributions by fans everywhere. + +If you have any questions, concerns, bug reports, enhancement requests, +etc., please read the files in the docs/ subdirectory first. In +particular the FAQ, BUGS, and TODO lists. Also, check the FVWM man page +carefully. Next, try the FVWM mailing list. Another excellent resource +is the official WWW page http://www.fvwm.org and the mailing list archives +found there. + +For information on compiling and installing FVWM, see the INSTALL and +INSTALL.fvwm files (INSTALL is the boilerplate autoconf instruction +file; INSTALL.fvwm contains FVWM-specific details). + +For known bugs, check out the BUGS, FAQ and TODO files. + +For more information, see the official FVWM homepage http://www.fvwm.org/. + +Have fun! + + -- The fvwm-workers diff --git a/app/fvwm/config.h b/app/fvwm/config.h new file mode 100644 index 000000000..44d4acf66 --- /dev/null +++ b/app/fvwm/config.h @@ -0,0 +1,366 @@ +/* config.h. Generated automatically by configure. */ +/* config.h.in. Generated automatically from configure.in by autoheader. */ +/** Compatibility stuff **/ + +/* Where to search for the fvwm icons. */ +#define FVWM_ICONDIR "/usr/include/X11/bitmaps:/usr/include/X11/pixmaps" + +/* Define if Xpm library is used. */ +#define XPM 1 + +/* Define if rplay library is used. */ +/* #undef HAVE_RPLAY */ + +/* Define if readline is available. */ +#define HAVE_READLINE 1 + +/* Define to disable motif applications ability to have modal dialogs. + * Use with care. */ +/* #undef MODALITY_IS_EVIL */ + +/* Tells the WM not to request save unders for pop-up + * menus. A quick test using monochrome X11 shows that save + * unders cost about 4Kbytes RAM, but saves a lot of + * window redraws if you have windows that take a while + * to refresh. For xcolor, I assume the cost is more like + * 4Kbytesx8 = 32kbytes (256 color). */ +/* #undef NO_SAVEUNDERS */ + +/* Define if you want the Shaped window extensions. + * Shaped window extensions seem to increase the window managers RSS + * by about 60 Kbytes. They provide for leaving a title-bar on the window + * without a border. + * If you don't use shaped window extension, you can either make your + * shaped windows undecorated, or live with a border and backdrop around + * all your shaped windows (oclock, xeyes) + * + * If you normally use a shaped window (xeyes or oclock), you might as + * well compile this extension in, since the memory cost is minimal in + * this case (The shaped window shared libs will be loaded anyway). If you + * don't normally use a shaped window, you have to decide for yourself. + * + * Note: if it is compiled in, run time detection is used to make sure that + * the currently running X server supports it. */ +#define SHAPE 1 + +/* Enables the ActiveDown button state. This allows different button + * styles for pressed down buttons on active windows (also for the + * title-bar if EXTENDED_TITLESTYLE is enabled below). The man page + * refers to this button state as "ActiveDown." If not defined, the + * "ActiveUp" state is used instead. Disabling this reduces memory + * usage. */ +#define ACTIVEDOWN_BTNS 1 + +/* Enables the Inactive button state. This allows different button + * styles for inactive windows (also for the title-bar if + * EXTENDED_TITLESTYLE is enabled below). The man page refers to this + * button state as "Inactive." If not defined, the "ActiveUp" state + * is used instead. Disabling this reduces memory usage. */ +#define INACTIVE_BTNS 1 + +/* Enables the "MiniIcon" Style option to specify a small pixmap which + * can be used as one of the title-bar buttons, shown in window list, + * utilized by modules, etc. Requires PIXMAP_BUTTONS to be defined + * (see below). */ +#define MINI_ICONS 1 + +/* Enables the vector button style. This button type is considered + * "standard," so it is recommended that you leave it in. */ +#define VECTOR_BUTTONS 1 + +/* Enables the pixmap button style. You must have Xpm support to use + * color pixmaps. See the man page button style entries for "Pixmap" + * and "TiledPixmap" for usage information. */ +#define PIXMAP_BUTTONS 1 + +/* Enables the gradient button style. See the man page button style + * entries for "HGradient" and "VGradient" for usage information. */ +#define GRADIENT_BUTTONS 1 + +/* Enables stacked button styles (also for the title-bar if + * EXTENDED_TITLESTYLE is enabled below). There is a slight memory + * penalty for each additional style. See the man page entries for + * AddButtonStyle and AddTitleStyle for usage information. */ +#define MULTISTYLE 1 + +/* Enables styled title-bars (specified with the TitleStyle command in + * a similar fashion to the ButtonStyle command). It also compiles in + * support to change the title-bar height. */ +#define EXTENDED_TITLESTYLE 1 + +/* Enables the BorderStyle command. Not all button styles are + * available. See the man page entry for BorderStyle for usage + * information. If you are also using PIXMAP_BUTTONS, you can also + * texture your borders with tiled pixmaps. The BorderStyle command + * has Active and Inactive states, regardless of the -DACTIVEDOWN_BTNS + * and -DINACTIVE_BTNS defines. */ +#define BORDERSTYLE 1 + +/* Enables tagged general decoration styles which can be assigned to + * windows using the UseDecor Style option, or dynamically updated + * with ChangeDecor. To create and destroy "decor" definitions, see + * the man page entries for AddToDecor and DestroyDecor. There is a + * slight memory penalty for each additionally defined decor. */ +#define USEDECOR 1 + +/* Enables the WindowShade function. This function "rolls" the window + * up so only the title-bar remains. See the man page entry for + * "WindowShade" for more information. */ +#define WINDOWSHADE 1 + +/* Specify a type for sig_atomic_t if it's not available. */ +/* #undef sig_atomic_t */ + + + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define if you have the strftime function. */ +#define HAVE_STRFTIME 1 + +/* Define if you have that is POSIX.1 compatible. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define as __inline if that's what the C compiler calls it. */ +#define inline __inline + +/* Define if on MINIX. */ +/* #undef _MINIX */ + +/* Define to `long' if doesn't define. */ +/* #undef off_t */ + +/* Define to `int' if doesn't define. */ +/* #undef pid_t */ + +/* Define if the system does not provide POSIX.1 features except + with this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define if you need to in order for stat and other things to work. */ +/* #undef _POSIX_SOURCE */ + +/* Define as the return type of signal handlers (int or void). */ +#define RETSIGTYPE void + +/* Define to the type of arg1 for select(). */ +#define SELECT_TYPE_ARG1 int + +/* Define to the type of args 2, 3 and 4 for select(). */ +#define SELECT_TYPE_ARG234 (fd_set *) + +/* Define to the type of arg5 for select(). */ +#define SELECT_TYPE_ARG5 (struct timeval *) + +/* Define if the setvbuf function takes the buffering type as its second + argument and the buffer pointer as the third, as on System V + before release 3. */ +/* #undef SETVBUF_REVERSED */ + +/* Define to `unsigned' if doesn't define. */ +/* #undef size_t */ + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if the X Window System is missing or not being used. */ +/* #undef X_DISPLAY_MISSING */ + +/* Define if lex declares yytext as a char * by default, not a char[]. */ +#define YYTEXT_POINTER 1 + +/* +** if you would like to see lots of debug messages from fvwm, for debugging +** purposes, uncomment the next line +*/ +/* #undef FVWM_DEBUG_MSGS */ + +#ifdef FVWM_DEBUG_MSGS +# define DBUG(x,y) fvwm_msg(DBG,x,y) +#else +# define DBUG(x,y) /* no messages */ +#endif + +/* Define if you have the atexit function. */ +#define HAVE_ATEXIT 1 + +/* Define if you have the div function. */ +#define HAVE_DIV 1 + +/* Define if you have the gethostname function. */ +#define HAVE_GETHOSTNAME 1 + +/* Define if you have the gettimeofday function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define if you have the memcpy function. */ +#define HAVE_MEMCPY 1 + +/* Define if you have the memmove function. */ +#define HAVE_MEMMOVE 1 + +/* Define if you have the mkfifo function. */ +#define HAVE_MKFIFO 1 + +/* Define if you have the on_exit function. */ +/* #undef HAVE_ON_EXIT */ + +/* Define if you have the putenv function. */ +#define HAVE_PUTENV 1 + +/* Define if you have the select function. */ +#define HAVE_SELECT 1 + +/* Define if you have the setvbuf function. */ +#define HAVE_SETVBUF 1 + +/* Define if you have the sigaction function. */ +#define HAVE_SIGACTION 1 + +/* Define if you have the siginterrupt function. */ +#define HAVE_SIGINTERRUPT 1 + +/* Define if you have the socket function. */ +#define HAVE_SOCKET 1 + +/* Define if you have the strcasecmp function. */ +#define HAVE_STRCASECMP 1 + +/* Define if you have the strchr function. */ +#define HAVE_STRCHR 1 + +/* Define if you have the strdup function. */ +#define HAVE_STRDUP 1 + +/* Define if you have the strerror function. */ +#define HAVE_STRERROR 1 + +/* Define if you have the strncasecmp function. */ +#define HAVE_STRNCASECMP 1 + +/* Define if you have the strstr function. */ +#define HAVE_STRSTR 1 + +/* Define if you have the strtol function. */ +#define HAVE_STRTOL 1 + +/* Define if you have the sysconf function. */ +#define HAVE_SYSCONF 1 + +/* Define if you have the uname function. */ +#define HAVE_UNAME 1 + +/* Define if you have the usleep function. */ +#define HAVE_USLEEP 1 + +/* Define if you have the vfprintf function. */ +#define HAVE_VFPRINTF 1 + +/* Define if you have the wait3 function. */ +/* #undef HAVE_WAIT3 */ + +/* Define if you have the wait4 function. */ +/* #undef HAVE_WAIT4 */ + +/* Define if you have the waitpid function. */ +#define HAVE_WAITPID 1 + +/* Define if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_GETOPT_H */ + +/* Define if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_MALLOC_H */ + +/* Define if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define if you have the header file. */ +#define HAVE_STDARG_H 1 + +/* Define if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_SYSTEMINFO_H */ + +/* Define if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Name of package */ +#define PACKAGE "fvwm" + +/* Version number of package */ +#define VERSION "2.2.5" + + +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STRING_H +# include +# else +# include +# endif +# ifdef HAVE_MEMORY_H +# include +# endif +# ifdef HAVE_STDLIB_H +# include +# endif +# ifdef HAVE_MALLOC_H +# include +# endif +# ifndef HAVE_STRCHR +# define strchr(_s,_c) index((_s),(_c)) +# define strrchr(_s,_c) rindex((_s),(_c)) +# endif +#endif + +#ifndef HAVE_MEMCPY +# define memcpy(_d,_s,_l) bcopy((_s),(_d),(_l)) +#endif +#ifndef HAVE_MEMMOVE +# define memmove(_d,_s,_l) bcopy((_s),(_d),(_l)) +#endif + +#if HAVE_SYS_TYPES_H +# include +#endif + +#if HAVE_UNISTD_H +# include +#endif + +#ifndef min +# define min(a,b) (((a)<(b)) ? (a) : (b)) +#endif +#ifndef max +# define max(a,b) (((a)>(b)) ? (a) : (b)) +#endif +#ifndef abs +# define abs(a) (((a)>=0)?(a):-(a)) +#endif + diff --git a/app/fvwm/docs/ANNOUNCE b/app/fvwm/docs/ANNOUNCE new file mode 100644 index 000000000..b9e8e835d --- /dev/null +++ b/app/fvwm/docs/ANNOUNCE @@ -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 diff --git a/app/fvwm/docs/BUGS b/app/fvwm/docs/BUGS new file mode 100644 index 000000000..3da1c015d --- /dev/null +++ b/app/fvwm/docs/BUGS @@ -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. + +---------------------------------------------------------------------- diff --git a/app/fvwm/docs/ChangeLog b/app/fvwm/docs/ChangeLog new file mode 100644 index 000000000..a1cf5dfa0 --- /dev/null +++ b/app/fvwm/docs/ChangeLog @@ -0,0 +1,154 @@ +1999-10-15 Dominik Vogt + + * Makefile.am (HTML): removed version.html again + +1999-02-19 Dominik Vogt + + * 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 + + * FAQ: restructured FAQ and incorporated configuration-hints file + * configuration-hints: file removed + +1999-02-15 Dominik Vogt + + * configuration-hints: Added new file. + + * ANNOUNCE: updated for 2.1.13 + +1999-02-14 Dominik Vogt + + * Makefile.am (EXTRA_DIST): removed fvwm-2.xx.lsm from distribution + + * FAQ (15): Added RedHat configuration question + +1999-02-04 Paul D. Smith + + * 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 + + * FAQ: Rewrote question 13 about XPM support. + +1999-01-19 Paul D. Smith + + * ANNOUNCE: Update. + * FAQ: Update new URLs. + +1999-01-19 Steven Michael ROBBINS + + * 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 + + * BUGS: Remove install-strip issue. + +Sun Jan 17 16:07:15 1999 Steve Robbins + + * FAQ: Fiddled with answers to: 4, 7, 13, 24, 32, 40. A few other + spelling fixes. + +1999-01-16 Bob Woodside + + * 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 + + * ANNOUNCE: updated for 2.1.8 + +1999-01-04 Dan Espen + + * 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 + + * download.html: Updated beta download URL to 2.1.4. + +1998-11-30 Dan Espen + + * 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 + + * index.html: Linked main page to bug tracking system. + + * black-stone1.jpg: A little darker version. + +1998-11-23 Dan Espen + + * man-pages.html: removed -man from the file names. + +1998-11-12 Dan Espen + + * 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 + + * Makefile.am: Fixed up the list of files *again*. + +1998-11-05 Steven Michael ROBBINS + + * 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 + + * txt2html.sh (outfile): Replaced txt2html.ksh with txt2html.sh. + Added logic to handle '<>&' special characters in text. + +1998-11-04 Dan Espen + + * 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. + + diff --git a/app/fvwm/docs/DEVELOPERS b/app/fvwm/docs/DEVELOPERS new file mode 100644 index 000000000..151967573 --- /dev/null +++ b/app/fvwm/docs/DEVELOPERS @@ -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. + + diff --git a/app/fvwm/docs/FAQ b/app/fvwm/docs/FAQ new file mode 100644 index 000000000..e98cd623d --- /dev/null +++ b/app/fvwm/docs/FAQ @@ -0,0 +1,1521 @@ +====================================================================== + FVWM Frequently Asked Questions +====================================================================== + +Last updated 18 Feb 1999 for release 2.2.0. + +Contents + +1. About Fvwm + + 1.1 What does FVWM stand for? + 1.2 Where do I find the current versions of fvwm? + 1.3 Any WWW Sites about FVWM? + 1.4 Where do I ask questions about FVWM? + 1.5 What are the differences between FVWM 1.xx and 2.xx? + 1.6 What's the relative memory usage for the various window managers + out there? + 1.7 Why the rename of the various files (fvwm2, .fvwm2rc, + fvwm2.man)? + 1.8 When will fvwm release X.Y.Z be ready? + +2. Installation + + 2.1 I want to use FVWM, but I don't have root access on my + machine. Can I still install and run it? + 2.2 I'm trying to use fvwm under CDE/COSE, but encountering + difficulties. Any suggestions? + 2.3 I'm trying to compile FVWM under SunOS using cc, but the compiler + is having lots of problems. What gives? + 2.4 I want colored icons, but they won't work. Why not? + When I run configure, it reports "no" to "Have XPM support?" How + can I get XPM support? + 2.5 I'm a sysadmin, and if I wanted to force fvwm to read a + system rc file and then the user's rc file, how would I do + that? + 2.6 I'm a sysadmin, and if I wanted fvwm to look for all of + it's rc files in a hidden directory, say ~/.fvwm, much like + CDE does, how could I do that? + +3. Features, Configuration, Functions & Commands + + 3.1 I use FVWM on a RedHat Linux system and can't figure out how to + change my FVWM configuration. I've read the FVWM manpage but when + I edit my .fvwm2rc nothing seems to happen. What's going on ? + 3.2 Is it possible to raise a window when I click into the + window itself, not just the border? + 3.3 How do I get Alt-Tab behaviour like another GUI? + 3.4 What's the difference between the Focus and FlipFocus commands? + 3.5 You can bind mouse movements to keystrokes, how about mouse + presses? + 3.6 I'd like to bind a key to paste/use the current selection, + how can I do that? + 3.7 Will FVWM ever support a separate colormap for each desktop? + 3.8 I really like the horizontal bars that appear on the title bars of + sticky windows. Can I get those on other windows as well? + 3.9 How do I set the Sun keyboard key xxxx to an FVWM command? + Or more generally, I'm having problems defining key + bindings for FVWM - what can I do? + 3.10 My .fvwmrc from version 1.xx no longer works. What do I do? + 3.11 What happened to the FVWM 1.xx 'include' command? + 3.12 How do I get window titles on sub windows of ... + +4. Modules + + 4.1 I'm using FvwmButtons (or GoodStuff in 1.xx), and sometimes the + buttons stay depressed, and other times they don't. Why is that? + 4.2 When having FvwmButtons swallow an app, is it possible to + have button presses assigned to actions as well? For + instance, I'd like to swallow xload and have a button press + pop up an xterm, or swallow xbiff and have a button press + bring up the list of messages. + 4.3 I'm seeing odd things when trying to preprocess files with + the FvwmM4/Cpp module... + 4.4 I heard about this FvwmFileMgr module. Where can I find it? + 4.5 I used to use GoodStuff in FVWM 1.xx, but it's not in the 2.xx + distribution. What do I use now? + +5. Development, Known Problems & Bug Reports + + 5.1 I'd really like to see neat feature XYZ in FVWM. + Wouldn't that be cool? I even have a patch. When can it + be added? + 5.2 How do I create/submit/apply patches? + 5.3 How do I submit a bug report? + 5.4 I have a window that is behaving unexpectedly under FVWM, but just + fine under (whatever other window manager), or I have just some + random bug. What do I do? + 5.5 Why do NumLock and CapsLock interfere with ClickToFocus + and/or my mouse bindings? + 5.6 Menus with gradient backgrounds flicker or are very slow. + 5.7 Why won't the StartIconic style work with {Netscape, etc.}? + 5.8 How do I capture the output (eg errors) of fvwm? + 5.9 I try to run some program under FVWM, but it dies with an + X11 error like BadAccess. The same program works just fine + under MWM or OLWM. What's going on? + 5.10 Every time I update my install, my currently running fvwm + session dies. Why is that? + + +6. Miscellaneous + + 6.1 What exactly is the differenct between a DESK, a PAGE, and + the SCREEN? + 6.2 I'd really like {NeXT, Win95, etc} look and feel. Are you + going to support that? + 6.3 Where can I get more XPMs for icons? + 6.4 Linux XF86 virtual screen size & fvwm interaction... + 6.5 I know this question doesn't have to do with FVWM, but what + happened to to rxvt and rclock which Rob Nation used to + support? Where can I find them now? + +7. Hints and Examples from the Developers + + 7.1 An easy way to test new configurations. + 7.2 Using shell commands for configuration. + 7.3 How to start applications on a page or desk other than the + current. + 7.4 How to start applications on a page or desk other than the + current without moving the viewport to the new page or desk. + 7.5 A more efficient MWM menu style. + 7.6 Placing menus on the screen. + 7.7 Are you flipping pages by accident when moving the mouse + close to the border of the screen? + 7.8 Lining up your windows and icons. + 7.9 Moving the mouse/focus/page with the keyboard. + 7.10 The cat safe desktop :-) + 7.11 Lowering and moving windows. + + +====================================================================== + 1 - About Fvwm +====================================================================== + +1.1 What does FVWM stand for? + +A: "Fill_in_the_blank_with_whatever_f_word_you_like_at_the_time + Virtual Window Manager". Rob Nation (the original Author of FVWM) + doesn't really remember what the F stood for origninally, so we + have several potential answers: + + Feeble, Fabulous, Famous, Fast, Foobar, Fantastic, Flexible, + F!@#$%, Flashy, FVWM (the GNU recursive approach), Free, Final, + Funky, Fred's (who the heck is Fred?), Freakin', Flawed, + Father-of-all, Feivel (the mouse from "An American Tail"), etc. + + Just pick your favorite (hey, there's another one!), which will of + course change depending on your mood and whether or not you've run + across any bugs recently. I prefer Fabulous or Fantastic myself, + although I often use F!@#$% or Freakin' while debugging... + + Recently 'Feline' is becoming popular. Perhaps this has something + to do with the discovery that four of the six core developers have + cats (averaging 1.17 cats)? Miaow. + +---------------------------------------------------------------------- + +1.2 Where do I find the current versions of fvwm? + +A: New main distribution site (official + beta code): + + ftp://ftp.fvwm.org/pub/fvwm/ + + Alternate sites: + + USA: + ftp://sunsite.unc.edu/pub/Linux/X11/window-managers/ + ftp://ftp.cs.columbia.edu/pub/cheah/ + + Europe: + ftp://unix.hensa.ac.uk/pub/walnut.creek/FreeBSD/incoming/ + ftp://ftp.jussieu.fr/pub/X11/fvwm/ + ftp://ftp.loria.fr/pub/unix/fvwm/ + + BTW, 1.24r was the last released version of the 1.xx series and the + first official release of 2.xx will be 2.2. As of 2.2, an odd second + digit denotes development releases and even numbers denote stable + releases. + +---------------------------------------------------------------------- + +1.3 Any WWW Sites about FVWM? + +A: Yup. The official site is: + + http://www.fvwm.org/ + + There are links on the official site to other related fvwm sites. + +---------------------------------------------------------------------- + +1.4 Where do I ask questions about FVWM? + +A: If your local FVWM maintainer can't help you, then the newsgroup + comp.windows.x.apps is a good place, but the fvwm mailing list is + usually better. The new FVWM discussion mailing list address is: + + fvwm@fvwm.org + + And there is an announce mailing list as well: + + fvwm-announce@fvwm.org + + They are maintained by Jason Tibbitts, and are Majordomo based + mailing lists. To subscribe to the list, send "subscribe fvwm" in + the body of a message to -request@fvwm.org. For example, to + subscribe to the fvwm mailing list, send a request to + fvwm-request@fvwm.org. + + To unsubscribe from a list, send "unsubscribe fvwm" in the body of a + message to -request@fvwm.org. To report problems, send mail to + fvwm-owner@fvwm.org. + + Here's the list descriptions and instructions directly from Jason: + + ================================================================= + (fvwm) + + Description + ----------- + + This list is for discussion relating to the FVWM window manager, + which is intended to have a small memory footprint and a rich + feature set, be extremely customizable and extendable and have a + high degree of Motif mwm compatibility. All relevant discussion is + encouraged. Posting of binaries or irrelevant discussion is + strongly frowned upon. Posting of short patches (less than 200 + lines) is acceptable, but all patches should also be sent to the + fvwm-workers list (see Q5.2, below) for inspection and possible + inclusion in the distribution. + + + Instructions + ------------ + + To send a message to the list, mail to fvwm@fvwm.org. For help on + dealing with the mailing list software (for getting the archives or + other files which may be made available) send the message "help" to + fvwm-request@fvwm.org. If you have problems with the mailing list + itself and need to talk to a human, send mail to fvwm-owner@fvwm.org. + This address is for mailing list issues only; reports on the FVWM + software will be sent to /dev/null. + + Archives of previous messages are available; to get them send the + above mentioned help message and investigate the "index" and "get" + commands or ftp them from ftp://ftp.fvwm.org/pub/fvwm/list-archive/. + + + (fvwm-announce) + + This list is for announcements relating to the FVWM window manager, + which is intended to have a small memory footprint and a rich + feature set, be extremely customizable and extendable and have a + high degree of Motif mwm compatibility. + + Replies to messages from this list are set by default to go the + FVWM discussion list, fvwm@fvwm.org. + + The current FVWM distribution is available for ftp at + ftp://ftp.fvwm.org/pub/fvwm/ + ================================================================= + +---------------------------------------------------------------------- + +1.5 What are the differences between FVWM 1.xx and 2.xx? + +A: A lot. To name a few general ones: + - Bugfixes. 1.xx is not worked on at all any more. + - Better rc file format. No longer order dependent. + - More flexible and powerful. For example, many previously + global options now operate on a per window group level + instead. + - More and better modules. + - OpaqueResize is gone (fear not, it may come back). + - M4 preprocessing is no longer part of the fvwm exec, but + rather has been moved to a module. There is also a module + to use cpp too. See the FvwmM4 and FvwmCpp man pages. + + Be sure to check the NEWS file for new or changed features too. + +---------------------------------------------------------------------- + +1.6 What's the relative memory usage for the various window managers + out there? + +A: Here's a little table comparing some of them. It was done on an + AIX based IBM RS6000 model 355 using the same number of windows (3) + and XSession to switch between the window managers, and I used + 'top' to show the values: + + SIZE RES + 545K 652K fvwm2 (fvwm 2.0.35) + 457K 528K fvwm (fvwm 1.24rb) + 856K 960K ctwm (ctwm 3.2p1) + 1004K 1156K mwm (mwm 1.2) + 543K 632K twm (???) + 263K 328K aixwm (a simple ugly window manager included w/ aix) + +---------------------------------------------------------------------- + +1.7 Why the rename of the various files (fvwm2, .fvwm2rc, fvwm2.man)? + +A: Some people find this annoying, but let me say that I did that for + several reasons: + + - so both 1.xx and 2.xx can be installed for use, in case some + people at the same site would rather stay at 1.xx + - fvwm2 coredumps usually if it tries to read in a 1.xx rc + file because the syntax is pretty different and completely + incompatable + - when people ask questions, if they explicitly mention their + .fvwm2rc file I know that they are running one of the 2.xx + versions, since they rarely mention exactly what version + they are running. + +---------------------------------------------------------------------- + +1.8 When will fvwm release X.Y.Z be ready? + +A: This is always a difficult question to answer. We work on fvwm on + a volunteer basis. Things get done when we have the time. + + Joining the fvwm-workers mailing list might prove instructive. + + +====================================================================== + 2 - Installation +====================================================================== + +2.1 I want to use FVWM, but I don't have root access on my machine. + Can I still install and run it? + +A: Very easily, using the '--prefix' flag at configure time. + + Suppose your home directory is /home/sam. After unpacking the + fvwm2 sources, do "./configure --prefix=/home/sam [other options as + needed]'. Now, after building ("make") and installing ("make + install"), you will find the binaries in /home/sam/bin, the + manpages in /home/sam/man, etc. The modules will be in + /home/sam/libexec, and fvwm2 binary will have this module path + built in. + +---------------------------------------------------------------------- + +2.2 I'm trying to use fvwm under CDE/COSE, but encountering + difficulties. Any suggestions? + +A: Sure - here's one from Graeme McCaffery: + + ----- + Finally I have found out how to run fvwm properly from cde 8-)) + (thanks to Lars Sodergren). + + First set your home session in Dtwm. That usually is an empty + session, though you could have the cde session manager remember + what your desktop was like instead of FvwmSaveDesk etc.. + + Then you have to set two resources in .Xdefaults: + + *wmStartupCommand: /home/orion/spxgm/bin/Fvwm + *waitWmTimeout: 1 + + In this case I run fvwm from a shell script so that library + variables etc are set properly for everyone. The waitWmTimeout + tells the session manager how long to wait until it starts the + window manager. I've set it to 1 second. By default it's 60 secs. + + Finally you have to quit with + + /usr/dt/bin/dtaction ExitSession (or whatever your path is for dtaction) + + Now you can happily use cde programs and fvwm. + ----- + +---------------------------------------------------------------------- + +2.3 I'm trying to compile FVWM under SunOS using cc, but the compiler + is having lots of problems. What gives? + +A: cc under SunOS is not an ANSI C compiler. Try using acc or gcc + instead. + +---------------------------------------------------------------------- + +2.4 I want colored icons, but they won't work. Why not? + When I run configure, it reports "no" to "Have XPM support?" How + can I get XPM support? + +A: FVWM uses the XPM (X PixMap) library to provide support for colored + and shaped icons. XPM doesn't ship with the basic X distribution as + provided by The Open Group or XFree86. However, many vendors will + bundle it as a standard component anyway. If not, you can get a copy + of the source from ftp://ftp.x.org/contrib/libraries/ and build it + yourself. + + If you have XPM on your system, there are a number of ways configure + could still decide not to use it. + + First, if you've installed XPM in a non-standard place (not in the + normal system or X11 directories--say in /opt/xpm or /usr/local or + similar) then you need to tell configure where to look. Use the + --with-xpm-library and --with-xpm-includes options (see + INSTALL.fvwm). Typically configure will say "Xpm library or header + not found" if this is the problem. + + Second, your version of XPM may be too old. FVWM requires XPM 3.4f + or better. Typically configure will say "Xpm library version is too + old!" if this is the problem. In that case, you'll need to install a + newer version. + + Third, XPM may be mis-installed on your system. If configure says " + Xpm library version and header file version don't match!" then this + may be the problem. Either use the --with-xpm-library and + --with-xpm-includes options to specify more precisely what you want, + or try re-installing XPM. + + Last, there could be a linker error. This is especially common on + systems where XPM may be built as a shared library and installed in a + non-standard directory (Solaris is a good example). There are some + notes about building using shared libraries in the INSTALL.fvwm + file. + + If you can't figure it out, contact the FVWM mailing list. Please be + sure to provide the type of hardware and operating system you're + using, how you invoked configure, and extract the lines dealing with + XPM from the config.log file and include that. + +---------------------------------------------------------------------- + +2.5 I'm a sysadmin, and if I wanted to force fvwm to read a system rc + file and then the user's rc file, how would I do that? + +A: Well, you could probably do something like this: + + - have the first line of everyone's .fvwm2rc be 'Read + global.fvwm2rc' and have global.fvwm2rc reside in your + defined "sysconfdir" (from the ./configure step). + +---------------------------------------------------------------------- + +2.6 I'm a sysadmin, and if I wanted fvwm to look for all of it's rc + files in a hidden directory, say ~/.fvwm, much like CDE does, how + could I do that? + +A: This could be probably done similarily to Q2.5 above. The system rc + file in the "sysconfdir" could do something like: + + Read .fvwm/Init quiet + Read .fvwm/Decors quiet + Read .fvwm/Styles quiet + Read .fvwm/Functions quiet + Read .fvwm/Menus quiet + Read .fvwm/Keys quiet + Read .fvwm/Modules quiet + + or whatever breakdown you deemed appropriate, and you would have + default versions of these in {"sysconfdir"}/.fvwm/ that it could find in + case the user was missing one of them and you wanted to supply defaults. + + +====================================================================== + 3 - Features, Configuration, Functions & Commands +====================================================================== + +3.1 I use FVWM on a RedHat Linux system and can't figure out how to + change my FVWM configuration. I've read the FVWM manpage but when + I edit my .fvwm2rc nothing seems to happen. What's going on? + +A: RedHat Linux installs the X server accompanied (by default) by a + configuration management system. In earlier releases it was called + TheNextLevel and in more recent releases it's called AnotherLevel. + For further information about TheNextLevel, consult RedHat's + documentation in /usr/doc/TheNextLevel/. For information about + AnotherLevel, do a 'man AnotherLevel'. + +---------------------------------------------------------------------- + +3.2 Is it possible to raise a window when I click into the window + itself, not just the border? + +A: Any version later than 2.0.46 (i.e. 2.1.0 or later) has this + feature. Currently it is provided through the GlobalOpts command. + This will possibly change in the future and be made an option to + the Style command: + + GlobalOpts MouseFocusClickRaises + +---------------------------------------------------------------------- + +3.3 How do I get Alt-Tab behaviour like another GUI? + +A: The built in command WindowList provides a very close approximation + to the Alt-Tab feature found in another GUI. It doesn't look the + same but the following .fvwm2rc sample will provide a similar + interface: + + Key Tab A M WindowList Root c c NoDeskSort + + Hitting Alt-Tab will pop up the WindowList menu. Unlike another GUI + you should not keep the Alt key held down, the menu will stay up + until you hit Return/Enter or Escape. You can change focus to a + window on the menu by using the up and down arrow keys to move the + menu selection and then hitting Return or Enter. Hitting Escape will + close the menu without doing anything. The WindowList menu has hot + keys assigned for the first 26 windows and you can use the hot key to + go directly to the window. + + The menu invoked with the above line will show all windows in + most recently focused order unless you have used the Focus + command (see Q3.4). It shows each windows name and geometry + with some extra flags to indicate Sticky, OnTop and iconified + windows. + + A simpler style can be used with the following: + + Key Tab A M WindowList Root c c CurrentDesk NoGeometry + + This will just list the windows on the current desk (titles only). + + The other GUI has the feature of selecting the previous window if + Alt-TAB is hit and released quickly. This behaviour cannot be exactly + duplicated but similar functionality can be assigned to hitting + Alt-TAB twice in quick succession (like a double click for keys): + + DestroyFunc my_dbltab2 + AddToFunc my_dbltab2 "I" WindowListFunc $w + DestroyFunc my_dbltab + AddToFunc my_dbltab "I" Prev (CurrentDesk) my_dbltab2 + Key Tab A M WindowList Root c c CurrentDesk NoGeometry my_dbltab + + There are a lot of options to the WindowList command to control which + windows are listed in which order and it may not be possible to set + conditions for the Prev command to reliably select the second item + when double keying. The WindowList command has no parallel for + CurrentPage, Transient, Visible, Maximised, Raised, and pattern + matching. The Prev conditions have no parallel for OnTop, Alphabetic + and desk sorting. The WindowList menu respects the WindowListSkip + style attribute whereas Prev respects the CirculateSkip and + CirculateSkipIcon style attributes. + +---------------------------------------------------------------------- + +3.4 What's the difference between the Focus and FlipFocus commands? + +A: Both of these commands change the keyboard focus to the target + window. They differ only in the way they affect the internally held + list of windows. This list is used by the Next, Prev and WindowList + commands. The list is normally sorted in most recently focused order + with new windows being added to the end. The FlipFocus command plucks + the target window from the list and inserts it at the beginning, The + Focus command rotates the list around until the target window is at + the beginning. The behaviour of FlipFocus is also used when changing + focus with the mouse and the automatic focus changing when using + ClickToFocus style. + + If you never use the Focus command the list will remain in most + recently focused order. If you do use the Focus command the list will + gradually get back to most recently focused order as you use + FlipFocus. + + The Focus command is very useful in conjunction with the Next and + Prev commands. e.g. + + Key KP_Add A M Next (CurrentDesk !Iconic) Focus + Key KP_Subtract A M Prev (CurrentDesk !Iconic) Focus + + These bindings allow you to circulate the focus around the windows on + the current desk in both directions. If Prev FlipFocus were used the + focus would toggle between the top two windows on the window list. + + If you have several windows on a desk and you want to set the + circulation order for the Next and Prev commands you should focus on + the windows using the mouse or FlipFocus in the order you want. Fvwm2 + will learn the order and use it for the Next and Prev commands. If + you subsequently use the mouse to focus or FlipFocus the order will + be lost. + +---------------------------------------------------------------------- + +3.5 You can bind mouse movements to keystrokes, how about mouse + presses? + +A: Hm. This one is a little tougher. It could be done, but many + programs ignore synthetic events, which is what would be generated. + In X11R6.1 there is an extension (called XKBD?) which can do this, + but I don't want to code to anything specific to one of the newer + X11 versions like this. You could try using Xse, which is a + program to interface to XSendEvent, available at ftp.x.org. It + could probably be used in a smiliar manner to xcb above (or in + conjunction with it). If anyone comes up with good examples for + this, please send it to the fvwm mailing list for inclusion here. + +---------------------------------------------------------------------- + +3.6 I'd like to bind a key to paste/use the current selection, how can + I do that? + +A: You can't directly with fvwm, but there may be a solution that is + more generally applicable - use the program 'xcb' available at + ftp://ftp.x.org/contrib/utilities/ or from your favorite mirror. It + could probably be used to get the desired effect or close to it. + This is most useful for running programs and passing the selection to + them (eg - invoke your favorite browser with the current selection as + the URL). To get a semi-generic paste facility to work, you'll + probably need to use 'xse' (see Q3.5). If anyone comes up with a + good example of this, please send it to the fvwm mailing list for + inclusion here. + +---------------------------------------------------------------------- + +3.7 Will FVWM ever support a separate colormap for each desktop? + +A: Doubtful, althougth I'd like to see it too. I believe that it'd be + possible to change the default colormap whenever you switch desks, + which would give programs started when that desk is active that + colormap, how would you deal with windows being moved across desks? + + Plus fvwm itself needs certain colormap entries for all of its + drawing (borders, menus, etc), so these colors would have to be + pre-allocated in all of the colormaps, or something like that. + + While this all *might* be technically possible, I don't feel that + it's really feasable right now (too much code bloat and + complexity), especially since most color hog programs (ie Netscape) + allow you to have them install private colormaps. + + I may explore this a little at some point in the future though. + +---------------------------------------------------------------------- + +3.8 I really like the horizontal bars that appear on the title bars of + sticky windows. Can I get those on other windows as well? + +A: Yes. Put the line "GlobalOpts StipledTitles" in your .fvwm2rc. + Note that this is a purposely undocumented feature since it + will eventually be made a Style option. If you use this, + it is guaranteed to stop working some day. + +---------------------------------------------------------------------- + +3.9 How do I set the Sun keyboard key xxxx to an FVWM command? Or + more generally, I'm having problems defining key bindings for FVWM + - what can I do? + +A: From Jon Mountjoy, one of FVWM's users: + - Function keys on Sun Keyboard on Top Row are F1 - F8 + - Keys on the function keypad on the Left of the Sun Keyboard + are F11 == Stop, F12 == Again, ..., F20 == Cut + + His Example: + + # Function keys on Sun Keyboard on Top Row + Key F1 A N Exec me(netscape) & + Key F2 A N Exec me(netscape -install) & + Key F5 A N Exec makex(Adder) + Key F6 A N Exec makex(Lambda) + Key F7 A N Exec makex(Castor) + Key F8 A N Exec xterm -T Local & + + # Keys on the function keypad on the Left of the Sun Keyboard: + # F11 = Stop, F12 = Again, ..., F20 = Cut + Key F11 AWF N Next [!iconic CurrentScreen CurrentDesk] Focus + Key F12 AWF N Prev [!iconic CurrentScreen CurrentDesk] Focus + Key F13 WF N Maximize 100 100 + Key F15 WF N RaiseLower "" + Key F17 WIF N Iconify "" + Key F18 WF N Stick "" + Key F20 WIF N Delete "" + Key Help AWF N Iconify "" + + A more general solution is to use xev (usually distributed w/ X11) + or xkeykaps (an X11 interface to xmodmap written by Jamie Zawinski, + available from ftp.x.org) to find out what the keysym for whatever + key you want REALLY is, and use that for binding fvwm commands. + +---------------------------------------------------------------------- + +3.10 My .fvwmrc from version 1.xx no longer works. What do I do? + +A: Start with a new one or convert your old one. This can be done by + hand or with a little help from the 'fvwmrc_convert' in the + utils directory. + + And here is a list of rc file command changes compiled by Makoto + 'MAR_kun' MATSUSHITA . It may or + may not be 100% accurate or complete, especially as changes evolve, + but it's a good start. + + Note that there have been some changes in 2.1.x and up that are + not reflected in the conversion script yet. + + ** Fvwm-1.xx commands ** ** Fvwm-2.0.x equiv ** + + AppsBackingStore (obsoleted) + AutoRaise delay (obsoleted, use FvwmAuto) + BackingStore (obsoleted) + BoundaryWidth Width Style (BorderWidth width) + ButtonStyle button# WidthxHeight <- + CenterOnCirculate (obsoleted) + CirculateSkip windowname Style (CirculateSkip) + CirculateSkipIcons Style (CirculateSkipIcon) + ClickTime delay <- + ClickToFocus Style (ClickToFocus) + Cursor cursor_num cursor_type CursorStyle context cursornum + DecorateTransients Style (DecorateTransient) + DeskTopScale Scale (obsoleted, use FvwmPager) + DeskTopSize HorizontalxVertical <- + DontMoveOff (obsoleted) + EdgeResistance scrolling moving <- + EdgeScroll horizontal vertical <- + Font fontname MenuStyle (arg4) + Function FunctionName AddToFunc (not compatible) + HiBackColor colorname HilightColor (arg1) + HiForeColor colorname HilightColor (arg2) + Icon windowname bitmap-file Style (Icon iconname-file) + IconBox left top right bottom Style (IconBox l t r b) + IconFont fontname <- + IconPath path <- + Key keyname Context Modifiers Function <- + Lenience Style (Lenience) + MenuBackColor colorname MenuStyle (arg2) + MenuForeColor colorname MenuStyle (arg1) + MenuStippleColor colorname MenuStyle (arg3) + Module ModuleName <- + ModulePath path <- + Mouse Button Context Modifiers Function <- + MWMBorders Style (MWMBorder) + MWMButtons Style (MWMButtons) + MWMDecorHints Style (MWMDecor) + MWMFunctionHints Style (MWMFunctions) + MWMHintOverride Style (HintOverride) + MWMMenus MenuStyle (arg5) + NoBorder windowname Style (NoBorder) + NoBoundaryWidth Width Style (HandleWidth width) + NoPPosition Style (NoPPosition) + NoTitle windowname Style (NoTitle) + OpaqueMove percentage OpaqueMoveSize percentage + OpaqueResize (obsoleted) + Pager X_Location Y_Location (obsoleted, use FvwmPager) + PagerForeColor colorname (obsoleted, use FvwmPager) + PagerBackColor colorname (obsoleted, use FvwmPager) + PagerFont fontname (obsoleted, use FvwmPager) + PagingDefault pagingdefaultvalue (obsoleted) + PixmapPath path <- + Popup PopupName AddToMenu (not compatible) + RandomPlacement Style (RandomPlacement) + SaveUnders (obsoleted) + SloppyFocus Style (SloppyFocus) + SmartPlacement Style (SmartPlacement) + StartsOnDesk windowname desk-number Style (StartsOnDesk desk-number) + StaysOnTop windowname Style (StaysOnTop) + StdBackColor colorname Style (BackColor color) + StdForeColor colorname Style (ForeColor color) + StickyBackColor colorname (obsoleted) + StickyForeColor colorname (obsoleted) + Sticky windowname Style (Sticky) + StickyIcons Style (StickyIcon) + StubbornIcons (obsoleted) + StubbornIconPlacement (obsoleted) + StubbornPlacement (obsoleted) + Style windowname options <- + SuppressIcons Style (NoIcon) + WindowFont fontname <- + WindowListSkip windowname Style (WindowListSkip) + XORvalue number <- + + ** fvwm-1 built-in functions *** + + Beep <- + CirculateDown [ name window_name ] Next (not compatible) + CirculateUp [ name window_name ] Prev (not compatible) + Close <- + CursorMove horizonal vertical <- + Delete <- + Desk arg1 arg2 <- + Destroy <- + Exec name command <- + Focus <- + Function <- + GotoPage x y <- + Iconify [ value ] <- + Lower <- + Maximize [ horizontal vertical ] <- + Module name ModuleName Module ModuleName + Move [ x y ] <- + Nop <- + Popup <- + Quit <- + Raise <- + RaiseLower <- + Refresh <- + Resize [ x y ] <- + Restart name WindowManagerName <- + Stick <- + Scroll horizonal vertical <- + Title <- + TogglePage (obsoleted) + Wait name <- + Warp [ name window_name ] Next or Prev (not compatible) + WindowsDesk new_desk (obsoleted, use MoveToDesk) + WindowList arg1 arg2 <- + + *** New in fvwm-2 ** + + AnimatedMove + Destroy + DestroyMenu + ExecUseShell + KillModule + Menu menu-name double-click-action + MoveToDesk + MoveToPage + Next [conditions] command + None [arguments] command + Prev [conditions] command + Read filename + Recapture + SnapAttraction + SnapGrid + + + (more functions are being added from time to time, so please check + the manpage too). + +---------------------------------------------------------------------- + +3.11 What happened to the FVWM 1.xx 'include' command? + +A: It was actually part of the M4 preprocessing. You can use the 'Read' + builtin to get the same effect, or use the FvwmM4 module. + +---------------------------------------------------------------------- + +3.12 How do I get window titles on sub windows of ... (e.g. Netscape)? + +A: These windows are known as 'transient' windows because of their + short lived nature. To get the window decorations for transient + windows you can use the Style command: + + Style * DecorateTransient + + or to switch it off: + + Style * NakedTransient + +====================================================================== + 4 - Modules +====================================================================== + +4.1 I'm using FvwmButtons (or GoodStuff in 1.xx), and sometimes the + buttons stay depressed, and other times they don't. Why is that? + +A: From the FvwmButtons man page: + + If command is an fvwm Exec command, then the button + will remain pushed in until a window whose name or + class matches the qouted portion of the command is + encountered. This is intended to provide visual + feedback to the user that the action he has requested + will be performed. If the qouted portion contains no + characters, then the button will pop out immediately. + Note that users can continue pressing the button, and + re-executing the command, even when it looks "pressed + in." + +---------------------------------------------------------------------- + +4.2 When having FvwmButtons swallow an app, is it possible to have + button presses assigned to actions as well? For instance, I'd + like to swallow xload and have a button press pop up an xterm, or + swallow xbiff and have a button press bring up the list of + messages. + +A: You can do this, but it's not obvious how. The button presses + normally get passed through to the swallowed application, but if + you put a title on the button, you can assign actions to that. + Here's an example that someone sent to the mailing list once: + + *FvwmButtons(1x4, \ + Title, 'System Info' \ + Swallow, "xload" 'Exec xload' \ + Action(Mouse 1) 'Exec xosview -cua0 -net 200 -ul -l -geometry 325x325', \ + Action(Mouse 2) 'Exec xcpustate -interval 1 -bg "#a4978e" -fg black', \ + Action(Mouse 3) 'Exec rxvt -fg "khaki" -bg "dark olive green" \ + -fat -n top -T Top -7 -e top' ) + + And you could come up with something similar for xbiff (untested): + + *FvwmButtons(1x2 \ + Title 'Check Mail' Swallow "xbiff" 'Exec xbiff' \ + Action(Mouse 1) 'Exec from | xmessage -file -' ) + + plus you could bind another button (say Mouse 3) to run your + mail program. + + Sometime in the future I'll probably try and fix it so that you can + actually assign a button press over the app itself... + +---------------------------------------------------------------------- + +4.3 I'm seeing odd things when trying to preprocess files with the + FvwmM4/Cpp module... + +A: Yup, I imagine that you might be. Things like the InitFunction not + being called or windows that were running before FVWM started not + getting their Borders & Style options set, etc. + + The reason for all this is because of the fact that FvwmM4 is a + module. Fvwm won't be looking at the commands comming back from + the module until after it hits the mainloop of the code, AFTER the + startup is all done and it's already tried to execute the + InitFunction. + + So, some solutions I've been thinking about: + + - Create an exec or script that will invoke whatever + preprocessor you want appropriately and run that via + PipeRead. All those default macros in the M4/Cpp modules + would need to become FVWM_* env vars, defined by fvwm and + used by the exec/script to pass them on as macros to the + preprocessor. + - I have a new dynamic loading module interface in mind that + would take care of this (among many other things), but that + won't happen for a while... + - As a simple temporary fix, FvwmM4/Cpp could send a + 'Recapture' command back as the last thing done, plus + optionally an 'InitFunction' call (but that should be based + on a command line option). + +---------------------------------------------------------------------- + +4.4 I heard about this FvwmFileMgr module. Where can I find it? + +A: The FvwmFileMgr module dissappeared because a file manager doesn't + need to be integrated with a window manager and something like xfm + does a much better job. I recommend you pick that up instead (from + ftp.x.org or your favorite mirror). + +---------------------------------------------------------------------- + +4.5 I used to use GoodStuff in FVWM 1.xx, but it's not in the 2.xx + distribution. What do I use now? + +A: GoodStuff was renamed to FvwmButtons. Same module, new name (that + fits in with the other modules naming convention). + + +====================================================================== + 5 - Development, Known Problems & Bug Reports +====================================================================== + +5.1 I'd really like to see neat feature XYZ in FVWM. Wouldn't + that be cool? I even have a patch. When can it be added? + +A: People are always requesting or suggestion new features (many of + which are great ideas and where a lot of the current features came + from). One of the more common ones for example is Windows 95 look + and feel (although since this was first written, that particular + feature has actually been indirectly implemented via several + appearance effecting features). + + I'd like to make a statement about this. FVWM is supposed to be + small, fast, powerful, and flexible, and sometimes tradeoffs have + to be made here. The module interface helps here, as a lot of + features that not everyone wants or needs don't have to be in the + main module consuming resources for those people that don't want or + need them. + + So if you have a suggestion (or a patch), please think of a way to + make it as small and generic as possible if you feel it belongs in + the main module. Also, take a look in the TODO list and see if it + isn't already in there. + + Bear in mind that we make no guarantees that we'll add any requested + feature or apply any submitted patches to the official version, but + please don't let this dissuade you from submitting them. We like to + get new ideas and we're always curious to see how someone would + implement a given feature, even if we never plan to put it in fvwm. + Also, we may choose to reimplement any patches submitted, which may + change the syntax, functionality, etc. Please don't take offense + from that, as we mean no offense and we generally have a good reason + (at least by our way of thinking) for our actions... + +---------------------------------------------------------------------- + +5.2 How do I create/submit/apply patches? + +A: Creating a patch - + + 1) Copy the original file(s) to the same name with the + additional extension of .orig (or something like that). + 2) Update the ChangeLog file. If you use (x)emacs, move the + cursor into the function you changed and hit -x 4 a. + This will generate an empty ChangeLog entry in the right + file (there are several ChangeLogs). Add a description of + what you did. Do this each time you change a function or + file (for changes outside of funtions). You should update + the AUTHORS and NEWS files too if appropriate. + Please take the time to add the ChangeLog entries, it makes + our work a lot easier. + 3) Run diff with either the -c (context) or -u (unified) + switch on the sets of files, with the .orig file FIRST. I + prefer unified diff's because they are smaller, but + sometimes they aren't as readable (and some diff versions + don't support unified diffs), so either context or unified + diffs are fine (but please, no "plain" diffs). + + ex: cp fvwm.c fvwm.c.orig ; ; diff -u fvwm.c.orig fvwm.c + + Submitting a patch - + + Mail it to the fvwm-workers mailing list . + + If your patch is large you should compress it (preferrably + with gzip). Should it still be larger than 25k you might want + to to place it on a web page and email the URL to the mailing + list or ask on the fvwm-workers list first. + + Be sure to read the answer to Q16. + + Don't forget the ChangeLog. + + Applying a patch - + + Get a copy of the program 'patch' from your favorite source, + such as ftp://ftp.gnu.org/gnu/patch/, compile it, and then + follow its directions (generally just cd into the appropriate + directory and run 'patch < patchfile'). + +---------------------------------------------------------------------- + +5.3 How do I submit a bug report? + +A: Please enter a DETAILED description of your problem in our web-based + bug-tracking system. You can find a link on our web page (see Q1.3). + By detailed we mean more than just "my window isn't behaving right" or + "I found a bug": + + - Describe the problem as best you can, preferrably with + suggestions on how to reproduce it easily + - If applicable, include information from: + xwininfo (preferably w/ the -all option) + xprop + FvwmIdent + xdpyinfo (maybe) + - What OS & version you are running under + - What version of X11 are you running under, and is it an MIT + server or a vendor specific server (ex the OpenWindow X + server under SunOS) + - What exact version of FVWM you are running. + - How was FVWM compiled (compiler & version, options, etc) + - What settings to you have in your .fvwm2rc that may be + pertinent + +---------------------------------------------------------------------- + +5.4 I have a window that is behaving unexpectedly under FVWM, but just + fine under (whatever other window manager), or I have just some + random bug. What do I do? + +A: First, check your rc file and your .Xdefaults to make sure that + something blatantly obvious in there isn't causing the problem. + Second, *PLEASE PLEASE PLEASE* check the FAQ, BUGS, TODO, and man + pages. Finally, check the official WWW page and the mailing list + archives (which have a search facility) stored there. + + If you still can't figure it out, report your problem to our bug + tracking system (see Q5.3). + +---------------------------------------------------------------------- + +5.5 Why do NumLock and CapsLock interfere with ClickToFocus and/or my + mouse bindings? + +A: Because they are treated as modifiers. + +---------------------------------------------------------------------- + +5.6 Menus with gradient backgrounds flicker or are very slow. + +A: The flickering is caused by fvwm constantly redrawing the menus + when a submenu pops up or down. One way to help this is to use a + X server with backing storage (XFree86 has backing storage + support, I don't know about other servers but I guess that any + decent X server has it). If your Xserver is started with the + -bs option, remove it. If not try the -wm option, for example: + + startx -- -wm + + You may have to adapt this example to your system (e.g. if you + use xinit to start X). + + If that doesn't help, either because your X server does not have + backing storage or because system resources are limited, make + sure submenus do not overlap the parent menu: + + MenuStyle PopupOffset 1 100 + + Unfortunately this does not work properly with the fvwm + menu style. + + For the speed problem both suggestions above might help too. + Another thing to try is to turn hilighting of the active menu + item other than by forground color off. Put these lines in your + .fvwm2rc after the menu styles have been defined: + + MenuStyle Hilight3DOff, HilightBackOff + MenuStyle ActiveFore + +---------------------------------------------------------------------- + +5.7 Why won't the StartIconic style work with {Netscape, etc.}? + +A: The application won't allow it. This has only been observed with + Netscape. When Netscape starts up, FVWM starts the main window in + the iconic state. Netscape immediately issues another MapRequest, + to which the window manager must respond by de-iconifying the + window, according to the ICCCM rules. (Netscape can be persuaded to + start iconic, however, by invoking it with the -iconic command line + flag.) + +---------------------------------------------------------------------- + +5.8 How do I capture the output (eg errors) of fvwm? + +A: Errors are reported to the standard error file. You can redirect + standard error to a file when fvwm2 is started: "fvwm2 2> + fvwm-errors". X sessions started by xdm often redirect errors to a + file named ".xsession-errors". + + Alternatively, FvwmConsole or FvwmTalk modules will display error + messages. + +---------------------------------------------------------------------- + +5.9 I try to run some program under FVWM, but it dies with an X11 + error like BadAccess. The same program works just fine under MWM + or OLWM. What's going on? + +A: The error message usually looks something like this: + + X Error of failed request: BadAccess (attempt to access private + resource denied) + Major opcode of failed request: 28 (X_GrabButton) + Serial number of failed request: 1595 + Current serial number in output stream: 1596 + + Well, this is telling you that there is a conflict in key/button + assignments. In your .fvwm2rc you have bound some key/button that + this program really wants to bind to an action, but it can't since + FVWM has already done so (but you weren't doing it in the rc file + for your previous window manager). Figure out what the offending + key binding is and remove it from your .fvwm2rc, or temporarily via + FvwmTalk by removing the FVWM binding (see the man page for the Key + & Mouse commands). + +---------------------------------------------------------------------- + +5.10 Every time I update my install, my currently running fvwm session + dies. Why is that? + +A: Many OSes swap the program from memory via the image on the disk, + and if you overwrite it, and then the current one tries to swap + something back into memory before you restart, it'll core dump. To + avoid this, rename your old execs or move them to some other + directory. The 'mv' command preserves the inode so it won't + coredump, but then when you restart fvwm it'll pick up the new + copy. + + +====================================================================== + 6 - Miscellaneous +====================================================================== + +6.1 What exactly is the differenct between a DESK, a PAGE, and the + SCREEN? + +A: Our naming convention is sometimes a source of confusion, and when + discussing problems and the like it's good to maintain a consistent + meaning. To illustrate how features of fvwm should be referred to + - fvwm has multiple disjoint DESKTOPS, each of which is comprised + of M by N PAGES, which are each the size of the physical SCREEN. + The physical SCREEN acts as a viewport over one of the PAGES of the + current DESK. Here's a picture to clarify (also, take a look at + the FvwmPager module): + + Desk 0 Desk 1 + +----------+----------+ +----------+----------+ + | | | | | | + | Page 0 0 | Page 1 0 | | | | + | | | | | | + | | | | | | + +----------+----------+ +----------+----------+ + |+--------+| | | | | + ||Page 0 1|| Page 1 1 | | | | + || || | | | | + |+--------+| | | | | + +----------+----------+ +----------+----------+ + + It shows two 2 x 2 DESKTOPS. If the current DESK were number 0, + and the current PAGE were 0 1, the SCREEN would show only the + windows located there, plus any sticky ones. + +---------------------------------------------------------------------- + +6.2 I'd really like {OpenWindows, NeXT, Win95, Mac, etc} look and + feel. Are you going to support that? + +A: This is not our primary mission, but we think fvwm2 does a pretty + good job of producing these appearances. + +---------------------------------------------------------------------- + +6.3 Where can I get more XPMs for icons? + +A: If you want more color icons, grab the ones out of the ctwm + distribution (also at ftp.x.org) which has a lot of nice ones. You + can also find more in other distributions at ftp.x.org, and at + http://www.sct.gu.edu.au/~anthony/icons/ (which has a lot, I + believe). + +---------------------------------------------------------------------- + +6.4 Linux XF86 virtual screen size & fvwm interaction... + +A: Turn off the Linux Virtual Screen stuff in your XF86Config file if + you don't like it.... The XFree86 virtual screen feature and hardware + panning support in certain video cards is a pretty useless kludge when + you're using a window manager that implements virtual desktops. + +---------------------------------------------------------------------- + +6.5 I know this question doesn't have to do with FVWM, but what + happened to to rxvt and rclock which Rob Nation used to support? + Where can I find them now? + +A: This has come up a few times, so I thought I'd put it here too. + I believe that the new official home for rxvt is: + + http://babayaga.math.fu-berlin.de/~rxvt/ + + and rclock can be found in that rxvt distribution as well. + + +====================================================================== + 7 - Hints and Examples from the Developers +====================================================================== + +7.1 An easy way to test new configurations. + + Did you know that you do not need to restart X or fvwm2 to see what + most configuration commands do? There are several modules and + extras that allow you to issue fvwm2 commands at any time. Among + these are FvwmCommand, FvwmTalk and FvwmConsole. Personally I use + FvwmCommand and FvwmConsole. + + When you run FvwmConsole you get a shell like window where you can + type configuration commands that are sent to fvwm2. Just add an + entry to some menu that starts it: + + AddToMenu main_menu + + "FvwmConsole" Module FvwmConsole + + Using FvwmCommand is a bit more tricky. To use it you need to start + a server in your .fvwm2rc by adding this line: + + Module FvwmCommandS + + Make sure FvwmCommand is in your search path. Now you can enter + commands on the command line of your favorite shell: + + FvwmCommand "MenuStyle * Font 6x9" + + Note that you have to quote the command. The advantage of + FvwmCommand over FvwmConsole is that you can use your shell with + all its features to run commands (command completion and history + for example). The disadvantage is that it is a bit slow since a new + FvwmCommand has to be started for each command. + + Other related modules and commands are FvwmScript and PipeRead. + +---------------------------------------------------------------------- + +7.2 Using shell commands for configuration. + + Sometimes you might want to use the output of a shell command or + script in your .fvwm2rc. For example you might need a menu that has + all filenames in a certain directory as its entries. You can use + the PipeRead command and the FvwmCommand module. I recommend using + PipeRead since creating twenty menu items takes a considerable + amount of time with FvwmCommand. + + Example from my .fvwm2rc: + + # make the background menu + AddToFunc MakeBackgroundMenu + + "I" DestroyMenu BackgroundMenu + + "I" AddToMenu BackgroundMenu Backgrounds Title + + "I" PipeRead 'for i in `/bin/ls $HOME/.fvwm2/backgrounds/*.bg.*`; \ + do echo -e AddToMenu BackgroundMenu `basename $i | sed -e \ + "s/\.bg\..*$//"` Function SetDefaultBackground $i; done' + + # set the default background + AddToFunc SetDefaultBackground + + "I" Exec echo -e $0 > $HOME/.fvwm2/background + + "I" Function SetBackground + + # set a new background + AddToFunc SetBackground + + "I" Exec test -r $HOME/.fvwm2/background && xv -root -quit -viewonly \ + `cat $HOME/.fvwm2/background|tr -d "\n"` + + # activate setting from last session and build the menu + AddToFunc InitFunction + + "I" Function SetBackground + + "I" Function MakeBackgroundMenu + + + The MakeBackgroundMenu function builds a menu that contains an item + for every file that matches the pattern "*.bg.*" in the directory + $HOME/.fvwm2/backgrounds. The suffix .bg.* is removed. When I + select an item the file is displayed in the background using xv. + Furthermore the path and filename are stored in + $HOME/.fvwm2/background. When I start my next fvwm2 session the + filename is fetched from there so I get the background from my last + session. + + I have an even more complex setup for color palettes. + +---------------------------------------------------------------------- + +7.3 How to start applications on a page or desk other than the current. + + Use the 'StartsOnDesk' or 'StartsOnPage' style in your .fvwm2rc: + + Style Netscape* StartsOnPage 0 1 + + or + + Style Netscape* StartsOnDesk 1 + + Any window with a title that begins with 'Netscape' will be placed + on page 0 1 (desk 1). You will probably want to use these options + too: + + GlobalOpts RecaptureHonorsStartsOnPage, CaptureHonorsStartsOnPage + + Note that the GlobalOpts command will be removed some day in the + future and this options will become style flags. + +---------------------------------------------------------------------- + +7.4 How to start applications on a page or desk other than the current + without moving the viewport to the new page or desk. + + Use the SkipMapping style: + + Style Netscape* StartsOnPage 0 1, SkipMapping + +---------------------------------------------------------------------- + +7.5 A more efficient MWM menu style. + + Perhaps you have noticed that with the MWM menu style your sub + menus are shown as soon as the pointer enters their menu item. Even + if you just want to scroll down the list. You can prevent this with + the 'PopupDelay' and 'PopupDelayed' options of the MenuStyle + command: + + MenuStyle mwm + MenuStyle PopupDelayed, PopupDelay 80 + + The sub menu will we shown 80 milliseconds after the pointer enters + the menu item. You will hardly notice the delay. Note that 80 ms + is just long enough to move through the menu with auto repeat on my + cursor keys. You may have to experiment with this number to get it + right. + +---------------------------------------------------------------------- + +7.6 Placing menus on the screen. + + Do you have to close windows or move the pointer all over the + screen to find some part of the background where you can bring up + your main menu (or any other root menu)? + + Then you should use a keyboard shortcut. For example + + Key space A M Menu root c c main_menu + + in your .fvwm2rc gives you the menu 'main_menu' in the center of + the screen when you press Alt-space. Or you might want a shortcut + to the window menu: + + Key space A SM Menu root c c WindowMenu + + You can place menus anywhere you like, not just where the mouse + pointer is. Please read the section for the 'Menu' command in the + manpage. + +---------------------------------------------------------------------- + +7.7 Are you flipping pages by accident when moving the mouse close to + the border of the screen? + + You can disable page flipping with the EdgeScroll command: + + EdgeScroll 0 0 + + in your .fvwm2rc turns it off. + +---------------------------------------------------------------------- + +7.8 Lining up your windows and icons. + + The SnapAttraction and SnapGrid commands really help to keep your + desktop tidy. With SnapAttraction windows (or icons or both) are + 'attracted' to each other. When you drag a window (icon) and it + comes close to another window (icon) it clings to it without a gap + between the borders. Put this command in your .fvwm2rc: + + SnapAttraction 8 SameType + + This means windows cling to other windows if they get closer than + 8 pixels and icons cling to icons. Or if you just want it for + windows/icons use + + SnapAttraction 8 Windows + + or + + SnapAttraction 8 Icons + + Or if you want icons to cling to windows and vice versa: + + SnapAttraction 8 All + + + The SnapGrid command is a big help too: + + SnapGrid 8 + + in your .fvwm2rc tells fvwm2 to use a grid of 8 pixels to place + windows and icons. Try it and see if you like it. + + Hint: It might be a good idea to use a divisor of your desktop + width and height for SnapGrid. + +---------------------------------------------------------------------- + +7.9 Moving the mouse/focus/page with the keyboard. + + Try these key bindings for mouse movement: + + # shift- to move a few pixels + Key Left A S CursorMove -1 0 + Key Right A S CursorMove +1 +0 + Key Up A S CursorMove +0 -1 + Key Down A S CursorMove +0 +1 + + # shift-meta- to move 1/4 page + Key Left A SM Scroll -25 +0 + Key Right A SM Scroll +25 +0 + Key Up A SM Scroll +0 -25 + Key Down A SM Scroll +0 +25 + + or these to flip pages + + # shift-control- to move a full page + Key Left A SC CursorMove -10 +0 + Key Right A SC CursorMove +10 +0 + Key Up A SC CursorMove +0 -10 + Key Down A SC CursorMove +0 +10 + + # Alt-Fn to go to a specific page (like on the Linux console) + Key F1 A M GotoPage 0 0 + Key F2 A M GotoPage 1 0 + Key F3 A M GotoPage 0 1 + Key F4 A M GotoPage 1 1 + + or to change the focus to a window in a specific direction: + + # number keys on keypad to move the focus + Key KP_1 A C Direction SouthWest Focus + Key KP_2 A C Direction South Focus + Key KP_3 A C Direction SouthEast Focus + Key KP_4 A C Direction West Focus + Key KP_6 A C Direction East Focus + Key KP_7 A C Direction NorthWest Focus + Key KP_8 A C Direction North Focus + Key KP_9 A C Direction NorthEast Focus + +---------------------------------------------------------------------- + +7.10 The cat safe desktop :-) + + If your cats keep stepping on your keyboard while you are brewing + another cup of coffee on of these hints may help: + + Use 'Style * MouseFocus' and move the mouse pointer over the + background when you go away. + + If you can't do without your 'SloppyFocus' you can move the + mouse pointer into a window that takes no keyboard input and + give it the focus (e.g. FvwmButtons or a console message + window). A true fanatic creates a separate window with a picture + of his cat for this :-) + +---------------------------------------------------------------------- + +7.11 Lowering and moving windows. + + In some configurations moving a window with the middle mouse + button lowers the window after moving it. Lowering it before + moving gives you a nice visual effect: + + Mouse 2 T A Function MoveOrLower + + AddToFunc MoveOrLower + + "Click" Lower + + "Motion" Lower + + "Motion" Move + + "DoubleClick" Lower diff --git a/app/fvwm/docs/README b/app/fvwm/docs/README new file mode 100644 index 000000000..8432ce586 --- /dev/null +++ b/app/fvwm/docs/README @@ -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. diff --git a/app/fvwm/docs/TODO b/app/fvwm/docs/TODO new file mode 100644 index 000000000..3348faaf0 --- /dev/null +++ b/app/fvwm/docs/TODO @@ -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 style, to allow stickyness on certain + desks only, or perhaps a StaysOnDesk 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 + + +---------------------------------------------------------------------- + diff --git a/app/fvwm/docs/Y2K-Compliance b/app/fvwm/docs/Y2K-Compliance new file mode 100644 index 000000000..6b91ef4f4 --- /dev/null +++ b/app/fvwm/docs/Y2K-Compliance @@ -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. + diff --git a/app/fvwm/docs/black-stone1.jpg b/app/fvwm/docs/black-stone1.jpg new file mode 100644 index 000000000..a0979ddb6 Binary files /dev/null and b/app/fvwm/docs/black-stone1.jpg differ diff --git a/app/fvwm/docs/color_combos b/app/fvwm/docs/color_combos new file mode 100644 index 000000000..660bb4644 --- /dev/null +++ b/app/fvwm/docs/color_combos @@ -0,0 +1,176 @@ +Return-Path: pdcruze@orac.iinet.com.au +Return-Path: +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: +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" +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 -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 + diff --git a/app/fvwm/docs/cvs.html b/app/fvwm/docs/cvs.html new file mode 100644 index 000000000..e74eb4e05 --- /dev/null +++ b/app/fvwm/docs/cvs.html @@ -0,0 +1,249 @@ + + +The Official FVWM Homepage - CVS Procedures + + +
+ +

The Official FVWM Homepage - CVS Procedures

+
+ +Fvwm2 development uses a CVS server. + +

Note: 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. + + +

Overview

+ +To know what is going in with the source tree you should be reading +mail on the Fvwm Workers List. See the Mailing List Info page for more +information. + +

To build fvwm2 from the CVS sources, you need to have several GNU tools: +

    +
  • the CVS client +version 1.9 or better, +
  • GCC, +
  • GNU make, +
  • autoconf, +version 2.13 or better, and +
  • automake, +version 1.4 or better. +
+ + +

The Initial Download

+ +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. + +
 diff -u -b -B
+ checkout -P
+ update -d -P
+
+ +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. + +

Before you can download development source code for the first time, +you must login. + +

 cvs -d :pserver:anonymous@cvs.fvwm.org:/home/cvs/fvwm login
+
+ +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'. + +

Next, you checkout the latest source code. + +

 cvs -d :pserver:anonymous@cvs.fvwm.org:/home/cvs/fvwm checkout fvwm
+
+ +This creates a "fvwm" directory in your current directory. Get in +there and get to work. + +
 cd fvwm
+ autoreconf
+
+ +You did remember to install autoconf and automake, right? + +

Once you are inside the working directory, you no longer need the +long "-d :pserver:..." argument when issuing cvs commands. + +

CVS commands work from anywhere 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 cd'd to the top of the fvwm source +tree. + + +

Code Updates

+ +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! + +

You can update your copy of the sources to match the master +repository with the update command. + +

 cvs update
+
+ + +

Hacking the Code

+ +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! + +

When you have the code in a working state, generate a patch against +the current sources in the CVS repository. + +

 cvs update
+ cvs diff -u > patchfile
+
+ +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. + + +

Conflicts

+ +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. + +
 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
+
+ +Don't Panic! 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 both 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. + +
 <<<<<<< icons.c
+    XpmImage    my_image = {0};  /* testing */
+ =======
+ >>>>>>> 1.6
+
+ +Don't forget to delete the lines with all the "<", "=", and ">" +symbols. + + +

Getting Other Versions

+ +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. + +

Since you'll want to check out a fresh copy of the sources, you'll +need to cd out of the fvwm source tree +before issuing the following command. + +

 cvs -d :pserver:anonymous@cvs.fvwm.org:/home/cvs/fvwm checkout -r version-2_1_5 fvwm
+
+ +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 cvs status -v README for a list. + + +

Getting Commit Access

+ +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. + +

Doing some testing, submitting some patches, and getting involved +in the discussions will help us know about you. + +

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. + +

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: + +

 perl -e 'print crypt("yourpass",join("",((a..z,A..Z,0..9)[rand(62),rand(62)]))), "\n"'
+
+ +Change 'yourpass' to whatever you want your password to be. + +

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. + + +

Starting a Project

+ +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. + +

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. + + +

Adding Directories and Files

+ +First create the new directories and files locally. Then, assuming +the new directory is named "newdir" and the new file is "newmod.c": + +
 cvs add -m  "New directory for ..." newdir
+ cd newdir
+ cvs add -m "File newmod.c is a module that ..." newmod.c
+
+ + +

Deleting Directories and Files

+ +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: + +
 cvs remove -f filename...
+ cvs commit -m 'deleted files because' filename...
+
+ + + + diff --git a/app/fvwm/docs/docs.html b/app/fvwm/docs/docs.html new file mode 100644 index 000000000..d23a84488 --- /dev/null +++ b/app/fvwm/docs/docs.html @@ -0,0 +1,24 @@ + + + The Official FVWM Homepage - Docs, FAQ, & Other Info + + +
+

+ The Official FVWM Homepage - Docs, FAQ, & Other Info

+
+ + +
+ + + diff --git a/app/fvwm/docs/download.html b/app/fvwm/docs/download.html new file mode 100644 index 000000000..405749667 --- /dev/null +++ b/app/fvwm/docs/download.html @@ -0,0 +1,53 @@ + + +The Official FVWM Homepage - Downloads + + +
+

The Official FVWM Homepage - Downloads

+
+
    +
  • Latest Release: 2.2.3 +

    +

  • Latest Beta Version: N/A +

    +

  • Last 1.xx Version: 1.24r + (Note! This version is no longer supported.) +
+ +Just click on the version numbers above to download them. + +

+Older releases of fvwm1 and fvwm2 and (for the brave) the latest alpha +and beta releases, as well as unofficial patches, can be found +here. + +

+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. + +

+If you find any bugs, you can enter them into the +FVWM Bug Tracking System. +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! + +

+If you just have a question, be sure to read our +Documentation first, then you might want to +try our Mailing List. + +

+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. + +

+


+ + diff --git a/app/fvwm/docs/error_codes b/app/fvwm/docs/error_codes new file mode 100644 index 000000000..95ffad124 --- /dev/null +++ b/app/fvwm/docs/error_codes @@ -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 # */ + diff --git a/app/fvwm/docs/features.html b/app/fvwm/docs/features.html new file mode 100644 index 000000000..6115e8b61 --- /dev/null +++ b/app/fvwm/docs/features.html @@ -0,0 +1,61 @@ + + +The Official FVWM Homepage - Features + + +
+

The Official FVWM Homepage - Features

+
+ +Partial list of features common to 1.xx and 2.xx: + +
    +
  • Multiple Disjoint Large Virtual Desktops +
  • Smaller memory usage (more so in 1.xx) +
  • Dynamically extensable via modules +
  • Recognizes Motif MWM hints +
  • Keyboard or Mouse operation +
  • Attempts to be ICCCM 1.1 compliant +
  • 3-D look to window frames +
  • Full color shaped icons +
  • M4 preprocesing of the config file +
  • Auto-raising of windows +
  • Multi-screen support +
  • Cursor (Mouse Pointer) control on a context basis +
  • Viewport scrolling by moving the mouse off the edge of the screen +
  • Different window decorations for window that have or don't have focus +
  • Multiple ways to control icon placement +
  • Multiple ways to control initial window placement +
+ +

+ +Partial list of features new to 2.xx: + +

    +
  • New more powerful and sensible rc file format +
  • Change more features on per-window basis +
  • Change many features on the fly +
  • Optional Flat or Pixmap window borders +
  • Recogizes Open Look hints +
  • Just about any focus style you can think of +
  • Unwanted features can be removed at compile time +
  • CPP preprocesing of the config file +
  • Titlebars can be suppressed, Pixmaps, gradients, or plain +
  • Titlebar buttons can be vector graphics, pixmaps or gradients +
  • Menu hot-keys, continuation menus, pixmaps in and to the side + of menus +
  • Macro definition in the config file +
  • Animated window movement +
  • A way to limit the amount of color used by fvwm (for 8 bit displays) +
  • Window manager commands can come from external programs +
  • Roll-up type window shading +
  • Some ability to centrally configure fvwm +
+ +
+ + + diff --git a/app/fvwm/docs/ftp.html b/app/fvwm/docs/ftp.html new file mode 100644 index 000000000..4c72b05ba --- /dev/null +++ b/app/fvwm/docs/ftp.html @@ -0,0 +1,74 @@ + + +The Official FVWM Homepage - FTP and Mailing List Info + + +
+

The Official FVWM Homepage - FTP and Mailing List Info

+
+ +

FTP and Mailing List Info

+ +The official FTP site for FVWM is + +

+ +

+ftp://ftp.fvwm.org/pub/fvwm/ +
+ +

+ +The mailing list addresses are: + +

+ +

+fvwm@fvwm.org (Discussion and questions list)
+and
+fvwm-announce@fvwm.org (Announcement only list)
+and
+fvwm-workers@fvwm.org (Beta testers and contributors list) +
+ +

+ +They are maintained by Jason Tibbitts, and are Majordomo based mailing +lists. To subscribe to a list, send "subscribe" +in the body of a message to the appropriate *-request +address. + +

+ +To unsubscribe from the list, send "unsubscribe" in the +body of a message to the appropriate *-request address. + +

+*-request addresses are: + +

+ +

+ +Subscription requests sent to the list will be ignored!
+Please follow the above instructions for subscribing properly. + +

+ +To report problems with any of the mailing lists, send mail to +fvwm-owner@fvwm.org. + +

+ +Also the mailing lists are now archived! + +

+ +


+ + + diff --git a/app/fvwm/docs/fvwm.gif b/app/fvwm/docs/fvwm.gif new file mode 100644 index 000000000..cb7d65517 Binary files /dev/null and b/app/fvwm/docs/fvwm.gif differ diff --git a/app/fvwm/docs/fvwm.lsm b/app/fvwm/docs/fvwm.lsm new file mode 100644 index 000000000..5072914ea --- /dev/null +++ b/app/fvwm/docs/fvwm.lsm @@ -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 +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 diff --git a/app/fvwm/docs/fvwm_smaller.gif b/app/fvwm/docs/fvwm_smaller.gif new file mode 100644 index 000000000..db93231a4 Binary files /dev/null and b/app/fvwm/docs/fvwm_smaller.gif differ diff --git a/app/fvwm/docs/index.html b/app/fvwm/docs/index.html new file mode 100644 index 000000000..4e6a2a011 --- /dev/null +++ b/app/fvwm/docs/index.html @@ -0,0 +1,58 @@ + + +The Official FVWM Homepage + + +
+

Welcome to the Official FVWM Homepage

+

+ +

+ +


+ +

NEWS FLASH!

+
+

+FVWM 2.2, the first official version of FVWM 2, is now available for download! + +

+FVWM version 2 has been available in various stages of beta for years; +now it has finally been officially released. Get your copy today! +

+ +


+ +

+FVWM is an ICCCM-compliant multiple virtual desktop window manager for +X11 created by Robert Nation, derived originally from twm +code. Thanks, Rob! + +

+Rob then passed the torch on to Charles Hines, who passed the torch to +Brady Montz, who passed the torch to the fvwm-workers 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. + +


+ +

Table Of Contents

+ + + +
+Created: Jan 31, 1996 ----- Last Updated: February 22, 1999. + + diff --git a/app/fvwm/docs/links.html b/app/fvwm/docs/links.html new file mode 100644 index 000000000..54d5a93cb --- /dev/null +++ b/app/fvwm/docs/links.html @@ -0,0 +1,85 @@ + + + The Official FVWM Homepage - Links + + +
+

The Official FVWM Homepage - Links

+
+ + Here's a few other sites (besides the official one) that have FVWM info: + + + + And here's a few others that have info on programs that are designed + to work with FVWM in some manner: + + + + 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: + +
    +
  • SCWM - The + Scheme Configurable Window Manager + +
  • Bowman - A NeXT Lookalike created from 1.24r (link no longer exists?) +
  • AfterStep - A continuation of Bowman +
  • Fvwm95 - A hack of an fvwm2 beta that looks more like (shudder) Win95 +
  • Fvwm decorations - A collection of fvwm screenshots and config files +
  • Fvwm decorations - Another collection of fvwm screenshots and config files +
  • Fvwm decorations - Even more fvwm screenshots and config files +
+ + And here's an excellent site with all sorts of window manager + information and comparisons (new location): + + + + Be sure to vote for FVWM in the voting section! :) + +

+ + And don't forget about Newsgroups: + +

+ +

+ + And how about an online version of the ICCCM: + +

+ +
+ + + diff --git a/app/fvwm/docs/m4_hacks b/app/fvwm/docs/m4_hacks new file mode 100644 index 000000000..27080a02f --- /dev/null +++ b/app/fvwm/docs/m4_hacks @@ -0,0 +1,127 @@ +Return-Path: dale@felix.dircon.co.uk +Return-Path: +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: +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 diff --git a/app/fvwm/docs/mailinglist.html b/app/fvwm/docs/mailinglist.html new file mode 100644 index 000000000..318ddaed5 --- /dev/null +++ b/app/fvwm/docs/mailinglist.html @@ -0,0 +1,65 @@ + + + The Official FVWM Homepage - Mailing List Info + + +
+

The Official FVWM Homepage - Mailing List Info +

+
+ + The mailing list addresses are: + +

+ +

+ fvwm@fvwm.org (Discussion and questions list)
+ and
+ fvwm-announce@fvwm.org (Announcement only list)
+ and
+ fvwm-workers@fvwm.org (Beta testers and contributors list) +
+ +

+ +They are maintained by Jason Tibbitts, and are Majordomo based mailing +lists. To subscribe to a list, send "subscribe" +in the body of a message to the appropriate *-request +address. + +

+ +To unsubscribe from the list, send "unsubscribe" in the +body of a message to the appropriate *-request address. + +

+*-request addresses are: + +

+ +

+ +Subscription requests sent to the list will be ignored!
+Please follow the above instructions for subscribing properly. + +

+ +To report problems with any of the mailing lists, send mail to +fvwm-owner@fvwm.org. + +

+ +Also the mailing lists are now archived! + +

+ +


+ + + diff --git a/app/fvwm/docs/man-pages.html b/app/fvwm/docs/man-pages.html new file mode 100644 index 000000000..8db6087b9 --- /dev/null +++ b/app/fvwm/docs/man-pages.html @@ -0,0 +1,38 @@ + + +The Official FVWM Homepage - Man Pages for FVWM 2.xx + + +
+

The Official FVWM Homepage - Man Pages for FVWM 2.xx

+
+
+ + + +
+ + diff --git a/app/fvwm/docs/mod_changes.html b/app/fvwm/docs/mod_changes.html new file mode 100644 index 000000000..87b41b9c8 --- /dev/null +++ b/app/fvwm/docs/mod_changes.html @@ -0,0 +1,49 @@ + + +The Official FVWM Homepage - Important Changes Since Fvwm-1.xx + + +
+

The Official FVWM Homepage - Important Changes Since Fvwm-1.xx

+
+

+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: +

+	unsigned long header[3];
+
+This must be changed to: +
+	unsigned long header[HEADER_SIZE];
+
+The rest of the changes are handled in the library function +ReadFvwmPacket. +

+Another notable change is that modules do not have to read the .fvwmrc +file themselves. They can request the appropriate lines from fvwm: + +

+  static void ParseOptions() {
+    char *buf;
+    while (GetConfigLine(Channel,&buf), buf != NULL) {
+      ParseConfigLine(buf);
+    } /* end config lines */
+  } /* end function */
+
+This is the preferred method of getting module-specific +configuration lines. +

+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''. +

+Some new packet types are defined, and a few values were added to +some packet types. +

+


+ + diff --git a/app/fvwm/docs/mod_concept.html b/app/fvwm/docs/mod_concept.html new file mode 100644 index 000000000..11a97cad2 --- /dev/null +++ b/app/fvwm/docs/mod_concept.html @@ -0,0 +1,35 @@ + + +The Official FVWM Homepage - Concept + + +
+

The Official FVWM Homepage - Concept

+
+

+The module interface has several design goals: +

    +
  • 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. +
  • Modules (user programs) should be able to provide the window +manager with a limited amount of instruction regarding instructions to +execute. +
  • Modules should not be able to corrupt the internal data bases +maintained by Fvwm, nor should unauthorized modules be able to +interface to Fvwm. +
  • 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. +
  • Modules should gracefully terminate when the window manager +dies, quits, or is re-started. +
  • 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. +
+

+


+ + diff --git a/app/fvwm/docs/mod_f2m_communication.html b/app/fvwm/docs/mod_f2m_communication.html new file mode 100644 index 000000000..2da171dc5 --- /dev/null +++ b/app/fvwm/docs/mod_f2m_communication.html @@ -0,0 +1,356 @@ + + +The Official FVWM Homepage - Fvwm-to-Module Communication + + +
+

The Official FVWM Homepage - Fvwm-to-Module Communication

+
+

When communication takes place

+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. +

Communication packet format

+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: +
+#define M_NEW_PAGE           (1)
+#define M_NEW_DESK           (1<<1)
+#define M_ADD_WINDOW         (1<<2)
+#define M_RAISE_WINDOW       (1<<3)
+#define M_LOWER_WINDOW       (1<<4)
+#define M_CONFIGURE_WINDOW   (1<<5)
+#define M_FOCUS_CHANGE       (1<<6)
+#define M_DESTROY_WINDOW     (1<<7)
+#define M_ICONIFY            (1<<8)
+#define M_DEICONIFY          (1<<9)
+#define M_WINDOW_NAME        (1<<10)
+#define M_ICON_NAME          (1<<11)
+#define M_RES_CLASS          (1<<12)
+#define M_RES_NAME           (1<<13)
+#define M_END_WINDOWLIST     (1<<14)
+#define M_ICON_LOCATION      (1<<15)
+#define M_MAP                (1<<16)
+#define M_ERROR              (1<<17)
+#define M_CONFIG_INFO        (1<<18)
+#define M_END_CONFIG_INFO    (1<<19)
+#define M_ICON_FILE          (1<<20)
+#define M_DEFAULTICON        (1<<21)
+#define M_STRING             (1<<22)
+#define M_MINI_ICON          (1<<23)
+#define M_WINDOWSHADE        (1<<24)
+#define M_DEWINDOWSHADE      (1<<25)
+#define M_LOCKONSEND         (1<<26)
+#define M_SENDCONFIG         (1<<27)
+
+

+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. +

+The body information is packet specific, as described below. +

M_NEW_PAGE

+

+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. +

+

M_NEW_DESK

+

+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. +

+

M_ADD_WINDOW, and M_CONFIGURE_WINDOW

+

+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. +

+

++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Format for Add and Configure Window Packets
Byte Significance
0 0xffffffff - Start of packet
+1 packet type
+2 length of packet, including header, expressed in long integers +
3 ID of the application's top level window
+4 ID of the Fvwm frame window
+5 Pointer to the Fvwm database entry
+6 X location of the window's frame
+7 Y location of the window's frame
+8 Width of the window's frame (pixels)
+9 Height of the window's frame (pixels)
+10 Desktop number
+11 Windows flags field
+12 Window Title Height (pixels)
+13 Window Border Width (pixels)
+14 Window Base Width (pixels)
+15 Window Base Height (pixels)
+16 Window Resize Width Increment(pixels)
+17 Window Resize Height Increment (pixels)
+18 Window Minimum Width (pixels)
+19 Window Minimum Height (pixels)
+20 Window Maximum Width Increment(pixels)
+21 Window Maximum Height Increment (pixels)
+22 Icon Label Window ID, or 0
+23 Icon Pixmap Window ID, or 0
+24 Window Gravity
\ +25 Pixel value of the text color
+26 Pixel value of the window border color
+

+M_LOWER_WINDOW, +M_RAISE_WINDOW, and +M_DESTROY_WINDOW +

+

+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. +

+

++ + + + + + + + + + + + + +
+Format for Lower, Raise, and Focus Change Packets
Byte Significance
0 0xffffffff - Start of packet
+1 packet type
+2 length of packet, including header, expressed in long integers +
3 ID of the application's top level window
+4 ID of the Fvwm frame window
+5 Pointer to the Fvwm database entry
+

M_FOCUS_CHANGE

+

+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. +

+

+M_ICONIFY and +M_ICON_LOCATION +

+

+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. +

+

++ + + + + + + + + + + + + + + + + +
+Format for Iconify and Icon Location Packets
Byte Significance
0 0xffffffff - Start of packet
+1 packet type
+2 length of packet, including header, expressed in long integers +
3 ID of the application's top level window
+4 ID of the Fvwm frame window
+5 Pointer to the Fvwm database entry
+6 X location of the window's frame
+7 Y location of the window's frame
+8 Width of the window's frame
+9 Height of the window's frame
+

M_DEICONIFY

+

+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. +

+

M_MAP

+

+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. +

+

+M_WINDOW_NAME, +M_ICON_NAME, +M_RES_CLASS, +M_RES_NAME, +

+

+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. +

+

M_END_WINDOWLIST

+

+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. +

+

M_ERROR

+

+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. +

+

M_CONFIG_INFO

+

+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. +

+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. +

+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. +

+

M_END_CONFIG_INFO

+

+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. +

M_ICON_FILE

+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. +

M_DEFAULTICON

+This packet is sent during +send window list. This is the icon associated with Style "*". +The packet contains the filename of the icon. +

M_STRING

+This packet is sent when a "SendToModule" command is processed. +

M_MINI_ICON

+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. +

M_WINDOWSHADE and +M_DEWINDOWSHADE +

+This packet is sent when a window is window shaded. +It contains no additional information. +

M_LOCKONSEND

+This is a request sent from modules to fvwm and is described +under Module to Fvwm communication. +

M_SENDCONFIG

+This is a request sent from modules to fvwm and is described +under Module to Fvwm communication. +

+


+ + diff --git a/app/fvwm/docs/mod_initialization.html b/app/fvwm/docs/mod_initialization.html new file mode 100644 index 000000000..5f547ce4b --- /dev/null +++ b/app/fvwm/docs/mod_initialization.html @@ -0,0 +1,124 @@ + + +The Official FVWM Homepage - Interface and Initialization Mechanism + + +
+

The Official FVWM Homepage - Interface and Initialization Mechanism

+
+

Module Invocation

+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. +

Module Arguments

+

Args 0

+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". +

Args 1 and 2

+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. +

Arg 3

+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. +

Arg 4

+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. +

Arg 5

+The next +argument is the context of the window decoration in which the module +was launched. Contexts are listed below: +
#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
+

Arg 6 and above

+A number of user specified command line arguments may be present +(optional). Up to 35 arguments may be passed. For example, in: +
+	Module	"FvwmIdentify"	FvwmIdentify Hello rob! ``-fg purple''
+
+we would get argv[6] = ``Hello'', argv[7] = ``rob!'', argv[8] = ``-fg purple''. +

+

Module Aliases

+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. +

+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. + +

Acquiring the read/write pipes

+The following mechanism is recommended to acquire the pipe +descriptors: +
+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]);
+

+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);". +

Pipe Status

+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. + +

Reading initial configuration information +

+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 +Fvwm-to-Module Communication +and +Module-to-Fvwm Communication. +
+ + diff --git a/app/fvwm/docs/mod_m2f_communication.html b/app/fvwm/docs/mod_m2f_communication.html new file mode 100644 index 000000000..b8a2c7f9f --- /dev/null +++ b/app/fvwm/docs/mod_m2f_communication.html @@ -0,0 +1,121 @@ + + +The Official FVWM Homepage - Module-to-Fvwm Communication + + +
+

The Official FVWM Homepage - Module-to-Fvwm Communication

+
+

Module Writing

+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. + +

Module communications protocol

+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. +

+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: +

+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));
+  }
+}
+
+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. + +

Module information requests

+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: +
+SendText(Channel,"Send_WindowList",0);
+
+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: +
+static void ParseOptions() {
+  char *buf;
+  while (GetConfigLine(Channel,&buf), buf != NULL) {
+    ParseConfigLine(buf);
+  } /* end config lines */
+} /* end function */
+
+ +

Controlling information sent to +modules

+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:
+SetMessageMask(Fvwm_fd,M_NEW_DESK|M_CONFIG_INFO|M_END_CONFIG_INFO);
+
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. + +

Synchronous vs. Asynchronous Operation

+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. +
+ + diff --git a/app/fvwm/docs/mod_security.html b/app/fvwm/docs/mod_security.html new file mode 100644 index 000000000..0faea5f76 --- /dev/null +++ b/app/fvwm/docs/mod_security.html @@ -0,0 +1,24 @@ + + +The Official FVWM Homepage - Security + + +
+

The Official FVWM Homepage - Security

+
+

Security

+

+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. +


+ + diff --git a/app/fvwm/docs/modules.html b/app/fvwm/docs/modules.html new file mode 100644 index 000000000..6c3f3c279 --- /dev/null +++ b/app/fvwm/docs/modules.html @@ -0,0 +1,35 @@ + + + + + + + + +>The Official FVWM Homepage - Module Interface + + + + + + +
+

+ The Official FVWM Homepage - Module Interface

+
+
+

Table Of Contents

+ +

+

+ + diff --git a/app/fvwm/docs/run_man2html.sh b/app/fvwm/docs/run_man2html.sh new file mode 100644 index 000000000..0f2317a65 --- /dev/null +++ b/app/fvwm/docs/run_man2html.sh @@ -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 " + +The Official FVWM Homepage - $name Man Page + + +

+

The Official FVWM Homepage - $name Man Page

+
+
+" > $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 "
+
+ + + +" >> $outfile diff --git a/app/fvwm/docs/txt2html.sh b/app/fvwm/docs/txt2html.sh new file mode 100644 index 000000000..bffa31a63 --- /dev/null +++ b/app/fvwm/docs/txt2html.sh @@ -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 " + +The Official FVWM Homepage - $name Information + + +
+

The Official FVWM Homepage - $name Information

+
+
+" > $outfile
+
+# Embed the text with some adjustment:
+sed -e 's/&/\&/' \
+    -e 's//\>/' $1 >> $outfile
+
+# make footer:
+echo "
+
+ + + +" >> $outfile diff --git a/app/fvwm/extras/ChangeLog b/app/fvwm/extras/ChangeLog new file mode 100644 index 000000000..f30ff2976 --- /dev/null +++ b/app/fvwm/extras/ChangeLog @@ -0,0 +1,209 @@ +1999-11-30 Dominik Vogt + + * FvwmTaskBar/Goodies.c: + added #ifdef SHAPE + +1999-11-29 Dominik Vogt + + * FvwmWharf/FvwmWharf.c (My_XNextEvent): + * FvwmTaskBar/FvwmTaskBar.c (EndLessLoop): + * FvwmScript/Widgets/Menu.c (EvtMouseMenu): + * FvwmScript/Widgets/List.c (EvtMouseList): + * FvwmScript/Instructions.c (Quit): + * FvwmScript/FvwmScript.c (MainLoop): + * FvwmPipe/FvwmPipe.c: + * FvwmGoodStuff/FvwmGoodStuff.c (My_XNextEvent): + * FvwmConsole/FvwmConsole.c: + fixed select arguments + +1999-02-15 Bob Woodside + + * FvwmConsole/FvwmConsole.h: Switched the order of the includes for + un.h and sockets.h, to correct a compile failure under Linux 2.2.1. + +1999-02-14 Dominik Vogt + + * FvwmGoodStuff/FvwmGoodStuff.c (RelieveWindow): + * FvwmGoodStuff/FvwmGoodStuff.h: removed inline from declaration of + RelieveWindow + +1999-01-26 Steven Michael ROBBINS + + * FvwmConfig/WinBase.C: Removed include of strings.h, moved + include of config.h to top. + +1999-01-13 Steven Michael ROBBINS + + * FvwmTaskBar/FvwmTaskBar.c (ParseConfigLine): Made argument just + "char", since "unsigned char" caused problems on systems with + signed chars. + + * FvwmConsole/FvwmConsole.c: Removed non-constant pointer from + initializer of xterm_a. + +Sun Jan 10 23:13:45 1999 Steve Robbins + + * FvwmGoodStuff/FvwmGoodStuff.c (main): Inserted parentheses + around && within ||. + +Sun Jan 10 23:06:00 1999 Steve Robbins + + * FvwmWharf/FvwmWharf.c: + * FvwmTaskBar/FvwmTaskBar.c: + * FvwmDebug/FvwmDebug.c: Removed unused variables. + +Sun Jan 10 21:11:09 1999 Steve Robbins + + * FvwmWharf/FvwmWharf.c (main): + * FvwmTaskBar/FvwmTaskBar.c (main): + * FvwmScript/FvwmScript.c (main): + * FvwmPipe/FvwmPipe.c (main): + * FvwmGoodStuff/FvwmGoodStuff.c (main): + * FvwmDebug/FvwmDebug.c (main): Fixed "control reaches end of + non-void function" bug. + +Sun Jan 10 15:14:22 1999 Steve Robbins + + * FvwmTaskBar/Colors.c: + * FvwmGoodStuff/FvwmGoodStuff.c (GetHilite): Removed min & max + macros; they are already in config.h. + +Sun Jan 10 15:11:15 1999 Steve Robbins + + * FvwmCommand/FvwmCommand.c: + * FvwmCommand/FvwmCommand.h: Replaced select() code conditional on + __hpux with code that uses SELECT_TYPE_ARG234. + +Sun Jan 10 15:08:43 1999 Steve Robbins + + * FvwmCommand/FvwmCommand.h: Replaced __linux with HAVE_GETOPT_H. + +Sun Jan 10 15:05:33 1999 Steve Robbins + + * FvwmWharf/icons.c: + * FvwmGoodStuff/icons.c: Replaced NeXT with HAVE_FNCTL_H. + +Sun Jan 10 15:03:26 1999 Steve Robbins + + * FvwmGoodStuff/FvwmGoodStuff.c: + * FvwmTaskBar/FvwmTaskBar.c: + * FvwmWharf/FvwmWharf.c: Replaced messy set of symbols with + HAVE_SYS_SELECT_H. + +Sun Jan 10 15:01:37 1999 Steve Robbins + + * FvwmWharf/FvwmWharf.c: + * FvwmTaskBar/FvwmTaskBar.c: + * FvwmGoodStuff/FvwmGoodStuff.c: Replaced symbol ISC with + HAVE_SYS_BSDTYPES_H. + +1999-01-08 Dominik Vogt + + * FvwmTaskBar/**: some general cleanup + + * FvwmTaskBar/FvwmTaskBar.c (ErrorHandler): added missing return value + + * FvwmTaskBar/FvwmTaskBar.c (ReadFvwmPipe): + (ProcessMessage): + * FvwmTaskBar/ButtonArray.c (ButtonNew): + (DrawButtonArray): + (LocateButton): + removed unused variables + + * FvwmTaskBar/Goodies.c: Applied a RedHat bugfix for "mailbox" + +1999-01-06 Paul D. Smith + + * FvwmConsole/Makefile.am: Use X_EXTRA_LIBS instead of socket_LIBS. + +1998-12-02 Paul D. Smith + + * FvwmCommand/Makefile.am: Put FvwmCommand into bindir, not the + module directory. FvwmCommandS still goes in the module dir. + +1998-12-02 Dan Espen + + * FvwmTaskBar/FvwmTaskBar.h: Update prototype for ParseConfig. + + * FvwmTaskBar/FvwmTaskBar.1: Update config file reading note, bugs + info, and remove references to fvwm95. + + * FvwmTaskBar/FvwmTaskBar.c: Use GetConfigLine to read the config. + +1998-11-24 Paul D. Smith + + * FvwmScript/types.h: Remove headers that are duplicated (and + better tested for by autoconf) in the config.h file. + + * FvwmConsole/FvwmConsole.h: Move sys/types.h include nearer the + top, before sys/select.h. + +1998-11-20 Dominik Vogt + + * FvwmGoodStuff/FvwmGoodStuff.c (CreateWindow): border size bugfix + +Tue Nov 10 10:23:11 1998 Steve Robbins + + * FvwmScript: Added the yacc & lex output (scanner.c, script.c and + script.h) to the CVS tree, so you can build without having these + tools. Removed the old version of the yacc/lex input (the + Compilers subdirectory). + +Tue Nov 10 10:05:05 1998 Steve Robbins + + * FvwmScript/Makefile.am (EXTRA_DIST): Added script.h. + +Tue Nov 10 08:44:34 1998 Steve Robbins + + * FvwmScript: Copied the yacc & lex source files from the Compiler + subdirectory, and changed the makefile to build the .c and .h + files from scanner.l and script.y. + +Mon Nov 9 18:56:50 1998 Steve Robbins + + * Makefile.am (SUBDIRS): Removed fvwmperl, since this version is + known to be obsolete. Removed fvwmpython on suspicion of being + obsolete. + +1998-11-06 Paul D. Smith + + * FvwmWharf/Makefile.am (FvwmWharf_DEPENDENCIES): + * FvwmTaskBar/Makefile.am (FvwmTaskBar_DEPENDENCIES): + * FvwmScript/Makefile.am (FvwmScript_DEPENDENCIES): + * FvwmPipe/Makefile.am (FvwmPipe_DEPENDENCIES): + * FvwmGoodStuff/Makefile.am (FvwmGoodStuff_DEPENDENCIES): + * FvwmCommand/Makefile.am (FvwmCommand_DEPENDENCIES,FvwmCommandS_DEPENDENCIES): + * FvwmConfig/Makefile.am (FvwmConfig_DEPENDENCIES): + * FvwmConsole/Makefile.am (FvwmConsole_DEPENDENCIES,FvwmConsoleC_DEPENDENCIES): + * FvwmDebug/Makefile.am (FvwmDebug_DEPENDENCIES): + Added a dependency on libfvwm.a. + + * FvwmConsole/FvwmConsole.h: Remove reference to internal Linux + include files. + +1998-11-05 Paul D. Smith + + * FvwmScript/FvwmScript.c: Change DEBUG surrounding bounds checker + code to MEMDEBUG, so you don't need the special library to enable + debugging. + + * FvwmCommand/FvwmCommand.h: Remove reference to internal Linux + include files. + * FvwmCommand/FvwmCommand.c: Include getopt.h. + + * FvwmScript/Instructions.c (RemainderOfDiv): If the host doesn't + have div(), just return an error message. + +1998-11-05 Steven Michael ROBBINS + + * FvwmWharf/Wharf.h: Made icon_info.depth a signed char, because + it is sometimes compared with -1. + + * FvwmDebug/FvwmDebug.h (setvbuf): Checks for HAVE_SETVBUF and + SETVBUF_REVERSED. + + * FvwmTaskBar/Makefile.am (INCLUDES): + * FvwmPipe/Makefile.am (INCLUDES): + * FvwmDebug/Makefile.am (INCLUDES): + * FvwmConsole/Makefile.am (INCLUDES): Added xpm_CFLAGS, since + xpm.h is included by fvwmlib.h. diff --git a/app/fvwm/extras/FvwmCommand/FvwmCommand.1 b/app/fvwm/extras/FvwmCommand/FvwmCommand.1 new file mode 100644 index 000000000..711682be5 --- /dev/null +++ b/app/fvwm/extras/FvwmCommand/FvwmCommand.1 @@ -0,0 +1,322 @@ +.\" t +.\" @(#)FvwmCommand.1 4/6/98 +.de EX \"Begin example +.ne 5 +.if n .sp 1 +.if t .sp .5 +.nf +.in +.25i +.. +.de EE +.fi +.in -.25i +.if n .sp 1 +.if t .sp .5 +.. +.ta .2i .4i .6i .8i +.TH FvwmCommand 1x "May 11 1998" +.UC +.SH NAME +FvwmCommand \- FVWM2 command external interface + +.SH SYNOPSIS +FvwmCommand [-mrvw] [-S name] [-i level] [-f name] [-F level] [command...] + +.SH DESCRIPTION + +FvwmCommand lets you monitor fvwm2 transaction and issue fvwm2 command +from a shell command line or scripts. +FvwmCommand takes each argument as a fvwm2 command. Quotes can be +used to send commands including spaces. +.EX +FvwmCommand 'FvwmPager 0 1' +.EE +.br +.SH INVOCATION +FvwmCommandS should be spawned once by fvwm2, either in .fvwm2rc file, +from menu, or from FvwmConsole. +From then on, FvwmCommand +can be called from a shell or script to execute fvwm2 commands. + +From within .fvwm2rc file: +.EX +Module FvwmCommandS + + or + +AddToFunc "InitFunction" "I" Module FvwmBanner ++ "I" Module FvwmPager 0 8 ++ "I" Module FvwmCommandS + +AddToFunc "RestartFunction" "I" Module FvwmCommandS ++ "I" Module FvwmPager 0 8 +.EE + +Then, in script file or from shell: + +.EX +FvwmCommand 'popup "Utilities"' +.EE + +.SH OPTIONS +.IP "\fI-F \fR" 0.4i +Specifies the level of fvwm2 window flags FvwmCommand outputs. +.sp +.RS +.IP 0 0.4i +No window flags will be printed. +.RE +.RS +.IP 2 0.4i +Full window flags will be printed if information level, -i +option, is 2 or 3. +.sp +.RE + +.IP "\fI-f \fR" 0.4i +Specifies an alternative FIFO set to communicate with a server. +The default FIFO set is ~/.FvwmCommand, in which +~/.FvwmCommandC is used to send commands and ~/.FvwmCommandM is to receive +messages. +FvwmCommandS must have been invoked with the same as its first argument +prior to FvwmCommand invocation. +Alternatively, option -S can be used. Refer option -S. +This option -f is useful when a dedicated connection is necessary +to run a background job while another connection is kept for +interactive use. + +.IP "\fI-i \fR" +Specifies the level of information that FvwmCommand outputs. +.sp +.RS +.IP 0 0.4i +Error messages only. +.EX +FvwmCommand -i0 FvwmBanner +.EE +will show a banner without any output. On the other hand, +.EX +FvwmCommand -i 0 foobar +.EE +will return, +.EX +[FVWM][executeModule]: <> No such module +\'foobar\' in ModulePath '/usr/lib/X11/fvwm2' +.EE + +Note that Fvwm2 doesn't return any error messages in +cases like below since 'windowid' itself is a valid command. +.sp +.EX +FvwmCommand -i 0 'windowid foo bar' +.EE +.IP 1 +Errors and window configuration information. This is the default. +.EX +FvwmCommand send_windowlist +.EE +Information like below will show up. +.EX + +0x02000014 window FvwmConsole +0x02000014 icon FvwmConsole +0x02000014 class XTerm +0x02000014 resource FvwmConsole +0x01c00014 window console +0x01c00014 icon console +0x01c00014 class XTerm +0x01c00014 resource console +0x01000003 window Fvwm Pager +0x01000003 icon +0x01000003 class FvwmModule +0x01000003 resource FvwmPager +0x00c0002c window emacs: FvwmCommand.man +0x00c0002c icon FvwmCommand.man +0x00c0002c icon file xemacs.xpm +0x00c0002c class Emacs +0x00c0002c resource emacs +end windowlist +.EE +The first column shows the window ID number, which can be used in 'windowid' command. +The second column shows the information types. +The last column shows the information contents. +If no information is returned, add -w