Xfce News – From Then Till About Now

Let’s pretend the last several months haven’t happened, and I’ll pretend that more than three of you read this.

That said, it seems like the best thing to do is to lay out where we are going, where we are, and what’s happening to get us there. If you care what’s been going on in Xfce, but haven’t been following the various blogs and lists, this is your chance to get caught up.

The Road To Little Big Horn

Every major release of the 4.x series of Xfce has been pretty major. 4.0 was the result of over a years work, a major rewrite of the entire desktop. 4.2 saw the introduction of major features and enhancements that were incomplete for 4.0, and the addition of developers as Xfce4 gained popularity.

4.4 is going to be a major upgrade to Xfce, with new components, major upgrades to old ones, and more tools for third party developers. So, without further ado, let’s take a look at what’s coming.

File Mangement

Lots is going on in the world of Xfce file management. Xfce 4.4 features two file managers. The first is a major upgrade and improvement of the classic Xffm. The second is Thunar, the newly written from scratch file manager designed to take a different tack from Xffm.

Xffm

Xffm (Xfce Fast File Manager) started like in Xfce 4.0 as the integration of several tools from the 3.x series. Several people (including the lead developer, Edscott) have pointed out that interface has been trying hard to accomodate everyone, and has suffered as a result.

Xffm 4.4 is a major reworking of the code to address some of these issues, as well as several common user requests. Xffm 4.4 will provide icons on the desktop (something that Xfce, which is a spiritual decendent of CDE, has traditionally not provided), a new, ultra slim and simple icon view interface, a plugin system, and the ability to write new interfaces overtop of Xffm’s core.

Where Xffm in the past has been relatively complex to use, Edscott has gone the other direction providing a very simplistic interface built over a core designed to support as many interfaces as the community needs. It is very possible that Xffm interfaces will become as common as panel plugins are now.

Xffm homepage

Thunar

Thunar is the new kid on the block for file management, and has even generated some interest from the Gnome and Ubuntu crowd.

Thunar’s philosophy is to be simple and straightforward file management, built as much as possible on emerging desktop standards. Thunar is much like the rest of Xfce, in that it does very little revolutionary, but tries to be the best, well thought out implementation of well proven ideas out there.

Thunar’s interface was heavily prototyped early in development. In this it took an interesting road, by building semi-functional prototypes in Python, and doing open interface critiques on the mailing list.

Once the interface was settled, and a solid outline of the internals was written, the real work started, and Subversion has seen a lot of development work since. Current subversion can open files, execute applications, and perform basic file management tasks.

Once completed, Thunar should provide all those things you expect from a modern file manager, including desktop icons, and not being a web browser.

Benny’s blog

Triple Threat

The Xfce “desktop” is provided by five applications. Xfwm4 is the Xfce window manager, Xfdesktop provides the menus created when clicking on the root window, and the Xfce panel provides the row of application launchers, menus, and other plugins available at the bottom of the screen. Additionally, Xftaskbar and the Iconbox provide the standard ways to switch between applications.

The Window Manager

The window manager in Xfce 4 is decended from the very light and simple Oroborus window manager, which, due to it’s small system resources and simple code base, has been the parent and grandparent of several window managers over the years.

4.4 continues the steady, even handed development that Xfwm has seen since the beginning. Most of the changes are in the background, but appreciated nonetheless. Since 4.4 development began we’ve seen some serious testing of various window placement algorithms, especially for very large and very small screens, sophistication of the various methods for preventing focus stealing, and some small usability improvements.

In addition, Xfwm has lost the ability to manage desktop wide shortcuts in order to move this feature to a more powerful and generalized shortcut tool. Rumor also has it that Olivier is working on a “power tweak”, a GUI that allows access to various properties of the window manager not normally accessible without config file editing.

Xfwm 4.4 should do what a window manager does best – getting out of the users way – while actually becoming more configurable for power users.

Xfdesktop

Xfdesktop mostly just sits there, waiting for you to need it, and when asked, generates nice pretty menus. It also provides your backdrop, so it doesn’t get bored.

