Xfce

Subdomains
 

Thunar, GtkAction and a big mess

  • June 24, 2020
  • Alexxcon's Software Development Blog

Overview

My journey into the GtkAction abysses of Thunar began in the mid of 2019. Be warned, it is no story of success. It is rather a story about finding a way through a maze while walking into almost every dead end.

Actually I just wanted to fix #198 (Merge all file-context-menus into one). But somehow things got weird. More than half a year later and after numerous interactive rebases I finally merged my branch into master \o/

Motivation

The old Thunar used to create the same menu items in different places using different code. In the past that led to inconsistencies. E.g. the location bar only provided a very minimal context menu, no custom actions at all.

location button context menu

From time to time I found myself right-clicking on a location-button, just to find out that there still is no custom action. At some point of maximal annoyance I decided to fix that problem … not sure if I would have done so when I knew how long that road would be.

Looking at thunar-location-buttons.c revealed a lot of duplicated code. thunar-standard-view and thunar-window both used the deprecated GtkActionEntry to define menu item labels and related actions. The location buttons just mirrored parts of that code. On top some other actions were defined in thunar-launcher or had their own classes, inheriting GtkAction.

So yay, lets just copy+paste the missing stuff to the location buttons? Nah, that would be too easy. As a developer who values DRY, it would hurt my belief in clean code to produce more mess.

Let’s Start Hacking

I started to do some coding .. first I created a new widget thunar-menu which internally is a gtk-menu, and moved menu-item creation and the related actions for copy/cut/paste/delete/move_to_trash there to have them at some central place, so they can be reused by different menus. I as well moved the actions from thunar-launcher to thunar-menu (I guess the original intention of the launcher was, to actually launch things, not to manage menu-items) and replaced separate action classes in favour of methods inside thunar-menu.

Meanwhile the location-button-menu and the context-menu, which I used for testing, were populated with some items again.

The old code made massive use of the deprecated GtkAction and GtkActionEntry classes together with GtkUiManager. I did not want to add more G_GNUC_BEGIN_IGNORE_DEPRECATIONS to silence warnings. So I decided to replace the deprecated calls.

Looking into the gtk3 documentation revealed that there now is GAction and GActionEntry which provides some service around accelerator activation, and there is GtkMenu/GMenu for which at that time I had no clear idea why there are two of them.

The documentation of GAction told me that it should not be used for anything related to labels, icons or creation of visual widgets, damn. So at that time I did not see an advantage in using this class. I decided to rather go for GtkMenu together with some custom replacement for GtkActionEntry: XfceGtkActionEntry.

In retrospective ignoring GAction might not have been my smartest move. Meanwhile I understood how GAction can be used with GtkMenu, and I will most likely go for it at some later point.

Regarding GtkUiManager: The definition of menu-items of Thunar was scattered across 7 different *-ui.xml files, making it hard to figure out what belongs together. Because of that I decided to just get rid of the deprecated GtkUiManager and create menu-items in the code instead of predefining their order in xml. IMO the usage of xml files might be nice for static GUI’s, though for dynamic menu-creation it just introduces unnecessary complexity.

So I started to build XfceGtkActionEntry and some support methods.XfceGtkActionEntry is a structure which holds labels, tooltips, icons, types, the accelerator paths and callbacks to the related actions. Like GtkActionEntry it is just a struct and can be filled in a static way.

Next problem: The menus in Thunar so far did not get destroyed, but were updated whenever the selected items got changed, and got shown when needed. That sounded wrong to me. Why should I want to update menu-items, which can be expensive, while no menu is visible at all ? There were bugs about menu flickering and slowness while rubber banding/mass select which seem to be related. Since I anyhow needed to touch that part, I decided to build menus only when they need to be shown.

Things went well, I came to the point where I needed some items from thunar-window, like the zoom-section and the view-specific settings. As well most file-menu items in the thunar-window menu did not work any more since I moved management of them from thunar-launcher to thunar-menu. So next step clearly was: Introduce XfceGtkActionEntry to thunar-window … and than shit hit the fan.

So far the thunar-window menu was always present and took care for any accelerator actions. Since my concept was “create menu on request”, there was no menu instance which could take care for accelerators any more, leading to dysfunctional accelerator keys, rendering my whole concept as faulty .. aargh.

