Tag Archives: PCMan

PCManFM 0.9.1 + libfm 0.1.1 Alpha

Today, new alpha releases of PCManFM and libfm were made.

Again, let me show you the screenshot first.

Here are highlights of this release:

  1. Auto-mount for removable devices and and “Auto-run” dialog. (Finally we have this!)
  2. Support ‘menu://applications/’ to show installed applications in pcmanfm. (needs lxmenu-data) (reported to be a little bit buggy?)
  3. Support ‘menu://applications/DesktopSettings/’ to show configuration tools. This just acts like control center. (only when you have lxmenu-data installed)
  4. “Open in terminal” now works for folders on desktop
  5. “Create New” is working on desktop.
  6. The color of location bar is changed when pcmanfm is executed with root user.
  7. Fix command line argumnent-related bugs.
  8. Fix sorting related bugs
  9. New configure option: –enable-debug
  10. Some minor bugs were fixed.

Please get it heavily tested.


Exciting improvements in libfm and PCMan File Manager

Recently libfm, the core of next generation file manager, underwent heavy development and rapid changes. Here are some exciting highlights.

  1. The repository was completely moved from svn to git now.
    You can grab the latest source code with following command line:
    git clone git://libfm.git.sourceforge.net/gitroot/libfm
  2. Drag and drop now works! You can even drag and drop between two different remote filesystems.
  3. Clipboard handing is greatly improved. Files cut/copied in GNOME/Nautilus, XFCE/Thunar, and even KDE/Dolphin can now be correctly pasted in libfm.
  4. Now libfm correctly mounts remote filesystems on demand.
  5. Basic bookmark support was added.
  6. File associations (default application for file types) can now be changed in properties dialog.
  7. Partial auto-completion for path entry
  8. Moving files now works, but error handling is not yet implemented.
  9. Now errors are correctly reported when the loading of folders failed.

Now we’re more and more closer to our goals, to build a modern, fast, and lightweight file manager supporting gio/gvfs for LXDE. After the core library, libfm, is finished, the development of the next major release of PCManFM will be started. This will fix various old bugs in the original 0.5.x series and provide full access to remote filesystems. So stay tunned and get it well-tested!

Last but not the least, developers are wanted! Please join us if you like LXDE and you know gtk+ and gio programming in C language.

Recent Advancement on libfm (core of next generation pcmanfm).

Everybody loves screenshots!

Libfm can access remote filesystems now.

Libfm can access remote filesystems now.

Look! It’s sftp://.

By utilizing glib/gio and gvfs, now libfm can access remote filesystems supported by gvfs. Currently there is no auto-mounting. So when testing libfm, you need to mount the filesystems with gvfs-mount manually. However this should work once libfm is finished.

The current source code in svn repositoy can already work as a good filesystem browser. However other parts are not yet finished so it’s not fully working. Anyways, browsing local and remote filesystems already works.

For those who claimed that gio and gvfs are heavy and slow, please try libfm. Although it uses gio/gvfs in several parts, the speed and memory usage are still quite acceptible. Sometimes programs using gio and gvfs can be slow, but libfm is not slow at all. Nor will the next generation pcmanfm be slow. Please give it a try and you’ll see it.

The project page of libfm: http://sourceforge.net/projects/libfm

LXPanel 0.5.3

LXPanel 0.5.3 was released today.  We are working toward alleviating the discomfort that some users feel with vertical panels as they exist in 0.5.x for use on smaller screens. Please feel free to discuss further.


A serious flaw that prevented vertical panels from honoring their configured size was corrected.  With this fixed it is possible to configure a vertical panel as small as 16 pixels. We regret that this was not discovered sooner.

Desktop number plugin

A new feature in the desktop number plugin allows you to use just the number rather than the full desktop name as reported by the window manager.  This allows the text to fit in a width of 16 pixels.

Digital clock plugin

A new feature allows you to have the clock be represented only by an icon, and access the time by hovering over it to see the tooltip. This makes the minimum size of the clock 16×16 pixels. You can also use the \n feature in the clock format string, introduced in 0.5.0, to stack the time vertically as you see fit.

Menu plugin

Another important correction solves an issue where menu icons that derive from the current GTK theme were lost.

