LXAppearance gets a rewrite, too!

While the rewrite of PCManFM/libfm is still in progress, another parts of LXDE requires more attention. So this week I did a rewrite/redesign for LXAppearance. The most notable change is the new cursor theme support. Let’s see some screenshots:

The main screen demostrating current GTK+ theme didn’t change much.

The icon theme choosing page now becomes cleaner.

Guess what? The cursor theme configuration tool with nice preview. This is the most expected feature and now it’s added.

A new option was added to change toolbar icon size. Even more, it’s now possible to turn off the annoying and disturbing GUI event sounds made by libcanberra-gtk-module with LXAppearance.

LXAppearance is the tool let you change the look and feels of gtk+ programs. However, it can work very well outside LXDE. If LXDE is detected, it uses lxde’s Xsettings daemon. Otherwise, it writes the configurations to ~/.gtkrc-2.0. So it’s fully usable outside LXDE. Among the all non-gnome dependent gtk+ theme changer, LXAppearance may become the most feature-rich one. Please stay tuned.

For those who are brave, here is the code:


Direct UDisks support for libfm and pcmanfm is finished!

I just finished direct udisks support for libfm and pcmanfm. After days of testing, it works well. So it’s now merged back t master branch and will be available in next release of libfm.  Please help test it.
Nothing in pcmanfm need to be changed. You only need to update libfm and it works. Adventurous users are encouraged to try out the latest libfm in git repository.

In addition, I add a config value in libfm.conf.
Adding show_internal_volumes=1 to [config] section of
~/.config/libfm/libfm.conf can let you show system internal volumes in
side panes even when udisks asks us to hide them.
This option is available in config file, but this might not be provided in UI later since it’s a geek’s option.

Now, gvfs is not needed for volume management. Only dbus and udisks are needed and it’s quite lightweight.
However, due to known limitations of glib/gio/gvfs, the gvfs module doing volume management still gets loaded and there is no clean way to stop it being loaded. However, if later we finished our own gvfs implementation, you won’t need gnome gvfs and this will be solved.

P.S.: If you get the error message “GLib-GIO-WARNING **: Extension point gio-native-volume-monitor registered multiple times”, that means you’re using a glib with too old version. Earlier versions of glib causes this bug. It’s fixed in newer glib versions.


Volume Management Without Gvfs is Possible Now!

As I stated in previous posts, I’m doing direct UDisks support for PCManFM/Libfm. Now I have some things to show.

It now correctly supports different kinds of devices without GVFS. However, LUCKS devices are not supported because I don’t know how to do it. In addition, I’m not sure if LVM or RAID are displayed in proper way because I don’t have them for testing, either, but mostly used storage media for desktop PC Or laptop should be well-supported.

Here is a design decision to made: Should we show partitions reported as “system internal” by UDisks? UDisks consider them internal to the system and asks us to hide these partitions. So that’s why you don’t see some partitions in GVFS since it follows the direction of UDisks. Last release of libfm/pcmanfm does this, too. Should we ignore that and display all partitions just like what the old 0.5.x series do?

Anyway, volume management without gvfs now works. Hooray!
Now, it’s time to clear the bugs on the bug tracker. Later, when there is spare time, it’s also possible to move udisks of PCManFM to a separate gio module, so all gio-using programs, even XFCE, can use it without gnome.

Special thanks to Mihai Militaru who made some donation to the development of PCManFM and libfm through my PayPal account. If you want to help the development, too, feel free to donate via PayPal. My account is pcman.tw@gmail.com.


LXDE on Nexus One phone

Sven Killig has managed to run LXDE on his Nexus One in a USB host mode. He has made a video showing how all kinds of devices plugged in – including a web cam, keyboards, screens and a display link unit.

Connect USB devices to your Nexus One


Hackaday: http://hackaday.com/2010/06/08/nexus-one-as-usb-host/

Sven Killig: http://sven.killig.de/android/N1/2.2/usb_host/

Recent LXDE Progress

Here are some updates on recent LXDE progress.