Start all over again

After some time of grieve and doubts I fixed the problem by moving most of the code from thunar-menu back to thunar-launcher, which lifetime is coupled to thunar-window.

From now on thunar-menu was more or less just an convenience wrapper for thunar-launcher … still useful, but sadly it lost its glory. thunar-launcher now builds volatile menu items on request and permanently listens to the related accelerators. Finally accelerators started to work fine, and I was able to continue to fight with the window menu.

I had much more trouble with that menu, too much to tell it here .. however somehow I managed to get it functional, so that it mostly worked like before.

An unpleasant discovery

Later on, while reporting a bug against gtk I learned that the class gtk_accel_map, which I use as a central part will be deprecated soon … aargh again. The gtk devs so far just missed to set a deprecation macro. So it seems like I will need to touch the accelerator part again. This time I plan to make use of the GActionMap interface .. going to be a story for another day.

Testing and open issues

For first testing and code-review I luckily got support of some early adopters. They found many more defects and regressions which kept me busy a long while. Fortunately nothing concept-breaking was found.

While writing this there are still some regressions I introduced, waiting to get fixed by me before a stable release:

And there are related tasks on my agenda, for which I just did not find the time so far:

  • rename thunar-launcher to e.g. thunar-action-manager
  • use thunar-menu in bookmark view
  • use thunar-menu in Tree view
  • many minor things

Conclusion

Finally I ended up with 25 commits and +4717 / -7149 line changes. The occurrence of G_GNUC_BEGIN_IGNORE_DEPRECATIONS got reduced from 250 to 35. The remaining 35 occurrences will further drop when using GtkMenu for bookmark-view/tree-view. That should simplify the move to gtk4 in the future. The location-button context menu shows custom-actions now, and as well some other bugs got fixed with the changes.

So overall, the result does not look too bad I guess.

Well, this blogpost grew by far too long. I hope you nevertheless enjoyed the journey into the Thunar internals!

… enough storytelling for now, I really need to take care of these remaining regressions! :)

Thanks to Reuben, AndreLDM, DarkTrick and others for early testing and bug reporting! Special thanks to AndreLDM, motivating me to write this blogpost at all :D.

Thunar 1.8.0 Release

  • June 6, 2018
  • André Miranda

Good news fellow Xfce users, we proudly present a new Thunar release, our beloved easy-to-use and fast file manager!

The main highlight in this release is that Thunar, as all Xfce components, is saying goodbye to Gtk+ 2 and is now Gtk+ 3 based. Other than that, our team has addressed several critical bugs that compromised Thunar’s stability. Most of those fixes were backported to 1.6.x series and we hope our users do not experience crashes anymore.

By the way, by “our team” I mean Alexander Schwinn and myself, as well as all other developers which contributed to the project, specifically Jonas Kümmerlin, without his work we wouldn’t get here.

We picked up where Jonas left off, his initial port saved us a lot of work, with few adjustments we got Thunar to run under Gtk+ 3. But so we discovered this was no easy job, let’s just say Gtk+ migration path was far from a smooth experience. Besides fixing bugs and regressions, new features were introduced. Not to mention the wonderful work done by translators in promptly updating translations.

What Thunar 1.8.0 has to offer?

  • A completely revised pathbar
    • Buttons next/previous/up/home added
    • Click on the right filler opens path as editable string
    • Here’s a comparison between the old pathbar and the new one Thunar comparison
  • GObject Introspection support for thunarx
    • It paves the way to new language bindings
    • Thunarx-python has already been updated
  • Minor improvements:
    • Show file size as well in bytes
    • Add systemd user unit for D-Bus session services
    • Make it possible to assign accelerators to custom actions
    • Enable Thunar UCA (User Configurable Actions) for remote locations
    • Refreshed tray icons for file transfer
    • Improved various styling details

While moving to Gtk+ 3 it was necessary to replace parts of the Thunar Plugin API (thunarx). It means that to update to Thunar 1.8.0 one should also update all installed thunar-plugins and xfdesktop to their latest versions, see the compability matrix for more details.

