Infrastructure change:

Repost from mailing list.

“It has come to this.

tldr; will cease to exist in 12 hours time is offline now. new server and new URL will be available later.

At Wednesday the hosting for the current Pootle setup will end. (Thanks a bunch to RSN, the student union in Blekinge, Sweden and the Swedish University Network!)

I will turn off the services later tonight The services are offline and I did salvage the data and hopefully have stuff running tonight or something. It really depends on what obstacles I might hit during the ride. Yes I should have done this months ago but other stuff came across…

The URL for the Pootle instance will change, no doubt. Hopefully I can get a landing page at the old URL pointing out the change but I am not sure about that yet.”


PCManFM 1.0.1 and libfm 1.0.1!


Main changes in PCManFM 1.0.1 (since 1.0).

  • Implemented basic multi-monitor support.
  • Implemented toggling fullscreen mode via ‘F11’ key press.
  • Added tab ‘Layout’ into Preferences dialog.
  • Few lesser bugfixes.


Main changes in libfm 1.0.1 (since 1.0)

  • Fixed slowness on loading and changing of very large folders.
  • FmFolderView is converted into generic interface. Former FmFolderView is renamed into FmStandardView so APIs specific to it have changed their names and arguments. Old APIs left for compatibility reasons. New FmFolderView interface now contains methods to handle popups, keyboard and mouse gestures, including Cut/Copy/Paste operations.
  • Fixed compatibility with systems that are a bit old so have neither decent Vala compiler nor GLib 2.26.
  • Few lesser bugfixes

pcmanfm-1.0.1.tar.gz, sha1: 36331ce628f6b81d64d5a8a677133555c9fbf042
libfm-1.0.1.tar.gz, sha1: 0df9084328e42b946085b4eb183078db117ada1c

