Road to Xfce 4.14, part 2
More than 1 year since my latest blogpost… wow !
Lots of activities these last months, on code and infra side :)
But the good news is that we had done a lots of background tasks (see the Infrastructure section) !
As you might know, Xfce 4.14 is a transitionnal release, where the main goal is to port all components to GTK+3.
GTK+3 minimum version has been bumped to version 3.20 (and maybe 3.22), because of so much changes since gtk 3.14 (broken themes, css), this will remove a lot of ifdef maze and code complexity to support several gtk versions. By the time of 4.14 release, all major distributions will have gtk>3.20.
You can check the status of all currents efforts on the wiki. Please check this page before starting a GTK+3 port, maybe it’s already done but not yet on master !
Core
Almost all core components have now a gtk+3 version (yai !), with developement releases lately ! Here a small summary :
- xfce4-settings 4.13.0
- xfce4-session 4.13.0
- garcon 0.6.0
- xfdesktop 4.13.0
- xfce4-panel 4.13.0
- tumbler 0.1.90
- exo 0.11.2
- libxfce4ui 4.13.1
In the help wanted section, AndreLDM is currently working on Thunar gtk+3 port ! If you have gtk/gdk/cairo knowledges, any contributor is welcome ! Contact us on #xfce-dev irc channel (freenode) or xfce4-dev mailist.
Ochosi made some great blog posts on all activities theses last months, (xfce4-notifyd, panel, taskmanager, clipman), stay tuned on https://blog.xfce.org/ !
Xfce Apps
In the xfce apps world, please notice the work on xfce4-terminal , with a complete port to gtk+3 in 0.8 (+ get rid of the old and insecure vte 0.28), new features and more : https://git.xfce.org/apps/xfce4-terminal/tree/NEWS .
This work will be available in the future Debian Stretch! Thanks to Igor for his hard work !
You can also notice the GTK+3 port of xfce4-screenshooter by AndreLDM.
Xfce Panel plugins
On the panel plugins side, tons of new releases, I can’t list all of them - netload, clipman, datetime, cpufreq etc - with of course a bunch of gtk3 ports, thanks to all of our contributors.
Look at the https://mail.xfce.org/pipermail/xfce-announce/ mailist to see the work done.
I also updated the xfce4-sample-plugin which can be used as a base if you want to start a new panel plugin !
Tests
If you want to test the current state of Xfce 4.14, you can look at xfce-test, a docker image by Florian which allow you to test git master and to run behave (behaviour-driven development) ! -okay sometimes it’s b0rken-
Ochosi wrote a small blog post about this docker image last month.
Here a screenshot of a git master build (a.k.a : xfce 4.14) :
Infrastructure
Almost all the infrastructure problems we had by the time of my last blog post have been fixed.
Thanks to gaston, user repositories are now working, and all services are now HTTPS enabled (with let’s encrypt) ! Youhou !
Moreover, since a few month, I try to take care of the Xfce servers infrastructure. Here a small summary of latest actions.
Git / Bugzilla
- Enabling syntax highlighting on cgit web interface ! Based on python fragment, it detect c/h files, see https://git.xfce.org/xfce/xfce4-power-manager/tree/panel-plugins/power-manager-plugin/power-manager-button.c as an example.
- Bug number catch in commit message to highlight them in cgit and link to the related bugzilla issue ! It catch several patterns like Bug #xxxx or bug xxxx. Developers, please use it ! :)
- Speaking of bug number, a new git hook is in place, it parse the git commit message, detect if there is a bug number referenced, and automatically posts commits references to bugzilla ! An example: https://bugzilla.xfce.org/show_bug.cgi?id=12159#c4 ! This is a really cool new feature (thanks ochosi for the idea). It’s not perfect and it need more works, but it is now available on all repositories !
- The famous “Bug 12117 - The default desktop startup screen causes damage to monitor!” got a lot of attention (x10 in traffic!) last March on reddit, hackernews, fefes.de and killed our poor bugzilla instance ! (thanks mod_perl :] ). Here are some visitor stats, see the difference…
- The famous “Bug 12117 - The default desktop startup screen causes damage to monitor!” got a lot of attention (x10 in traffic!) last March on reddit, hackernews, fefes.de and killed our poor bugzilla instance ! (thanks mod_perl :] ). Here are some visitor stats, see the difference…
- A new bugzilla template/theme by knome is available, with a lot of improvements ! You can enable it in your account preferences. It’s still a work in progress but should be released as the default theme soon
- Upgrade to latest cgit version (1.1)
Website
Maybe you already seen it, but the https://xfce.org website got a nice revamp with a more modern code/css, and is now responsive. Many thanks to knome, you can read his blog post which contain more informations :)
Misc
- http://geoip.xfce.org (used by the weather plugin to auto-detect the user localization) has been updated and should be more accurate. It is also available in https.
- The wiki engine (dokuwiki) and plugins used on wiki.x.o, docs.x.o and goodies.x.o, has been updated to latest release.
- The forum engine has been updated.
- Some obsoletes/outdated subdomains now redirect to the main xfce.org website (xfc.x.o, squeeze.x.o, thunar.x.o, foundation.x.o etc)
- The wiki now use an invisible captcha and not an ugly one like previously.
- Tons of Infrastructure bugs opened on our bugzilla has been fixed.
Enjoy,
The first Gtk+3 release of xfce4-panel is out!
After a looong waiting time – the original port of the panel was first kicked off in March 2013 by Nick – the first development release of the xfce4-panel is out and I am happy to say it is usable! There are however some regressions and of course a lot of potential bugs that simply haven’t been uncovered because of the limited usage and testing so far (I guess I haven’t gone through all possible kinds of panel setups).

