All posts by Jérôme Guelfucci

Xfce4 Settings hacking

I started to hack a bit on Xfce4 Settings: I have a branch ready for review implementing a clipboard manager and started a branch to improve Xfce4 Settings Editor.

The clipboard manager allows the system to have a persistent clipboard. When you copy some text or an image and close the application where you copied it, the contents of the clipboard is no longer lost. I was able to add this functionality quickly thanks to the amazing work of Mike Massonnet in Xfce4 Clipman Plugin.

The settings editor is now able to edit existing properties, to rename them, to reset them to their default value or to remove them if there is no default value. It also monitors the channels to detect property changes and to update the view automatically and remembers the window geometry so that you don't have to resize the windows and the columns every time. I still need to work on adding new properties and improving the channel stuff: adding, removing or renaming channels should be possible in the future.

Help needed for Xfce4 Screenshooter documentation

The current git version of Xfce4 Screenshooter is starting to be in a pretty good shape and I think it is almost ready for a new release. Unfortunately, a lot of things changed during this release cycle so the documentation needs a major refactoring. I need your help for this !

I think this is a good opportunity for someone willing to start contributing to Xfce, I'm ready to provide all the help needed to build the git version of Xfce4 Screenshooter, to explain how the documentation system works and to cooperate to get the documentation ready as soon as possible. I see this as an opportunity to attract new contributors (this task does not require any particular skills, just time, will and a good English level).

Feel free to contact me by mail.

New features of xfce4-notifyd

Back in June, I started to hack on xfce4-notifyd to implement a smart notification placement. In the current stable version, if more two notifications are triggered at the same time, the new ones overlap with the old ones which makes them unreadable. My goal was to shift the notifications so that they would be all visible at the same time.

This turned out to be far more complicated than I had first thought, particularly because of multiple monitors support, but this has finally been committed to the master branch of xfce4-notifyd. I would like to thank Brian who took a lot of time to review my patch and gave me a lot of kicks advises on how to make things work or improve them.

Today, Brian also implemented a cool feature: it is now possible to display gauges (progress bars) or only an icon in a notification, as with notify-osd. Steve Dodier already took advantage of that in xfce4-volumed, which allows you to change the volume using the volume keys of your keyboard and displays beautiful notifications.

Xfce4 Volumed

The following screen cast shows how things look currently:

New features of xfce4-notifyd (Jérôme Guelfucci) from Xfce on Vimeo.