Changelog for PCManFM without merges and translation commits
* d185c65 – Revert “Add a GtkHBox and GtkVBox inside right pane so later we can add other side bars as needed.” Put this in a feature branch “fileter” first.
* cc34028 – Add a GtkHBox and GtkVBox inside right pane so later we can add other side bars as needed.
* 6a9e415 – Fixed invalid sysconfdir when –prefix=/usr
* c78fba0 – Added workaround for ExoTreeView failure (see #3559255)
* 8ee5c1a – Fixed rubberbanding on desktop (closes #3561482).
* 1d8245a – Fixed forgotten reverting GIO encoding to NULL.
* 994d032 – Fixed error message on invalid IPC char a bit.
* d3de46e – removed validation of chars in IPC to allow invalid encodings to pass
* e0854cd – Fixed SIGSEGV on startup.
* e982b2e – Fixed memory leak in previous commit.
* 7f2da9d – Fixed single inst. client socket handler (closes #3527770).
* 2e20cdf – Added tab ‘Layout’ into preferences dialog.
* d0a8cb5 – Added one more hidden setting into pref dialog for future.
* 549b998 – Simplified configuration tests for more easy compiler arguments.
* 330e7e6 – Added few hidden elements into preferences dialog for future fixes.
* 6aec080 – Added test for library containig round(); thanks to Charles A Edwards.
* 96ad982 – Enforced dialog for inserted media to be above (closes #3558066).
* c4e5298 – Fix: cur_desktop was set to 0 always on startup.
* d5cbf01 – Added ‘Fullscreen’ toggle into main menu.
* 4cb6570 – Fixed shortcut creation when path contains spaces.
* 18aab7b – Added missing config.h inclusions.
* 6f316e3 – Fixed invalid detection of fm_default_dnd_dest_targets.
* f04f910 – Revert “Added configurable timeout for non-immediate config saving.”
* 3b53a34 – Added configurable timeout for non-immediate config saving.
* 1bba6c9 – Set version to 1.0.1~beta.
* 012b296 – Fixed invalid cast in init_entry().
* 98666c0 – Fixed that has been made invalid by glade.
* cdcefd9 – Fixed invalid callback on_notebook_switch_page().
* 6e23f80 – Updated DnD to latest changes in libfm API.
* 244f9d2 – Fixed compatibility with GLib < 2.26.
* 3310f26 – Updated NEWS file.
* b53b7b3 – Implemented toggling fullscreen by ‘F11’.
* 8b85c2d – Fixed usage of SI units (closes #2964811).
* a0ac0f2 – Added config option for usage of SI units (closes #2964811).
* 3b5a3d9 – Fix for #3138596: Does not remeber window dimension after reboot
* a56a9de – Fix for #3411306: Open a folder on the wrong desktop.
* c65ba57 – Implemented multi-monitor support.

Changelog for libfm without merges and translation commits
* c867b0c – Fix incorrect marshaller used in “FmFolderView::sel-changed” signal.
* 9156919 – Fixed Cut->Paste again, now it tested to work cross-FM too.
* bb86682 – Fixed ‘Empty trash’ which ceased to work (see #3567440).
* 0730a52 – One more little fix on the same subject.
* 7d2f156 – A little doc fix.
* b7a0e2d – Macro G_DEPRECATED isn’t available on GLib < 2.32.
* db3bef2 – Don’t show folder as locked if its mode isn’t known.
* b072443 – Fix: icon_locked_folder shouldn’t be on non-folders (closes #3567440).
* a094f45 – Fix a typo – rename fm_dir_dist_job_get_files() to fm_dir_list_job_get_files().
* 7af850c – Fixed crash in FmPathEntry completion.
* 2011f3c – Optimized incorrect fm_folder_view_bounce_action() API.
* 717cc43 – Fixed validation and docs on fm_folder_view_set_active().
* 73dcdcc – Fixed Gtk-Critical via locks on GtkAccelGroup.
* 7403731 – Added fm_folder_view_set_active API – it’s required by pcmanfm…
* 082fc02 – Clipboard should not be cleared if it owned by others.
* 0d66c91 – Fix: absent focus may mean it’s FmDesktop so added check for it.
* 01fbb2d – Added one more ret=FALSE in the copy job, just in case.
* f844141 – Fixed losing the files in subdir on move errors (closes #3565792).
* d960cb1 – Added API fm_folder_view_unselect_all().
* 2692005 – Fixed invalid Cut->Paste clipboard behavior.
* 9adb644 – Added new API fm_clipboard_have_files().
* 359fe35 – ABI age bump before release.
* fbda66a – Added two config options for usage in 1.0.2.
* fcb3d11 – Fixed possible problem in src/job/fm-file-ops-job-change-attr.c.
* 74fd13a – Added few TODO comments.
* dbe546d – Corrected on_object_finalize() in docs for FmDndSrc and FmDndDest.
* fadb3f8 – Added commented out code for future optimizations.
* 158dc0b – A little documentation update for FmDndDest again.
* 3fb0d17 – GDK_ACTION_DEFAULT should not be used – fixed.
* 8b939de – Fixed crash in fm_dnd_dest_files_dropped() with empty selection.
* 6bddb07 – Added missing #include into src/glib-compat.h
* 8ae6863 – Little documentation update on FmDndDest APIs.
* 2c016b1 – Added macro fm_dnd_src_add_targets() for convenience.
* 77e9981 – Added 2 new APIs: fm_dnd_dest_new_with_handlers and fm_dnd_dest_add_targets.
* 2418f5a – Updated documentation on FmDndSrc for 1.0.1 changes.
* 611cf8d – Workaround on empty drag files list (possibly fixes #3559255:2).
* df13784 – A little optimization on “GTK_TREE_MODEL_ROW” atom usage.
* 155289f – Fixed adding bookmark by DnD to Places (was broken since 0.1.99).
* 20ea186 – If Vala requested but not found configure should fail (closes #3561872).
* 6ea762b – Fixed escaping of URI on launch (closes #3556518).
* 06aa1b6 – Fix broken C++ compatibility.
* daf102b – Fixed renaming fm-folder-exo-view.c in the po/
* 4dabf8b – Fixed unportable macros in src/Makefile.
* 16a4b87 – Defaulting to copy if glib failed to determine drag target filesystem.
* 55a9544 – Fixed crash on symlink creation error.
* 1b03711 – Fixed crash in fm_app_menu_view_new() if “XDG_MENU_PREFIX” unset.
* 76eafac – Fixed invalid setting of single click in Detailed List View mode.
* fa46327 – Fix for #3559831: Right-click menu does not work with libfm git
* b1ad856 – Added condition on g_thread_init() which is deprecated in GLib >= 2.32.
* 94eae3e – Replaced deprecating AC_CHECK_LIB with AC_SEARCH_LIBS.
* 837ec6b – FmFolderExoView renamed into FmStandardView.
* 05c9fde – Removed glib-compat.h and gtk-compat.h from docs as it ought to be.
* e1e6ae2 – Added few translateable strings for future additions.
* 845103d – Added placeholder ‘CustomSortOps’ into src/gtk/fm-folder-view.c
* bd0c2da – automake 1.12: AM_PROG_AR should be before any of AC_
* 7252afd – Fixed signals accumulators and therefore descriptions.
* ff00280 – Fixed docs incompatibility with –disable-actions.
* 93d661c – Replaced g_list_free_full() which was missed in old GLib.
* 5e2c86f – Fix: g_app_info_set_as_last_used_for_type() requires GLib >= 2.27.6
* f5dd721 – quickfix for #3557764: pcmanfm-1.0 segfault in fm_file_info_is_image
* aa5566d – Fixed bad selection on right-click menu due to delayed “sel-changed” signal.
* 4eedb21 – Added Shift+F10 as menu shortcut (since we set it instead of signal).
* 67eb91f – Supressed error message when directory dragged few pixels so dropped on itself.
* a73208d – Added missing API into libfm-sections.txt file.
* 434daa9 – Fixed two settings on config save.
* 32ffc78 – Fixed slow thumbnails update (closes #3557361).
* 20e1fb6 – Implemented dropping files on desktop entry (closes #3448566).
* ceaf3ed – Set version to 1.0.1~beta.
* cb336a3 – Implemented wrapping of file name in view (closes #3436276, #3532037).
* eca482e – Fix for #3300797: Delete prompt isn’t on the first layer
* 364ea79 – Fixed leftover problems when compiled with gtk3; only src/gtk/exo/* left.
* 2fb14e3 – Fix for #3409834: Removable directory not removed if no x flag
* eb889f5 – Fixed custom application adding by full path (closes #3107434).
* 423f2c7 – Fixed user custom commandline app creation (closes #3100063).
* 9817947 – Choosen application should be set first (closes #3550143).
* aed49ac – Added minimal support for unacessible folders (closes #1893449).
* a286c4a – Fixed incorrect model unsetting in FmFolderExoView.
* 4ddf8a6 – Fix in fm_folder_view_item_clicked() without popup initialized.
* 41c81ef – Fixed wrong compatibility define.
* 1dd4c38 – Fixed wrong ShowHidden initialization in popup.
* 8b18344 – Fixed marshalling of GError for GLib < 2.26.
* 49eb765 – Added compatibility with GLib 2.22.
* 9943cbb – Adaptations for Gtk+3.0. src/gtk/exo/* still needs reworking.
* 2ea6fcf – Replaced deprecated Gtk APIs.
* 98824b4 – Fixed compilation with –disable-actions.
* 92c1cf4 – Fix on compatibility of FM_FOLDER_EXO_VIEW_MODE_IS_VALID.
* 586b02e – Fixed libfm/fm-gtk.h include file.
* 088ddcf – More fixes on developer documentation.
* 43efa7b – Updated NEWS file.
* d2f0cd5 – Disabled check for mmap since mmap isn’t used anymore.
* 04853a5 – Developers documentation update.
* 5463ad5 – Lowered glib requirement to 2.24 if built with –disable-actions.
* 9675a38 – Commented out GMODULE tests as it isn’t used currently.
* f053378 – Removed GLIB_CFLAGS and GLIB_LIBS since those never used really.
* 73399de – Added ‘backup_as_hidden’ config statement (closes #3416724).
* c889b57 – Added ‘force_startup_notify’ config statement (closes #3297912).
* cb702c7 – Fixed usage of SI units (closes #2964811).
* 7a98042 – Added option –disable-actions for systems with too old Vala.
* 10f2891 – Reverted back unwanted reset_selected() as it slows down things.
* 38f96b3 – (missed)Fix for slow deleting by “sel-update” by limiting updates speed.
* d3a3928 – Converted FmFolderView into generic interface.
* 5b44373 – Rename in preparation to FmFolderView convertation.
* 1250708 – Fix for bugs #3008979 and #3526139; rubber-banding on rows should be disabled.
* 924d2d1 – Fix for slow deleting by “sel-update” by limiting updates speed.
* 906b5c8 – Implemented hash for very large folders.
* c8d81c1 – Fix freeze on loading very large dir.

Call for review: PCManFM is almost ready for a new release

I’m here to call for a review for PCManFM as the source code in git isin quite good shape now.Many known bugs are fixed and I did much refactor to the tabbedbrowsing part and merge changes in tab-rework3 branch with master.Please help test and update translations in various distros. If things are ok, I propose a new release.

Some major changes:

  1. “Reload Folder” is available now in View menu.
  2. “Directory Tree” mode is available in side pane.
  3. Filesystem size is updated in a more correctly and efficient way.
  4. Many bugs causing crashes are fixed.
  5. Shows a warning icon in toolbar when running as “root”.
  6. Supports menu keys.

Minor changes:

  1. Fixed some memory leaks.
  2. ~ and / to move focus to location bar
  3. Improve internal structure of PCManFM.
  4. Code cleanup.

A new release as 0.9.9 is required. Please help review and test the code in git.Thanks a lot!

Directory tree is now available in PCManFM!

Everybody loves screenshot!

Directory tree in side pane was a feature in PCManFM 0.5 series, but it’s not yet implemented in the latest rewrite. Yesterday, I finished the rewrite for directory tree and added it to PCManFM. This new feature is now availble in git repository. I also added a drop-down menu to side pane to swtich between different kind of side panes. Currently there are only “Places” and “Directory Tree”. Later I plan to add more modes.

I also reworked the tabbed browsing part yesterday. Due to the limitations of GTK+, I did some dirty hacks for it to reduce resource usage. This comes at the price of less readable source code, though. After the tab-browsing rework, I fixed an old bug causing incorrect and outdated info shown in status bar so now the info in status bar is up-to-date most of the times.  Later, I’ll try to add a “Reload” button so remote filesystems without notifications on changes can be refreshed manually.

To test the latest features, grab the source code from git.

You have to install libfm first:
This is the supporting library required by PCManFM.

Then install pcmanfm. Notice that the new feature is in "tab-rework" branch, not in "master"

If you don’t know how to compile libfm/pcmanfm from source code, read this:

Now, it’s time to fix the remaining bugs in the bug tracker and keep heading for 1.0 release.

Finally, Directory Tree is Back!

A picture is worth a thousand words.

Directory tree demo

The directory tree is not yet added to PCManFM itself. This screenshot is the demo program included in libfm. A very primitive directory tree is finished. Later I’ll add this to PCManFM.

Many people are curious about this feature since it used to be available in old PCManFM 0.5 series, but why it’s not implemented in the new series?

  1. We want a better one which supports asynchronous I/O and does not block the UI.
  2. It supports gio. So later we may add remote filesystem supports to it.
  3. It might run faster than the old one
  4. The source code is cleaner and more well-structured
  5. The “<Empty>” items look weird and less elegant, but detecting whether a folder contains sub folders and keeping all the nodes updated in real time requires much more resources since you have monitor all of them one by one. On Linux it’s not an issue since inotify supports monioring of tons of files. On other POSIX systems, this can potentially use up all file descriptors available to a process. So, finally I do it like this way.

Please, stay tuned. I’ll put this in PCManFM soon.

Status Update for the File Manager

OK, it’s time to tell the world what we’re doing to the file manager Here is a status report for PCManFM.

  1. Several bugs are fixed, and others are not. I’m currently working on fixing them.
  2. Directory tree will be available from side pane again in next release. I have finished 50% of the feature and hope that I can make it in the following weeks
  3. Tabs now takes less space when showing filenames that are too long.
  4. The location bar is re-written. Now auto-completion for directory paths works more correctly.
  5. I have implemented a simple button-style path bar recently, but to add it to PCManFM, some changes to the UI are needed so this might not be available yet in the next release.
  6. Integration with lxshortcut is planned. So you can create new application shortcut on the desktop easier, but this is not yet implemented.
  7. Status messages are now more correct and human readable.
  8. Some code cleanup was done to make the source code more readable to future contributors.
  9. While fixing bugs of PCManFM, I found a severe bug in udisks regarding to CD-ROM polling. This bug leaves the filesystem on CD-ROM mounted even after the media has been removed via pressing physical eject button on the device. I made a patch for it, but upstream authors did not accept the patch. They came up with a new solution utilizing the latest in-kernel polling provided by Linux kernel and did some fixes themselves. So in the near future, this bug will be resolved anyways.

So these are basically what I’m doing on the file manager recently. Please help if you can. Thanks a lot.

Transifex is out

Effective immediately we have stopped using for translating LXDE components. All translators and prospective translators inside the LXDE project have been informed about this move via the platform itself. We have removed the possibility to submit strings in the tool but unfortunately for people who have submitted stirngs there in spite of the earlier warnings we can not recover the strings. If you have done work and the file appears more complete in Tx than in git/pootle please contact the lxde-i18n mailinglist to get advice on how to proceed.

It’s sad to be forced down this path but as with every decision there is a rollback option. If the time changes we might consider to use again in the future. This is however way out of schedule by now.

Thanks everyone using Tx to do translations for LXDE – it’s been valuable and we hope you will switch to use Pootle instead (as upload service or as a online tool).

Thank you Transifex developers, we do know you a great guys doing a great deal of work but the connection between the projects just weren’t there for the time being. If you make changes that we might benefit from we love to here from you again!

Will LXDE continue to use

We’ve dropped transifex by now.


The recent weeks have been interesting in the world of online translation management as Transifex got promoted to 1.0. As we are one of the project using the hosted service at since almost a year now it was with both joy and disappointment we read the changelog. While bringing many nice features and awesome changes it also dropped the key advantage feature and the real killer, direct integration with VCS (in our case git at

For the time being we can not guarantee that changes made in LXDE translation files at will be integrated in the main LXDE component code. The general rule of thumb is to not use to do updates to LXDE components until further notice because the risk of changes being in conflict it might make your changes corrupt. We still have the Pootle server running and as long as nothing changes there it is a good way of doing the translations. For a limited time period we will also accept changes via e-mail, send a message to the LXDE i18n mailinglist to get this sorted out for you.

We will try to get going again. There is a possibility that we will fail and decide to not support it.
Either way we will state that here at the blog and in the LXDE i18n mailing list so just check back here in some days.

LXDE Buildbot!

A way to strengthen the qualityof your software is to test it as fast as possible with the needed code. For this purpose I just launched a buildbot master and slave running Debian testing. It is not automatically run against the code yet but I will include that functionality in the future. Having a buildbot that doesn’t build is not much worth =)

For the time being one can force a build from the web interface (given the right credentials and so on. just ask…), the code is update in CEST: 01 05 08 12 16 20. I would like to have more systems running as slaves to make the testing broader. I have some ideas on how to do it but nothing firm yet. First thing is to get it to autobuild on updates to the source tree. That and making LXMusic build, there is some dependecy problem floating around.

Desktop icons are now freely movable!

I just merged the latest movable desktop icon support to master branch.
So now it’s available in git repository. If you’re installing from git you’ll get it.

There are still some usability issues, but it mostly works quite well.
After two years, finally we have movable desktop icons. Really thank you all for the patience.

To test the latest source code and help debug, please follow this guide: