introduction, gtk 2.22 porting, code (I don't use the majority of the extra panel plugins that live in their own , for instance, so I'm not going to port those myself)submission preferences

Jérôme Guelfucci jeromeg at
Thu Mar 10 23:36:15 CET 2011

On 10/03/11 21:39, Sean Middleditch wrote:
> Hey everyone,
> Just a brief introduction of myself as a quick "hello."  I'm an
> experienced developer (~18 years) who's also a long-time Linux users
> (~10 years, with no real Windows experience until very recently).  I
> currently work an independent contractor while attending school for
> video game development and design.  I live in Redmond, WA (my last
> apartment was literally across the street from Microsoft's main campus
> -- I'm right in the belly of the beast).  I use parenthesis when typing
> prose way more than I should (like this).  I'm a pretty busy guy with
> almost no free time at all, and I usually prefer spending that free time
> on a video game (making more than playing), but lately I've been on a
> kick to get a better Linux desktop out since my old favorite GNOME has
> gone towards a workstation-hostile iOS clone direction recently, and I
> kinda need a good Linux desktop as working on code without Valgrind is a
> sin against sanity and Valgrind is why my games never crash and the lack
> of it is why Bethesda's games crash every 10 seconds. ;)  I had been
> planning on a fork of the gnome3 code minus gnome-shell, and had started
> on that a few weeks ago; it's been slow going, as gnome is a beast and
> kind of a pain in the ass to hack on.  But then I realized that the
> recent XFCE 4.8 was actually a pretty decent desktop; light years better
> than XFCE 4.6, which I had tried before and was very unimpressed by.
>   XFCE still clearly has a lot of work cut out for it, but I've come
> under the opinion that it'd be easier and more efficient to help out
> with this project rather than starting my own.  I'm initially doing some
> low-level technical stuff to get familiar with the codebase, but
> eventually I have some major UI work I'd like to do, assuming my free
> time doesn't dry up completely by then.  I'm fairly sure the things i
> want to do are fairly in line with what the rest of you want, which is
> basically just more polish and more cleanliness and adding the major
> obvious features that are currently missing.  I'll admit to having some
> strong desire to clean out some "cruft" that some hardcore old-school
> XFCE users may not be happy to see go, but which I still think the
> majority of XFCE users and maintainers will agree with.  If not, I
> promise to gracefully capitulate to the XFCE maintainers vision; I'm a
> team player.  :)
> I started porting XFCE4 to GTK 2.22, with GSEAL_ENABLE and
> *_DISABLE_DEPRECATED turned on, as a precursor to compiling against GTK
> 3.0.  That's included converting a few things to Cairo rendering where
> necessary.  I also fixed a couple minor bugs, and added a hacky
> workaround for a major XRandR bug that was breaking my multi-monitor
> desktop pretty badly (and triggering a crash in the X server itself).
> I have so far ported xfce4-session, libxfce4-ui, xfce-settings-manager,
> and xfce4-panel.  I'm about halfway through xfwm4, and will be doing
> xfdesktop next, and finally Thunar.  Then any of the other modules which
> I actually use (e.g. all the common ones that 99% of regular people
> would use).  The modules I've converted are running on my desktop now
> and everything is working perfectly.  I'm "dog fooding" all my changes
> as I make them to make sure nothing's getting broken, particularly for
> modules that needed more extensive changes to deal with deprecations or
> GDK->Cairo conversion.
> Note that my changes to libxfce4-ui and libxfcepanel are only to make
> them compile with those flags turned on.  I have not GSEAL'd those
> libraries themselves, which I will need to do after all the core modules
> are ported.  And them I'll need to do another round of updates to make
> all the consumers of those libraries compile against them with
> GSEAL_ENABLE turned on.
> This lays the ground work for porting to GTK 3.0, which I will also do
> if the project is interested in having it done for XFCE 4.10.  It would
> of course break the ABI, so maybe it should be named XFCE 5.0 in that
> case.  :)  Speaking of which, it would be awesome to get some
> consistency to the naming of the xfce repos (and binaries), and maybe
> drop the "4" from the names in the process.  The version number can live
> in the branch names in git.  Having some modules be xfblah, some being
> xfce-blah, and some being xfce4-blah is making things slightly harder
> than it needs to be.  :)
> I'm interested in what the maintainers' preferred method of submitting
> my work is.  I can publish my git repos on gitorious or something, or we
> could get some personal repos on the xfce git server, and then the
> module maintainers can pull from those.  Or I could submit patches to
> the list or to bugzilla.  I'd prefer the git approach, personally, as
> it's a lot easier for everyone involved.
> The only thing I did not port completely is the panel separator plugin's
> "dots" style.  That's one of those things I'd like to just see disappear
> (seriously, who needs multiple styles for a separator?  who really needs
> the separator at all, other than its use as a hack to right-align other
> plugins?) and I'm not super interested in investing my limited time into
> it (I'm already peeved I had to sink time into porting 5 different clock
> styles when 4 of them are totally frivolous, and that time could have
> been spent making the remaining applet have a UI that didn't feel
> reminiscent of 1993), but the code is still there and waiting to either
> be ported to Cairo (maybe 30 minutes of work) or just removed.  I'll
> even do the removal myself if that's what the maintainer thinks is best.  :)
> --
> Sean Middleditch


First of all, let me welcome you! Your help is very appreciated!

As Landry pointed out, our current plans for 4.10 are summarized here: This page lists the versions 
of all dependencies we are targeting and at the bottom of the page you 
have links to pages which define the targets for each component of the DE.

As you can see, GTK+3 is not part of our current plans, we decided we 
prefer to let things settle down a little before making the move. BUT 
work to clean the code to  ease the transition can go in if it does not 
break the build with gtk 2.20, which we are targeting for this release. 
For example, cairo-drawing should not be an issue, some porting has even 
been done in 4.8.

It's probably not worth spending time on Xfdesktop though, as we are 
planning to replace it (again, see roadmap for more details).

Re how to submit your contributions, I think it would be better if you 
submitted individual patches in bug reports. And please, not one big 
patch per component, please try to break the diff into logical units. 
This eases review and allows easier regression tracking. The review 
might take some time but be assured that your work will eventually get in!

Re removing features, we try to avoid that, there are always people who 
enjoy those things, even if they look like the weirdest thing on earth. 
Though, if it becomes a real maintenance burden, we can take that decision.

I hope this answered your questions. I'm looking forward to see your 
first patches land on!



More information about the Xfce4-dev mailing list