Xfdesktop likely will keep being the small helper app on the surface that it is today. However, the core of Xfdesktop is getting some real attention, as code from xfdesktop-ng, the branch of xfdesktop shipped in Xfld is potentially integrated, providing better performance and more robust menu generation.

Xfdesktop is already pretty good at guessing when apps have become available, without the application having to do anything DE specific, just provide a standard .desktop file. We all look forward to the quick death of desktop specific menus.

The Panel – One Codebase To Rule Them All

When Xfce 4.0 came out, the panel immediately got the attention of independent developers. It was just so quick and simple to throw together a new panel applet that a Berlios project grew up to keep them organized.

Then people started to complain that they couldn’t add plugins to the taskbar, or run multiple instances of the panel, or put the iconbox in the panel, or . . .

And then people started to do blocking IO in plugins, and writing plugins that crashed the panel, and other bad things.

Lo, then came the experimental branch of the panel, and all these things are of the past.

This new branch provides the potential to run multiple instances of the panel, with different panels for each monitor, and puts most plugins out of process, so they no longer can hang or crash the panel. Panels can be placed freely anywhere on the screen, tethered to the screen edges, fill the screen width or height, or be constrained to fit the plugins it contains.

The iconbox and taskbar are currently being subsumed inside this new panel framework, and will become instances of the panel, increasing flexibility, and reducing the effort to maintain the bunch.

The Platform

Xfce has provided a small platform to developers since the 4.x series began. These libraries provide various utility interfaces, such as functions for interating over window lists, session manager support, and the like. These libraries also provide backported Gtk+ functionality or wrappers around Gtk+ widgets, so that Xfce can build on older systems, while still providing the maximum available functionlity.

This is the kind of platform you’d expect a desktop environment to have: mostly small and with functionlity focused at building core desktop components. These libraries have attracted some outside interest, such as for people developing panel plugins and the Terminal and Xfmedia applications.

However, Xfce 4.4 is seeing a much bigger effort at providing tools for independent developers, without expanding the Xfce core.

Xfce Developer Tools
Xfce Developer Tools, or XDT, is a package designed to simplify the Xfce build. XDT provides a common library of M4 macros for autoconf, usable by all Xfce apps, and other third party applications, along with xdt-autogen, which can prep source trees for distribution, or clean them of autogenerated files.

The various M4 macros provide easy detection of pkgconfig based dependencies, adding debug support to an application, setting up i19n support, as well as Xfce specific macros for the panel and settings system. Developers would do well to take a look, and ease their autotools woes.

Coolest Name Ever – libexo
libexo was initially developed outside of Xfce for developers seeking to write Xfce apps, but needing somewhat higher level interfaces than the basic Xfce libraries, which are directly targeted at the developer of core desktop components.

libexo provides lots of neat features like Firefox style editable toolbars, lightweight session management client support, widgets for icon views and ellipsized text, and more.

Ol’ Standbys – MCS, Util, and GUI

MCS stands for Multi Channel Settings. MCS expands the Xsettings system (which was very young at the time of MCS’s development) to settings management for Xfce components. While MCS continues to see occasional bug fixes, it is not undergoing feature development at this time, in anticipation of a standard cross desktop setting system to replace it. libxfce4util, like the MCS system and it’s libraries, has seen almost no development since 4.2, other than minor bugfixes. They are simple, stable, and (until a standard emerges to replace MCS) complete.

libxfcegui4 is, as the name states, the GUI library for Xfce, and has mostly seen activity in deprecation of those widgets which are no longer needed, as our minimum Gtk required provides them. They should be deprecated for 4.4 and likely out by 4.6. However, libxfcegui4 has seen some expansions of the basic API, filling out some macros and methods for various widgets. This has been done to make it easier on various language bindings.

Wait a sec – bindings?

Bindings

Xfce has always been a C (and a little shell) only place. However, that doesn’t mean we don’t want other languages to play along. Starting with the C++ binding, the Xfce Foundation Classes, Xfce has grown three language bindings.

Note that these bindings only exist for writers of software outside of the Xfce “core”. Most notably, no constantly running processes in the core Xfce desktop will depend on them, so the inclusion of the bindings has no impact on Xfce’s memory usage.

XFC

The Xfce Foundation Classes are the biggest of the three language bindings that are coming for Xfce. XFC has grown from being a C++ binding for Gtk, to binding the Xfce libraries, as well as a binding for libglade, allowing developers to rapidly build applications that integrate with Xfce in C++. XFC is also extremely well documented, and is already being used by various interested developers. Along with Thunar, XFC may be the most exciting aspect of the 4.4 release.

PyXfce

PyXfce is (you guessed it) a Python binding for the Xfce libraries. Unlike XFC, PyXfce doesn’t wrap the core Gtk functionality, depending on PyGtk for that job. Instead, PyXfce provides access to Xfce widgets and custom functionality from Python applications.

Xfce4-Perl

Another pretty obviously named binding, Xfce4-Perl works much like PyXfce, allowing Perl programs to use customer Xfce features, while letting Gtk-Perl do the grunt work of providing Gtk bindings.

…And All The Rest

And of course, just because these changes are taking place doesn’t mean the rest of the desktop is idle. Nosiree.

  • Session Manager: Now supports the new startup items standard, along with providing a UI for editing what apps start when you log in
  • Mailwatch: The old mailcheck plugin for the panel was simple. Too simple. The new mailwatch plugin does everything all you complainers wanted in the old mailcheck tool. See what you get for complaining?
  • Appfinder: The new Appfinder is now a widget, allowing applications which need to locate apps based on certain criteria (like file managers) can do so.
  • Orage: The new name for Xfcalendar, now has iCal support, and a much richer appointment interface and alerts system
  • InstallIt: A new installit tool for management of third party Xfce plugins and apps will, once completed, provide a GUI for download and build of non core components, and then nicely add them to the list of installed components by your native package manager.