A complete list of added features, bug fixes and translation changes can be found in the NEWS file.

That’s it, we hope you enjoy the new Thunar.

Thunar 1.8.0 Release

  • June 6, 2018
  • André Miranda

Good news fellow Xfce users, we proudly present a new Thunar release, our beloved easy-to-use and fast file manager!

The main highlight in this release is that Thunar, as all Xfce components, is saying goodbye to Gtk+ 2 and is now Gtk+ 3 based. Other than that, our team has addressed several critical bugs that compromised Thunar’s stability. Most of those fixes were backported to 1.6.x series and we hope our users do not experience crashes anymore.

By the way, by “our team” I mean Alexander Schwinn and myself, as well as all other developers which contributed to the project, specifically Jonas Kümmerlin, without his work we wouldn’t get here.

We picked up where Jonas left off, his initial port saved us a lot of work, with few adjustments we got Thunar to run under Gtk+ 3. But so we discovered this was no easy job, let’s just say Gtk+ migration path was far from a smooth experience. Besides fixing bugs and regressions, new features were introduced. Not to mention the wonderful work done by translators in promptly updating translations.

What Thunar 1.8.0 has to offer?

  • A completely revised pathbar
    • Buttons next/previous/up/home added
    • Click on the right filler opens path as editable string
    • Here’s a comparison between the old pathbar and the new one Thunar comparison
  • GObject Introspection support for thunarx
    • It paves the way to new language bindings
    • Thunarx-python has already been updated
  • Minor improvements:
    • Show file size as well in bytes
    • Add systemd user unit for D-Bus session services
    • Make it possible to assign accelerators to custom actions
    • Enable Thunar UCA (User Configurable Actions) for remote locations
    • Refreshed tray icons for file transfer
    • Improved various styling details

While moving to Gtk+ 3 it was necessary to replace parts of the Thunar Plugin API (thunarx). It means that to update to Thunar 1.8.0 one should also update all installed thunar-plugins and xfdesktop to their latest versions, see the compability matrix for more details.

A complete list of added features, bug fixes and translation changes can be found in the NEWS file.

That’s it, we hope you enjoy the new Thunar.

Xfce Design Special Interest Group

  • June 4, 2011
  • Jérôme Guelfucci

A special interest group was recently started to improve the usability and visual appearance of the Xfce desktop environment. It is defined on the Xfce wiki as follows:

The Xfce Design SIG aims at improving the usability and visual appearance of the Xfce desktop environment. Our goal is to bring interested users, designers and hackers together to ensure neither of them is working in a vacuum. By establishing a context in which they can collaborate on smaller and larger design-related projects we try to increase the chance of the proposed changes to be merged into the official Xfce repositories.

Everyone is of course welcome to join this group which has already started working on several points and producing very interesting elements! I'll introduce here two of the main projects we are currently working on for Xfce 4.10. But more will follow soon!

I would like to thank Simon Steinbeiß and Pasi Lallinaho from the Shimmer Project who played a crucial role in starting this SIG.

Thunar shortcuts pane rework

You can see what is being proposed on this page. The main goals are to reduce the visual clutter in the shortcuts pane by sorting items in different categories and to integrate nicely remote file systems (Samba, FTP...) which are supported since Thunar 1.2.0. The current demo we have looks like this:

Thunar custom view for the shortcuts pane

I encourage you to have a look at the Wiki page linked above, which contains a very accurate description of what we want to achieve and how we are going to achieve it.

Merge of xfrun and xfce4-appfinder

You can see what is being proposed on this page. The goal is to produce a single interface allowing to quickly launch applications and to perform actions. We plan add an extension system similar to the Thunar Custom Actions to allow the creation of a tailor-made interface.

This is of course still work in progress, but this is how the two main view currently look. Clicking on the arrow on the right hand-side of the entry switches from one view to the other.

appfinder-compact.png

appfinder-expanded.png

I encourage you to have a look at the Wiki page linked above, which contains a very accurate description of what we want to achieve and how we are going to achieve it.

Don't worry!

We already received some mails and comments asking whether it meant that we would move towards a Gnome 3 interface. The goal is not (yet :D) to bring a revolution but rather to streamline what we currently have by improving the numerous rough edges. Of course, we might take some inspiration in other desktop environment but we will not copy what is done in Gnome 3 or KDE4, Xfce has its own philosophy which is serving its users well at the moment.