The file manager has much exciting progress:

  1. I”m now doing “direct” udisks support without gvfs or gnome-disk-utility. So far the progress is good and it already can listed volumes. Mounting and unmounting should be available soon. This enables volume management totally without gvfs. You can test the source code in libfm udisks branch.
  2. The current code and translations are in good shape and only some minor glitches need to be fixed.
  3. Naveen Kumar Molleti is working on adding custom actions to pcmanfm as a Google SoC project.
  4. Shae Smittle is working on adding file searching utility as a Google SoC project, but there is no usable code yet.
  5. Although 1.0 release is planned, I’m seriously considering adding udisks supoprt to 1.0. Gvfs actually causes various problems and its behavior is not predictable sometimes. In addition, it’s not configurable and the volume management interface it provides is quite limited. Moreover mounting options cannot be changed. Using our own implementation can make things easier and we don’t need to check if the problems are caused by gvfs or our code since we used our own code only. But this only will happen when udisks branch is prooved to be working well and stable. If it’s buggy, it won’t be in 1.0.
  6. During hackweek of openSuSE community, Josef Reidinger and I started a new project named gfusevfs. It’s a new lightweight gvfs replacement based on fuse. It’s not fully working now, but the basic skeleton is already done. This will work both in LXDE and XFCE. So, we’ll be gnome-free soon.

Image viewer:

  1. Kuleshov Alexander is now working on a rewrite of GPicView as a Google SoC project
  2. The rewrite will utilize new stuff in glib/gio and try to work with multi-threading
  3. We may try to integrate screenshot utility with this


  1. Marty Jack is now doing some major improvement, but the release date is unknown.

Please help testing and give some feedbacks or even better, patches.

Have trouble with PCManFM 0.9.x? Read this FAQ!

After the release of the so-called RC1 (actually 0.9.7) of PCManFM, I got some bug reports, which are not bugs.
Please, read this document before you submitting a bug report. At least packagers need to read this before packaging. Otherwise you’ll end up with something that never works. This guide is very complete and it contains information enough for you to build it from source, get it running or packaged, and even to debug it.

Most of the problems are caused by missing or malfunction of gvfs caused by incorrect installation or configuration.

Here is a list the most important FAQs:

  1. Voume mounting or trash is not supported? Make sure you have properly working gvfs. Read the preceding guide to fix it.
  2. Why use gvfs? I think this is well explained in my previous post. I say it again. Gvfs is optional. PCManFM will work well without gvfs. So stop spreading the FUD that pcmanfm becomes gnome-dependent.
  3. Where is tree view? I want to redesign this and get it implemented in a better way. Due to some limitations of UNIX-like systems, file monitoring can be a problem and it’s a limited system resource. So to keep the dir tree up-to-date and sync with the filesystem, it requires very careful design. I need to think it more and get it well done for the rewrite. So in 1.0, tree view is temporarily removed. In 1.x series I’ll add it again when it’s ready.
  4. What? PCManFM2 doesn’t manage desktop? It sucks!  Yes, it does but you forgot RTFM. The command line used to lauch desktop manager is now: pcmanfm –desktop
  5. How to access the configuration dialog of desktop manager? Did the author forget this? It sucks. Well, I thought about this for some time and found it better to leave desktop configuration in a separate dialog specifically designed for desktop management options. Now to access it, right click on pcmanfm managed desktop and choose “Properties”, just like what you do in Windows. Or, you can use this command (can be called from openbox menu, for example): pcmanfm –desktop-pref
  6. If you see no icons, make sure  you have a properly installed freedesktop.org compliant icon theme. If you don’t know which to use, download lxde-icon-theme from http://sf.net/projects/lxde/
  7. If you still see no icons, and you’re using gtk+ ourside any desktop environment, make sure you specified “gtk-icon-theme-name” in ~/.gtkrc or just use tools like lxappearance to set a proper icon theme.

If you find someone in some internet forum who asked questions about PCManFM, please be kind and refer him/her to this guide. If any errors are found in this guide or you think any important topic is not covered, feel free to mail me and I’ll update it.


LXDE translation status

During last year we had biweekly updates to the translation community and it was a great help but as our components got more and more completed in regards to translations and the supported languages we dropped those reports to do more targeted messages.

Last week we updated all files and repositories to make the source files match the source codes more properly. At that time I added the numbers to a spread sheet outlining the complete support trend and health state of our translations.

Get the spread sheet above or read my summary at the LXDE development mailing list. At the moment we do not have a working mailing list for translations but we are working on that to get it solved.

PCManFM 0.9.7 + libfm 0.1.12 (RC1)

The new file manager, next generation of PCManFM, is now entering RC1 (release candidate for 1.0).
Most of the bugs in pcmanfm bug tracker are cleared and the stability is quite good. As we are now in feature-freeze, no new features are added and this is a major bug fix release.
Please get it heavily tested. If you want to help the development, you can:

  1. Help the test and debugging. Please read this guide.
  2. Promotion, spread the word, and show off to your colleagues
  3. Help answering questions in our forum or forums of some Linux distros or just redirect them to this detailed guide.
  4. Donation is welcomed. My PayPal account is: pcman.tw@gmail.com