56 thoughts on “Xfce News – From Then Till About Now

  1. Nice summary, really. I’m glad we’ve got someone doing the important (and certainly hard) job of keeping the interested user up to date.

    Just one note on InstallIt: It’s not designed to only make Goodies available/manageable. Instead it’s the (generic) approach to a) replace Benny’s graphical installer almost completely and b) make software available via a repository independent of your local package manager.

    I guess the goals aren’t yet clear to everyone so I will set up a “Goals” site in our Wiki as soon as possible. Make sure to visit http://installit.xfce.org/trac.cgi/wiki/Goals soon.

    Regards,
    Jannis

  2. Wow, this is a very nice update! This tells me Xfce 4.4 is definitely going to be great! Thanks for the list of features and updates, I love it (and Xfce too, of course)!

  3. Is there a projected timeline for release? It sounds like 4.4 will have everything I am looking for.

  4. What about some screenshots with these changes???

    Do you have an estimate when Xfce 4.4 will be due?

  5. Sadly I have a strong feeling that my favourite desktop has grown to be more and more sluggish over time.
    When I first installed Xfce4.0 I was blown away, and the following releases always came with really useful features, which made me stick to xfce happily. However the overall feeling was, the desktop became less responsive and I can’t pinpoint the reason or the instances that suffered from this.

    I hope this will get some attention in the future.

  6. Does it ever stop just getting better and better? I’ve watched the XFce project growing for years, and the past three have been, well, just doggone amazing. I’ve seen more innovation and creativity in this project than in all of the others. KDE and Gnome – watch out.

  7. I only just discovered the joy of Xfce 4 and already I find out there’s going to be more. It’s become my favorite desktop over the last 2 months (with Slackware GNU/Linux right now) and I’m really looking forward to the new additions. Many thanks for what you’ve done here. Keep up the awesome work!

  8. I tryed Xfce 4.2, compiled it on a Slackware based distribuition, and I was amazed with what I saw. At the first, it looked like yet another lightweight WM, like all *BOXes and other WM’s tryed to do. But this one is different, it is light but still sofisticated. XFFM is amazing, and I tested the WM in day-to-day activities, and it really worked out. I am really ancious for 4.4.

  9. Just wanted you to be convinced that at least 3 people read it.

    Thanks for Xfce – couldn’t work without it.

  10. Hello again –

    I’ve been using XFCE since the 3.8 days. Still love it.

    All the 4.x series have been really pretty – BUT no sound event support.

    Won’t someone PLEASE bring back XFsound? pretty please? I’ve been writing bash scripts to launch my main apps with sound, and while it’s a workable solution, it’s not integrated, and I’m tired of having to write a new script every time I want a sound-launched app to be added to my desktop.

    Thanks in advance for XFsound4.4…

  11. Can we have functionality to specify the plugin location path i.e. if I install then into a local folder to somehow allow the panel to recognise them.

  12. What about minimal system requirements? I’ve been looking at
    ‘lighter’ replaments for Gnome for older Pentium-class machines
    but have heard that Xfce4 has become more bloated. What would
    I need as processor MHz and memory to expect decent performance?

  13. If more than three people write comments, then I believe that more than three read the news.
    I have used xfce off and on for a few years. I’m getting so tired of Fedora’s desktop and
    what seems like 1/2 hour to load on my relatively new laptop, that I’m about to go to xfce again.
    Good work. It is nice to see that someone provides good functionality without hogging the
    CPU.

  14. Can’t wait to install the update. I hate KDE/GNOME since they are too slow and bloated for my taste. Is there a release echedule for 4.4?

    Thanks for the great work!

  15. Which GTK+ Version will be the base for xfce4.4? Will it again be 2.4 oder 2.6 or perhaps even 2.8?

  16. I’ve been using XFCE for almost a year now and I love it (I used to use KDE, but it’s soooooo bloated. I never liked Gnome, or more specifically it’s interface) I love XFCE and almost everything about it, particularly the random desktop backgroud image upon boot and the speed and simplicty of it. It’s so sleek and clean, no desktop icons (I hate those), everything is in neat panels and menus that autohide (on my system anyhow). My only complaint is I HATE xffm. It may have cool features but the interface is horrible. No problem, tho as I use the rox-filer. The rox-filer is so fast and ridiculously simple to use! It’s wonderful and would seem a natural fit for XFCE. If xffm becomes more like rox-filer in 4.4 maybe I’ll try it out for a bit, otherwise it’s back to rox-filer :P. Anyways thanks for an awesome desktop manager and keep up the good work. BTW I run Gentoo Linux x86_64 kernel 2.6.13-rc3-mm1 with reiser4.

  17. Hi Guys,

    Since I already thanked the Zenwalk team for their efforts, it
    seems only fair that I do the same here.

    Although I am pretty much a linux n00b I’ve installed a fair number
    of distro’s over the last few years but was never overly impressed
    by either Gnome or KDE (or even some of the smaller ones).

    I found Xfce very easy to work with from the start and from what I’ve
    read about the update I will enjoy using it even more once I upgrade to 4.4.

    Once again, thank you and keep up the good work!

    Regards,

    Bollix.

  18. Xfce is and has been a wonderfully fast, sleek, smooth working set of programs. Alas, this may become a thing of the past since the coding requirements are erroding to allow mixtures of slower high level languages to join in the fun. Moving away from all C coding is a mistake. Fast Xfce –> Snail cluster bloatware. Oh well, it was great while it lasted…

  19. With every day I use xfce I’m getting more satisfied with it. Your way of developing, not bloating it with useless stuffs, is what is all important. If you keep it that way, you’ll keep me either :-)
    Many thanks for you all for the great job!

  20. Today, I installed xfce running apt-get install xfce, to realize a minute later that it’s v.2 or v.3. Then, I installed Xfce4, to my surprise it looked different, GOOD different!!! I came to work and looked it up to see what is going on. I found out that I was running Ubuntu build of Xfce4 (XFLD integrated). If you are telling me that the 4.4 is going to offer even more features and plug-ins, I’m sold! Can’t wait. Cheers.

  21. Just wanna say I looove XFCE :D. Checked out the XFCE 4.4 SVN and Thunar looks great :). Goodbye terminal… (never been an XFFM fan…).

    I can’t wait for the 4.4 on Zenwalk :P.

    Mad props to the devs ;-).

Comments are closed.