colas@avahi.inria.fr (Colas Nahaboo) (01/03/91)
I have just put gwm-1.7_gamma on expo (and avahi)
doc is still 1.6b, but I updated the CHANGES files, which is included in this
message. Recent Mike Newton profile is included as "mon-keys.gwm".
Here are the changes from 1.6b
The version will turn to plain 1.7 as soon as I have updated the latex doc...
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 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 XPMv1.
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 file 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
Colas Nahaboo, BULL Research FRANCE -- Koala Project -- GWM X11 Window Manager
Internet: colas@mirsa.inria.fr, Phone: (33) 93.65.77.70, Fax: (33) 93 65 77 66
INRIA Sophia, 2004, rte des Lucioles, B.P.109 - 06561 Valbonne Cedex, FRANCE