As I got some little free time this week, I started to implement "custom actions" for pcmanfm/libfm.
I'm now trying to implement this spec proposed by the author of nautilus actions.

Though the code in my hard disk is far from usable, it's 50% completed now.
The new code is written in Vala and I found out how to blend vala and C code in libfm.
Previously I evaluated several C++ solutions/libraries and consider using C++ inside pcmanfm.
Now, I've made the decision. Let's use C/Vala and not introduce C++ now.
Vala is not perfect and might not be the best, but it works well enough.
After trying it for several days I'm satisfied. So I'll use it more in future LXDE development.

For the upcoming PCManFM 1.0, here is the current TODO list in my brain.
1. Finish basic custom actions (DES-EMA spec) support (required)
2. Try to support ~/Template folder, if possible (lower priority, may postponed)
3. Refactor job system and make it less buggy. Use UI delegate and reduce unnecessary signal emission. (required, may be done in vala + C)
4. Code cleanup. (required, may be done in vala + C)
5. Fix bugs (doing 3 and 4 might fix some existing bugs as well)

For the future:
1. Support different filename encoding for different directories, so gvfs-mounted remote filesystems can have non-UTF-8 encoding.
2. Add "Send To" to popup menu. (no xdg spec for this, may see how thunar do it)
3. Per-folder settings (using tdb to store)  (low priority, need to deterimine what to store for each folder)
4. Integrate other thumbnailers
5. Profiling and optimization, decrease unnecessary export symbols
6. Port to gtk 3
7. Use GtkApplication to handle IPC.