Useful links

Xfce 4.8 on BSD flavors

  • January 19, 2011
  • Jannis Pohlmann

I should’ve made this more clear in the Xfce 4.8 release announcement but for a moment there I forgot that not everyone knows what we developers are dealing with under the hood.

Many users have been asking what the BSD problems are that I mentioned in the announcement. As some of you may recall is that HAL, the hardware abstraction layer that has for the past few years been used for volume and power management as well as a few other things, has been deprecated and replaced by a variety of frameworks. Today there is udev for device information, udisks for volume management, upower for power management as well as ConsoleKit and PolicyKit for session and permission control.

At least udev is strongly linked to Linux and as far as I know is not available on any of the BSD flavors. Unfortunately it is now the only good way to detect storage devices, cameras, printers, scanners and other devices using a single framework. That’s why we use it in Xfce now in situations where HAL provided us with device capabilities and information to distinguish between the different device types before. The consequence is that thunar-volman no longer works without udev and thus only compiles on Linux. In Thunar itself udev remains optional.

I don’t know what the porting status of the other frameworks is. But I am pretty sure not all of them have been ported to other platforms yet which is why I felt the need to express our disappointment in the announcement. For 2-3 years now all this has been a big mess. New frameworks were invented, dropped again, renamed from *Kit to u* and somewhere on the way it became impossible to keep Xfce as portable as it was before. I know that this is nothing new and that BSD folks faced the same situation as they do now back when HAL was invented but I don’t think it has to be this way.

For the question how we can improve the situation I have no answer yet.

Xfce 4.8 released!

  • January 16, 2011
  • Jannis Pohlmann

Today, after almost two years of work, we have the special pleasure of announcing the much awaited release of Xfce 4.8, the new stable version that supersedes Xfce 4.6.

We hope that everyone will enjoy this release as much as we do. Sadly, this will not be the case as the folks using any of the BSD systems will notice a sudden loss of features. We think that this announcement is a good opportunity to express our disagreement with the recent “Linux-only” developments in the open source ecosystem, especially with regards to the utilities we need in desktop environments.

Xfce 4.8 is our attempt to update the Xfce code base to all the new desktop frameworks that were introduced in the past few years. We hope that our efforts to drop pieces like ThunarVFS and HAL with GIO, udev, ConsoleKit and PolicyKit will help bringing the Xfce desktop to modern distributions.

With Xfce 4.8 our users will be able to browse remote shares using a variety of protocols (SFTP, SMB, FTP and many more). The window clutter has been reduced by merging all file progress dialogs into a single one.

Our panel application has been rewritten, thereby improvingpositioning, transparency, item and launcher management. It also introduces a new menu plugin to view directories. Its plugin framework remains compatible with 4.6 plugins.

We also improved our settings dialogs. The display configuration dialog now supports RandR 1.2, detects screens automatically and allows our users to pick their favorite resolution, refresh rate, rotation. Screens can be configured to either work in clone mode or be placed next to each other. Keyboard selection has become easier and more user-friendly. Also, the manual settings editor has been updated be more functional.

Aside from the features implemented in Xfce, the 4.8 development cycle brought us a bunch of other goodies. For the first time we had a serious release strategy formed after the “Xfce Release and Development Model” developed at the Ubuntu Desktop Summit in May 2009. A new web application made release management a lot easier. We worked hard on improving the situation of Xfce translators which led us to setting up our own Transifex server. Something else you will hopefully notice is that our server and mirroring infrastructure has been improved so that our servers hopefully will not suddenly surrender shortly after this release announcement.

There is a lot more to discover and we hope a lot of you will give Xfce 4.8 a try! There is a brief tour online on

http://xfce.org/ and http://xfce.org/about/tour

A summary of the changes since the 4.8pre3 preview release is available on the following URL (it also includes links to the changes introduced in all preview releases):

http://xfce.org/download/changelogs/4.8.0

The release can be downloaded either as individual releases or as a fat tarball including all these individual versions:

http://archive.xfce.org/xfce/4.8/

