Generic_Window_Manager/CHANGES

2022 lines
68 KiB
Plaintext

/**************************************************************************\
* *
* HISTORY of user-visible changes *
* *
\**************************************************************************/
1.8e (2021/11/7) removed spyware, restored core
Hello! My name is Mid Favila, and I've just recently
discovered GWM. I intend to update it quite a bit;
some of the more interesting changes I'll document
below...
-Update the codebase to C99
-Make it compile under modern Unices
-Remove any remnant of the spying routines
-Add EWMH support
I won't make any promises, because I don't want to
disappoint anyone (especially since I'm new to
computer programming), but I'll absolutely try my
best.
FILE TREE LAYOUT
- added "libwool.h" and began moving utility functions into it
1.8d (99/08/??) varius additions and fixes
COMPATIBLE ENHANCEMENTS:
- new function 'with-output-to-file' makes possible to write
files from GWM.
BUGS CORRECTED:
- patches to compile on Dec Alphas, from Ted Phelps.
- patches to lex.yy.c to work with glibc2.1, from Christian
Meder.
- an UnmapNotify event to withdraw a client should undecorate
the window, not just unmap it (client.c).
- use of never mapped groupleaders by clients could cause dead
"ghost windows" for the same clients (icccm.c).
- remove potential access to dead windows via old colormap
settings (icccm.c).
- functions with required parameters could be called without
parameters with no warning (wl_func.c).
- querying the dimension of an empty string gave weird results
(wl_label.c).
- when setting the cut-buffer from GWM, make it possible for
other clients to see and paste this (wool-gwm.c, still not
done the "right" way via selections though).
- several "uninitialized memory"-related bugs detected and
corrected.
GWM PACKAGES:
- new file "advice.gwm", to provide a standard way of redefining
functions.
- new file "custom-menu.gwm", which makes it possible to edit
customization variables in the various GWM packages via menus,
and get the changes saved to the next session.
- new FVWM-profile written by Anders Holst. Mainly the
VTWM-profile with FVWM-like windows, icons, and menus.
The profile is completely customizable via the customization
menus mentioned above.
- new file "fvwm-autoraise.gwm", autoraise with delay for
fvwm-windows, from Bruno Daniel.
- updated VTWM-profile, especially the menus, which have more
customizable alternatives, and can be cascaded.
- updated "virtual"-package: window titles can be shown in the
map, autopanning can be delayed and optionally warps the
pointer, more functionallity for dynamic generation of doors.
- adjusted "move-opaque", to cooperate with virtual-pan.
- new file "up-door", place windows into different doors, from Ulrich
Pfeifer.
- new decoration "cutewin.gwm" from Sundar Ranganathan.
- new file "dir-focus", focus a window in some direction, from
Teemu Hirsimaki.
- bug fixes to "simple-win", "simple-icon", and "term-icon" to
handle colors better on multiple screens.
1.8c (95/12/08) color usage reduction
DISTRIBUTION:
- colors cleaned in all xpm files to use less colors. Use only colors in
rgb.txt, and some digitilized ones were reduced by hand
BUGS CORRECTED:
- "Henry S. Thompson" <ht@cogsci.ed.ac.uk>: patches to compile on
freebsd
STANDARD PROFILE:
- "pack icon" menu item now raises all icons too
- in distributed data/.profile.gwm: see the section "Netscape" that
adds behaviors to netscape icons:
- selecting an URL and control-middle-mouse on a netscape icon will
make this netscape instance open the URL
- selecting an URL and control-left-mouse or control-alt-middle-mouse
will create a new netscape window on the URL
1.8b (95/09/22) bug fixes
COMPATIBLE ENHANCEMENTS:
- window-icon-name could only be read, not set. Now you can set it, it
will modify the window hint just like window-name does.
STANDARD PROFILE:
- New decoration: timeout-window
timeout-win allows you to specify a command to be applied to a window
N seconds after its creation. Very useful to get rid of unwanted pop-ups
such as XMH mime requesters each time I go into a mail error message...
- virtual screen: wallpaper is changed too when going to a room via the
map
MWM PROFILE:
- TRUE MWM look by Anders, with his recursive bars.
BUGS CORRECTED:
- Anders Holst <aho@nada.kth.se>:
virtual-pan.gwm float.gwm:
patches to fix xlock problems (float windows race condition)
vtwm-menu.gwm vtwm-window.gwm:
treatment of color focus, which were not so good before
- data/simple-ed-win.gwm: old code was limiting the size of plugs
in titlebar.
- Naoki Hamada <nao@sbl.cl.nec.co.jp>:
potential problem in GC fixed (call to GC before its initialisation)
- bugs to the twm profile fixed
DISTRIBUTION:
- data/wallpaper.gwm new file (old but forgot to include in distrib)
code to add wallpaper effects to the dvrooms package.
- documents the fact that gwm seems to work on alpha if compiled
with -taso
CONTRIBUTED SOFTWARE:
- contrib/gwmsend: now appends property instead of overriding it
DOCUMENTATION:
- of timeout-win, in standard profile chapter.
1.8a (95/07/03) optional logging
A small fix, logging by sending an udppacket is now disablable at run
time by setting the environment variables NO_GWM_LOG or NO_KOALA_SPY to
disable this feature without recompilation, for users who get pre-compiled
binaries.
1.8 (95/06/30) recursive non-rectangular bars
1.8 can be seen as the "final edition" of the current gwm. It "cleans the
attic" by including all patches and fixes that has been sent to me by the
active gwm community since the last major release, 1.7o in September 93,
it provides powerful new features to implement looks and feels never seen
in any previous WM, and provides a stable C base for future developments, as
I embark into re-vamping the C layer into a better but incompatible
version, "kwm" (Koala Window Manager), the name not being gwm v2 to stress
the incompatibility of the profiles.
NEW FEATURES:
- A *big* addition by Anders Holst <aho@nada.kth.se>! Now bars can have
sub-bars, recursing indefinitely, alternatively horizontal and
vertical, not unlike the hbox/vbox geometry management system of
TeX. This should allow building profiles to emulate *completly* any
window manager look
- Also by Anders, bars can be non-rectangular. If their background is set
to t, this means a totally transparent background. And bars can have
arbitrary shaped backgrounds (shaped tiles)
- I added a small module to send me an upd packet every day by every
running gwm so that I can have some idea of the use, and more
importantly propagation of new versions. This will only send your
hostname, and will silently fail if the network is not present. You can
either disable this by -DNO_GWM_LOG, or better do a
-DGWM_LOG_ID="\"a_name_of_your_setup\"" if you dont want me to log this
information, that I wont publish but will help me to better have a
feeling for the use of gwm.
see spy.c and GWM_log function in gwm.c, module done by
Cedric.Beust@sophia.inria.fr, http://www.inria.fr/koala/beust.html
- Sven Wischnowsky <oberon@cs.tu-berlin.de>:
patch for the gwm.c file which adds two new options:
-I: this one makes gwm still read its stdin (and, of course,
evaluate it) once running. You can thus type interactive commands
to gwm in the xterm running a gwm -I
-P: together with -I makes gwm print a simple prompt showing the
number of currently open parentheses
see file data/emacs-mode.readme for details
COMPATIBLE ENHANCEMENTS:
- border-on-shaped new global variable to allow border on shaped
windows. If a window is shaped (non-rectangular), gwm by default
removes the border around its window frames, setting this variable to
t inhibits this behavior.
INCOMPATIBILITIES WITH PREVIOUS PROFILES:
- (bar-make ()), and in fact (bar-make () ... ()) was equivalent to
(bar-make), but it is no longuer the case, as now (bar-make ()) means
a really extensible bar with the new non-rectangular bar system.
*** You *MUST* relace all the occurences of (bar-make ()) by
(bar-make) in your profiles.
- a tiny detail: by default now, bar-max-widths is set by default to
1000 instead of 20, as this limit could cause unexpected behaviors
with the newers decorations allowed by the new recursive
non-rectangular bars
STANDARD PROFILE:
Additions of options to the simple-win and simple-icon
packages to benefit from the non-rectangular bars:
- stretch option to simple-icon to allow legends to expand past the
icon image (plug) itself, "a la" macintosh.
stretch can be "top", "left", "right", "bottom" to tell which side
will stretch, default is both (centered) for other non-nil values.
(setq simple-icon.stretch t) will make it the default.
- legend option can be "top", "left", "right", "bottom" to specify where
the legend should be wrt the icon. legend can still be set to t to
mean "bottom" for backwards compatibility. Works for simple-win and
simple-icon.
e.g: (customize simple-icon any XTerm legend "left")
- label option can be a lambda function that will be applied to the
window name (simple-win) or icon name (simple-icon) to return the
string that will be used in the title. Can be used to remove the
"@ host" from emacs titles or remove the "Netscape: " prepended by
netscape to all its windows
e.g: to supress the Netscape: in netscape icon titles
(customize simple-icon any Netscape
label (lambdaq (s) (match "Netscape: \\(.*\\)$" s 1)))
- simple-win have two options lpad and rpad which gives the amount of
padding (nils in bars) before and after the label. each must be a
number.
- tile can be set to the background of the title bar of simple-win and
term-icon to make disappear the bar, leaving only the label.
- Sample "diagonal" definitions included in data/placements.gwm (last
lines) by Michael A. Patton <map@bbn.com>. gives a rows.diag-ul and
rows.diag-ur to place windows/icon ins diagonales along the screen
from upper left and right corners.
- Simple virtual screen package base on the one done by Anders for
vtwm.gwm. Do a (load "std-virtual.gwm") to get it.
MWM PROFILE:
- various bug fixes
TWM PROFILE:
- another big contribution by Anders Holst <aho@nada.kth.se>, the vtwm
profile, that uses sub-modules for virtual screen (virtual.gwm) and
icon manager (vtwm-icon-mgr.gwm) than could be used with other gwm
profiles.
run it by gwm -f vtwmo
DISTRIBUTION:
- *** XPM LIBRARY NO MORE INCLUDED! ***
Xpm is becoming a de facto standard. Is adopted by Motif 2.0 and COSE
CDE and many other packages (TCL/Tk, xemacs...) so you SHOULD have it
installed somewhere. if not, compile it. With its inclusion in CDE 1.0,
its API is freezed so there wont be any compatibility problems.
Xpm can be found on ftp.x.org and mirrors or koala.inria.fr:/pub/xpm
- new FTP locations:
Europe: koala.inria.fr:/pub/gwm/
USA: ftp.x.org:/contrib/window_managers/ (and its worldwide mirrors)
- all goodies which are not just loadable gwm scripts are now in the
contrib/ subdirectory. There you will find emacs modes, systems to
interactively execute Wool code in a running gwm from an xterm or an
emacs buffer, and the rxterm scripts to remotely execute xterms.
None of this packages is automatically compiled and/or installed,
you'll have to do this by hand.
- the rxterm script is not installed anymore, as many sites has already
this sort of mecanism already installed
BUGS CORRECTED:
- many, many bug fixes by Anders Holst <aho@nada.kth.se>. And of course,
by a lot of gwm users whose names are detailed in revisions.c
- now a warning is issued if an application maps its window with an
incorrect initial_state hint, but the window is mapped nonetheless.
- some problems with XV window migration fixed, and the unfixable
documented in doc/KNOWN_BUGS
- all known memory leaks fixed (some on xpm loading, menu creations,
lambda deletions, list-of-windows)
- if errors occured while decorating a window or an icon, the window
could become unmapped
- ejb@ERA.COM (E. Jay Berkenbilt): patches for time on SYSV machines
- now displays correctly internationalized texts (compounds strings) in
window and icon names
- some roundoff errors occured when resizing windows at screen
boundaries when confine-windows was set
CHANGES TO THE DOC:
- Michael Welsh Duggan <md5i+@andrew.cmu.edu>: corrections to gwm doc
- Documentation for the new bar-make, and the new simple-win and
simple-icon modes
1.7o (93/09/03) non-rectangular icons
COMPATIBLE ENHANCEMENTS:
- gwm now completely supports non-rectangular icons, either from ICCCM
hints set by the applications (icon mask hint in WM_HINTS), or by
using XPM color pixmap files for the icon center plugs, and they can
be modified on the fly.
- new variable: xpm-closeness. If set, sets the "closeness" XPM value
when loading XPM file. This allows to search the colormap for already
allocated colors "close enough" when the colormap is full. You can
thus use sperb colorful icons without any restraints!
Defaults to 40000, which is the recommended XPM value. See the XPM
documentation for full explanation.
- -k and -K new command line options:
Dan Griscom <griscom@media.mit.edu>:
It's the "-k pid" option, which takes a process id as an
argument. When gwm has finished initializing, it sends a signal(SIGALRM
by default) to the given process. So, if you do the following lines:
sleep 15 & pid=$!
gwm -k $pid &
wait $pid
then your init shell script will pause until gwm has finished
initializing.
-K signal_num sets the signal number to signal_num instead of
SIGALRM (14)
- term-icon-xpm:
Icon decoration, like term-icon, but frames the icon name with 8 XPM
icons, instead of bitmaps, allowing you great looks!. Just try:
;; your dominant screen background color
(setq screen-background (color-make "lightseagreen"))
(set-icon-window XTerm
(term-icon-xpm "xterm3" pop-item.font
(color-make "DarkSlateGrey")
(color-make "yellow")))
- xpm-icon:
an icon decoration allowing for using colorful non-rectangular icons
(xpm files), choosen by the state of the application, and updated
on icon pixmap or icon/window name change. See file data/xpm-icon.gwm
As far as I know, gwm is the only X WM to allow you to have a colored,
non rectangular icon of xmh changing when new mail arrives...
MWM PROFILE:
- I fixed f.exec to allow arguments in commands in a natural way, now
(f.exec "xedit foo") works, no need to type (f.exec "xedit" "foo")
- mwm: Meta-X no longer maximizes the window by default, since it is
annoying for emacs users (ed.duomo@lambada.oit.unc.edu)
DISTRIBUTION:
- new room package: wbrooms.gwm, contributed by William Burdick
<burdick@octopus.ecn.purdue.edu>. The idea is like dvrooms, except
that a room is a bar of buttons, and they have a nice 3D look.
- XPM lib upgraded to the most recent one, 3.2g (performance gains)
- generated LEX & YACC parsers are included for users without lex&yacc
(most notably LINUX, flex and bison do not work with gwm).
see directory gwm-parsers.
BUGS CORRECTED:
- Calvin Clark <ckclark@MIT.EDU>:
error in grab lists should not abort decoration
- errors in icon decoration could leave the main window unmapped
- more fixes to WM_TAKE_FOCUS Protocol: fix by David Hogan
<dhog@cs.su.oz.au>, reported by John Mackin <john@civil.su.oz.au>.
Other fixes by rjc@cogsci.edinburgh.ac.uk (Richard Caley).
- simple-win.gwm: typo was preventing color chnage of label with focus-in
bug fix by: Tom Yu <tlyu@MIT.EDU>
- "Henry S. Thompson" <ht@cogsci.edinburgh.ac.uk>
(pixmap-make width heigth) now take into account tile if it exists
- patches for compiling with flex by Olaf Kirch (on linux)
<okir@mathematik.th-darmstadt.de>. See revision.c.
- various bug fixes to the code by: (see revision.c for full details)
caret@sword.eng.pyramid.com (Neil Russell)
"Mike Marques" <mike@ccs.yorku.ca>
kenw%bilbo@ihs.com (Ken Weinert)
dwight@toolucky.llnl.gov ( Dwight Shih )
Julian Gosnell <jules@tomen-ele.co.jp>
Steven Charlton <steven@cs.ualberta.ca>
Reg Quinton <reggers@julian.uwo.ca>
Michael A. Patton <MAP@lcs.mit.edu>
1.7n (92/08/28) bugs
BUGS CORRECTED:
- there were still problems with some idraw pop-ups (file selectors),
due to bugs in idraw WM_HINTS positioning. fixed.
- some windows could be left unmapped in some cases. problem discovered
by Michael A. Patton <MAP@lcs.mit.edu>
- -DNO_STRUCTURE_OFFSETS compilation flag to be able to compile
wl_event.c on picky compilers (DECstations, apollo)
DISTRIBUTION:
- data/move-opaque.gwm: call to process-exposes to avoid crashes
fix provided by tsm@cs.brown.edu (Timothy Miller)
1.7m (92/08/10) bugs
BUGS CORRECTED:
- some memory bugs, found by using the wonderful purify utility. Get a
demo version of purify by mailing to support@pure.com
- bad implementation of the WM_TAKE_FOCUS ICCCM protocol corrected. bug
shown with lucid emacs
- the new "map-on-raise" flag couldn't be turned off
- cstruble@gnu.ai.mit.edu (Craig Struble) fixed a short/int comparison
problem
- load: on absolute pathnames, do not add extensions
check that extension is not already there before adding it
- Calvin Clark <ckclark@mit.edu>: bad handling of the sibling field in
ConfigureRequest events
DISTRIBUTION:
- gwm-buffer.el in data dir by Mike Fletcher <fletch@cad.gatech.edu>
an interactive wool mode (remotely executed by the running gwm)
under emacs
Note: this package was also called wool-mode.el (name that I would
reserve to a package to indent wool) or gwm-mode.wl. I renames it with
the same name as its main function...
- blk@vanity.mitre.org (Brian L. Kahn): drop-menus packages for use
with epoch. files in data/:
drop-menus.doc drop-menus.gwm style.gwm widgets.el widgets.gwm
I began writing more customizable versions. Look at:
em-widgets.gwm em-drop-menus.gwm em-example.gwm
- Doug Bogia <bogia@cs.uiuc.edu>: no more button bindings overriding by
the mon-keys.gwm package
MWM PROFILE:
- Glen Whitney <gwhitney@math.ucla.edu>: new version of the mwm emulator.
mwm files overriden, but saved in mwm-emul-1.0.tar.Z in ftp sites
see mwm-emulation.txt
COMPATIBLE ENHANCEMENTS:
- New context flag for windows: ignore-take-focus (default ()). If set,
the WM_TAKE_FOCUS protocol is never used for the window, even if it
is set by the window
CHANGES TO THE DOC: none
1.7l (92/03/02) bugs + framemaker support
BUGS CORRECTED:
- gwm now ignores directories when loading files. if you had a directory
named "utils" for instance in your GWMPATH, gwm would not load
"utils.gwm".
- some changes for compiling on stellar (Timothy Miller)
STANDARD PROFILE:
- .profile.gwm now loads "framemaker.gwm"
- (setq confine-windows t) was overriden by unconf-move in .profile.gwm
Doug Bogia <bogia@cs.uiuc.edu>
- standard .profile now loads "my-menus.gwm" for user-specific
customisation (so that the standard profile can be shared)
TWM PROFILE:
- bugs to twm profile corrected (would core dump after a while).
Dag Diesen <dagdis@ifi.uio.no>
DISTRIBUTION:
- new flag "UseInstalledXpm" in Imakefile to use already installed XPM
library
klute@irb.informatik.uni-dortmund.de (Rainer Klute)
- new file: fast.gwm (for gwm -f fast), to make a very primitive, fast
starting WM, by
ejb@era.com (Jay Berkenbilt)
- epoch.gwm was obsolete, updated.
- button mapping removed from mon-keys.gwm
Doug Bogia <bogia@cs.uiuc.edu>
COMPATIBLE ENHANCEMENTS:
- never-warp-pointer variable to disable all calls to warp pointer
tim@stanley.cis.brown.edu (Timothy Miller)
- map-on-raise flag interpreted by decoration to know if we must
de-iconify a window if the client raises it.
This is for FrameMaker, which doesn't expect some of its dialogs to
ever be iconified, and thus only raises them when you request them.
this flag on FrameMaker decos de-iconify them also.
CHANGES TO THE DOC:
- new entries:
never-warp-pointer, map-on-raise, fast.gwm, framemaker.gwm.
1.7k (92/02/12) bugs
BUGS CORRECTED:
- 'background key in meter function was ignored
(bug report from "Mike Marques" <mike@apex.yorku.ca>)
- (property-change any) was not working
- Michael Bloom <mb@ttidca.tti.com> patches for interviews
- window-group has now sanity checks to always return a list or ().
FrameMaker was setting bad hints that could confuse gwm
- a internal random bug on GC was corrected, might have been the bug
inducing bus errors on some move-window calls.
STANDARD PROFILE:
- new resources for simple-icon:
simple-icon.plug-name forces the icon name
simple-icon.no-center-plug forces icon to ignore application pixmap
DISTRIBUTION:
- data/en-recover.gwm utility code from Eyvind Ness <eyvind@hrp.no>
included in distrib. code used to map back lost windows.
- data/framemaker.gwm is a sample of special utilities coded to manage
framemaker windows
COMPATIBLE ENHANCEMENTS:
- Philippe Kaplan's additions of hooks for external window management
(not yet documented, might be changed, notably to better implement the
ICCCM v2). Provides access to ClientMessages by the functions:
(client-message atom) waits for a client message of type atom
(current-event-data) returns a 5-element list made with the contents of
the client message (if numeric) or a string.
(send-client-message atom args...) sends a client message with tag
atom and with (at most 5) numeric args to the current window, or a
string arguments (then first 20 chars are sent).
CHANGES TO THE DOC:
- the doc is untouched.
1.7i (91/10/21) idraw bug
BUGS CORRECTED:
- one more check for garbage hints placed by idraw...
(opening a new idraw file was messing main idraw display)...
1.7h (91/10/04) xpm v3.0 R5 tape
- now uses xpm 3.0 library (xpm version for the R5 contrib tape)
BUGS CORRECTED:
- icons with no center plug didn't resize when bars were resizing
themselves. Found by Mike Liang <mike@lsil.com>.
1.7g (91/10/03) bugs
R5 INCLUSION:
- GNU copyrights removed on data/amc-lisp.el, with author agreement.
- xpm/Imakefile corrections
BUGS CORRECTED:
- problem when resized with confine-windows on on left and top side of
screen. Doug Bogia (bogia@cs.uiuc.edu)
- bug with some false window-group hints (bus errors on sun4s)
DISTRIBUTION:
- new PROBLEMS file for listing hints & tips for helping to compile.
added tips for HP machines by Eyvind Ness <eyvind@hrp.no>
- blk@zoot.cca.cr.rockwell.com (Barry L. Kaplan) GWM-Lisp major mode
for Emacs included in distrib.
- Hugues.Leroy@irisa.fr (Hugues Leroy) additions of rxcmdtool to
rxterm.script
1.7f (91/09/12) submission to X11R5 contrib tape
BUGS CORRECTED:
- Do not trust the validity of windows put by clients as group leaders
or transient_for masters. Idraw v3.0 was putting garbage in its
transient_for property and was fooling gwm.
- send-key-to-window now properly puts shifts to access shifted
chars, i.e.: (send-key-to-window "aB@#" alone) works as expected
MWM PROFILE:
- bug in submenu execution in mwm: current window was bad. Bug found by
blk@zoot.cca.cr.rockwell.com (Barry L. Kaplan)
COMPATIBLE ENHANCEMENTS:
- uses now the new 3.0b XPM Pixmap file library
1.7e (91/09/10) bug fixes
BUGS CORRECTED:
- no more resource manager bugs. Were due to using null strings to
mean "any" as classes.
- gwm now properly dies when the X server dies
(shown by qjb@athena.mit.edu). Was due to a bus error in a signal
handler...
- problems in shaped windows decoration
COMPATIBLE ENHANCEMENTS:
- new function color-make-rgb function contributed by
dab@berserkly.cray.com (David Borman)
- uses now the new 3.0a XPM Pixmap file library
1.7d (91/08/29) bug fix
BUGS CORRECTED:
- version number wasn't correct (still 1.7b)
- bad behavior on transient windows
1.7c (91/08/28) Compiles with R5 + bug fixes
BUGS CORRECTED:
- random values returned sometimes by the X ressources manager
- sun4 bugs
- John Carr <jfc@ATHENA.MIT.EDU> patches for IBM RT and RS/6000,
X11R5, ansiC
- more careful during window decoration (should fix xrn crashes)
COMPATIBLE ENHANCEMENTS:
- machine names are trunacted to first dot, to retain only machine name,
not the domain
NEW FUNCTIONS:
- window-to-client and client-to-window functions to convert to/from
decorated client's X ids and Gwm decorating "window"s.
1.7b (91/08/15) bug fixes
BUGS CORRECTED:
- random "Invalid Window" errors really corrected
- window-icon? documented and implemented in C instead of wool.
- README updated
1.7a (91/08/15) bug fixes
STANDARD PROFILE:
- dvrooms additions by Dwight Shih <dwight@s1.gov>:
roll-rooms-up and roll-rooms-down to get through rooms in order
magic-dvroom-attach: windows <Room>::<Name> get automatically added
to <Room>.
dvroom-remapping: unmaps all windows belonging to any room.
BUGS CORRECTED:
- random "Invalid Window" errors
- defines XErrorHandler for pre-R4 releases
- bad data/Imakefile generation
NEW FUNCTIONS:
- window-is-valid, wob-is-valid to help debugging profiles.
DISTRIBUTION:
- "make wool" is provided to make a standalone command-line version of
wool (less all the gwm-specific routines).
1.7 (91/08/01)
STANDARD PROFILE:
- hostnames which contain embedded "." were not matched properly
Fix provided by DGREEN@IBM.COM (Dan R. Greening) and
Doug Bogia (bogia@cs.uiuc.edu)
- proper use of * in resource specs
- keys works in vscreen window now
- meters stay in place
- client-info menu wasn't movable
- no-set-focus not always set properly (patch by Doug Bogia)
- null string for the window-client-name badly matched
(patch by Doug Bogia)
BUGS CORRECTED:
- (= "foo" 'foo) didn't work!
- William.Lott@ARDATH.SLISP.CS.CMU.EDU: (wob-borderpixel <pixmap>)
broken
- John Carr patches for IBM PC-RTs under BSD (AOS), not AIX
Mike Newton patches for building on DG AViiON
Dan R. Greening patches to Imakefile for IBM RS-6000
sven@tde.lth.se (Sven Mattisson) patches for Sequent Symmetry
DYNIX 3.0.17
- window-icon checks for window existence
- madler@apollo.com (Michael Adler) dims_outer_to_inner() in client.c:
failed to account for the border width of the decoration
- client moving only one coord would move to 0
- client-name context var was ignored in place-menu
- double-buttonpress was bugged: acted as a buttonpress
- fixed crash when client quits immediately after a colormap change
request. (problem showed by Frank Mangin <mangin@sa.inria.fr>)
- fixed random crash while redecorating windows that were part of a group
NEW FUNCTIONS:
- xid-to-wob function
- delete-read-properties pointer to delete x properties after reading
them (Philippe.Kaplan@sa.inria.fr)
- GWM_EXECUTE gets deleted after being read
- color-free to de-allocate a color allocated by color-make
- draw-rectangle to draw filled rectangles in pixmaps
- draw-text to write strings in pixmaps
MWM PROFILE:
- restart code fixed also in mwm.gwm and twm.gwm
COMPATIBLE ENHANCEMENTS:
- uses xpm library v3.0a. xpm files read are v3, i.e. xpm v2, but only
with the C syntax.
- Eyvind Ness <eyvind@hrp.no> near-mouse placement policy included in
file near-mouse.gwm
- new place-button function in utils.gwm to easily create sexy 3-d
looking standalone button triggering wool code when pressed.
- no need to put pressed button as modifier for release events anymore
DISTRIBUTION:
- main directory included in the tar file, i.e. I do "tar c gwm" instead
of "tar c ." previously.
- data/Imakefile is now automatically generated to avoid forgetting
files.
- no more use of makedepend in makefile. Local dependencies already
generated before distribution.
- amc-lisp.el emacs style included to indent "properly" (like me, that
is :-) wool code under emacs
CHANGES TO THE DOC:
- Doc fully updated.
1.7_delta (91/01/11)
STANDARD PROFILE:
- Mike Newton: pop menu on root with any modifier on menu button, not
just alone or with-alt, in case things goes wrong
BUGS CORRECTED:
- Jay Berkenbilt <qjb@ATHENA.MIT.EDU>: closing code executed at the end
and restart of gwm was just value of closing, causing random crashes
- av@cs.uta.fi (Arto V. Viitanen) ids too long for apollo C compiler
- Mike Newton: new version of mon-keys.gwm (bugs with epoch)
- Alan Pfeiffer-Traum <apt@uh.edu>: iconification of clients not matched
by describe-window failed
- icon-groups-old.gwm simple-icon-old.gwm simple-win-old.gwm files were
missing from distrib (for mwm and twm profiles)
- Mike Newton: installation procedure works on install-less machines
- John Carr <jfc@ATHENA.MIT.EDU>: fixes for correct argument types in
functions, for compiling with prototyped Xlib
MWM PROFILE:
- you need to replace (load "icon-groups") by (load "icon-groups-old")
in your mwmprofile.gwm
1.7_gamma (90/12/28) deep clean up: profile reorg, xpm2, bugs
This version is the result of collecting all the contributed patches
sent to me, chasing the last bugs hiding in dark corners, and
reorganizing the standard profile code for having a much cleaner base
for adding things. Gwm 2.0 being late, this is to have a solid gwm
version to play with meanwhile.
WARNING: The LaTeX doc is not yet updated, hope to do it in Feb 91.
INCOMPATIBILITIES WITH PREVIOUS PROFILES:
- gwm now uses XPM v2 format to read color images, not anymore XPM v1.
converters from v1 to v2 are included in the XPM v2.8 distrib included
in the xpm subdirectory, files xpm1to2.perl (perl script), and from
ppm to xpmv2: ppmtoxpm2.c (C program). Perl is a language available
by anonymous ftp from prep.ai.mit.edu. Xpm1 files won't be recognized,
but gwm won't break, just display the X logo instead.
NEW FUNCTIONS:
- new events enter-window-not-from-grab & leave-window-not-from-grab
used for tricky interactions in menus.
- color-components function returns (R G B) list of primary color
components of a color made by color-make.
- wool: trace-func.gwm package to add ability to individually trace wool
functions by trace-func and untrace-func
- wool: Jay Berkenbilt's match-windowspec function to choose decos by
regular expressions on window names or class is included in utils.gwm
BUGS CORRECTED:
- clients started as iconic before gwm launch now work OK.
(bug report: John Mackin <john@cs.su.oz.au>,
David Hogan <dhog@cs.su.oz.au>)
- setting window-size bugged on windows which didn't have resize incr
hints set.
- basebars without titlebars on non-rectangular windows triggered an
error (bug found by Frank Mangin <Frank.Mangin@mirsa.inria.fr>)
- a random bus error due to uninitialized variable in redecoration of
windows fixed
- gwm didn't handle resizes or move too early after initial mapping
- could crash if window was destroyed too fast. More generally, all (I
hope) timing bugs have been chased to death...
- bus errors while moving windows with move-opaque shouldn't appear
anymore
- \xNN escape sequence in strings for specifiying chars by hex value was
bugged.
- rotate-cut-buffer was bugged
- (boundp '()) was returning ()
- set-icon didn't work
- unmapped group leaders were mapped (never-mapped toplevel widgets for
instance)
- the propagate argument provided to send-user-event survived function
invocation.
- simple-win.gwm: title stayed of inactive color in some cases
- Carl Witty <cwitty@portia.stanford.edu>: confined windows could get
1 pixel off the right & down of screen
- John Carr <jfc@ATHENA.MIT.EDU>: make decoration windows have
background "none" to decrease flashing. I forgot to include this patch
in 1.6b
- wool: (exit insts...) were evaluating inst after restoring old
context!
- wool: exit out of a for didn't restore correcetly the old values
- + misc bugs... Globally safer when X errors happen at unexpected times
COMPATIBLE ENHANCEMENTS:
- send-key-to-window automatically adds "shift" as modifier to
upper-case letters sent, to behave as expected when sending a string
with mixed upper/lower case. Pointed by Frank Mangin
<Frank.Mangin@mirsa.inria.fr>.
- pixmap-load now supports symbolic color overriding, a XPM v2 feature
(e.g (pixmap-load "mailbox" "flag" "Red" "sky" (color-make "Blue")))
- menu-make skips nil entries
- make-string-usable-for-resource-key traps now blanks & * as well as .
- traps Program sizes <= 1 for this brain-dead motif 1.1
STANDARD PROFILE:
- I now use the "amc-lisp" indent style under emacs for indenting wool
code. amc-lisp.el is provided with the epoch distribution.
- all client specifications for set-window, set-icon et al. now can be
either class-name, class-name.client-name,
class-name.client-name.window-name, or
class-name.client-name.window-name.machine-name. *-notation is
supported. You can say (set-window "Xman*Manual_Page" foo)
- decos are now evaluated at *deco* time, not when reading profile as
before. At evaluation, the deco is recursively processed (up to 10
times) till a decoration is obtained. (an atom/string is taken as a
file name and loaded, a function is called without args, a list is
evaluated). This should supress a lot of complicated quoting in
decos. This should not break existing decos, and you can then supress
most of the quoting you were forced to use with the previous method.
- raise-on-move, raise-on-resize and raise-on-iconify global flags.
- exemple .profile.gwm is much cleaner (and commented)
- Jay Berkenbilt <qjb@ATHENA.MIT.EDU> cute mini virtual screen package
included. Use by loading "vscreen" at the start of your profile, then
move along by Ctrl-Alt-Keys. Map available by root menu (see item
"VS Show" in menu). see vscreen.gwm on how to customize.
- Rod Whitby: float package (was called auto-raise) included to make
windows always on top or to the background use by loading "float",
then new items added on window/icon menu.
This package uses visibility events, so can miss some cases and may
enter (exitable) loops if 2 floating windows overlap.
- Rod Whitby: unconf-move package, allows you to still move/resize
windows off screen boundaries, even if confine-windows is set (by
using the control key)
- Rod Whitby: suntools-keys package to iconyfy windows with F7 or L7,
and to toggle raise/lower with F5 or L5
- Mike Newton's (newton@gumby.cs.caltech.edu): mon-keys.gwm package to
add many WM functions on functions keys, such as F1/F2 to go to
next/previous window
- icon-groups package now adds 3 ways to iconify in the menu item
for iconifying: iconifying all group, this window (default), all
other windows of the group.
- dvrooms: Philippe Kaplan <phk@mirsa.inria.fr> added a flag
dvroom.icon-box, which, if set to t will make dvrooms non-exclusive
(more than one open at a time)
- added the "float" package of Rod Whitby <rwhitby@adl.austek.oz.au>
to make window always float before others, or sink to the background
- menu code is cleaned up: menus are now a list of items during profile,
where loaded packages can modify this list. The menu is then built
from the list after user profile is read. These lists are
window-pop-items, icon-pop-items, root-pop-items.
- menu buttons can now be strings, pixmaps, or any lisp expression
returning a pixmap
- multi-item entries in menus (with multi-item-make)
- menus now have a default action triggered when button is released
before menu is mapped. (nothing was done before)
Default action is set by the menu-default-action function
- reparse-standard-behaviors simplified, and window- & icon-behavior now
do not include anymore standard-behavior, you must include it when
building your fsms from these behaviors
- dvroom package new dvroom.auto-add flag to tell if new windows will
get automatically included in current room.
- new "customize" function to generically modify decos by context
E.g.: (customize simple-icon any Xman
simple-icon.background (color-make "MistyRose"))
simple-icon and term-icon are customizable this way now
thus having a standard interface for customizing all packages on a
client basis
- screen-tile & icon-pixmap are defaulted-to intead of set.
- the provided rxterm script in data/ subdir now works with full
internet adresses
- the "client info" menu item now pops-up an independant window.
- bugs in simple-ed-win corrected by duanev@mcc.com (Duane Voth)
- "reload" item no more included in root menu (reloading profile is
often not sufficent...)
MWM PROFILE:
mwm profile is not affected by the standard profile modifications
- Carl Witty <cwitty@portia.stanford.edu> patches:
mwm profile:
f.maximize corrected:
If executed from a menu, it didn't correctly change the
state of the window's zoom button
It did set the zoom button's pixmap incorrectly, although
this was corrected as soon as a leave-window event is generated.
keyboard menu traversal more sensible
new functions:
(f.eval (? "Hello")) will print hello when it is executed.
(f.identify) pops up a window which giving information about the
current window.
(f.delete) uses the WM_DELETE_WINDOW protocol to delete a window.
(f.load "mwm") will reload the mwm profile.
(f.raise_lower) is my version, which doesn't raise a window unless
another on-screen window actually obscures it.
(f.raise_move) is obvious.
(f.refresh_win) didn't do anything before; now it does.
(f.warpto "emacs") warps the mouse to the first emacs window found
and brings it to the front. I implemented it for a friend who
likes twm.
I didn't like the look of disabled menu items in the mwm profile, with
that line drawn through them, so I added some modifications to
allow disabled menu items to be displayed in a different color
instead.
TWM PROFILE:
twm profile is not affected by the standard profile modifications
- Carl Witty <cwitty@portia.stanford.edu> patches:
Some patches to make the icon manager in the twm profile act
more like the one in the X11R4 twm. That is, when the cursor is in
the icon manager, the focus is set to the window whose bar the cursor
is over. The patches also change it so that the icon manager doesn't
resize when a window is iconified or deiconified.
CHANGES TO THE DOC:
- LaTeX doc is not yet updated. 1.7 will be 1.7_alpha/beta/gamma....
with doc updated
- John Mackin <john@cs.su.oz.au> corrections to the man page
- casey@gauss.llnl.gov (Casey Leedom): namespace doc entries out of
order
1.6b (90/05/28) bugs
BUGS CORRECTED:
- mwm profile: closing a xmh sub window was generating X errors
(Gilles Muller) + many more bugs corrected in mwm profile
- Jay Berkenbilt <qjb@ATHENA.MIT.EDU> windows with east gravities were
bugged (were offset 4*inside_borderwidth to the left)
- tmiller@suna0.cs.uiuc.edu withdrawing a client having an "user-icon"
set didn't work (such as a dvroom)
- cwitty@portia.stanford.edu: reallocating when adding strings could fail
if new_size was > 2*old_size
- when match fails, returns () when called with 2args, "" otherwise.
(code made conformant to the doc)
- Doug Bogia <bogia@suna0.cs.uiuc.edu> The no-set-focus did not allow
the autocolormap to work.
- new global values class-name & client-name for specifying client class
and client name of placed menus (default: Gwm and menu)
- John Carr <jfc@ATHENA.MIT.EDU>: make decoration windows have
background "none" to decrease flashing
COMPATIBLE ENHANCEMENTS:
- Rod Whitby <rwhitby@austek.oz.au> added the variable "confine-windows"
to keep interactive moves and resizes confined to screen boundaries.
I added confine-windows support to the wool move-opaque code, too.
STANDARD PROFILE:
- button 2 in icon of simple-ed-win works now (Andrew Simms
<ams@acm.Princeton.EDU>)
- duanev@mcc.com (Duane Voth): dvrooms maintain a GWM_ROOM window
property on windows to put them back in room managers
- Rod Whitby <rwhitby@austek.oz.au> xterm-list more defaultable
CHANGES TO THE DOC:
- documentation of confine-windows flag and class-name & client-name
1.6a (90/05/09) bugs
BUGS CORRECTED:
- bug in (pop-menu 'here) was preventing mwm sub-menus from working
- No Imakefile in data/
- deplibs added in Imakefile (hleroy@irisa.fr (Hugues Leroy))
- compilation without -DUSER_DEBUG now works
dacseg@uts.amdahl.com (Scott E. Garfinkle)
- icon description evalution was done too early, prevented tracking
changes of the icon name until the icon had been realized
- bus errors were supposed to be trapped gracefully, but weren't
Ray Nickson <Ray.Nickson@comp.vuw.ac.nz>
- in multi-screen mode, gwm mixed decos between screens
<eirik@elf.TN.Cornell.EDU>
- mapping an already mapped leader of a group of windows could lead to
problems. Alan Caroll <carroll@suna0.cs.uiuc.edu>
- On gwm created menus, the property WM_CLIENT_MACHINE was of type atom
instead of string. Carl Witty <cwitty@cs.stanford.edu>
- bitmaps read from files could be offset. Dana Chee <dana@bellcore.com>
- replacing menu inside screen was letting borders out of screen.
Jay Berkenbilt <qjb@ATHENA.MIT.EDU>
- gwm could miss resize events while decorating windows
Simon Kaplan <kaplan@cs.uiuc.edu>
- bug in destroying placed menus fixed
Carl Witty <cwitty@portia.stanford.edu>
- killing gwm by SIGTERM (kill without options) was doing an emergency
exit, leaving windows not were they should be. Gwm now quits properly
Jay Berkenbilt <qjb@ATHENA.MIT.EDU>
STANDARD PROFILE:
- icon-groups: new members always started iconic if leader had the
"start as an icon" hint.
- mwm profile: many bugs corrected by Gilles.Muller@irisa.fr
- could have blank pixmaps in mwm icons. Dana Chee <dana@bellcore.com>
CHANGES TO THE DOC: None.
1.6 (90/03/30) dark corners clean-up
BUGS CORRECTED:
- group leader could be unmapped on gwm restart
- bar with no plug didn't take the size of its tile (implied null side
bars under mwm profile on some windows) (Gilles.Muller@irisa.fr)
- closing of windows of a window-group could generate X errors.
- window gravity hints now work
- when a client is iconified on startup, call "iconify-window", do not
try to map icon.
- some files were missings from data/Imakefile
- for "pop-menu", doc was saying to use the flag "'fixed". It was
"'here" in fact. doc corrected.
- a reference count bug could bring havoc in some setq/with combinations
(Vincent Bouthors <vincent@mirsa.inria.fr>)
- withdrawing a window (a la icccm) could make gwm destroy it
- do not break on bogus clients hints (xcol. XView clients)
- bar-min-width was ignored (Carl Witty <cwitty@portia.stanford.edu>)
- simple-icon wasn't working in multi screen mode (Doug Bogia)
- changing the name after editing window name left it in black/black
(Doug Bogia)
- patch to the README file by casey@gauss.llnl.gov (Casey Leedom)
- or was returning its result non evaluated
- all the current-event-xxx functions return 0 instead of () when
current event was not a key or button event
COMPATIBLE ENHANCEMENTS:
- window-icon-pixmap-id to know what actual bitmap the client has set.
STANDARD PROFILE:
- icon-groups works, even on clients starting iconified.
can now exclude some clients from icon-grouping with list
icon-groups.exclude
- deltabutton now part of the distrib
- new "'sort" field of rows to keep icons sorted
- set-icon didn't work when given a lisp expression (Steve Anderson)
- no user-positioning for transient windows (Carl Witty)
- better customizability of standard behaviors: re-declare them, then
call the reparse-standard-behaviors functions. Buttons have now
symbolic names select-button, action-button, menu-button instead of 1,
2, and 3.
- Doug Bogia <bogia@cs.uiuc.edu>: patches to the no-set-focus code
1.5e (90/03/07) old pre-icccm code
BUGS CORRECTED:
- gwm was using the ICCCM-obsolete size and position normal hints
(bug triggered by XView clients)
- gwm was giving false size for xterms (offset by 1)
- some bugs when labels became of size 0 (when erasing a dvroom label)
- Doug Bogia <bogia@cs.uiuc.edu>: patches to the no-set-focus code to
make it work in all cases.
COMPATIBLE ENHANCEMENTS:
- GWM_EXECUTE property can be also set on any client window, no more
just on root windows. Thus you will be able to execute
window-dependent gwm code.
1.5d (90/02/28) bugs in mwm
NEW FUNCTIONS:
- new "move-opaque" package part of the distrib now. This one works
with the mwm profile and is documented in the standard profile chapter.
BUGS CORRECTED:
- twm profile bug fixes by Arup Mukherjee:
[1] No more error messages if you change a window name when
the icon manager is off.
[2] Icon box in title bar now requires only one click to iconify.
[3] Menu code takes advantage of the new hostname active
value, so that windows on remote machines come up correctly even if
the display was unix:0 when gwm was started.
- creating a menu before accessing "hostname" could crash. Bug was only
in 1.5c. (It could happen when creating a new dvroom).
- simple-icon.legend flag was not documented
- bugs in the mwm profile (contributed by Gilles.Muller@irisa.fr)
- mnemonics work now (Alt-M to move a window)
- always raises on de-iconify
- better looking menus (mwmrc.gwm changed)
- only the client-class was used in resources, not the client name
1.5c (90/02/21) bugs
Now patches can be applied with "patch -p" without an argument.
COMPATIBLE ENHANCEMENTS:
- machine name is now set on gwm windows (placed menus)
NEW FUNCTIONS:
- new "hostname" active value gives the name of the machine on which gwm
is running.
- "window-icon?" (defined in Wool in "utils.gwm") returns () if icon has
not been created yet. This is used to check for icon existence without
creating it, since evauating "window-icon" would provoque the creation
of the icon
BUGS CORRECTED:
- elapsed-time now yields the real time elapsed in milliseconds
- standard profile: gwm could crash on withdrawing of windows (with xmh,
xpostit...). This bug only existed in 1.5b.
- mwm profile:
- do not do interactive positioning on user-positioned windows.
- did not set the colormap focus when entering the window.
1.5b (90/02/15) bugs, printable doc
Gwm version names will now be distinct from the actual rcs numbers,
I got fed up writing these long 1.5.xx.yy silly names :-)
COMPATIBLE ENHANCEMENTS:
- a nice minimal man page (gwm.man) has been contributed by
Casey Leedom <casey@gauss.llnl.gov>, as well as fixes to the
Imakefile.
- if client re-order its WM_COLORMAP_WINDOWS list, and had the
current colormap focus, re-install the colormap of the first
window in the (new) list.
- Gwm maintains a GWM_RUNNING property on each root window of
the screens it manages in which is kept the window Id of a
Gwm-created hidden window bearing the same property for
applications to check for the presence of Gwm. This is the
same mechanism that Mwm uses.
NEW FUNCTIONS:
- (send-button-to-window button# modifier x y)
Just like send-key-to-window, sends a synthetic
buttonpress/buttonrelease pair of events to the window at
position x,y (in pixels) in the client window (which can be a
subwindow)
- visibility-fully-obscured
visibility-partially-obscured
visibility-unobscured
new events contributed by Rod Whitby <rwhitby@adl.austek.oz.au>
- any wool code can be parsed and evaluated by putting it as an
ASCII string in the GWM_EXECUTE property on the root window.
This is built-in, and will work with any profile.
- make-string-usable-for-resource-key to replace . and * with _ to give
to resource-get. window-name does not use this automatically anymore,
allowing you to see dots in window names
- "allow-event-processing" to un-freeze the server once you got an event
that you grabbed in a replayable way (via the "replayable-event"
function). Otherwise, looping on current-mouse-position was hanging
gwm, since the pointer didn't appear to change state.
BUGS CORRECTED:
- AT LAST! The postscript version of the doc will print on any
postscript printer, even with low RAM. This is done by using
dvips v5.0 from Tomas Rockiki and converting XWD dumps to
idraw drawings.
- icon-groups was buggy, but should work Ok now.
- restarting gwm was killing applications which had an
application-created icon window.
- parent of menu was not resetted to root window by
"unpop-menu". This was making the mwm profile hang at random
places, when the wob-parent function deferenced this
"dangling" pointer
- do not take into account icons in clients window-group hints.
This allows gwm to work with the (buggy) XView clients
(bug found by Michael Urban <urban%rcc@rand.org>)
- X Toolkit popups could fail to appear after the first time,
due to a bad handling of the Withdrawn state by gwm
(Randy Thomas <rjt@sedist.cray.com> helped me greatly to find
this one by providing me with a program exercising the bug)
- "window scooting" bug (some windows will move after a gwm
restart) fixed by Jay Berkenbilt <qjb@ATHENA.MIT.EDU>
- "delete-window" do not more have the side-effect of changing
the current wob.
- calling "window-icon-name" on the root window crashed gwm.
- patches for working with interactive386 C compiler provided by
Dan Rich <drich%dialogic@uunet.UU.NET>
- current screen could be changed during opening & closing. Fix
provided by John Carr <jfc@ATHENA.MIT.EDU>
- TeX macro \RCSRevNum corrected by Juha Sarlin <juha@tds.kth.se>
- mwm profile:
- double clicking fast enough in a plug could kill client
- "delta" function could hang gwm. solved with new
"allow-event-processing" function
- files buttons.gwm and bindings.gwm have been renamed in mwm-*
STANDARD PROFILE MODS:
- now icons update names on window-icon-name changes in the standard
profile and the mwm emulation.
- mwm profile now set resouces by CLASS, no more by NAME!
in mwmrc.gwm say now:
XClock.clientDecoration '(border resizeh)
instead of xclock.clientDecoration '(border resizeh)
mwm icons use now always the icon name, not the window name
CHANGES TO THE DOC:
(here I will list changes made to the doc, so that you can
decide if it worth re-printing it)
- doc for the send-button-to-window function. (wool_ref.tex)
- doc for the new visibility... events. (wool_ref.tex)
- doc for sending wool code by the GWM_EXECUTE property, (overview.tex)
and for checking for Gwm presence by GWM_RUNNING.
- doc for make-string-usable-for-resource-key. (wool_ref.tex)
- doc for allow-event-processing. (wool_ref.tex)
1.5.1.5 (89/12/20) bugs
NEW FUNCTIONS:
- x, y, gravity, borderwidth & borderpixel can now be set for
meters in the "meter" function, which now returns previous values.
- new "map-notify" event sent to window each time it is actually mapped
on the screen. (needed for epoch)
- new "reenter_on_opening" flag (default 1). Can be set to 0 during
critical sections that cannot be re-entered (thus fixing a bug
in the twm emulator).
BUGS CORRECTED:
- "window creep" on restart is fixed
- menu-min/max-width were ignored when a plug made the menu resize
- redecorating a window (by the menu) sometimes unmapped it
- dlist package somewhat cleaned up (Gary Oberbrunner <garyo@Think.COM>)
- 2 patches from dab@berserkly.cray.com (David Borman) for
compiling with the buggy DEC BSD4.4 C compiler (with -DSTUPID)
COMPATIBLE ENHANCEMENTS:
- meters now grow & shrink (were only growing before)
- december version of arup's twm package included.
- process-events can take an argument to do a sync before
processing events
1.5.1.1 (89/12/05) bugs
NEW FUNCTIONS:
- menu-max-width & menu-min-width as context variables for menu-make,
just as there is bar-max-width & bar-min-width.
BUGS CORRECTED:
- when client was moving and resizing itself, gwm was sending 2
configure events.
- on a withdraw request, (Synthetic UnmapNotify sent to root, see
ICCCM v1.0, sec 4.1.4), gwm now fully un-decorate the window
to start afresh a new decoration on new map.
1.5 (89/11/24) X11R4 tape gwm
This is the version that will be included in the X11R4 tape
The standard profile has been cleaned up (some renaming of variables)
Inclusion of the TWM emulator by Arup Mukherjee and the rooms
package by Duane Voth.
The placement functions have been greatly enhanced with the new "rows"
package
NEW FUNCTIONS:
- trigger-error to jump to toplevel
- icon-name and starts-iconic context variable for placed menus
BUGS CORRECTED:
- no more errors on calls to XGrabPointer on R4
- bugs in resizing of menus when items were resized
COMPATIBLE ENHANCEMENTS:
- "-" is now n-ary
1.4.1.30 (89/11/15) X11R4 beta
This version should compile OK under the X11R4 beta tree
NOTE: for compiling with alpha release of X11R4, use -DX11R4a
for compiling with beta release of X11R4, use -DX11R4
COMPATIBLE ENHANCEMENTS:
- window-name always converts the dots "." to "_", for not breaking
the X resource manager. This did not happen in the standard profile
but was very dangerous in some other profiles
- for X11R4 inclusion, wl_namespace.c and .h files are renamed to
wl_name.c and .h, and Imakefile was re-designed by Donna Converse.
- #endif foo were replaced by #endif /* foo */
- new file "cursor-names.gwm" to have the names of the built-in
cursors (see "cursor-make" entry)
- mwm profile included: try it with a gwm -f mwm
BUGS CORRECTED:
- list-of-windows could break due to an uninitialised context
- if a (buggy) client declared itself as transient-for itself, gwm
would enter an infinite loop (new interviews clients)
1.4.1.27 (89/10/18) Imakefile
NOTE: the "gwm" subdirectory is renamed as "data" for compiling with imake\
COMPATIBLE ENHANCEMENTS:
- Installs now with either an Imakefile or Makefile.noXtree
- supports now the WinGravity iccm hint (ICCCM 1.0 fully compatible)
- simple-icon.legend to remove title on simple icons
BUGS CORRECTED:
- set/get-x-property on root Ok now
- grid-color should be Ok
NEW FUNCTIONS:
- get-wm-command to get WM_COMMAND ICCCM property
1.4.1.25 (89/10/09) Shape extension
COMPATIBLE ENHANCEMENTS:
- support of X11R4 non-rectangular windows (Shape extension)
- window-is-shaped function to test if decorated window is
non-rectangular (returns t or ())
BUGS CORRECTED:
- unbind was bugged (if done twice on same atom)
- current-event-window-coords bugged when window did not have
resize inc hints set
- gwm was looping on windows having themselves as group leader
(bug fixed by weissman@wsl.dec.com)
- sort was bugged
1.4.1.22 (89/09/07) bug fixes
INCOMPATIBILITIES WITH PREVIOUS PROFILES:
- replayable events are now made with the "replayable-event" function,
no more by setting the "freeze-on-grab" flag
COMPATIBLE ENHANCEMENTS:
- ungrab-server can take no arguments, meaning ungrab unconditionnaly
(with argument, ungrabs only if argument is the wob having set the
grab)
- # and ## now works on wobs (by accessing the property field, supposedly
containing a list), and on atoms (by accessing their value which
must be a list).
- ## can now add new elements to a list, in an unique way: If many
objects point to the list, only one copy of the list is expanded
- match can now return a list of values, e.g:
(match "\\([0-9]*\\)x\\([0-9]*\\)" "80x24" 1 2)
returns the list ("80" "24")
- strings can be written across lines by prefixing the eol by "\"
BUGS CORRECTED:
- no more ghost windows when client dies during decoration
- gwm tracks correctly changes of key mapping
- ungrab-server was bugged
- with-modifier-N instead of with-modifierN, as was specified in the doc
- colors could be mixed between screens
- defname in screen. was changing current wob
NEW FUNCTIONS:
- better error handling with a stack dump on error, with variable
"stack-print-level" controlling the number of levels displayed
- wob-x and wob-y for absolute position of wobs
- current-event-time for time (milliseconds) of triggering event
- confine-grabs flag for confining cursor inside grabbing wob
- delete-nth for physically removing an element of a list
- current-event-from-grab tells if the event was generated by a grab
(enter/leave, focus in/out)
- window-program-set-position, window-program-set-size for acessing
application hints
1.4.1.13 (89/08/18) bug fixes
INCOMPATIBILITIES WITH PREVIOUS PROFILES:
- ! does not fork a shell anymore, directly executes command instead.
Now you must break yourself the command line into arguments, i.e.
change (! "xterm -fn 6x10") in (! "xterm" "-fn" "6x10")
and (! "for i in `cat ~/.xloads`;do rxload $i;done")
in (! "/bin/sh" "-c" "for i in `cat ~/.xloads`;do rxload $i;done")
COMPATIBLE ENHANCEMENTS:
- -q flag for quiet start up (sets "gwm-quiet" var)
- pop-menu and unpop-menu now do a XSync
BUGS CORRECTED:
- = didn't check type of second arg in some cases
- window was lost if mapped on another screen
- some timing bugs could prevent windows from mapping after X errors
- current-event-relative-y was broken (returned the x value)
- grab-server was bugged when given a wob as argument
STANDARD PROFILE MODS:
- xterms/xload called by the pop-up menu now are created on the same
screen as the menu.
- set-icon evaluates list if given in argument (and is debugged, too)
1.4.1.10 (89/08/09) bug fixes
COMPATIBLE ENHANCEMENTS:
- shell escape "!" uses now the content of the SHELL env. variable
(dab@opus.cray.com (Dave Borman))
- placed menus participate in the WM_DELETE ICCCM protocol, i.e. you
can apply "delete-window" on a placed menu to destroy them.
- Class of placed menus is now "Gwm" instead of "GWM".
- defname of an atom having already a value sets all the created names
in the existing namespace states to this value.
- current-event-window-coords returns now also the coordinates in
the decorating window (thus including the decoration) as 5th and 6th
elements of the returned list
BUGS CORRECTED:
- typos in the doc (Olaf Heimburger <olaf@tubopal.uucp>)
- (cursor-make number) works for all releases and for number = 0
- place-menu with coords was bugged
(Eirik Fuller <eirik@labs.labs.tek.com>)
- composite wobs (bars, menus) always transmit user-events to their
sons (bars, plugs) now. (Terry Weissman <weissman@wsl.dec.com>)
- "-m" option do not map menus anymore
- error-occured becomes error-occurred
- bitwise-and was bugged (always returned 0)
- when restarting gwm, some windows drifted of one pixel
(Gary Oberbrunner <garyo@Think.COM>)
NEW FUNCTIONS:
- grab-keyboard-also flag for grabbing also the keyboard when issuing
a "grab-server" which grabs the pointer.
1.4.1.6 (89/07/27)
COMPATIBLE ENHANCEMENTS:
- (cursor-make number) to select a cursor in the server's cursor font
code courtesy of Bill Trost <trost@scott.labs.tek.com>
- resize-style controls the interaction during resizes: 0 is the
old "uwm" way, 1 is the new "mwm" way. two new flags control the
behavior:
mwm-resize-style-catch-corners if you want to be able
to "catch" corners while dragging a side
mwm-resize-style-corner-size for the distance from the corner
at which you catch them
and 8 new cursor variables (cursor-NW et al.) controls the shape
of the cursor.
Warning: for now, you must trigger the code only in the borders
(wait for an leave-window event before calling resize window...)
but it will be corrected in next release.
(code made by Frederic Charton)
- new value 5 for resize-grid-style for 2-pixel wide lines for style 0
BUGS CORRECTED:
- namespace-add was broken
- grab-server was bugged
- compiles ok on ultrix
NEW FUNCTIONS:
- namespace-remove to remove a name state, to be able to implement
a full "window." namespace later
1.4.1.4 (89/07/26) bug fixes
COMPATIBLE ENHANCEMENTS:
- send-user-event can take a third argument not to propagate events
down the wob hierarchy
- This file is now called CHANGES and at the top directory, instead of
doc/HISTORY
- updates will now be distributed as patches to the files, no more to
the shell archive
BUGS CORRECTED:
- IBM-RT compilation flag changed to IBM_RT in Makefile
- compiles ok with vanilla gcc (no more writes in static strings)
- re-decorate-window works with an argument and check if it is applied
to a real window
- cond works now
- re-load&dec menu item fixed in standard profile
- when tracing an expression, the evaluated expression could not unset
the tracing mode
- in case of errors in the "opening" code of the window, maps it
NEW FUNCTIONS:
- ungrab-server-and-replay-event to release an activated passive grab
and replay the grabbing event. Useful for click-to-type policies
- current-event-relative-x & current-event-relative-y coords of
last event in the wob coordinates
1.4.1.1 (89/07/21) multi-screen
INCOMPATIBILITIES WITH PREVIOUS PROFILES:
- previously, menus were considered as windows: thus in a menu fsm,
send-user-event was sending events to the menu. This was a bug and
has been corrected (window refers to the window of the wob having
popped the menu). Menu codes working in previous releases should
be corrected (look at the new "std-popus.gwm" file)
- the "sublist" function has been changed not to include the last
given element
- the meter parameters are now set by a single function, "meter"
instead by multiple variables meter-font, meter-background, etc...
COMPATIBLE ENHANCEMENTS:
- multi-screen support: now Gwm will decorate all the screens on the
display. The standard profile operates by defining one resource per
screen, and then loading the user ".profile.gwm" file once per
screen. The problem is that the decoration writers will have to be
sure they do not mix colors, pixmaps, cursors and all wobs and
menus.
- To help managing multiple screens, the concept of "namespaces"
has been added. A namespace is a set of names having a different
value for each state of the namespace. Gwm defines the "screen."
namespace, for all screen-dependant data. For instance, "screen-width"
is a name in the "screen." namespace, having the correct value for
each screen, gwm changing the state of "screen." to match the
current screen.
See functions: namespace-make, namespace-add, defname,
namespace, namespace-of, namespace-size
- grab-server accepts a 'nochild optional argument to grab strictly
on a wob, redirecting even the events sent to its childs.
- (trace expression) evaluates the expression before each list eval
- new -1, -x command line switches and GWM_MONOSCREEN shell variable
- current-mouse-position returns current screen as 4th elt
- resize-meter to say that you want a meter to appear on resizes
- move & resize-window return status code that can be checked to see
if the user aborted them
NEW FUNCTIONS:
- warp-pointer to set the position of the pointer
- menu-wob to get the wob id of a menu
- new "screen" active value and associated variables: screen-type,
screen-count, screen-width, screen-height, screen-widthMM,
screen-heightMM.
- list-of-screens returns the managed screens
BUGS CORRECTED:
- in fsms, if no "goto" state was given, the new state was setted to
the same state. Now it is just left untouched, so that it is possible
to set the new state by sending user-events to the same fsm in an
action
- Gwm handles resizes of not-yet-mapped windows, allowing XTerms
to appear quickly
- undefinde keys cannot anymore be grabbed.
STANDARD PROFILE MODS:
- set-window et al. use now the class of the client rather than its
name for resource management, and accept the screen type as an
optional first argument
- default for resources is now "any", not window, icon, etc...
1.3.1.35 (89/05/09) stack-frames
WOOL keeps now true stack frames, so it is able to correctly restore
local variable value when exiting across function calls and with
calls by an "exit" call or an error
ICCCM IconifyRequest was bugged
-D was not working
-a switch for "asynchronous" handling of moves and resizes
ported to ibm PC/RT
rxterm ksh shell script included in the distribution now
(load 'foo)bar do not eat "b" anymore
can unbind atoms now (primitive: "unbind")
do not remap withdrawn windows on (re)start
"simple-ed-borderwidth" variable to set the outer-borderwidth of the
simple-ed-win standard decoration
works now on pure SYSV or BSD Makefiles
-i option to stay in PointerRoot input focus mode