Taskbar plugin

If you choose you can configure the taskbar as “icons only, tooltips” and access the window title by hovering over it to see the tooltip. I am skeptical that returning to the “text sideways” mode is helpful for the taskbar since this uses a considerable amount of height, which is also in short supply on small screens.

Window Command plugin

The previous behavior that alternately performed iconify/shade and raise has returned as a configurable option.

LXPanel 0.5.1 is released.

Soon after Marty Jack released LXPanel 0.5.0, I made some minor enhancements and here comes LXPanel 0.5.1.

  1. The “Run” dialog no longer hangs. Now it’s showed immediately when you open it. Available commands for auto-completion is loaded in background with multi-threading.
  2. Restore the old behavior of taskbar in earlier versions: Taskbar button for the currently focused window is depressed if “Flat buttons” option is turned off.
  3. Some internal changes to reduce program size.
  4. Hide signal strength display in the icon of the netstatus applet if the monitored iface is not wireless.

Please give it a try!  Have fun!

LXPanel 0.5.0

LXPanel 0.5.0 is being readied for release.  Here is a preview of the new and changed features.


Optional automatic hiding of the panel when it is not being actively accessed is now supported.  It is configured on Panel Settings/Advanced.

Vertical panels are now assumed to be wide, and things are drawn normally rather than on their side as they were in previous releases.  The idea is that vertical panels are used on widescreen monitors where there is more width than there is height.  Use of autohide can also recover screen space if desired. This is consistent with the practice that has developed in other desktop environments.

A new feature in this release allows you to adjust the icon size independently of panel height. In addition, the font size adjusts with the icon size. This can be useful to configure panels as short as 16 pixels, or to configure panels that have space for more than one row of elements.  These features are configured on Panel Settings/Geometry.

A new layout manager for the Keyboard LED, Launchbar, Pager, System Tray, and Taskbar plugins adapts to the size of the panel and repacks icons to use space most efficiently.

Now only the Space and Taskbar plugins will honor “stretch” or offer it in the Panel Settings/Panel Applets dialog. For the Taskbar plugin, it is defaulted on.

Font color is now honored in every plugin. Font color changes immediately in all plugins as it should.

A total of 21 languages are 100% translated, representing in excess of 1.6 billion native speakers.

Many minor bugs have been fixed throughout.

Desktop Number plugin

Now shows desktop names if available from the window manager.

Digital Clock plugin

The clock format string may now contain \n to introduce a line break.

Directory Menu plugin

The Directory Menu plugin now has a configuration dialog.  Configurable properties include the starting root directory, the icon, and a textual label.

Keyboard Layout plugin

The Keyboard Layout plugin now builds by default. It has been thoroughly checked out.

Launchbar plugin

The handling of an empty launchbar has been enhanced to avoid displaying the broken image icon.  Now the plugin puts up an “Add” button when the launchbar is empty.  This button takes the user directly to the configuration dialog where applications can be added.

The launchbar configuration dialog now populates a list of available applications from the menu cache. It is no longer possible to add an application to the launchbar unless it is in the menu. However, users no longer have to search the file system for the desktop file if it is not in the particular directory that the plugin displayed in previous releases.

Users should be aware that the standard per-user location for .desktop files is ~/.local/share/applications. If you place your .desktop files there, they will be added to your menu and you can then add them to the launchbar.

The launchbar configuration dialog now displays the application icons.

Menu plugin

The Menu plugin implements the freedesktop.org menu standard, which specifies the directories that are searched for .desktop and .directory files. If you are experiencing difficulty with applications not appearing in the menu, you may examine the first few lines of the menu cache file in ~/.cache/menus to see the list of directories that were searched. Another common cause of missing entries is the NotShowIn and OnlyShowIn specifications within the .desktop file.

Non-square icons now work.

The plugin has been corrected so that the broken image icon is not displayed when a new Menu plugin is created.

Pager plugin

Each desktop now has a tooltip with the desktop name as reported by the window manager.

The hardcoded limitation on the number of desktops has been removed.

It is still a known issue that some Compiz features are unsupported.

System Tray plugin

So-called “balloon messages”, small amounts of text that a tray application can display, are now supported.