As you can see notifications are displayed using columns. If a side of the screen is reached, another column is started. That way, you never get two overlapping notifications (well, in fact this can happen if the screen is full of notifications, but that shouldn't happen very often!). If you have several monitors, notifications are displayed on the active one. If a monitor is unplugged, notifications are moved to the other one.

Thunar tips and tricks

I was recently reminded of two Thunar features which are useful and not very well known.

First, Thunar comes by default with a fancy mouse gesture feature. The mouse gestures must be done with a middle click, if you don't have one, it can often be emulated by pressing the left and the right button at the same time. To perform a mouse gesture, press the middle button without releasing it, move the mouse in the direction required by the gesture and release the button. The following gestures are available:

  • Moving the mouse up moves to the parent directory of the current directory.
  • Moving the mouse down reloads the current folder.
  • Moving the mouse left moves to the previous directory in the browsing history.
  • Moving the mouse right moves to the next directory in the browsing history..

The second tip I recently discovered is that drag and dropping a file using the right mouse button opens a contextual menu which provides the following options: copy here, move here and link here. Link here is particularly cool, I used to launch a terminal and use ln... To use this right click drag and drop, you need to be faster than the traditional contextual menu: right click on the file/folder and start moving your mouse before the normal contextual pops up; once you release your mouse, the über-cool context menu will pop up.

Xfce4 Screenshooter 1.6.0

I'm pleased to announce the 1.6.0 release of Xfce4 Screenshooter. This cycle was quite long because I had some exams and the number of implemented features is bigger than usual.

First, there is a brand new interface based on a review by Fabrice Viale : it is simpler and more polished. This new interface also allows you to choose whether the mouse cursor should be captured and whether the application should be closed after taking the screenshot. Here is a screenshot of the application:

Xfce4 Screenshooter 1.6.0 interface

It is now possible to save screenshots on any remote share supported by GVFS: ftp, sftp, samba... You just need to connect to a share or a distant computer using Gigolo or gvfs-connect and it will be displayed in the sidebar of the save dialog.

This release also features the possibility to host screenshots online, on ZimageZ. You just need to set up an account on their website and you will then be able to upload your screenshots to ZimageZ directly from Xfce4 Screenshooter. This feature is still a bit experimental and will be improved in the next release: for example accents in the user name or password cause a fail during the upload...

There are also some other small changes which can be found in the changelog. I would like to thank Jannis Pohlmann (for his help concerning jobs and threads), Fabrice Viale (for his interface review), Mike Massonnet and Enrico Tröger (for their various patches) ,Yves-Alexis Perez and Ali Abdallah (for the testing and the suggestions). And last but not least, the translation team who did a great job by adding and updating a lot of translations of the application and of the documentation.

Recently in Xfce

This is just a short post with what happened recently in Xfce.

  • Xfce4 Power Manager 0.8.0 was released. I did not have time yet to test it, but it looks promising.
  • Jannis Pohlmann and Stephan Arts drafted a release process for Xfce. It still needs to be discussed, but it already looks great. Expect some progress on this once the migration to git is done.
  • Brian Tarricone worked a lot on the git migration, things are almost settled.
  • Jannis Pohlmann is making some awesome progress on Thunar. He developped Tumbler, a D-Bus thumbnailing service based on the thumbnail management D-Bus specification, to replace the old thumbnailing code. A video shows how his first experimental implementation behaves.
  • Nick Schermer made a lot of progress on Xfce4 Panel, fixing and lot of bugs and improving performances. His code can be found on git.xfce.org.
  • Stephan Arts has improved the git version of Ristretto a lot: it works, supports basic printing and features a new improved user interface.
  • It seems that Colin Leroy will be the maintainer of Xfce4 Weather Plugin from now on. Welcome!
  • Mike Massonnet rewrote Xfce4 Notes Plugin in Vala, and improved and lot of things at the same time. Expect a release soon.
  • Ali Abdallah, the developper of Xfce4 Power Manager, added a new Goodie to the SVN. Parole is a Gstreamer based media player. I did not test it, so I cannot say more...

Xfce4 Screenshooter news

I was quite busy during the last few days but I found some time to work on Xfce4 Screenshooter. It is now able to upload screenshots to ZimageZ, a free image hosting solution. At the beginning, I was planning to use Imageshack, but the API they provide is not easy to use. Meanwhile, I discovered ZimageZ which I really like: it provides galeries, a clean interface and an XML-RPC API which allowed me to implement the image upload stuff almost easily.

At the moment, things are a bit raw. A(n ugly) dialog pops up asking for your ZimageZ user name and login, an image title and a comment; once you validate it, the upload starts. No progress indication yet. I still need to make everything look more beautiful, to improve the error handling and to document this stuff!

I won't implement any other new features for this release. From now on, I'll focus on getting things usable and good looking.

Xfce developers, Jannis Pohlmann

Jannis PohlmannJannis Pohlmann, one of the core Xfce developers, kindly accepted to answer my questions on his involvement in the Xfce project and his plans for Xfce 4.8. Thank you for the time you gave Jannis!

Could you please introduce yourself?

I'm Jannis, an almost 24-year-old computer science student living in Lübeck, Germany. Besides hacking on Xfce in my free time, I am 100% addicted to music. I listen to Black and Doom/Stoner/Post Metal mostly and played drums and bass in two local bands until recently. I also had a darkroom and created b/w photographs for a few years but somehow I've lost touch with that.

Anyway, summer lurks around the corner and that means a lot of sunny days with barbecues and relaxing at the beach ahead of us. Enjoying those days could also be seen as some kind of hobby ... maybe ;)

What is your role in the Xfce community?

I'm the current maintainer or co-maintainer of several core components of Xfce, like the mixer, the menu library and Thunar. I also administrate the Goodies project which is our platform for Xfce extensions and programs which are not part of the core desktop. Not to forget, I am the so-called Xubuntu Xfce4 Liaison which means that I'm the main mediator between Xubuntu and Xfce.

What did you work on for Xfce 4.6?