General functionality and features
I know this is very boring, but the Gtk+3 version of the panel is on par with 4.12.1. Most of the functionality is there (see regressions and known issues), but no dramatic new features were introduced (apart from what the Gtk+3 toolkit brings to the table itself).
One notable feature that people have also been requesting for a while – in fact yours truly originally reported the bug – is support for RandR’s “primary monitor” feature. This means the panel will not stay on the left-most monitor by default but jump to the monitor that you define as “primary” in xfce4-settings Display dialogue.
Known issues and regressions
- Not all panel settings may be kept as the configuration is not 100% backward compatible (e.g. we’re using GdkRGBA instead of GdkColor for the background)
- Moving panel plugins via drag and drop on the panel directly via the plugins context menu action “Move” is currently broken (works fine in preferences dialog)
- Small regression with intelligent hiding (when opening a menu, the panel hides and comes back immediately while it should just remain visible)
- Enter/leave opacity does not work for Gtk2 plugins
- The panel is not visually focused by default (fixed in Xfwm4>=4.12.4)
There is also one deprecation that is worth mentioning. While the panel relied on xfce_panel_image in Gtk+2 (i.e. pixbuf drawing and scaling) we decided to deprecate this approach in favor of using the toolkit’s features directly (which is now possible more efficiently with Gtk+3). The newly added xfce_panel_plugin_get_icon_size relies on GtkImage directly and which introduces defined, meaningful icon size-steps to avoid fuzzy icons in the panel.
Theming
I have already added some basic theming for the panel to Greybird and I hope this will help others. I’ve also noticed that the GtkCalendar widget in Gtk+3 is visually broken (actually also codewise really terrible, and likely therefore unmaintained) and made some effort to improve that in Greybird.
What’s next?
Well, there are still a lot of things to do. The top two of the todo list for the panel are of course fixing all known and not yet reported bugs as well as cleaning up more deprecations (currently your terminal’s backlog is filled with warnings when running make, which makes it hard to distinguish the meaningful from the meaningless information).
How can you help?
Do some testing, either by using something like VirtualBox or xfce-test or use a distribution that is brave enough to package the panel (I presume we will see it in some Ubuntu PPA in the near future). Set the panel up your way and just use it and hopefully we will manage to cover all existing use-cases and have them working in 4.14 as well.
Please report bugs against the 4.13.0 version of the panel so that we can get a clean todo list for the next development release!
Thanks to everyone involved!
Finally let me give a big shout-out to everyone involved in the port – more people than I could meaningfully mention here.
The translators, everybody who reported bugs or did testing so far and of course the developers who invested a lot of their free time and energy in this enterprise.
Improving the Xfce infrastructure: Website
In addition to porting Xfce to GTK3, the Xfce team has become more active in (at least) one other area: improving the infrastructure. Today I’m happy to tell you that we’ve finished another bit of the infrastructure update: the Xfce website!
The most important feature of the updated website is that it is now fully responsive. You can now browse the website with a huge resolution or with one of the smallest smartphones and the site accommodates to your environment.
The responsive design isn’t limited to just tweaking the site width either; we have also mobile-optimized the slideshow on the front page and a lot more!
On the front page you can see another new feature as well – a section showing the latest articles from the Xfce Blog feed. We have some plans to integrate an all Xfce releases feed to the front page later, but for this we’ll need some other updates for the infrastructure.
Along with these bigger improvements, we’ve fixed a bunch of bugs, updated many HTTP links to their HTTPS counterparts and updated the content to be as up-to-date as possible.
Should you find a bug on the website, please file it against the website product on Xfce Bugzilla.
Enjoy!
Xubuntu 17.04 “Zesty Zapus” Released
Xubuntu 17.04 “Zesty Zapus” was released on April 13, 2017 with several fresh Xfce GTK+ 3 releases, bug fixes, and new features in tow. What’s New? Several Xfce panel plugins and applications have been ported to GTK+ 3 Core Xfce libraries exo and libxfce4ui have been updated with full GTK+ 3 support Greybird and Numix were … Continue reading Xubuntu 17.04 “Zesty Zapus” ReleasedReleases, releases, releases! Part 2
Testing Xfce
Xfce – like many other open source projects – is not exactly following a test-driven development workflow. I would argue that we need a slight mindset change here plus we need some (standardized) infrastructure to make testing easier for people who want to get involved.
Luckily what we have been waiting for in terms of the latter is already here! xfce-test is a Docker-based setup built by Florian which enables anyone to quickly spin up a container (based on Xubuntu 17.04 for now) with some components integrated from Git master, e.g. the Gtk3 panel. The great thing is it does not create the overhead of a real virtual machine for a tester but instead stays in the lightweight world of containers. This also makes it easy for everyone to adapt and rebuild the container and to create a reproducible environment that can be shared.
Just check out these few steps to try it in action – it really does all the heavy lifting for you!

