CTWM 3.7 is released!
I've only released the source tarball, available from the web page.
Binary distributions are welcome and will be published as soon as I
have the time to make the appropriate changes.
Changes from version 3.6 to 3.7
-------------------------------
1 - Workspace context (bkctwmws.patch)
Makes it possible to bind keys specific to the workspace manager
(by Björn Knutsson). Use the event context 'workspace' for this.
2 - New keyword : AlwaysSqueezeToGravity
If it is enabled, window squeezing always follows window gravity
(instead of northward when the window has a title).
(by Rudolph T. Maceyko).
3 - TwmKeys and TwmVisible menus (dlctwmmenu.patch) :
Adds TwmKeys (rootmenu listing all keybindings) and TWM Visible
(rootmenu
showing only deiconified windows) (by Dan Lilliehorn).
4 - Preliminary GNOME compliance (see README.gnome and TODO.gnome)
(by Nathan Dushman).
5 - IconifyStyle : "normal" "mosaic" "zoomin" "zoomout" "sweep"
A few 'fancy' graphical effects when you iconify windows, just for fun.
6 - Jpeg images support : You can now use jpeg image files wherever you
can use images. Use the jpeg:imagename syntaxe.
7 - f.showbackground.
Since we can now use fancy jpeg image for root backgrounds, this
function
unmaps all windows in the current workspace. This is a toggle function,
if all windows are unmapped, they are all remapped. Better bind this
function in the root context.
8 - Preliminary support for Xinerama extention. You can define 'virtual'
screens (it's better if they correspond to you actual screens). The
thing is that you can see several workspaces at the sams time, one per
virtual screen. Of course, you cannot view the same workspace (or the
same window) in 2 vscreens at the same time. The syntax is :
VirtualScreens {
"1280x1024+0+0"
"1600x1200+1280+0"
}
for 2 screens, the first one (on the left) is 1280x1024, the second one
(on the right) is 1600x1200.
This is preliminary, because this has not been extensively tested. I did
this because I have now 2 screens, but I was unable to get them working
properly, so I use only one.
[ At this point, Claude has stopped working on CTWM, and the project
is now in the hands of Richard Levitte <[EMAIL PROTECTED]>. ]
9 - Changed Imakefile to support a distribution target.
10 - Changed :xpm:cross to become a bit larger and have a slightly more
3D appearance, and is visible even in very dark configurations.
11 - Make AlwaysSqueezeToGravity to work for all windows (if no window
list is given).
12 - New keyword: NoImagesInWorkSpaceManager
If it's enabled, background images aren't displayed in the workspace
map.
This was contributed by Thomas Linden.
13 - New command line option: -cfgchk
If used, CTWM will only parse the configuration file and indicate
if it found errors or not.
This was contributed by Matthew D. Fuller.
14 - DontMoveOff patch (by Björn Knutsson)
Change the behavior of DontMoveOff/MoveOffResistance so that
when you attempt to move a window off screen, it will not move
at all until it's been moved #MoveOffResistance pixels (as
before), but at this time it will no longer "snap", but
instead it will start moving off screen. This means that you
still have the old behavior of DontMoveOff, but now with the
ability to move a window off screen less that
#MoveOffResistance pixels.
15 - Random placement and DontMoveOff patch (by Björn Knutsson, changed)
When random placement was used, DontMoveOff wasn't honored.
This behavior has now changed so a window will be kept within
the screen when at all possible. When the window is too
large, it's top or left edge (or both) will be placed in
coordinate 0.
This change differs a little bit from Björns contribution by
not using rand() at all.
16 - f.warpring patch (by Björn Knutsson)
If IconManagerFocus is set, there's no reason why the icon
manager should get enter and leave events. This fixes some
disturbing in the warpring that would otherwise happen.
17 - f.movetoprevworkspace,
f.movetonextworkspace,
f.movetoprevworkspaceandfollow,
f.movetonextworkspaceandfollow patch (by Daniel Holmström)
Makes it possible to move a window to the previous or next
workspace and, if you like, go to that workspace and focus
the moved window.
18 - f.fill "vertical" patch (by Daniel Holmström)
Expands the window vertically without overlapping any other window,
much like { f.fill "top" f.fill "bottom" } but with the exception
that it doesn't expand over window borders. It also sets the
windows 'zoomed' to F_FULLZOOM, so one can toggle between this
size, original and maximized.
19 - RESIZEKEEPSFOCUS bugfix patch (by Daniel Holmström)
If a window is maximized with togglemaximize and then restored
it might loose focus if the cursor is outside the restored window.
This hack puts the cursor at the left-top corner of the window.
20 - f.zoom bugfix patch (by Daniel Holmström)
f.zoom now doesn't move the window up (as it sometimes did before)
21 - IgnoreTransient patch (by Peter Berg Larsen)
New keyword with list of windows for which to ignore transients.
22 - Workspace switch peformance optimization (by MC)
Stops ctwm from redrawing windows that occupy all workspaces when
switching from one workspace to another.
23 - GTK "group leader" bugfix (by Olaf 'Rhialto' Seibert)
Makes ctwm aware of the mysterious GTK group leader windows.
24 - Resize cursor with non-3D-borders bugfix (by Olaf 'Rhialto' Seibert)
BorderResizeCursors now works also for top and left borders when
non-3D-borders are used.
25 - Memory leak bugfix (by Simon Burge)
GetWMPropertyString in util.c no longer leaks memory.
26 - Warpring bugfix (by Takahashi Youichirou)
Solves these two problems when warping the pointer to the
next/previous mapped window:
o Sometimes the pointer moved right too much and ended up outside
the title bar.
o When the active window was closed and the pointer ended up on the
root window, the pointer wouldn't warp until moved with the mouse.
27 - NoWarpToMenuTitle patch (by Julian Coleman)
Fixes the sometimes annoying feature that the cursor is warped to the
menu title if the menu won't fit on the screen below the current
pointer position.
This patch introduces a new keyword "NoWarpToMenuTitle" keyword to
turn this off.
28 - Scr->workSpaceMgr.windowFont font init bugfix (by Martin Stjernholm)
The Scr->workSpaceMgr.windowFont in workmgr.c is now initialized.
29 - Full GNU regex patch (by Claude Lecommandeur)
It is now possible to use full GNU regex for window or class names by
defining USE_GNU_REGEX in Imakefile. It is disabled in the default
Imakefile.
30 - DontToggleWorkSpaceManagerState patch (by Dan 'dl' Lilliehorn)
New keyword to turn off the feature toggling the workspace manager
state to/from map/button state when you press ctrl and the workspace
manager window is in focus.
31 - TWMAllIcons patch (by Dan 'dl' Lilliehorn)
Adds the TWMAllIcons menu, listing all iconified windows on all
workspaces.
32 - f.changesize patch (by Dan 'dl' Lilliehorn)
Adds the function f.changesize which allows you to change the size
of the focused window via menus and keybindings.
Example:
"Down" = c|s: all : f.changesize "bottom +10"
33 - f.changesize bugfix and improvement (by Dan 'dl' Lilliehorn)
Fixes focusproblems with f.changesize and adds the ability to set
a new fixed size of a window.
Example:
"F1" = c|s: all : f.changesize "640x480"
34 - When crashing, ctwm now refers to [EMAIL PROTECTED] instead of
[EMAIL PROTECTED]
35 - Changed all the code to use ANSI C prototypes instead of the old
K&R style.
[Richard Levitte]
36 - Only use the DefaultFunction if no function was found.
[Richard Levitte]
37 - Correct DontMoveOff
The DontMoveOff checks when calculating random placement
wasn't satisfactory. It ended up placing all windows that
were small enough to fit in a random place at +50+50 with no
exception. The behavior has now been changed to only apply
to very large windows (almost as large as or larger than the
screen). At the same time, the RandomPlacement algorithm and
the DonMoveOff checks have been tweaked to keep the title
height in mind, so centering and coordinates correspond to the
realities of the rest of CTWM.
[Richard Levitte]
38 - Correct resizing from menu
Choosing resize from the menu when not having 3D borders moved
the target window down and right by a border width. This was
an error in window position calculations.
[Richard Levitte]
39 - Enhanced info window
Added the outer geometry. Added the 3D border width.
[Richard Levitte]
40 - Restart on subsequent SIGHUPs
Reworked the code that catches a SIGHUP and has ctwm restart as
a result. The restarting code has moved from Restart() to the new
DoRestart(). Restart() now only sets a flag, and CtwmNextEvent()
has been changed to react to that flag and call DoRestart(). From
now on, CtwmNextEvent() is always used to get the next event, even
when no animations are going on.
[Richard Levitte]
41 - A number of VMS-related changes
DEC/HP PC is a bit picky, the X11 environment is a little bit
different, and there were some sign/unsigned conflicts and one
too large symbol (the VMS linker truncates anything beyond the
31 first characters of any symbol name), so some tweaks were
needed to get CTWM to build cleanly on VMS.
[Richard Levitte]
42 - Allow gcc users to build with paranoia
To make it easier to find possible problems, the Imakefile macro
GCC_PEDANTIC can be defined in Imakefile.local.
[Richard Levitte]
43 - Allow spaces in sound files.
The .ctwm-sounds file parser would clip sound files at the first
spaces. That won't do for sound libraries where file names may
have spaces in them. The parser now accepts spaces in file names,
and will trim spaces from the beginning and the end of both file
names and event tokens, allowing for a slightly more flexible
format.
[Richard Levitte]
44 - ctwm.spec
Added a specification file for RPM building.
[Richard Levitte]
45 - More info for m4
The m4 subprocess now gets the variable PIXMAP_DIRECTORY, which
is defined to the directory where the pixmaps are installed, and
the new flags IMCONV, GNOME, SOUNDS, SESSION and I18N.
[Richard Levitte]
46 - Document sounds
The sounds system is now documented in the man page.
[Richard Levitte]
47 - Build RPMs
Added the target "rpm" to build an RPM directly from a distribution
tarball.
[Richard Levitte]
48 - Make life easier for package builders
Added the possibility to configure where some libraries can be found
through the use of USER_* make variables in Imakefile.local. Added
a lot more commentary in Imakefile.local-template.
[Richard Levitte]
49 - Make it easier to configure on VMS
Moved all the configuration definitions to descrip.local-template,
and instruct the users to copy that file to descrip.local and make
all needed changes there.
[Richard Levitte]
50 - Changed all relevant occurences of [EMAIL PROTECTED] to
[EMAIL PROTECTED]
[Richard Levitte]
Cheers,
Richard
-----
Please consider sponsoring my work on free software.
See http://www.free.lp.se/sponsoring.html for details.
--
Richard Levitte [EMAIL PROTECTED]
http://richard.levitte.org/
"When I became a man I put away childish things, including
the fear of childishness and the desire to be very grown up."
-- C.S. Lewis