With the changes to make icon size configurable, there is an issue with some tray applications not drawing their icons at the configured icon size, although many do honor the configured size. These icons are drawn by the application, not by lxpanel, so cannot be influenced.

Because of the underlying communication mechanism in the X Window System, there is a restriction that only one system tray can exist per system. This version of LXPanel does not offer the system tray in the Panel Settings/Panel Applets configuration dialog if a system tray is already configured. If you delete the existing system tray from the panel where you have it placed, you may then add it in a different location.

There has been significant internal reworking of the implementation.

There is a known issue with tray applications based on the Qt toolkit.  When the panel is reoriented 90 degrees, such as from Bottom to Left, tray icons from Qt applications will be lost.  In this release, this is solved provided that LXPanel has been built against GTK version 2.16 or later.

Taskbar plugin

There is a new option to combine multiple windows from the same application into one button.  This should alleviate most issues with taskbar overcrowding.  The underlying mechanism now correctly shrinks taskbar buttons when the taskbar becomes full rather than allowing it to overrun its allocation in some instances.

The confusing options Accept SkipPager, Show Iconified, Show Mapped have been removed.

By user request, the Close option of the right-click popup menu was moved adjacent to the cursor.  Keyboard accelerators were added to the right-click popup menu.

There has been significant internal reworking of the implementation.

Volume Control (ALSA) plugin

Middle-click on the Volume Control (ALSA) plugin now toggles the mute status.  The tooltip has been enhanced to display the volume level.

Window Command plugin

The “toggle” behavior has been removed. Now the plugin unconditionally iconifies or shades all windows on a left or middle click.

Next generation PCManFM is now under development!

Everybody loves screenshots!
This is the little demo program included in libfm demonstrating the functionality of libfm – the core of next generation PCManFM.


Due to some limitations and various hard-to-fix problems in the original PCManFM, a new project is started to work on a fresh rewrite of PCManFM. Now I’ve created a project named libfm. It’s a gio-based library used to develop file manager-like programs.


This will be the core of next generation PCManFM. Currently the work that has been done is in branches.  It contains a simple demo program named libfm-demo. Most of the menu items in this demo program are not working.

Currently it can only listed the files on your disk. No other operations are avaiable since they haven’t been written yet. I’ll work hard to finish it and hope the first really usable release can be made before 2010.  The project is in its very early stage, but you can see the progress here.


After finished, the lib will be separated into two parts, libfm and libfm-gtk.  The former is a generic non-gui library, and the later provides useful file manager-related widgets.

The roadmap of PCManFM is updated, too. Those are the tasks to finish.


If someone is willing to help, that’ll be appreciated. Help is wanted!!

xkb: New Applet for LXPanel

PCMan has added a new branch named lxpanel-xkb in the LXDE Repository.

svn co https://lxde.svn.sourceforge.net/svnroot/lxde/branches/lxpanel-xkb

It’s a new applet for lxpanel which will be a keyboard layout switcher. The original one in lxpanel is broken, and will be removed. The new one will be based on libxlavier, a good library handling xkb. However, we’re from Taiwan, and we don’t know how keyboard layouts work. So help is needed. If you’re a developer living in Europe or some other places requiring switching between different keyboard layouts, please help. (PCMan)

If you are interested in the development of LXDE, please also join our developers mailing list.


* http://wiki.lxde.org/en/LXPanel

* https://lists.sourceforge.net/lists/listinfo/lxde-list

If you don’t like to be forced to use gnome standards, please join xdg mailing list.

The current standard/specifications followed by most of the major UNIX desktop enviromnents, such as Gnome, KDE, XFCE, LXDE, and ROX, is called freedesktop.org.  See http://www.freedesktop.org/ for detail.

Freedesktop.org is formed by a group of developers. Developers duscusses on the so called ‘xdg’ mailing list to come up with some specs which will be followed by major desktop environments. The specs developed by Freedesktop.org are not formal standards, but they are widely used in Gnome, KDE, and XFCE.

lxde-fdoFreedesktop.org standards defines the way window managers work, they way how file types are recognized, how icons are named, the way to define the main application menu, to exchange data between applications and different desktop environments, and more.

