The major new features of this snapshot release are:
* WMPlex support for a sticky status display area to which WIonWS:s
adjust properly. Modified to the dock module to support this method.
See the new dock.lua to set up the dock in the new embedded or old
floating manner (the API for the latter has also changed).
* Primitive session management support.
There are also some bug fixes and many minor improvements; see the ChangeLog
for details. Work on mod_autows has also started, but it isn't ready for use
yet.
Notes on session management:
Ion loads mod_sm automatically when the SESSION_MANAGER environment variable
that should be set by the session manager is set, so there's no need load
it in ion.lua.
When session management is in use, all entries in the 'Session' menu
(previously 'Exit' menu) actually invoke the session manager to do the
task. 'Save' asks the SM save the whole session and 'Exit' (ioncore.shutdown)
asks it to shut down the session instead of just causing the WM to quite.
To do the latter, use ioncore.resign.
Unfortunately, all session managers I have tried (from Debian/unstable),
are broken/incomplete in one way or another:
xsm: doesn't support any requests from applications. This makes Ion's
session menu complete unfunctional. The only way to restart/exit/save
state is through xsm's window.
gnome-session: This seems the most complete of the all the session managers
and works fine until it is requested to shut down the session, when it dumps
core and session state is lost if was not explicitly saved previously.
A ~/.gnome2/session file to use with Ion follows:
[Default]
num_clients=2
0,id=default0
0,Priority=0
0,RestartCommand=gnome-smproxy --sm-client-id default0
1,id=default1
1,Priority=10
1,RestartCommand=/usr/local/ion-3/bin/ion -smclientid default1
ksmserver: Only supports a global shutdown request, so that Ion can not be
restarted or session state saved in the middle of a session.
New ChangeLog entries since previous snapshot release:
2004-07-03:
* Implemented WRegion.rqclose for WDock (and removed
WDock.destroy), so that empty docks can now be closed in a
consistent manner.
* Added code in dock.lua to create dock of either flavour.
2004-06-27:
* WDock.set can now properly request changes when working as WMPlex
stdisp.
* Dock supports bindings now.
2004-06-26:
* Added support for passive mplex layer 2 objects.
* Unified generic stdisp and floating dock position
parametrisation.
* Removed generic stacking exports. Raise/lower is only available
through WFloatWS.raise/lower now.
2004-06-22:
* Added XID to querylib.show_clientwin.
2004-06-21:
* Support dragging tab of current window by clicking anywhere in a
frame.
* Fixed drawing engine style loading code when neither font nor
based_on was set.
2004-06-20:
* Initial conversion of mod_dock to work with WMPlex sticky
auto-sizing status display mechanisms.
2004-06-19:
* Export WScreen.set_managed_offset.
* Improved support for auto-sizing status display/dock.
2004-06-17:
* Added some split-tree manipulation algorithms needed to
eventually support an automagically properly sized dock.
* Fixed handling of requested geometry in floatws_attach_clientwin.
2004-06-12:
* Fixed querylib.query_exit and renamed it to
querylib.query_shutdown.
* Added WRegion.size_hints to exports
* Moved autows penalty calculation code to Lua side for easier
customisation.
2004-06-11:
* Session saving is no longer disabled on exit if there was an
error loading layout. Instead a backup of the layout savefile is
made.
* The behaviour of ioncore.resign was changed not to save session,
but instead just quit and, when running under a session manager,
instruct the session manager to not restart the WM again.
2004-06-10:
* Changes in the set of exported WSplit methods and
WIonWS:split_tree().
2004-06-09:
* Removed WIonFrame and WAutoFrame. There's just WFrame and
WFloatFrame (also to be unified?) now.
2004-06-08:
* Binding to nil should again remove the binding.
* Moved p_move from WFloatFrame to WFrame.
2004-06-06:
* Moved Fx queries to WMPlex level so they're available on empty
workspaces and full screen client windows as well.
* Added querylib.query_menu that can be used to create a query of a
menu.
* Added querylib.show_clientwin to display information on a client
window and put it in the context menu.
2004-06-05:
* Added Xinerama sanity check.
2004-06-04:
* Fixed WMPlex.l2_show focus.
2004-06-03:
* Code that creates regions from tables now supports a 'reference'
to use existing regions.
* Added very preliminary WAutoWS layout code.
2004-05-30:
* Fixed a serious brainfart in region name allocation. (Temporary
hack; need to do this more efficiently.)
2004-05-29:
* Bindmap binding count was not maintained correctly if a key/
button was re-bound.
* Fixed dec/inc_index bindings.
* Added -noerrorlog startup option.
2004-05-26:
* WMPlex layer2 object hide improved.
* Unified WMPlex layer list access functions.
* Libtool is no longer used: problems with one module depending on
another.
* Unified module and script search paths. There's only one search
path now.
* querylib.query_renameworkspace had been broken at some point.
2004-05-22:
* Removed 'exec' from /bin/sh call to execute command so that more
complex commands can be entered.
2004-05-21:
* Added mod_sm.request_save.
* Removed support for whatever (older?) session management system
defines the macro "XSM".
* Improved integration of exit/restart/save state with session
management.
* Removed ioncore.exit(); in most cases use ioncore.shutdown()
instead (and ioncore.resign() in others).
* SSH host completion now understands usernames. (Code taken from
the Ion Wiki.)
* Improved querylib.query_exec completion to break at spaces.
* Removed os.execute block.
2004-05-20:
* Split resizing code now first tries to use any unused space
before shrinking a region.
* Improved WAutoFrame "lazy" move/resize behaviour.
* Added WClientWin.xid export to get X window id.
* Automatically load mod_sm of the SESSION_MANAGER environment
variable is set.
* Moved session directory setup code to mod_sm.
2004-05-19:
* Do not clear client window activity status when receiving focus
if the urgency hint is still set.
* Exported WRegion.notify_activity and WRegion.clear_activity.
2004-05-18:
* Merged dock kde systray support patch and fixes from stable
branch.
* Changes in save directory under a session manager; use ~/.ion3/
gnome-session-$GNOME_DESKTOP_SESSION_ID (with potentially
unallowed characters replaced) if this environment variable is
set.
* Fixed exec bindings to correctly set the root window and changed
ioncore.exec_on to accept any region as parameter.
2004-05-15:
* Fixed attempt to free memory at middle of allocated area in menu
typeahead find.
* Converted ionws_placement_method to ionws_placement_alt hook.
Removed the hook from WAutoWS code temporarily.
2004-05-14:
* Fixed shade on WIonWS.
* WMPlex contents are unmapped when either width or height of
client managed area becomes at most 1 instead of resizing them.
Previously this was only done vertically for frames (shade).
* Changed mplex l2 hide/show to warp (if enabled) to new active
region.
* Some other focus handling fixes/changes.
2004-05-12:
* New hook system. Both Lua and C-side now have the same hooks
except for ioncore_handle_event_alt.
* Oops. There was a typo that was causing region flags to be
cleared when children were being rescued.
2004-05-09:
* WM_COLORMAP_WINDOWS handling fixes. (Does something still use
this/bother supporting indexed colour models at all?)
2004-05-03:
* Fixed stippled tab font when -i18n was not set.
2004-05-02:
* Added some basic framework for autows. No functionality
essentially different from ionws yet.
2004-05-01:
* Transparency configuration reading fix.
2004-04-30:
* Minor session management support improvements; should work with
gnome-session now.
2004-04-28:
* Only kill active grab when esc is pressed, not released.
2004-04-17:
* Slightly improved splitting code.
* Added code to transpose splits.
2004-04-11:
* Oops, there was an off-by-one bug in _NET_VIRTUAL_ROOTS setting.
2004-04-05:
* Added a kludge to deal with waitrelease when the modifiers has
already been released.
2004-04-02:
* Changed compiled .lc files' path to LIBDIR/ion/lc.
* WMPlex is now a proper non-virtual class and objects of this type
can be created and nested like any others.
2004-03-27:
* Removed object abstraction from drawing engine brushes to help
creating drawing engines with other font routines.
* Fixed floatframe client window size issue when shaded.
2004-03-24:
* Don't put input method failure complaints in startup error log.
2004-03-23:
* Client window unmap handling fixes (?).
* querylib.query_restart and query_exit were not yet converted to
the Ion3 scheme of things.
2004-03-21:
* Fixed a colourmap update crash.
2004-03-20:
* Moved activity notification window code from scratchpad to
screen; also works for normal workspaces now.
* Added very preliminary (and partially broken) session management
support based on the 'sm' module for Ion1.
2004-03-18:
* Made drawing engine objects inheritable and initialisation code
reusable.
* Improvements and fixes in keyboard mapping changes handling.
2004-03-17:
* Some scratchpad activity notification window changes/fixes.
--
Tuomo