This is the first development snapshot release of what is to be Ion3.
The most visible changes to Ion2 so far are:
* Default installation directory is /usr/local/ion-3 while user
configuration files go in ~/.ion3
* The mod_sp module was added. It creates an extra toggleable
"scratchpad" frame on each screen. Toggle is for now bound by default
to Mod1+section, which should be very conveniently located on most
Nordic keyboards (left of "1"), but you may have to change it. The
scratchpad should be nice for xconsole or similar monitors, xmessage
and other popups and just as temporary holding space for windows.
* All modules except the drawing engine are now called mod_something.
* Man-page complection supports a cache of known man-pages for faster
completion. See the README for instructions on setting up a cronjob
or manually generating the index if you want to use the feature.
Also query_man_path is no longer used. Instead we try the ION_MC_MANPATH
and MANPATH environment variables and the 'manpath' program.
* Exported functions are now separated into tables (namespaces)
instead of cluttering the globals table. Some frequently used
configuration functions are imported into the globals table, though.
Some functions have also been removed or renamed for simpler and
more consistent function set.
* New binding configuration mechanism. Dozens of *_bindings functions
were replaced with a single [ioncorelib.]defbindings function that
accepts a context parameter. Callbacks are specified as strings
(although passing functions still works) to make it easier for
external configuration programs to understand the configuration
files and perhaps remove some confusion among users who do not
care to read a tiny bit of Lua documentation and understand the
concept of anonymous functions.
* It is now also possible to retrieve a list of bindings with
ioncorelib.getbindings, for example, for self-documentation.
* Single move/resize mode bindings instead of separate for both
ionframe and floatframe.
There are also quite a few internal changes; see the ChangeLog for
details. No documentation tarball is available at the moment as the
documentation is out-of-date except for the function reference. If
you need the reference, just checkout the documentation from the
Subversion repository with
svn co http://tao.uab.es/ion/svn/ion-doc/trunk ion-doc-3ds
and build the documentation.
ChangeLog entries:
2004-03-15:
* Made some more minor changes to binding configuration and added
ioncore.getbindings and ioncorelib.getbindings that can be used
to get a table of made bindings for all contexts.
* Added scratchpad activity notification bubble.
2004-03-14:
* Multiplexers now save layer2 objects in layout savefile.
2004-03-13:
* Added tentative mod_sp scratchpad module.
2004-03-12:
* Exported functions can now accept nil objects as parameters
except for the first parameter. (Most exported functions have
just that first object parameter.)
* Region closing method unifications.
* Added functions to hide/show mplex layer 2 objects.
2004-03-10:
* Use red-black trees added to libtu instead of a Lua tables to
store split_of pointers of frames on WIonWS:s to avoid problems
with object cache clean-up on frame deletion.
* Also handle name allocation using red-black trees instead of Lua
tables now that such are available in libtu.
* Handle bindmaps using red-black trees for simpler code (before
bindings were in arrays sorted and searched with qsort and
bsearch).
* Slightly reduce flicker with apps that update title too often by
removing a redundant change notify call.
* Slightly simpler and faster Lua object cache.
2004-03-07:
* Stacking code relies on XQueryTree instead of maintaining our
internal state that might not agree with X.
* WMPlex now supports a full "second layer" of objects in addition
to a single input.
* A lot of WIonFrame code was removed and moved to WFrame.
* New rescue and initial management handling code.
* Merged recent changes from the stable branch (WFloatWS.attach,
better gravity handling, goto_* routines return target).
* All modules are now 'mod_something'.
* Removed completion functions from ioncore, moving them to
querylib and replacing with listing functions
(ioncore.clientwin_list, ioncore.region_list).
* Menus now support typeahead find.
* Bound backspace in menus to clear typeahead buffer.
2004-02-18:
* Merged tab drag&drop fixes and size guard additions from the
stable branch.
2004-02-17:
* Changed layout save mechanism to construct configuration tables
instead of directly writing data to files.
* Merged fixes from the stable branch.
2004-02-16:
* Major namespace clean-up, both C and Lua-side.
* Yet another binding configuration scheme.
* Moved SunOS F11->SunF36, F12->SunF37 kludge to build time.
2004-02-15:
* Removed delib.lua and moved the stuff on the C side.
* Merged floatframe tab toggle and man page fixes from the stable
branch.
* Removed gr_get_brush_values and the possibility obtain brush
parameters before creating a window.
* Added "above" and "below" as supported directions with some ionws
functions.
* Added function to return line editor "mark".
2004-02-12:
* Removed superfluous navigation functions from WIonWS.
2004-02-11:
* New binding configuration scheme based on strings instead of
direct passing of Lua functions.
* Some WMPlex managed object indexing function changes.
* Completion display wasn't being refreshed, if its size didn't
change between completions.
* Man-page completion is now implemented with the external script
'ion-completeman'. The script supports cacheng names of known
manual pages (as a cronjob) for much faster completion. It can
also use the 'manpath' program in addition to the MANPATH or
ION_MC_MANPATH environment variables to figure out the paths
containing man pages.
* Merged fixes from the "stable" Ion2 branch.
* Querylib tries to waste a little less memory when reading
completions from a pipe.
* Portability fixes merged from stable branch.
* Lua interface improvements.
2004-02-10:
* Changed default installation path to /usr/local/ion-3 and user
configuration file path to ~/.ion3.
* Renamed WGenFrame to WFrame.
* Move/resize mode is common to all types of frames.
--
Tuomo