2011 has just begun and we are already planning for the future. The 4.10 schedule will be worked on soon and hopefully, we will be able to turn Xfce into a non-profit organization at this year’s FOSDEM, so stay tuned!

But until then we hope you will enjoy today’s release and join us in celebrating. Thanks go out to all our contributors, bug reporters as well as the awesome efforts of our translators and packagers.

Best regards,
The Xfce development team

Xfce 4.8pre2 released!

  • December 5, 2010
  • Jérôme Guelfucci

Xfce 4.8pre2 is now available for download.

It includes the following releases of Xfce core components:

  • exo 0.5.5
  • gtk-xfce-engine 2.6.0
  • libxfce4ui 4.7.5
  • libxfce4util 4.7.4
  • libxfcegui4 4.7.0
  • thunar 1.1.5
  • thunar-vfs 1.1.1
  • xfce-utils 4.7.3
  • xfce4-appfinder 4.7.1
  • xfce4-dev-tools 4.7.3
  • xfce4-panel 4.7.6
  • xfce4-session 4.7.2
  • xfce4-settings 4.7.6
  • xfconf 4.7.4
  • xfdesktop 4.7.4
  • xfwm4 4.7.3

Release tarballs can be retrieved from the following mirrors (please note that it may take a few hours for the mirrors to catch up):

  • http://archive.xfce.org/xfce/4.8pre2/src
  • http://www.tx-us.xfce.org/archive/xfce/4.8pre2/src
  • http://www.p0llux.be/xfce/xfce/4.8pre2/src
  • http://www.ca-us.xfce.org/archive/xfce/4.8pre2/src

A tarball including all individual releases can be downloaded here:

  • http://archive.xfce.org/xfce/4.8pre2/fat_tarballs
  • http://www.tx-us.xfce.org/archive/xfce/4.8pre2/fat_tarballs
  • http://www.p0llux.be/xfce/xfce/4.8pre2/fat_tarballs
  • http://www.ca-us.xfce.org/archive/xfce/4.8pre2/fat_tarballs

Release notes for 4.8pre2

We are pleased to announce the second preview release of Xfce 4.8. This release marks the beginning of the string freeze. From today on until the final release, strings may no longer be changed in the master branch of Xfce core components. This will help translators to prepare their translations for the final release scheduled on January 16th, 2011.

For this release we focused on fixing bugs in all Xfce components. We managed to close a great number of them thanks to all the persons who reported them and tested proposed fixes quickly.

A few minor panel features were added despite feature freeze. We also managed to work on two long time requests: proper support for editing the application menu with menu editors (Alacarte being the one that we tested) and integration with the Compiz viewport. Of course, this release also features a lot of new and improved translations thanks to the amazing work of our translation teams.

A list of all changes is available here.

We hope you will enjoy this release. Please give us feedback by sharing your thoughts, blogging, tweeting, denting or by filing bug reports. With your help, 4.8 will be the best release ever (at least until 4.10)!

Kind regards and thanks to everyone who has contributed to this release,

The Xfce development team

Xfce 4.8pre1 released!

  • November 7, 2010
  • Jannis Pohlmann

Xfce 4.8pre1 is now available for download.

It includes the following releases of Xfce core components:

 exo 0.5.4
 gtk-xfce-engine 2.6.0
 libxfce4ui 4.7.4
 libxfce4util 4.7.3
 libxfcegui4 4.7.0
 thunar 1.1.4
 thunar-vfs 1.1.1
 xfce-utils 4.7.1
 xfce4-appfinder 4.7.1
 xfce4-dev-tools 4.7.3
 xfce4-panel 4.7.4
 xfce4-session 4.7.1
 xfce4-settings 4.7.4
 xfconf 4.7.3
 xfdesktop 4.7.2
 xfwm4 4.7.1

Release tarballs can be retrieved from the following mirrors (please note that it may take a few hours for the mirrors to catch up):

 http://archive.xfce.org/xfce/4.8pre1/src
 http://www.tx-us.xfce.org/archive/xfce/4.8pre1/src
 http://www.p0llux.be/xfce/xfce/4.8pre1/src
 http://www.ca-us.xfce.org/archive/xfce/4.8pre1/src

