Xfce 4.14pre1 released!

  • May 19, 2019
  • Simon Steinbeiß
Good news everyone, finally the first pre-release of the long-awaited Xfce4.14 is here! \o/

Some highlights

Note: A lot has happened since Xfce 4.12 was released four years ago and this announcement only covers the changes that were included in the latest development releases dubbed as Xfce 4.14pre1. Also, we have noticed some confusion by people or news outlets that seem to mistake xfdesktop for the “Xfce Desktop Environment”¹. The comprehensive changelog will be provided with the Xfce 4.14 final release, but here go some select highlights that were released in the last week (chosen subjectively by the author). xfce4-session Most notably the so-called FailSafeSession (which is the default session for every user that doesn’t specifically save a session) has been fixed to use startup priority groups. Previously xfce4-session started all applications at once, leading to all kinds of race conditions (unthemed xfce4-panel, multiple instances of nm-applet etc.). Now xfce4-session launches only all applications per priority group at once, leading to a much more controlled session start. Several UI improvements have also landed as well as allowing users to trigger scripts on logout, restart, suspend etc. Finally it’s worth mentioning that we decided to drop the splash screens. xfwm4 Lots of improvements to vertical blanking support have been added, including a switch to GLX as default method. Furthermore the support of Gtk+3’s window scaling feature – aka HiDPI support – has received many fixes. Also, lots of other bugfixes (and a new default theme). xfce4-settings A new colord frontend has been added to xfce4-settings, meaning you can now manage the color profiles you created. Furthermore the display profile functionality has been improved and expanded, ensuring a more flicker- and frickle-free experience when changing display setups frequently. xfce4-panel Most notably a bug with (semi-)transparent background images was fixed. Other components Many of the other components have seen mostly bugfix releases, but in any case, we have to keep some stuff for the final announcement of Xfce 4.14, right? 🙂 Each of the core components (aka everything listed in the xfce group here) has very recently had a release that has been tagged as xfce-4.14pre1 (in addition to the normal release tag). As an example, for xfwm4 4.14pre1 corresponds to xfwm4-4.13.2. These additional tags shall help packagers who want to provide a testing environment with a quick and reliable way to get all core components in the correct versions. The full version table is available here (with hyperlinks to the respective git tags).

Where can you get it?

It’s probably worth mentioning that several major Linux distributions (Fedora, Xubuntu etc) have already decided to ship Xfce 4.13 components, so you can expect to find a lot of Xfce 4.14pre1 in their next releases. (For Xubuntu specifically the packages will show up in the experimental staging PPA also for the current stable release 19.04.) We will soon also provide a docker container (aka xfce-test) thanks to Florian with Xfce 4.14pre1 inside for all of those of you who want to play around and test without compromising their main systems. So stay tuned for ubuntu_19.04-xfce-4.14pre1 to show up on dockerhubPlease take these latest releases for a spin and report bugs! Also, submit patches if you can or support us morally 🙂 (Or through bountysource.)

Next steps

Our next very obvious step is Xfce 4.14pre2, which is scheduled for June 30, and after that the – optional, depending on overall stability – Xfce4.14pre3. Feel free to check out our roadmap page for more detailed infos! (Also, if you’re wondering what the pre-releases mean feel free to take a peek into our release model.)    
¹ The Xfce Desktop Environment is a collection of components of which xfdesktop is one. Xfdesktop is the 'desktop manager' and as such mostly responsible for setting a background image ("wallpaper") or color and drawing icons on the desktop.

Xubuntu 19.04: The Exhaustive Update

  • April 18, 2019
  • Sean Davis

Xubuntu 19.04 “Disco Dingo” is just around the corner. It features numerous updates and an updated snapshot of Xfce 4.14 development. If you want to see all the changes, you’ve come to the right place!

What’s New?

Click here for a complete list of package changes.

Changes to the Xubuntu Packageset

Orage and Quick Launcher, Gone!
  • Orage Calendar is no longer included. This decision comes following a team vote during the November community meeting.
  • Xfce Quick Launcher Plugin has been removed from the Debian and Ubuntu archives due to it no longer being supported.
AptURL Now Included!
Installing a package with AptURL.

AptURL provides an easy way to link to and install packages from the repositories. It supports most browsers and works without any additional configuration when installed. Anytime you see an apt:// link on the internet, just click and install. For example, why not install Super Tux Kart?


GIMP Returns!

It’s back! Not seen in Xubuntu since 15.04 “Vivid Vervet”, GIMP (GNU Image Manipulating Program), the powerful and feature-packed image editor has been added back to Xubuntu 19.04. While it has a bit of a learning curve, there’s a number of tutorials on gimp.org to get you up to speed.

LibreOffice Impress Has Finally Arrived!
Make great presentations in moments with LO Impress.

With the addition of LibreOffice Impress, the Xubuntu office suite is now complete! Impress makes it possible for users to quickly and easily produce and present high-quality presentations. It comes with a number of great templates already installed, and hundreds more at the LibreOffice Extensions website.


Updates to Existing Components

This list will quickly highlight some of the biggest changes in each new update.

Atril Document Viewer (1.20.2-1 to 1.20.3-1)
  • Support was added for RAR-compressed comic archives
  • Files are now saved in the same path they are opened from