No new screenshot this time as this is a bug-fix release without any change in UI.
Some major changes are:

  1. The binary name is now changed back to pcmanfm since it’s stable enough for daily use and is ready to replace the old pcmanfm 0.5.x series. So packagers please be careful when packaging this since it cannot be co-exist with the old pcmanfm from now on.
  2. Resize of desktop when screen resolution is changed now works
  3. Mid-click on side-pane now open folders in new tabs
  4. Better compatibility with gtk+ 3
  5. Use “tab-new” icon for new tab tool button rather than “gtk-new”
  6. Fix several seg faults
  7. Fix some missing icons for desktop entry files (*.desktop)
  8. Merge directory contents correctly when pasting to an existing folders
  9. Fix auto-scroll during drag and drop in folder view
  10. Translation updates

The goal is to make a stable 1.0 release with production quality as soon as possible and deprecate 0.5 series. We’re in feature-freeze period so there won’t be new features added until 1.0 is released. My current plan is to make 2 ~ 3 RC release before the final stable release. I’ll make RC release when I fix most of the solvable problems. However, I won’t decide when to release final stable version myself this time.
I leave the decision regarding to when to make a 1.0 stable release to our package maintainers for ArchLinux, Debian, Fedora, SuSE, and Ubuntu and our translation coordinator. If all of them agree that the file manager is stable enough and there should be a 1.0 stable release, we can make one. If the quality doesn’t meet the requirements for a stable release, then I’ll keep fixing it until it’s suitable for production use.
This should ensure enough quality assurance for this major component of LXDE.

P.S. The new PCManFM can manage the desktop icons, but you need to start it with “pcmanfm –desktop”

Thank you all

Updated roadmap of new PCManFM

As the development of next generation PCManFM continues, there are many questions from the community and there is even some FUD regarding to comparison with previous 0.5 series. It’s time to have an more clear and updated roadmap.

  1. Volume management: Currently, gvfs is used for this, but this dependency is temporary and it will be changed later and be based on Udisks + udev directly if possible.  Then we won’t have to rely on gvfs for volume management. The reasons to use gvfs now are as follows:
    1. Recently upstream author of HAL has dropped it and it will be removed from Linux later.
    2. Its author develops udisks and is going to replace HAL with it.
    3. Udisks force the use of PolicyKit, which is one of the new emerging standards
    4. Much has been changed greatly in Linux desktop and old programs are broken due to these incompatible changes done by upstream maintainers. PCManFM is one of the victims of these incompabilities.
    5. There are at least four to five different ways to manage volumes on Linux and all of them are not compatible with each other. So, no matter what you do, you cannot get a properly working program without quite a lot of workarounds. Since “they” are the ones breaking the compatibility, they should be responsible for fixing this mess. So, let them do the dirty work.

    Now, there is a stable release of udisks. So maybe it’s time to write udisks-based volume management, but I’m not sure if doing this will cause incompatibility with programs relying on gvfs.

  2. File searching utility needs to be re-design and rewritten, too.
    1. The old one is actually broken and there are many limitations and bugs.
    2. With the new design of libfm, there exists much more possibilities then before so it deserves a rewrite.
    3. Remote files should be supported as well
    4. Before I come up with a good enough new design, there won’t be file searching utility in PCManFM, but I promise there will be once later.
  3. Desktop icon management
    1. After dnd problems are all fixed, I’ll try to finish custom icon sizes. (make icons movable)
    2. Need to find a good way to add some icons to the desktop, such as “Computer”, “Documents”, and mounted volumes.
  4. Thumbnails
    1. Support external thumbnailers. This is quite easy, but the problem is, for gnome, thumbnailers are registered in gconf. If we want to read thumbnailers from gnome, this can drag in gconf dependencies, which I don’t like. However, asking the users to manually add thumbnailers is a very poor UI design and this is against the principle of PCManFM. So I need to think more.
  5. Customization
    1. Columns shown in detailed list view should allow customization
    2. More UI customization options arranged in a logical way
    3. Support adding custom tools to “Tool” menu.
  6. Custom actions
    1. Adding custom actions to the file manager is one of the LXDE Google SoC 2010 project. Let’s see if the student will make it.
  7. May try to add two-pane support if I have enough spare time.
  8. May try to make PCManFM work properly in multi-monitor environments if someone can donate a second monitor to me or donate money to me to get a new monitor.
  9. Loadable plugins. This is planned, but how to implement this still more thoughts.

Here are current plans for PCManFM 2.0. I’ll post updates of the progress on this blog. Please stay tunned and don’t spread FUD. This will be a great manager once finished but since it’s half-done at this moment, don’t expect too much.