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.

18 Replies to “PCManFM file manager is ported to Qt?”

  1. Well, It’s would be cool if Razor-qt desktop environment use pcmanfm-qt as default file manager.

  2. finally a file browser for desktop qt, and several times I have sent signals of this project to the list razorqt, now there’s a decent file browser!

    i see u anunce in razorqt list.. i hope that qt devels on razorqt team at git hub can adopt or take some ideas from…

  3. Great job!

    I’ll say that the Qt devs have worked hard to try to make it as easy to interoperate pure-Qt code with GTK+ as possible, so it’s good to see that effort brought to good use.

    Keep LXDE rocking!

  4. Thanks; happy news for pure Qt users (Ubuntu minimal + Fluxbox here), if PCManFM-Qt too will draw desktop as it does in LXDE?

    I’m just a user, so excuse me if this is irrelevant or absurd: why do we need glib/gio/gvfs?

    I mount my network drive (in QTFM) via fstab (which is the easiest, safest and painless method in my experience). And usb drives via this command: sudo mount -t ext4 /dev/sdb1 /media/xxxx.

    On the other hand, as mentioned above udevil (and SpaceFM) offer many functionalities without many other dependencies, though I’m content with QTFM except for its inability to draw desktop.

  5. Got a CMake error:
    CMake Error at CMakeLists.txt:89 (add_executable):
    Cannot find source file:


    Am I missing something?

  6. “No, LXDE will NOT use Qt. Don’t panic!!”

    Why not? Even Ubuntu slowly comming to Qt world.

    QML is so sexy. Qt everywhere

Comments are closed.