The process to form those specs, however, is quite inefficient and problematic. All discussions are held on their xdg mailing list. If someone has a proposal, he/she then writes a draft of the spec for it, and then post it to  the mailing list. Then, if you’re lucky enough, or you’re a big guy (famous Gnome or KDE developers), you’ll get attentions and some feedbacks. After lenghthy discussions, if there are no obvious objections, the draft will be added to freedesktop.org repository, and was posted on their wiki. This is roughly how the specs are formed. Nevertheless, if there is no one implement your spec, your spec soon became useless. That means, either Gnome or KDE should support your proposal, otherwise no one will use it. How can something be called ‘standard’ when nobody is following it?

Later, if someone has some good ideas regarding to improving the spec, he/she can post his/her proposal in the mailing list with a patch, and if there is no objection, the patch *might* be applied to the spec. However, once the original author/maintainer of that spec doesn’t like your idea, your proposal will never be accepted. Or even worse, your messages got omitted by the original author/maintainer of existing specs, then there is no way to improve anything in existing specs. This is a real problem in freedesktop.org.

Besides, another big issue here is, most of the specs/standards are advocated by Gnome or KDE developers, and they don’t even consider the needs of other desktop environments. The so-called cross-desktop standards are actually well-implemented in Gnome and KDE only. XFCE tried hard to follow all those standards, but never get everything work flawlessly. LXDE tried to follow those specs, too, but found that many of the specs are very complicated and inefficient, which can slow down our desktops and add bloatness. Nowadays they are trying to add more things, and get modern desktops more and more complicated. It’s nearly impossible to keep lightweight if you want to follow ‘all’ the standards developed by Gnome and KDE. So that’s why we only supports the parts we need.

Recent changes in freedesktop.org, like PolicyKit and ConsoleKit, are mainly developed and implemented by Gnome-related developers. Then the KDE guys are forced to follow them. They even drop their well-designed and high performance IPC mechanism, DCOP, and adopt dbus, which is mainly advocated by Gnome developers. Some people even suggested that KDE should replace their own VFS with GIO/GVFS developed by Gnome. Some new technologies are developed by Gnome first, and then they wrote freedesktop.org specs for them. Later, those things are copied to KDE and they soon have their KDE equivalence. Unfortunately, all other desktop environments are forced to follow those standards whether they really need it or not, to keep the compatability with those two major desktop environments.

Why should we always be forced to follow all those things we don’t like or don’t even need? If we don’t follow them, we lost compatibility with many existing Gnome/GTK+ and KDE programs. In addition, they modify the specs frequently, and always break backward compatibility. So our precious time are wasted on re-implement everything in their new specs and try to fix all broken compatibility left by them.  It’s enough!

Sometimes things developed by the two major DEs are quite awesome and useful. However sometimes those specs just don’t suitable for other DEs and they didn’t consider the needs of users of DEs other than Gnome and KDE.

So, every enthusiastic developers/users of lightweight desktop environments, please join their xdg mailinst list and join their discussions and let them listen to your voice. If you don’t want to be forced to use things developed by Gnome and KDE, please let them hear your voice in the mailing list. Since they are now moving gnome libs into GTK+, like it or not, all gtk+ applications will be affected. Desktop environments other than Gnome and KDE might have some special needs and goals and those Gnome standards might not suitable for us sometimes. So we need to let them hear our voice and we should be part of the decision making.

So, please, join the xdg mailing list and get involved if you can.

Subscribe to xdg mailing list at http://lists.freedesktop.org/mailman/listinfo/xdg .

GPicView 0.2 beta is coming with GIF animation support!

Finally, we have yet another new release of GPicView.


Really glad to announce the upcoming release of gpicview 0.2.
With the help from Marty Jack and Louis Casillas, some new features are added.
* GIF animation support!!
* Save jpeg and png files with different compression ratio.
* Background color can be freely changed.
* Some bug fixes.
* UI polishing.
* New translations

So, we’re going to release gpicview 0.2 soon.
Currently a beta version 0.1.99 will be released first for testing.
If there are typos or inappropriate text on UI, feel free to bug report.

Once everything goes fine, the strings in the UI will be frozen.
Then it’s the time for translators to get all of them translated, and
we can make a 0.2 stable release.