A tarball including all individual releases can be downloaded here:

 http://archive.xfce.org/xfce/4.8pre1/fat_tarballs
 http://www.tx-us.xfce.org/archive/xfce/4.8pre1/fat_tarballs
 http://www.p0llux.be/xfce/xfce/4.8pre1/fat_tarballs
 http://www.ca-us.xfce.org/archive/xfce/4.8pre1/fat_tarballs

Release notes for 4.8pre1

The Xfce development team is proud to announce the first preview release for Xfce 4.8. Together with this preview release, the Xfce project announces the feature freeze for the final 4.8 release which is set to be pushed out to the world on January 16th, 2011.

This release incorporates major changes to the core of the Xfce desktop environment and hopefully succeeds in fulfilling a number of long time requests. Among the most notable updates is that we have ported the entire Xfce core (Thunar, xfdesktop and thunar-volman in particular) from ThunarVFS to GIO, bringing remote filesystems to the Xfce desktop. The panel has been rewritten from scratch and provides better launcher management and improved multi-head support. The list of new panel features is too long to mention in its entirety here. Thanks to the new menu library garcon (formerly known as libxfce4menu, but rewritten once again) we now support menu editing via a third-party menu editor such as Alacarte (we do not ship our own yet). Our core libraries have been streamlined a bit, a good examplle being the newly introduced libxfce4ui library which is meant to replace libxfcegui4.

Perhaps the most important achievement we will accomplish with Xfce 4.8 is that, despite suffering from the small size of the development team from time to time, the core of the desktop environment has been aligned with today’s desktop technologies such as GIO, ConsoleKit, PolicyKit, udev and many more. A lot of old cruft like has been stripped from the core as well, as has happened with HAL and ThunarVFS (which is still around for compatibility reasons).

Thanks to the awesome Transifex translation platform, our language teams have been able to update their translations at an incredible pace. Please include them when praising this release!

A complete list of all changes since the latest stable release is available on

http://mocha.xfce.org/documentation/changelogs/4.8pre1

Below you will find download information for Xfce4.8pre1. Please give our mirrors a few hours to synchronize. We hope you will enjoy this release, feel encouraged to blog and tweet about it! Feedback is welcome in all forms. Bugs can be reported in our bug tracker as usual. We need your help to make Xfce 4.8 our best release ever!

Kind regards and thanks to everyone who has contributed to this release,

The Xfce development team

Final exams, diplom thesis and thunar-volman

  • July 17, 2010
  • Jannis Pohlmann

I guess it’s time for an update.

This week I passed the last of four final exams in computer science and human-computer interaction at my university. Not only am I pleased that nine months of learning are over; I am also blessed with excellent grades. And while my understand of good grades is similar to that of money (nice to have it but nothing to focus on and/or brag with), I have to admit that this time I’m at least a little proud of myself. Five years at the university are slowly coming to an end, the first friends are leaving town and it will soon be time to take the next big step in life.

I cannot leave this city before writing another thesis, however. Thus, I am currently looking for a Diplom thesis at the university or at companies related to open source technologies. If you happen work for such a company with interesting thesis ideas or opportunities, please let me know. The thesis is supposed to take about 6 months, ideally starting early in September. After that it’s time to pack my stuff and look for an employer. I’m hoping for a position in open source software development. Areas I’m particularly interested in include Linux, mobile computing, desktop-related technologies as well as renewable energy, environment protection and open government. I’m here to make a difference.

On to something else. A few weeks ago I was offered sponsoring in order to work on thunar-volman for a few days. I accepted the offer, so for the entire next week from 2010-07-19 to 2010-07-26 (including the weekend) I’ll do some sponsored work on porting Thunar and thunar-volman to udev and GIO! The goal is to finish all major features (storage devices, cameras etc.).

Yesterday I did some warm-up hacking on tumbler to verify that if I’m still up to the task. The results: a new ffmpegthumbnailer-based video thumbnailer plugin (written by Lionel Le Folgoc), a new PDF/PostScript thumbnailer plugin based on poppler-glib and a new tumbler release (0.1.2). The master branch contains another commit adding arbitrary URI support to the PDF/PostScript thumbnailer but for that you’ll have to wait until the next release.