Catfish File Search (1.4.6-1 to 1.4.7-1)
  • The classic layout returns to Xfce and Xubuntu.

    All documented URLs were replaced with HTTPS where possible

  • The window layout now respects the current desktop environment, displaying Client Side Decorations (CSD) for desktops that prefer them and traditional titlebar layouts for all other desktops (Xfce #14486)
  • Files can now be dragged from Catfish into other applications, copying or opening the file based on the target application (Xfce #14492)
  • A number of performance improvements were made to guarantee a snappier, more efficient search
elementary Xfce Icon Theme (0.13.1-1 to 0.13.1-1ubuntu1)
  • The icon theme now correctly inherits from the Adwaita icon theme, fixing some issues  with KDE applications (LP #1787989)
Exo (0.12.2-1 to 0.12.4-1)
  • Highlighting fixes are a welcome graphical improvement.

    The thumbnail directory was updated to align with other applications, reducing file duplication and speeding up the desktop (Xfce #14799)

  • Improved icon view highlighting with GTK 3, with items now highlighted in the current theme’s selection color (Xfce #14971)
  • Improved positioning of the icon view type-ahead search, the search overlay will now always be displayed on-screen (Xfce #14994)
Garcon (0.6.1-2 to 0.6.2-1)
  • All application menu items are now rendered at the same size (Xfce #13785)
  • Added support for the Keywords key in desktop entries (Xfce #10683)
  • Added support for composite XDG_CURRENT_DESKTOP variables (Xfce #14137)
Gigolo (0.4.2-2 to 0.4.91-0ubuntu1)
  • Ported to GTK 3! 🎉
  • Improved appearance of various dialogs
  • Improved sizing for the icon view
Greybird GTK Theme (3.22.9-0ubuntu1 to 3.22.10-1)
  • Even the print dialog looks better in Greybird!

    Improved appearance of the print dialog (GH #238) and Xfce Terminal’s tabs (GH #184)

  • Improved margins and padding for the Xfce Panel’s Tasklist plugin (GH #240)
  • Improved sizing of the Alt-Tab dialog (GH #224)
LibreOffice Elementary Style (1:6.1.2-0ubuntu1 to 1:6.2.2-0ubuntu2)

I feel like this update deserves a special mention. rizmut did an amazing job refreshing the elementary theme and making it consistent everywhere.

  • Blurry icons are blurry no more
  • Icons were updated to meet the elementary HIG
  • Icons were made consistent between sizes, and a 32px size variant was added
  • Numerous icons were added for various commands and menu options
  • Support for the Notebookbar layout was vastly improved
MATE Calculator (1.20.2-1 to 1.20.3-1)
  • Equations can now be entered using MathML
  • Equations are copied from the calculator as ASCII text
Mugshot (0.4.0-1 to 0.4.1-1)
  • Mugshot in the Setting Manager, where it belongs.

    Fixed loading of user-specified initials (LP #1574239)

  • Fixed TypeError crash at startup (LP #1443283)
  • Fixed FileNotFoundError crash when comparing profile images (LP #1771629)
  • Added Mugshot to the Xfce Settings Manager, Personal Settings (LP #1698626)
Parole Media Player (1.0.1-1build1 to 1.0.2-0ubuntu1)
  • Fixed various issues with disabling plugins (LP #1698540)
  • Fixed play button sensitivity items are added to playlist (Xfce #13724, LP #1705243)
Ristretto Image Viewer (0.8.3-1 to 0.8.4-0ubuntu1)
  • Fixed thumbnail generation (Xfce #13419)
  • Fixed memory leak related to thumbnail generation (Xfce #12034)
  • Fixed opening of PPM files (Xfce #14709)
  • Added file size to the status bar (Xfce #14791)
Thunar (1.8.1-1 to 1.8.4-1ubuntu1)
  • Skip the trash bin and delete files forever!

    Numerous crashes were fixed, making the file manager substantially more stable

  • Fixed USB drives being mounted with root permissions (Xfce #14719)
  • Fixed high CPU load when parent directories are not readable (Xfce #14900)
  • The spinner will no longer keep spinning after the user cancels an unmount action (Xfce #14539)
  • Fixed expansion of the “Create Document” submenu (LP #1822380)
  • A new preference was added to open new Thunar instances as tabs (Xfce #13314)
  • A new preference was added to enable the “Permanently Delete” option in the context menu (Xfce #13327)
  • Ctrl + = was added as an alternative accelerator for Zoom In (Xfce #14586)
  • Ctrl + PgUp / PgDown was added to switch tabs (Xfce #9585)
Thunar Archive Plugin (0.4.0-1 to 0.4.0-2)
  • Support was added for the Engrampa Archive Manager (Debian #911370)
Thunar Volume Manager (0.8.1-2build1 to 0.9.1-1)
  • Ported to GTK 3! 🎉
  • Added support for Blu-Ray media (Xfce #13297)
  • Automatic browsing of removable media now respects the default file manager (Xfce #9537)
  • Notifications are now transient, reducing notification log spam
Xfce Application Finder (4.12.0-2ubuntu3 to 4.13.2-1)
  • Without the category panel, things are much tidier!

    Ported to GTK 3! 🎉

  • Menu items without a name are no longer displayed (Xfce #14655)
  • Applications can now be launched by pressing Enter once (Xfce #14469)
  • The Application Finder will no longer crash when toggling bookmarks (Xfce #14134)
  • A new preference was added to hide the category panel (Xfce #14893)
  • Searches are now fuzzy (Xfce #10393)
  • Improved application sorting and keyboard navigation
Xfce Desktop (4.13.2-0ubuntu1 to 4.13.3-0ubuntu2)
  • Added orientation option for icon arrangement (Xfce #14979)
  • Added support for the RandR primary monitor (Xfce #10688)
  • Added integration for the AccountsService wallpaper
  • Fixed crash with monitor changes (Xfce #14609)
  • Fixed icon size in the “Open With” submenu (Xfce #14774)
Xfce Dictionary (0.8.1-0ubuntu1 to 0.8.2-1)
  • Crashes related to invalid URLs were resolved (Xfce #14786)
  • Web search links are only displayed when URLs are valid
  • The link tooltip is now escaped, fixing display issues
Xfce Notifications (0.4.2-0ubuntu3 to 0.4.3-1)
  • The fadeout preference is now correctly displayed (LP #1763674)
Xfce Panel (4.13.3-1ubuntu1 to 4.13.4-1ubuntu1)
  • Specify the maximum icon size for improved control.

    Added per-panel icon size preferences

  • Numerous improvements to plugin display and sizing issues
  • Added support for alternative menu editors, with MenuLibre as default (Xfce #11684)
  • Fixed issues with clicking panel items at the top or left of the screen (LP #1795135)
  • Fixed space reservation on the bottom and right of the screen (Xfce #14886)
  • Fixed crashes in the Directory Menu plugin and when removing certain plugins (Xfce #14418)
  • Fixed alignment of various plugin menus (Xfce #14803)
  • Fixed display of the binary clock
Xfce Screenshooter (1.9.3-1 to 1.9.5-1)
  • Added width and height to the region select overlay (Xfce #12664)
  • Fixed delay functionality in the panel plugin (Xfce #14604)
  • Fixed saving screenshots from the panel plugin (Xfce #15187)
  • Improved Imgur upload results dialog (Xfce #14973)
  • Improved support when XInput is not available (Xfce #15166)
  • Improved support for HiDPI displays
Xfce Session (4.12.1-3ubuntu4 to 4.12.1-6ubuntu1)
  • Replaced packaging recommendation on Xscreensaver with Light Locker (LP #1754872)
  • Added support for MATE Screensaver and Xfce Screensaver
Xfce Settings (4.13.4-1ubuntu1 to 4.13.4-1ubuntu2)
  • Fixed scrolling in the Settings Manager (LP #1653448)
Xfce System Load Plugin (1:1.2.1-0ubuntu1 to 1:1.2.2-1ubuntu1)
  • Reworked preferences dialog (still functionally the same)
  • The default update interval was updated to 0.5 seconds (Xfce #13536)
Xfce Task Manager (1.2.1-1 to 1.2.2-1)
  • Builds now default to GTK 3, with GTK 2 being removed in the next release
  • Improved UTF-8 normalization (Xfce #14172)
  • Fixed crash when closing processes (Xfce #14466)
Xfce Terminal ( to
  • Improved support for longer and more complex URLs
Xfce Weather Plugin (0.8.10-1build1 to 0.9.1-0ubuntu1)
  • Now with an adaptive forecast background!

    Port to GTK 3!

  • HTTPS is now used for all network connections (Xfce #13645)
  • The latest Sunrise API (version 2.0) is now used (Xfce #14972)
  • The displayed weather icon now respects the panel icon size
  • Improved forecast background with both dark and light themes
  • Improved spacing in the preference and forecast dialogs
Xfce Whisker Menu Plugin (2.2.1-1 to 2.3.1-1)
  • Fixed crash when the menu is reloaded
  • Fixed sidebar being wider than categories without icons
  • Added buttons for individual logout commands (Xfce #14639)
  • Added option to stay visible when focus is lost (Xfce #12240)
  • Improved spacing in the preferences dialog (Xfce #14683)
Xubuntu Artwork (18.10.3 to 19.04)
  • New desktop wallpaper for 19.04
  • New release-agnostic wallpaper for Plymouth (see below tweet for a video)

Xubuntu Default Settings (18.10.2 to 19.04.1)
  • Added F4 accelerator to open a Terminal in Thunar (LP #1793395)
  • Added Ctrl + Shift + F accelerator to open Catfish File Search from Thunar (LP #1793395)
  • Added Shift + Print accelerator to capture a region screenshot (LP #1812234)
  • Added GNOME/GTK 3 dconf keys for fonts (LP #1769774)
  • Added support for startup notifications in Thunar’s custom actions (LP #1794118)
  • The default inactivity mode is now set to Suspend on AC and Battery (LP #1768038)

Wrapping Up

You’re still here after all that, amazing! Excited about Xfce or Xubuntu, and want to help out? Share this post on your favorite social media and let everybody know how much you love our work. If you want to contribute (and anybody can, really!), check out the Xubuntu contributor documentation to learn how to get started.

Parole Media Player 1.0.2 Released

  • April 5, 2019
  • Sean Davis

A new (more) stable version of the Xfce media player is now available! Parole 1.0.2 fixes several bugs and improves packaged releases for distributions.

What’s New?

Bug fixes. So… many… fixes!

Build Fixes

  • Fixed compiler error -Wcast-function-type with GCC 8
  • Fixed Appstream validation by removing <em></em> tags from translations (Xfce #14260)
  • Resolved g_type_class_add_private warnings (Xfce #15014)


  • Fixed play button sensitivity items are added to playlist (Xfce #13724, LP #1705243)
  • Improved support for missing Gstreamer plugin installers (Xfce #14529)

Plugins Manager

  • Fixed crash when opening files after disabling plugins (LP #1698540)
  • Fixed disabling plugins enabled by distributions (e.g. MPRIS2 in Xubuntu)
  • Fixed display of active/inactive plugins when reopening the Plugins Manager

Translation Updates

Albanian, Arabic, Asturian, Basque, Belarusian, Bulgarian, Catalan, Chinese (China), Chinese (Taiwan), Croatian, Czech, Danish, Dutch, English (Australia), Finnish, French, Galician, German, Greek, Hebrew, Hungarian, Icelandic, Indonesian, Italian, Japanese, Kazakh, Korean, Lithuanian, Malay, Norwegian Bokmal, Occitan (post 1500), Polish, Portuguese, Portuguese (Brazil), Russian, Serbian, Slovak, Slovenian, Spanish, Swedish, Telugu, Thai, Turkish, Uighur, Ukrainian


Parole Media Player 1.0.2 will likely be included in Xubuntu 19.04 (we’ve uploaded it!). Other distributions will likely add it soon. If you can’t wait or want to install from source, download it below.

Source tarball (md5sha1sha256)

Xfce Screensaver 0.1.4 Released

  • March 22, 2019
  • Sean Davis

Featuring numerous performance improvements and an improved low-power resource footprint, Xfce Screensaver 0.1.4 continues to improve screen locking on Xfce.

What’s New?


  • Added support for screen locking when the system goes to sleep (Xfce #15001), via a shared preference with Xfce Power Manager. A new configuration option, “Lock Screen with System Sleep” was added to the Screensaver Preferences dialog to accommodate this.

Bug Fixes

  • Fixed password entry after forcefully grabbing input focus (Xfce #15042)


  • Faster screen locking when activated
  • Faster rendering of the authentication prompt
  • Improved handling of monitor (dis-)connection events
  • Improved screensaver and locking activation when idle
  • Improved laptop lid support: The lock screen is now displayed immediately when the laptop lid is open, instead of requiring a wake event from the keyboard or mouse
  • Improved low-power state: Screensavers are now suspended when monitors are powered off via DPMS (Debian #921835)

Translation Updates

Basque, Belarusian, Catalan, Czech, Danish, Galician, Lithuanian, Malay, Portuguese, Russian, Serbian, Spanish, Swedish


This is the second beta release of Xfce Screensaver. If you’re feeling adventurous, check it out  and report bugs so we can continue building an awesome screen locking tool for Xfce.

Source tarball (md5sha1sha256)

Color profile support for Xfce

  • February 19, 2019
  • Simon Steinbeiß

This year I had the chance of joining the FOSDEM conference again and as always it was great to meet up with other FLOSS enthusiasts.
It was also a good chance to meet with some Xfce folks (Harald, Florian) and sponsors (Volkan) and finally it was a good time to hack on stuff. This year I sat down with Florian in the evenings and invested some time into colord integration.

About colord

colord is – in short – a system service that enables you to manage, install and generate color profiles to accurately color manage input (webcams, scanners) and output devices (displays, printers). colord itself comes only with a commandline tool (colormgr), which is not great in terms of discoverability and usability. Both Gnome and KDE have already integrated colord support into both their settings dialogs and settings daemons, but in Xfce there was no easy way to achieve a color-managed session.

Status of the integration into Xfce
Xfce4 Color Profiles

In order to enable people to set up color management I decided to start with the frontend. In theory you can already get a working setup in Xfce by relying on cupsd (for printers), saned (for scanners) and xiccd (for displays) and handling colord through the colormgr commandline tool.

What we managed at FOSDEM was still pretty rough but I took a few days (read: nights) and polished the dialog so it became more and more user friendly and the final product can be seen in the screenshot above.

The dialog enables you to:

  • Enable/disable color management per device
  • Add or import color profiles per device
  • Enable a profile and set it as default

What it doesn’t do:

  • calibration – you still have to use e.g. displaycal to calibrate your display
  • show detailed profile information (like a horseshoe color diagram), you still have to use e.g. gcm-viewer for that

“So, that’s great – what else is missing?” I hear you ask. That’s quite simple: In short, we need to integrate the backend for colord into xfsettingsd so we don’t have to rely on xiccd anymore. While it seems to run stable here for me it’s yet another daemon, so xfsettingsd integration would definitely be a plus.
The cool thing about the frontend is however that everyone can already use it for printers and scanners, because those are natively supported already.

“When can I have this?” may be your reasonable follow-up question. I’m still ironing out small kinks (not too many hopefully) and I still have quite a bit of code cleanup ahead of me, but my current plan is to get this feature merged before we release Xfce 4.14, so the likelihood of it showing up in the next (or subsequent) development release of xfce4-settings is high. It then still depends on your Linux distribution whether the colord integration is included, because it’s a compile-time option (not every user/distro may want having to pull in colord, as it’s yet another service that’s running all the time).
Finally I’m not sure I’ll have time for the backend part in the very near future, so we’ll have to see about that. Luckily the dialog is useful even as it is.

In the meantime you can support me through friendly words, posting a bug bounty on colord backend integration or you can do some testing and provide me with feedback through checking out my branch, currently hosted on GitHub.

Catfish 1.4.7 Released

  • January 27, 2019
  • Sean Davis

With tighter desktop integration, improved performance, and fixes for both old and new bugs, Catfish 1.4.7 makes desktop search faster and easier than ever.

What’s New?


  • Cleaner, easier to read manpage contents
  • Information about the --path command-line flag was added to help and the manpage
    • --path=PATH Set the default search path
  • Updated AppStream components to align with the latest specification
  • Replaced project URLs with HTTPS where possible

Desktop Integration

  • The window layout now respects the current desktop (Xfce #14486)
    • A headerbar layout is used for Budgie, GNOME, and Pantheon
    • All other desktops use the traditional titlebar layout
    • This option can be overridden using the use-headerbar option
      in the Catfish configuration file (~/.config/catfish/catfish.rc)
  • Files can now be dragged into other applications (Xfce #14492)
    • For file managers, the files will usually be copied to that location
    • For other applications, the files will be opened by the application


  • Thumbnails will now only be generated when the thumbnail view is active (Xfce #14689)
  • Added /dev to list of standard excluded directories
    • Files within /dev can still be searched if explicitly selected by the user

Bug Fixes

  • Quoted search strings now allow for searching for specific phrases, instead of searching for actual quote characters (Xfce #14501)
  • The file context menu can now be opened multiple times (Xfce #14621)
  • Fix crash as startup when Catfish enables multi-file selection (LP #1753163)

Translation Updates

Albanian, Belarusian, Bulgarian, Catalan, Chinese (China), Chinese (Taiwan), Croatian, Czech, Danish, Dutch, English (Australia), French, Galician, German, Greek, Hebrew, Hungarian, Icelandic, Indonesian, Italian, Japanese, Korean, Lithuanian, Malay, Norwegian Nynorsk, Polish, Portuguese, Portuguese (Brazil), Russian, Serbian, Sinhala, Spanish, Swedish, Thai, Turkish, Ukrainian


Source tarball (md5sha1sha256)

Exo 0.12.4 Released

  • January 20, 2019
  • Sean Davis

Exo 0.12.4 is now available with an improved icon view, better icon rendering, and reduced disk usage. Come and get it!

What’s New?


  • Exo once again uses the same thumbnail directories as other applications (Xfce #14799), resulting in reduced disk usage.
    • Where everything else moved to ~/.cache/thumbnails quite some time ago, Exo continued to use ~/.thumbnails. Enjoy all the extra disk space!

Bug Fixes

  • ExoCellRendererIcon: Fix highlight rendering with GTK 3 (Xfce #14971)
  • ExoIconView: Fix search popup placement (Xfce #14994)
    • Additionally, a long-standing bug where the type-ahead search widget would be drawn partially off the screen for maximized windows, has been fixed!

Translation Updates

Belarusian, Catalan, Chinese (China), German, Hungarian, Icelandic, Italian, Kannada, Korean, Lithuanian, Malay, Portuguese, Portuguese (Brazil), Russian, Serbian, Slovak, Spanish, Thai


Source tarball (md5sha1sha256)


Xfce & Xubuntu 2018 Year In Review

  • January 2, 2019
  • Sean Davis

2018 has been a busy year for Xfce & Xubuntu. As we enter 2019 and continue to inch closer to Xfce 4.14, let’s look back at one of the busiest development years in a while.



Major Releases

  • MenuLibre 2.1.4 introduced some useful new features to the popular menu editor, including a Test Launcher button to try out a launcher before saving and the Parsing Errors dialog to easily identify menu configuration issues.

Other Notable Releases

The Parsing Errors dialog in MenuLibre simplifies menu cleanup and debugging.



Major Releases

  • Exo 0.12.0 was the first stable Xfce 4.14 release for the Xfce application development library. The new release included support for both GTK+ 2 and 3, and added Brave, Geary, Google Chrome, and Vivaldi to the natively supported application defaults.
  • MenuLibre 2.1.5 expanded it’s support of desktop environments. With this release, MenuLibre’s powerful menu editing options are available for Budgie, GNOME, KDE Plasma, LXDE, LXQt, MATE, Pantheon, Unity, and Xfce.

Other Notable Releases



Major Releases

  • MenuLibre 2.2.0 was finally released with an expansive list of improvements. Expanded desktop environment support, easy window identification, launcher testing, and parsing error reporting are just a few of the key improvements.
  • Parole Media Player 1.0.0 included playback performance updates, automatic video output selection, and improved podcast and live stream support. The new Mini Mode reduces the player to a small window that simultaneously stays out of the way and in reach.
  • Xfce PulseAudio Plugin 0.4.0 introduced device manage and MPRIS support to the audio management plugin. Available input and output devices can be selected from the plugin menu, immediately moving streams to the new device. MPRIS support adds media player controls for supported applications.
  • Xfce Settings 4.12.2, 4.12.3, and 4.13.2 improved multi-monitor support for both stable and development releases. The mouse cursor can now be shown with the press of a key, configurable with the Xfce Settings Manager.

Other Notable Releases

Xfce PulseAudio Plugin
The Xfce PulseAudio Plugin makes it easy to manage devices and play your jams.



Major Releases

  • Xubuntu 18.04 “Bionic Beaver”, an LTS release supported for 3 years, was released with 32-bit and 64-bit downloads available. This release included some new desktop applications: Some MATE components replaced their GNOME counterparts for improved desktop consistency; Xfce PulseAudio Plugin replaced the Sound Indicator; and the Xfce Notifications plugin, featuring a new Do Not Disturb mode, was added to the panel.

Other Notable Releases

Wallpaper Contest
The results of the Xubuntu 18.04 wallpaper contest were exceptional.


This was the first month I started published monthly news roundups. For an in-depth look at May’s development progress, check out the June Development Update.


Notable Releases


June Development Roundup

Major Releases

  • Thunar 1.8.0 and 1.8.1 were the first stable GTK+ 3 releases of the Xfce file manager, offering major usability and developer-friendly improvements. The pathbar now includes navigation buttons and a much tidier location selector. GObject Introspection for Thunar’s plugin library makes it possible to develop plugins in a number of programming languages.
  • Xfce Settings 4.12.4 and 4.13.4 featured improvements to display manufacturer recognition. The mappings were updated and various manufacturer names were simplified for better screen real estate. 4.13.4 introduced Xrandr display scaling, making it possible to scale the X display and all applications.

Other Notable Releases

A comparison of Thunar’s old and new pathbar. Image credit: Andre Miranda (see link to Thunar 1.8 release announcement)


July Development Roundup


Major Releases

  • Xubuntu 18.04.1, the first point release in the Bionic Beaver series, became available. At this time, users of a prior release should have received an upgrade notice. This release included several stability and performance improvements.
  • Xfwm 4.13.1 included a massive amount of updates, including a full port to GTK+ 3 and various fixes. This component is one of the critical pieces of the Xfce 4.14 release, so it’s great to see it humming along.

Other Notable Releases


August Development Roundup

Notable Releases


September & October Development Roundup


Notable Releases

Elementary Xfce’s Manila folder icons headline September’s development updates.


September & October Development Roundup


Major Releases

  • Xubuntu 18.10 “Cosmic Cuttlefish” featured a number of appearance updates and Xfce 4.14 components. Our icon theme, elementary-xfce, was updated with new manila folder icons and optimized, resulting in a smaller install size and improved performance. Many more GTK+ 3 Xfce applications were included.
  • Xfce Screensaver 0.1.0 (and 0.1.1) was announced as a new screen locker and screensaver for Xfce. This application is a port of MATE Screensaver, adapted to tightly integrate with the Xfce desktop. It shares theming with LightDM GTK+ Greeter to guarantee a consistent login and lock experience for users of both.
  • Xfce Settings 4.13.5 featured the new display profiles: saved multi-monitor layouts that are automatically applied when a new monitor configuration is detected. This works with multi-monitor layouts as well as switching a laptop to use only the external display when connected.

Other Notable Releases


Major Releases

  • Xfce Screensaver 0.1.3 is the first beta release of the new Xfce Screensaver. It features an expanded configuration dialog, better support for X11 Screensaver and XDG Screensaver, and fully documented functionality. With a focus on improved code quality, contributors should have a much easier time with the project going forward.

Other Notable Releases

Xfce Screensaver is compatible with all Xscreensaver themes.



  • Lubuntu and Xubuntu announced that they will no longer ship 32-bit ISOs for Ubuntu 19.04 and onwards. Ubuntu 18.04 will continue to be supported for the 3-year LTS support window.
  • André Miranda published The Ultimate Contributor’s Guide to Xfce, which is definitely a worthwhile read for new and existing contributors.

Notable Releases

Cheers to 2019

Look out for Xfce 4.14, we’re so close! Keep an eye out for more updates in the coming months.

New xfce4-panel development release

  • January 2, 2019
  • Simon Steinbeiß

What better way to start a new year than with a release? 🙂

xfce4-panel 4.13.4

After patching up xfce4-settings and finishing the “primary display” story with the patches against xfdesktop I decided to turn to the panel and continue making it 4.14-ready. Next stop: xfce4-panel 4.13.4.

New plugin icon size feature (plugin devs continue reading)

A few things had bugged me there for a while, for one the lack of consistent icon sizing. What the new “icon size” property I implemented gives you is a way to set one icon size per panel instance, so you can have e.g. a 60px panel with 48px icons, or a 32px panel with 16px icons (which gives the icons more padding/breathing room visually). If you set icon sizing to “automatic” (the default value) the panel will try to calculate meaningful sizes for your icons based on the panel size, as before.

Preferences Dialog with the new icon option
32px panel with 16px plugin icons





So while the panel’s API call xfce_panel_plugin_get_icon_size has been around for a while in the 4.13 cycle, I extended this now to also handle fixed sizes set by the user per panel instance.
I highly encourage every plugin developer/maintainer to use the API call mentioned above in their panel instead of custom size calculations, as it will lead to consistent sizing of all panel plugins per panel.
You can find examples of its usage here (panel core plugin) and here (external plugin).
The logic is always the same:
1) Connect to the size-changed signal
2) Get the icon size with xfce_panel_plugin_get_icon_size
3) Set the plugin’s icon with gtk_image_set_pixel_size

Correct menu positioning (again, plugin devs please read)

Luckily I’m not the only one currently hacking away on the panel. So another thing Alistair was fixing is the menu positioning on the panel’s core plugins. This is however a fix that all plugin developers/maintainers should pull in against their plugin. It leads to consistent positioning of the plugin menus in general and in overflow situations. You can find a good example for the correct usage of gtk_menu_popup_at_widget (which is used for showing plugin and other menus) here.

Tasklist fixes

After deciding to use the panel’s “Window Buttons” (aka “tasklist”) plugin more to test its stability I managed to fix a few bugs in window grouping. For instance the buttons of grouped windows now support the “active”, “minimized” and “urgent/blinking” states and are consequently more consistent with ungrouped buttons.
I also dug a little into libwnck – which we rely on for the app icons and the grouping in tasklist – and was able to get us high resolution application icons. While it worked fine for a single panel instance or for multiple tasklist instances with the same icon sizes, adding multiple tasklist plugins with different icon sizes led libwnck into a signal loop. Due to this unfortunate bug (or: mis-implementation) I had to revert this commit/feature. Ultimately the issue has to be resolved in libwnck – or alternatively we may come up with a separate tasklist-based plugin that relies on bamf instead of libwnck (future plan).

Small theming updates

Apart from the things mentioned above, I have also introduced some new CSS style classes which can be used by themes/themers.

To be more concrete, for orientation-specific theming (e.g. margins or paddings) you can now use .xfce4-panel.horizontal and .xfce4-panel.vertical.
For the tasklist I have introduced a group-buttons class which you can use to visually distinguish single-window buttons from group-buttons. This is useful as the behavior of those two buttons is different (group buttons pop up a menu with all associated windows, single-window buttons focus the window in question).

Lots of deprecation, bug fixes and translation updates

Finally, we also managed to fix a lot of bugs and deprecations in the code (thanks Alistair!).

Get it while it’s hot!

The Ultimate Contributor’s Guide to Xfce

  • December 3, 2018
  • André Miranda

Once in a while someone comes around and ask hey, I love Xfce and would like to contribute, but where do I start? How can I be of use? How can I implement a fancy new feature?, I have no doubt the answer is 42. Unfortunately, we don’t have a supercomputer (and millions of years) to distill a meaning from that one-size-fits-all answer, therefore to offer proper guidance, some questions should be asked first, e.g. What exactly do you want to improve? Do you have any programming skills? Besides programming, how else would you like to help? It’s been a long time since I’ve been planning to write a comprehensive guide, I hope this to be helpful to hitchhikers and new contributors. As any open source project, there are several ways to collaborate, everyone is welcome to help in any or many ways they are able, in this guide I’m going to explain and give hints for all contribution forms I can think of.


Our translators do an amazing work, most of major languages are constantly updated, I really appreciate their tirelessly effort. But don’t feel unmotivated, there is always room for improvement, especially if you speak any of the not so updated languages.

Xfce uses gettext which generates .po files from source code. You can view those files from any component repository, for example Thunar.

Fortunately, translators need not know terminal commands or any complex tool, since Xfce translations are handled in Transifex, a web-based translation platform. At that link you can see the overview of the current status of translations.

Once you sign up, you can ask to join a translation team. Be patient, it may take a while for a coordinator to approve your request. If you think your request is taking longer than it should, say a couple weeks, please poke us via the translation mailing list.

After joining a team, Transifex should be intuitive, there is even a comments section in case of doubts for a particular text to be translated, but developers are not notified. In this case I recommend using the mailing list or bug tracker.

For further details check the documentation page about translations.


If you have spare coins to donate, the official way to do so is via Xfce’s bountysource page. You can donate to the organization itself or put a reward of a specific bug. The money is more than welcome, but we are not actively making use, hence I hint donors to place rewards for things they expect (bug fixes, features, etc). Even if you make a hefty donation, we would be very thankful, but this is an open source project 100% run by volunteers, no one is implicitly obliged to act upon your requests.

Bug Reporting / Testing

This one could be of your interest if you are an enthusiast eager for new features and not afraid of rough edges. Xfce versioning is quite simple, even versions (e.g. 4.12) are stable and odd ones (e.g. 4.13) are development versions. Since development cycles are very long (2~4 years), at some point the development version gets good enough to be used (read “tested”) on a daily basis. Unsurprisingly development version users may find regressions (new bugs) and getting reports for them is invaluable to developers, this ensures the stable release will be more solid for more people when it comes out.

The bug tracker is where those bug reports live. Please try your best to look if a bug has already been reported and please try to be as more descriptive as possible, but avoid verbosity. Mozilla has a nice guide on how to write a bug report.

Have some Programming/QA/DevOps knowledge? Please, please, please lend a hand to xfce-test, we need automated tests really bad.


Are you more into design and CSS is a breeze for you? Good news, gtk3 themes are completely written in CSS, you can even use a preprocessor such as Sass. Truth must be said, since the introduction of gtk 3.0 (2011, I guess) there were several compatibility breaks, many theme authors got fed up and abandoned their projects. Fortunately things are more stable since 3.20 (I guess).

Our friends of Project Shimmer have being doing an amazing job, their theme Greybird is shipped on Xubuntu and is now Xfce’s reference theme. Xfce is also supposed to look good under Adwaita (gtk’s default theme). By the way, until 4.12 (gtk2) Xfce ships several classic themes, unfortunately they had to be archived because they need to be rewritten for gtk3.

Finally, as a theme author what are your contribution options? I would say: contribute to Greybird, port/rewrite the classic themes to gtk3, improve Xfce support in other themes out there or roll your own theme!

Since you made this far in this section, perhaps you have web design skills, if so, improvements to our website are also welcome. You may want to file reports for the www.xfce.org project. Just keep in mind that Xfce’s philosophy is about minimalism.


Our wiki and docs sites contain many helpful pages, but one doesn’t need to browse much to notice that some have outdated information. Think you can help us with that? Please write a draft or two and share them via the mailing list, we may then give you permissions to edit those pages.

Xfce documentation has some hints on how to write docs.


This is the most effective way to help, we are always looking for new people to improve, fix, hack and eventually maintain Xfce’s components. You don’t have to be a ninja, just the basic knowledge of a programming language, preferably C, a bit of git and most importantly the desire to learn. Some people are scared of C, because they heard it’s too low level… Fear not, the language is quite simple. Yes, there are pitfalls and gotchas, as any other language, but the experience is improved by gtk’s and glib’s utility functions and abstractions.

First things first, Xfce’s modular architecture feature several components, some are part of its core and some are optional apps or panel plugins. Take some time to read their description. You might wonder what the heck is a window manager? or I never heard of freedesktop.org or d-bus, are they edible?. Search for them, I can’t possibly explain everything there is to know about Linux desktops in a single blog post.

In my opinion the best way to get started with code is to scratch your own itch, you know, deal with that annoying bug or a behavior that could be improved. The rule of thumb is to browse Xfce’s Bugzilla and look for that bug or report it in case no one noticed the problem until now. Then go to Xfce’s repository browser, clone the repository for the component you are about to hack, fix the problem and attach a patch to the bug report. That’s easy for me to say, isn’t it? I’m going to prove you it is not that hard, let’s go step by step.

Building from source

Suppose we are interested in hacking xfce4-appfinder, the first thing we need to do is to build and be able to run that component:

git clone git://git.xfce.org/xfce/xfce4-appfinder
cd xfce4-appfinder
./autogen.sh --prefix=/usr --enable-debug

The ./autogen.sh command will fail if you never compiled a Xfce component before, we need to have installed development packages for dependencies, unfortunately it’s hard to give instructions since package names vary between distributions. In most cases it helps a lot to not panic and read the error message. For example:

checking for exo-2 >= 0.12.0... not found
*** The required package exo-2 was not found on your system.

For Debian/Ubuntu sudo apt install libexo-2-dev does the trick. Actually on Debian/Ubuntu sudo apt build-dep [package-name] installs all build dependencies of the given package, xfce4-appfinder in our case. On Arch Linux, there is no *-dev packages, if you have Xfce installed, you will need to figure out fewer dependencies packages to install and you can also check the makedepends variable from the PKGBUILD of the component you are interested.

Moving on, the --prefix=/usr option is useful if you want to install the component on your system (with sudo make install), it means to replace the version provided by the system package manager. Be aware that daily usage of development builds is cool because of unreleased fixes and new features, but it’s also risky because new bugs may appear or due incompatibilities with stable components.

The --enable-debug allows interesting things for development such as debugging with gdb, more detailed backtraces and compiling warnings. Keep in mind that binaries with debug symbols are larger and possibly slower, often unnoticeable.

After make, the binary is ready to run, however xfce4-appfinder as some other Xfce components run in background (daemon mode), in this case we need to stop its process with xfce4-appfinder -q. Hint: this specific component has a preference to disable daemon mode (Preferences -> General -> Keep running instance in the background), so I recommend disabling it while in “write code-compile-run” loop. Now from the root of the repository, run src/xfce4-appfinder. Congratulations, you have just built your first component! If you don’t believe me, change the window title “Application Finder” (appfinder-window.c) to something else, build and run again with make && src/xfce4-appfinder.

This was just a quick summary of how to build Xfce components, the wiki has a much more detailed explanation.

Smashing bugs

Now to make things interesting let’s fix a bug, but this time I need you to clone and build Mousepad, Xfce’s text editor. The steps are very much the same, except that Mousepad does not run in background which makes things easier. Go on, clone and build it. Hopefully you have successfully built Mousepad by now, if not read carefully error messages spilled on the terminal, if you can’t figure them out searching those messages on the web could be helpful. If you tried really hard and nothing worked, ask for guidance at #xfce-dev, stay online and be patient, try one more time if no one replies after one day.

Now you are able to execute Mousepad with mousepad/mousepad from the source folder, we are ready to smash a real bug. Obviously I wouldn’t be so reckless to let a bug live just for beginners fix it and never push the fix, the bug I have in mind was fixed centuries ago (2014), actually it was one of my first contributed patches. With the magic of git, we can travel back to mousepad-0.3.0 (gtk2!) and smash that bug once again. Before we go back, clean the source folder with make distclean, now you are good to run git checkout mousepad-0.3.0. Git will complain that “you are in ‘detached HEAD’ state”, you might know what that means, otherwise ignore it for now and remember to learn git later, because you know, having a detached head is not comfortable at all ;)

Once again configure and build Mousepad (./autogen.sh && make) and fix the bug… Oh, but I haven’t even told what is broken :) Allow me: execute Mousepad, type “hello world”, save the file somewhere and close Mousepad. Now run Mousepad again and open that file, type some gibberish and choose File -> Revert, it will ask for confirmation, press “Revert” and it says it failed to revert even though it worked. Weird, isn’t it?

So where do we get started? Have a look at the terminal, it says g_error_free: assertion 'error != NULL' failed, looks fishy. Open Mousepad source folder in your favorite editor. I hope the editor you are using features a text search on all files, because to locate the suspect part of code, we need to search for the error message from the dialog, in this case “Failed to reload the document.”. Ignore .po files, they are used only for translations. If you are still following me this far, you might have found the message at mousepad-window.c:3983 and look! Just below that line there is g_error_free which was mentioned by that terminal message, so we must be close, my dear Watson. Notice how that chunk of code is executed only if succeed is FALSE, and succeed is the result of mousepad_file_reload function call. Hmmm, let’s go into that function (mousepad-file.c:859), take your time to read it.

As you might have reckoned (or not, no worries), it starts with state checking, checks if the file still exists, clears a buffer and, the most important part, reloads the file, the result goes into a boolean also called succeed. At this point, you may want to use gdb to debug this code, but I won’t teach you this, there lots of tutorials out there. The poor’s man debug is printf, I use it a lot, though some claim it’s a bad practice. Anyway, try it, put g_print ("succeed is %s\n", result ? "TRUE" : "FALSE"); in the line after succeed gets assigned (mousepad-file.c:886), then build and try to reproduce the bug, messages on terminal may help you understand what is happening. Ok, indeed succeed is FALSE at that point, so let’s dive into mousepad_file_open, then read it.

Found anything interesting? No? Go back and check its signature. Still no? What about its return type? Yes, it returns gint which is assigned to a gboolean variable! How is that even possible? If you know a bit C, you probably know any non-zero number yields TRUE when evaluated in a boolean expression, consequently 0 yields FALSE. If you read that function code, you saw that it returns non-zero when something went wrong (a common pattern in C programs and libraries). By now it should be clear that this is the opposite of what we expect for succeed, 0 means no error but when converted to boolean results in FALSE. So what is the fix? Well, try to figure it out yourself, you have all the information needed :)

Once you have your solution, compare it to the one provided in Bug #10636.

Sharing Code

Now you know how to build components and smash bugs, browse Xfce’s bug tracker and try to fix something that looks easy. If you have an idea on how to fix or some code that seems to work but you are not so sure, don’t be afraid to ask at #xfce-dev. Once you have a good enough solution, attach a patch (see git commit & git format-patch) to the bug report. Wait a few days, if you get no answer, poke us at #xfce-dev or use the Xfce4-dev mailing list. After some merged patches, you may ask commit rights and join the dev club, yay!

By the way, (I hope that) soon we will move our infra to GitLab, so merge requests will be the new standard way to share code, much more convenient IMHO.


  • Use whatever text editor/IDE you are comfortable with.
  • The terminal is your friend, get used to it, then you will love it.
  • Now that almost all components are gtk3-based, GtkInspector is an invaluable tool.
  • Offline documentation browser such as Devhelp and Zeal are faster and more convenient than using a web browser.
  • Glade is a WYSIWYG interface editor, many Xfce components have their ui created with it.
  • D-Feet is useful when dealing with D-Bus.
  • Tricky bugs will need advanced tools to find their cause, in this case gdb and valgrind are good companions.
  • Xorg’s utilities, for instance xev and xprop.


  • General user questions? Xfce’s forum and #xfce at IRC/Freenode are the best place to get help.
  • Translation stuff? Xfce-i18n mailing list.
  • Stuck with anything related to code? Xfce4-dev mailing list. Besides that #xfce-dev at IRC/Freenode is where devs hang out. All of us have a real life (I think) and live across different time zones, so once again, be patient and stay online.


I wasn’t sure where to tackle this subject, so here it is: maintainers are awesome folks, but don’t take this role too seriously, it creates frustration in many ways.

Let me explain: someone is trying to figure out how to fix a bug or introduce a new feature, but may think that effort is a waste of time since the maintainer should be much more experienced and able to implement it in the blink of an eye. The bug is not updated for a long time so users get tired of waiting (it’s an absurd, this bug is from 2008!), probably the maintainers are lazy, stupid or both. It doesn’t take long to maintainers also get tired and abandon development for their own reasons. Finally the component is considered unmaintained which greatly reduces the chances of contributions (patches) make their way into releases.

Don’t take that as a rant or as “shut up and let’s work at our own pace”. What I mean is that newcomers are more than welcome to propose solutions and send patches, do not expect a dedicated maintainer for the every component (people come and go). Be proactive, take part, propose, ask, learn, disagree, fix, explain, help and eventually you become a maintainer :)

That’s it, I hope this guide covers as much as possible contribution forms as possible, even at the penalty of its length. And remember, this is a volunteer-based project not a job so have fun!