Gtk3 for Xfce 4.12?

Peter de Ridder peter at
Wed May 2 20:39:35 CEST 2012

On Wed, May 2, 2012 at 10:43 AM, Nick Schermer <nick at> wrote:
> Devs,
> Now 4.10 is out in the wild, it is time to look at the 4.12 roadmap and a
> part of that discussion is whether we want to port Xfce to gtk3.

Xfce doesn't require gtk3. Users (except for source based distro's)
don't require xfce ported to gtk3.
Distro maintainers want to move to gtk3, but that should be our only
reason to switch now. Instead of later.

> The API (or lack of it) is not a problem I guess, since I think most of code
> compiles with deprecations disabled.

Normal applications using the gtk widgets wouldn't be hard to port. It
would be nice if we can get the goodies ported to with the few
contributors we have.

> Theming? Not really my thing but I guess a couple of people can tell which
> version of 3.x we require for good theming (read: equal to gtk2). Is this
> even possible?

For theming to work well you need at least gtk3.2 which is good, since
this is in most distros.
Also with Gtk3.2 is the only version we can make exact look alike of
gtk2. which would mean we don't need to fix all goodies ;)
But with Gtk3.4 the whole theming changed again. With the result that
everyone needs to fix their themes. (All the borders disappeared).
Also Gtk3.4 can't be maybe to look exactly like gtk2.

Now there are two things to take into account for theming. the
gtk-xfce-engine and the gtk applications.

For the theming engine. We have about 20 themes for the engine, as of
Gtk3.4 these are all broken. We probably don't need to keep them  all.
But the ones we keep should be fixed. Another question is, do we want
to keep maintaining the engine. The reason to keep it would be to have
a limited but fast gtk engine, although I don't have numbers to back
it up. Alternatively we could provide the themes from
theshimmerproject as default themes. Simon has been talking about
making a gtk3 theme using the default engine.

For the gtk applications. In the releases Gtk3.0 Gtk3.2 and Gtk3.4
mayor changes to theming were made. Resulting in breaking themes.
Which will give an unstable ui to Xfce, I think that is something we
should prevent. If theme theming is stable from now on then I see no

> Plugins: porting will be a lot of work in the core modules, not too much for
> panel plugins, but this this needs to be done.

The most time consuming part of porting would be the custom widgets.

The api for size requisition changes added native and minimum size.
Maybe some of the custom widgets can be dropped since an alternative
is available in gtk3 also depricated api can be dropped here, since
Gtk3 is already an api break.

Rendering changed to cairo and the theming api changed. This would
mean rewriting the drawing routines. As others mentioned this might be
more work in the plugins as in the core. With the new theming api we
should really consider how we can make custom widgets nicely themable.

> Anything else? Serve performance hits we know about?

I don't have numbers for performance, but I think rendering might be
slower. But this is mostly irrelevant since we can't stick with gtk2

> The porting should happen in branches until at least all of core works with
> gtk3. But that is something we can decide once we made a decision.

My main concern is the theming, if gtk3 keeps changing this the ui
would be unstable (in appearance).

Porting shouldn't take to much time if we make guidelines for the new
code so contributor can assist.
If we want to port the panel plugins too, like Landry suggested this
would take more time.

Just keep in mind, porting to Gtk3 isn't a race or a goal, the
decision should be made if it is convinient for us to do it now or
wait for the next release. Why shouldn't we add features to this
release, the only reason would be if it conflict with the time


More information about the Xfce4-dev mailing list