That’s it for now, I’ll be a lot more active next week. Take care everyone!

Xfce 4.8 Schedule Changes

  • January 26, 2010
  • Jannis Pohlmann

As the Xfce release manager, I’d prefer to be the bringer of good news. Unfortunately, we have to make some adjustments with regards to the Xfce 4.8 release schedule.

You may well remember last year’s chaos with the 4.6 release date. We’re trying our best not to repeat that and if it should happen again, we’ll at least keep you posted about the issues as good as we can.

So, what’s the deal with 4.8?

One thing that hasn’t changed much is that our development team is very small. A hobby project of this size requires a certain amount of time to be invested by each individual developer. Time not everyone has as much has he would like to dedicate to Xfce.

Today, Brian announced his absence for the coming months due to his new job, leaving 2-3 of our core components (xfdesktop, xfconf and xfce4-session) more or less unmaintained (aside from bugfixes). The good news is that Jérôme (who has recently started to improve xfce4-settings and port xfce4-session to libxfce4ui) and Daniel (the maintainer of the thunar-shares-plugin) have offered their help with xfdesktop and xfce4-session.

Brian is not the only one having little time at hand though. I’m preparing myself for my final university exams, so ideally I’d be sticking my nose into lecture notes all day long. I still have the time to write mails like this but there hasn’t been much activity around thunar and related projects lately.

Again, I’m really happy to see people volunteering to help because that’s what we need right now. There’s a lot left to do before we can release 4.8. Let me get to that now.

As some of might have heard, thunar was ported to GIO this summer. Through GVfs, GIO brings new features such as SMB, SFTP, FTP browsing which some people use one a daily basis already. Now, GVfs has turned out to be problematic for us for various reasons. At first it shipped a HAL-based volume monitor with a hard-coded dependency on gnome-mount. Today it ships a volume monitor based on gnome-disk-utility (uses DeviceKit-disks itself) which proves to be inconsistent and somewhat incompatible to the HAL mounting code in exo.

The result: thunar-volman (not part of the core but important for thunar nonetheless) and xfdesktop will have to be ported to udev (the mounting being done with GIO, ideally). I’ve started working on this but this is far from being finished.

Question to the other developers: Didn’t xfce4-session use HAL for logging out and stuff? We might have to look into replacing those portions of code with something based on ConsoleKit, I guess?

HAL/udev is not the only issue however. With Xfce 4.8 we’ll be replacing libxfcegui4 with a new library called libxfce4ui. Not all core applications (again, xfdesktop being one of them, I think) have been ported to it yet. In most cases, this is no big deal and probably could be resolved within a few days though.

Then we have garcon, the much improved menu library that is supposed to replace libxfce4menu. At the time of writing the only feature it is lacking that is crucial for 4.8 is file system monitoring. We’ll probably implement basic monitoring like we had in libxfce4menu. Work on this hasn’t started yet.

Also, xfdesktop needs to be ported not only from ThunarVFS/HAL to GIO/udev but also from libxfce4menu to garcon.

So, as you can see there is quite a lot of work ahead of us. Taking into account the little free time some of us have these days, we’ve decided to postpone the 4.8 release until June 12th instead of April 12th. The entire release phase in our schedule has been moved by two months in time, as you can see on the official schedule wiki page:

 http://wiki.xfce.org/releng/4.8/schedule

To be honest, I wouldn’t consider this new date fixed either. It all depends on how much we can do until the feature freeze on April 1st. I’m optimistic that meeting the deadlines is possible though.

For all of you who can’t wait until June, try out our development releases which are announced on http://identi.ca/xfce. I have at least something good to share: For a few weeks now I’ve been running Fedora 12 with a mixture of Xfce 4.6 packages and development package from the upcoming 4.8 series and the new components have proven to be very stable already.

I’m especially happy about the new panel which works almost flawlessly (except for a few dual head issues) and not only supports real transparency and more comfortable launcher creation based on garcon, but is also compatible to panel plugins written for Xfce 4.6. (Good work, Nick!)

So, I guess this is it. A mixture of good and bad. I hope nobody is too disappointed. As always, we’re doing the best we can.

Cheers!