I’ve been working on a new session manager for about three months to fix the shortcomings of the old session manager. The code has now finally made its way into CVS. Its not yet in production state, but its already usable. The new version is completly incompatible with the old one, that counts for session save format – which is now plain text – as well as for splash themes. Old themes won’t no longer work with the new session manager. Francois is currently working on splash themes. I will wait for him to tell me whats missing until I declare the new format stable.

Besides that, the file system layout of the session manager has changed. It follows the XDG basedir spec now, that says, you’ll find the session data files in ~/.cache/sessions/ and the configuration in ~/.config/xfce4-session/ (the global config can be found in $sysconfdir/xdg/xfce4-session).

There are currently several options to customize xfce4-session, where most of them are “hidden options”, that is they are not changable from the settings dialog. I don’t want too much options in the GUI, to not confuse new users. The question is now, what options are important and what are “geek options”. If you have any opinion on this, please let me. Also if anybody thinks, there should be an option to customize behaviour ABC, please send mail to xfce4-dev.

The shutdown code was changed to be sudo-only. That is, if you use plain xfce4-session, you’ll need to have sudo installed to shutdown/reboot the computer, see README for details. Packagers can easily change this to use distribution specific methods, by replacing xfsm-shutdown-helper.c with their code.

And last but not least, multiple sessions are now supported (a nice side effect of the new design). I’ll add “realtime checkpoint” support soon. This will allow you to instantly switch between sessions – or “checkpoints” in this context – without having to relogin (the problem here is, how to handle non session aware applications).

So, for the brave, go to get your copy from CVS – and no, there’s no version available for the 4.0 branch, since xfce4-session makes heavy use of new features in libxfce4util. As usual, send bug reports and feature requests using the bug tracker or mailing to xfce4-dev.

Today Jasper and Brian suggested that we could replace our own Xinerama related routines with Gdk ones (provided by GdkScreen which appeared in 2.2.x).

I’ve now replaced all calls to our libxfcegui4 Xinerama routines with GdkScreen equivalents in xfwm4. As a side effect, that makes xfwm4 compatible with SUN Xinerama which is supported by GTK+. Another nice side effect is that xfwm4 doesn’t require Xinerama to be enabled in libxfcegui4, since it doesn’t use libxfcegui4 for Xinerama anymore.

At last, I’ve also added a fairly nice theme called “Waza” I did some time ago. It uses gtk colors with nice gradients (that is only available in xfwm4 from CVS, and all 3 themes shipping with xfwm4 now use that feature)

Beside a huge code reorganization (that should not affect the user, hopefully ;) ) xfwm4 now supports partial struts. It might not be perfect yet, as it has not been very well tested, especially with Xinerama. So if someone has the required HW (read Xinerama with preferably different resolutions betweens physical displays), it would be cool to check xfwm4 from CVS with it.

While I was at it, I’ve also added support for NET_SHOWING_DESKTOP. The panel plugin should be able to make use it it (ideally, it should keep the old code and use NET_SHOWING_DESKTOP only when supported by the WM) – Dunno who’s in charge of that plugin though.

jasper rightly pointed out that i haven’t posted here in over a month, so i suppose i’m overdue.

my latest big improvement to xfdesktop is multihead support (not xinerama yet, unfortunately). xfdesktop can now handle multiple screens grouped under a single X display. you can set the backdrop, color, etc. independently for all screens. i’ll probably add an option to use the screen 0 settings on all screens if you’re too lazy to set different stuff for each. anyway, doing the multihead stuff was fun – i learned a lot about how X handles that sorta stuff. thanks to danny for a lot of testing and bug-hunting help.

another cool new feature is that you can set the backdrop to a color gradient. françois put up one of my screenshots displaying the feature, with a semi-transparent image sitting on top. mmmm, i love gradients…

the new multi-screen required a bit of a redesign to the backdrop settings dialog. soon i’ll be adding some global menu preferences to the dialog as well.

from a request on the mailing list, i just added the ability to add directories of image files to image lists. you can either do multi-select in the file chooser, or drag and drop a directory from xffm (and probably other filemanager; i haven’t tested).

in other news, i did some libxfcegui4 work as well. olivier wasn’t too happy about the backported gtk 2.4 code i stuffed in there, since it was causing a bunch of binary compatibility problems. i ripped all that stuff out, and created some less-functional wrappers for gtk 2.2 users. in the process, i also created XfceFileChooser, which is a thin wrapper over gtk 2.4’s GtkFileChooserDialog and gtk 2.2’s old GtkFileSelection. this enables xfce apps to use either the newer or older dialog, depending upon which version of gtk was used to compile libxfcegui4.

unfortunately, xfdesktop is still making some apps crash when launched from the desktop menu. olivier and i have done a lot of bug-hunting in the past couple days, but we can’t figure out what’s causing it. olivier can reproduce the problem using panel launchers as well, which leads him to believe the problem isn’t restricted to xfdesktop. i’m not so sure (as i can’t reproduce it that way), but i can say that so far we’re pretty stumped as to how to fix it or what the root cause could be.