Kudos also go out to the Gnome team for setting up a real nice contribution workflow for their community. We should really strive to reach that level at some point!
xfce4-notifyd 0.3.6
And another bugfix release for xfce4-notifyd is out! The best part about this is that apart from code-review there was nothing for me to do to get there!
So a big shout-out goes to both Mattias and Igor for fixing some of my – slowly but surely traditional – shortcomings (memleaks here we go again!).
Greybird 3.22.2 and 3.22.3
So there are also new releases out for Greybird, and not a bad ones I may add. On the feature side I added a preliminary version of a dark theme, which I hope will please some of the Gnome users of this theme.
Furthermore I did some polishing on making GtkPopover and Headerbar buttons more integrated and tight. Finally some fixes went into Nautilus notifications, the xfce4-notifyd theme and GtkCalendar looks acceptable at last (which makes the Gtk3 version of the panel usable)!
So all in all two micro-releases worth upgrading to!
Download:
https://github.com/shimmerproject/Greybird/releases/tag/v3.22.2
https://github.com/shimmerproject/Greybird/releases/tag/v3.22.3
elementary-xfce 0.8
This release adds support for the new icon names of Gnome 3.24. I also pulled in several icons from upstream elementary, especially updated mimetypes (thanks Dan!) plus I added support for Pantheon Photos.
Finally I added more sizes to some of the icons, ridding the theme of some inconsistencies.
Download:
https://github.com/shimmerproject/elementary-xfce/releases/tag/v0.8
xfce4-panel 4.13.0 in the works
As hinted at in the previous installment of “Releases, releases, releases!” I’ve been pouring quite some time into getting xfce4-panel close to a first 4.13 development release. This should help testers to get a packaged up stable point of reference and it should also help us to track the remaining issues in our issue tracker like normal human beings instead of collecting everything in the wiki roadmap page.
So while there are still some issues remaining (one of the more prominent disfunctions is broken drag-and-drop in certain contexts) I use the panel on a daily basis and it hasn’t crashed upon me once and does pretty much what it should – even with Gtk2 plugins in it (nnnice!).
Feel free to test it out with xfce-test
Releases, releases, releases!
So it’s not that I’ve been quiet and lazy – I was actually busy preparing some releases and hacking on stuff. So here’s an update on what’s been going on and what’s to come.
xfce4-taskmanager 1.2.0
This is a new release which brings a handy feature, i.e. identifying windows by clicking on them. Just use the crosshair-button in the toolbar and click on a window. This will result in the appropriate/associated process being selected in the tree or listview. Thanks a lot to Florian for helping getting this feature release-ready!
Some small improvements to keyboard navigation have also been pushed with this release, namely hitting the Delete or Shift+Delete keys will let you terminate or kill processes respectively.
Finally Olivier improved the memory usage for the FreeBSD.
Looking a little into the future, I’ve also been busy porting taskmanager to Gtk3 entirely, i.e. dropping support for Gtk2. This will happen with the next major release (2.x), which means no more feature-releases are planned for the 1.x series and Gtk2. It’s not out of the question though, that there will be a bugfix or maintenance release for 1.x later on.
So far the Gtk3 branch already works and has feature-parity with master. I also cleaned up the interface a little. If you want, you can check it out here (also seen the screenshot on the right)
https://github.com/ochosi/xfce4-taskmanager/tree/gtk3_only
xfce4-notifyd 0.3.5
This long-awaited feature release finally brings the persistence support I have been working on for a while. So you can now enable a notification log and get your “away log” easily this way. There are even some options to only get the log for certain apps or only with “do not disturb” mode enabled.
Handy, right?
I have also – and this is maybe even more important – reworked the settings dialog towards something that I would hope could be the future direction of Xfce settings dialogs in general (or to the least open the discussion about it). Initially we settled on doing a 1:1 port from Gtk2 to Gtk3 to keep the disturbance and changes for users as small as possible. However, Gnome’s HIG (Human Interface Guidelines) that Xfce originally relied on – and still relies on – have changed dramatically and with that most Gtk+3 applications. So personally I think we should re-think the Xfce HIG and the new xfce4-notifyd settings dialog tries to be a best practice for some things. I’ll probably do a separate writeup of that though as this article is already long enough and there are still some releases to be announced.
Thunar 1.6.11
This maintenance release brings some important fixes that have made users complain a lot in the recent past – and understandably so. Thunar was fairly unstable with copy, rename, move and drag-and-drop operations and would simply crash. While a lot of people in the community did testing (and whining :)), several folks got to work, identified the underlying issue and submitted patches (that I pushed recently).
So hopefully this new release will provide a new baseline for testers and we can close many of the existing up- and downstream reports, many of which may be duplicates (at least in the sense that they were caused by the same pieces of code).
Greybird 3.22.1
This is mostly a maintenance release, which fixes a bug in Geary’s conversation view and improves the readability of OSDs.
However, it also features a new (round) style for GtkSwitches, which makes them take up less space. Sweet!
What’s next?
Currently I’ve been hacking a little on Xfce’s display dialog to add a feature I once rejected (mea culpa, live and learn…). At the time I was more optimistic about me – or anyone else for that matter – finding the time to implement proper colord support in Xfce, which means support for color profiles. Unfortunately we didn’t make it, so what I can offer now is the rebasing and improvement of a patch that was once written against Gtk2 and merge-ready for Gtk3 (including a small rework of the settings dialog as a whole) and an honest apology to Andreas Lampersberger, the author of the original patch.
There are still more things I’d like to fix in display dialog land, like scaled mirror mode by default if two displays don’t share any resolutions (which is generally supported by XRandR, but not implemented yet).
The other thing I’ll probably get back to now is the panel. The gtk3_css branch that I was last working at needs some revisiting and I hope that some of the recent activity on the IRC channel and mailing list will also lead to more people testing the code and helping out with the porting or just smaller patches even.
Anyway, there’s a lot to do and your help is much appreciated along the way! So get in touch with us if you feel like contributing.
Parole Media Player 0.9.0 Released
Development for the Xfce media player is back on! Well over a year since the last release, Parole 0.9.0 brings a fresh set of features and fixes. What’s New? New “mini mode”, activated from the right-click menu. New play and replay icons in the player content area. Clicking on these will play or replay your … Continue reading Parole Media Player 0.9.0 ReleasedClipman 1.4.1 released
While I haven’t been very active in terms of clipman lately I decided to push out a maintenance release in the 1.4 series nevertheless, as some useful patches had piled up in the master branch.
The probably single most important patch was contributed by Rinat and fixes the menu of clipman when used in a bottom-aligned panel. As I myself am using a panel at the top of my screen I didn’t notice this at all when releasing 1.4.0.
Other than that I improved the icon sizing for the panel plugin, which was another common – and understandable complaint – with 1.4.0. So the icon doesn’t remain at 16px, but scales in (meaningful) steps – very much like the power manager’s plugin.
Finally I decided to draw up a new application icon for clipman, as the old one was quite dusty already, low resolution and inconsistently looking at different sizes. Gaze at it in all its glory
Download
As always, wait patiently until your favorite distribution packages up clipman 1.4.1 or grab the tarball from here:
https://git.xfce.org/panel-plugins/xfce4-clipman-plugin/snapshot/xfce4-clipman-plugin-1.4.1.tar.bz2
Xfce Settings 4.13.0 Released
On the path to Xfce 4.14, many components have been ported to GTK+ 3 while many others are in progress. This is the first milestone in the Xfce Settings port. What’s New? This is a one-to-one port from GTK+ 2, no new features or fixes have been implemented at this stage. Translation Updates: Basque, Bulgarian, Chinese … Continue reading Xfce Settings 4.13.0 Releasedxfce4-notifyd 0.3.4 released – Do not disturb and per application settings
I’ve finally gotten round to doing a 0.3.4 release to get some of the features I’ve had ready for a while “out there”. On the way a lot of translation updates have trickled in and Christian Hesse supplied a patch to fix internal themes with Gtk+3.22.
Features:
As announced already a while ago, this release features a “Do not disturb” mode so you can suppress notification bubbles when in/convenient. So this should satisfy users who want to silence all notifications for a limited time-frame.
For users who want to suppress certain applications, they can now do so with a list of “known applications” – which gets populated over the life-time of xfce4-notifyd by all apps that send notifications.
If an application does not show up in this list it simply hasn’t sent a notification since you have upgraded to 0.3.4
Another – slightly hidden – feature is defining a screen for notification bubbles to appear. While by default notifications are shown on the screen where the mouse-pointer resides, you can now select the “primary monitor” – the “primary monitor” can be set globally e.g. through xfce4-display-settings – as default place for notification bubbles to end up on.
To enable this feature in xfce4-notifyd, add the (Boolean) property “/primary-monitor” to the xfce4-notifyd channel and set it to True.
In a future release this option may be moved to the settings dialog.
Bugfixes
The only real bugfix in this release makes sure that internal themes work with Gtk+3.22, which dropped support for the “font” css shorthand in favor of “font-weight”, “font-family” etc.
Outlook
Finally I’ll soon merge my “logging” branch – which brings the persistence feature to xfce4-notifyd – to master to give people a chance to test and translators some time to do their magic.