PCManFM file manager is ported to Qt?

No, LXDE will NOT use Qt. Don’t panic!!
It’s just one of my side projects and was an experiment to test how good libfm and Qt are. Since the core library of PCManFM, libfm, is carefully separated from its Gtk+ UI code, theoratically it can be ported to other GUI toolkits. To give it  a test, I played with Qt recently. The result is quite satisfactory and impressive. I must admit that working with Qt is quite pleasant.

Everybody loves screenshots so here is one.

At first glance, this looks like the original GTK+ version very much. Because I choose “Cleanlook” Qt style, it highly resembles Gtk+ “Clearlooks” theme. Besides, I load the “elementary” icon theme. Though it matches the looks and feels of typical Gnome/Gtk+ programs, this is an 100% pure Qt program.

The most interesting and unique part of the PCManFM Qt port are:

  1. No KDE dependency. Really, it’s a lightweight pure Qt4 program.
  2. Almost as fast as the original Gtk+ version. I have not taken any time to do optimization yet. It’s possible to make it faster after optimization.
  3. Uses Libfm + glib/gio, and supports gvfs. So you can mount remote filesystems.
  4. Source code is clean and short, written in C++.
  5. Desktop independent, do not depend on any specific desktop environment (although it uses glib/gio/gvfs, it does not require Gnome)
  6. Built with cmake. No more autotools.
  7. Later, when the APIs becomes stable, I’ll make it two parts, PCManFM main binary and libfm-Qt, which can be used in other pure Qt programs.

For decades, people from the Gnome/Gtk+ camp and the KDE/Qt camp don’t work each other sometimes. Each of them likes to reinvent the wheel and create functionally equivalent programs with different toolkits. The fact is, technology from both camps can be mixed very well. Qt-based UI sit on top of low level platform APIs from Gnome stack is another good option.

PCManFM Qt, when finished, will be a perfect mix of Gnome libraries + Qt-based UI.  I think it’s a good news for who like Qt but don’t want to install KDE.

The source code is available here:
git clone git://pcmanfm.git.sourceforge.net/gitroot/pcmanfm/libfm-qt

It’s still a work in progress and many parts don’t work yet.
If you’re a Qt developer and is interested in helping the development, feel free to contact me.

P.S. Special thanks to KDE developers Aaron Seigo and Will Stephenson. I met them last year during an open source event “COSCUP 2012” in Taipei, Taiwan. They gave some instructions about how to use Qt. Then, I finished the basic skeleton of this port at that night.