Way too much ;) . I wrote libxfce4menu, a library for displaying installed applications in a structured fashion, based on the freedesktop.org menu specification. I also rewrote the mixer on top of GStreamer and the application finder, based on a re-design Jasper Huijsmans (the former panel maintainer) came up with. Last but not least, I did a lot of work on the 4.6 settings dialogs, mainly xfwm4 and the keyboard stuff, and of course fixed bugs where I could.

What do you think about Xfce 4.6? Are you pleased with? What do you think could be improved?

4.6 is a great release in many ways. Several neglected components have been rewritten, improved or replaced. With xfconf and the improved session manager Xfce as a platform has definitely gained potential. We've received a lot of overwhelming feedback and press for the release.

I see 4.6 more as an intermediate release though. By introducing xfconf and libxfce4menu we've changed a lot of the underlying infrastructure. So much in fact that the release was delayed for more than six months. As a result, there is a number of very young features in 4.6 which give the release a bit of an experimental touch. A lot of things need more polishing. And, as usual, there are also a few issues for which we don't have a solution yet.

What are you going to work on for Xfce 4.8?

Keeping in mind that our goal is to have a shorter release cycle (we've had ~10 months in mind but we haven't really made any plans yet ... that's just typical for us ...), I'll mostly concentrate on Thunar and libxfce4menu. I am currently migrating Thunar to GIO which I'll hopefully finish in time for 4.8. libxfce4menu is lacking menu merging support in 4.6 and is undergoing a redesign at the moment. Last but not least, the mixer panel plugin needs some love.

What is GIO and what is the aim of porting Thunar to GIO?

GIO is a filesystem abstraction layer. It provides a high-level API to accessing directories, files and volumes. It's been part of GLib since 2.16. Thunar has something similar called ThunarVFS which is in some aspects less powerful than GIO.

Migrating Thunar to GIO has several reasons: ThunarVFS is an additional library in the stack while GIO is part of GLib already. Dropping ThunarVFS means less maintainance work for us. And, as already mentioned, GIO has features that ThunarVFS does not have.

The personal goal I have is to write a so called "Studienarbeit" about the migration. That's an around 30 pages thesis students have to write at German universities as a preparation for the real diploma thesis (which is an equivalent to the master's thesis). The process can be followed on my wiki.

What features will this bring for users?

GIO itself will not bring any new features. However, GIO can be extended easily to support virtual/remote filesystems. There is a set of extensions called GVfs which supports SFTP, HTTP, FTP, SMB and other protocols. Unfortunately it has a few GNOME dependencies, so it is up to you to decide whether you want to use it. People could as well write their own extension for whatever protocol they need - if they want to.

What will be the influence on performances?

I know that many people fear bloat. GIO is already being used by GTK+, so by dropping ThunarVFS we can probably make Thunar even lighter than it is today. As opposed to ThunarVFS, GIO has an asynchronous API which may help in making Thunar more responsive in some situations.

Do you plan to implement new features apart from the GIO related ones?

Definitely. Not too many though. Migrating Thunar to GIO is a lot of work on its own already. My plans include a shared progress dialog for file operations, a more user-friendly side pane, inspired by this post from Hylke and a user-friendly way to manage "places" (such as remote locations).

What does GDesktopmenu (previously known as libxfce4menu) provide?

libxfce4menu (or gdesktopmenu in the future) is an implementation of the freedesktop.org menu specification. It provides applications with an easy way to list all installed applications in a structured manner, like for the applications menu.

What are your plans for Xfce 4.8? Will users be able to customize their menu easily?

Yes. As mentioned earlier libxfce4menu in 4.6 lacks support for menu merging which is an essential feature required by menu editors. In 4.8 this will be fully supported.

I'm now working together with Travis Watkins from Alacarte who has expressed interest in the 4.8 API I presented on my blog a while ago. We're planning to add a nice menu editing API to the library so that it'll be *very* easy to write menu editors. It looks like Alacarte will be the first editor to use it.

Any others future plans ? Something else to add ?

Yeah. Thanks again to everyone who donated money for our Buildbot server! We're currently waiting for the missing components to arrive so that we can set it up. Samuel Verstraete, together with the Coreboot team, did a great job in getting hardware virtualization to work on the server, so we'll hopefully see Buildbot running very soon.

Edit: sorry, I found forgotten a question which I just added.