Having played around with a lot of panels, I have decided that the main panel for this project will be LXPanel. Although I started off with Fbpanel and I love its flexibility it has let me down on one or two major points. For those that don’t know, LXPanel is a fork of Fbpanel, so they are very similar. Here’s the pros and cons of each as I see them:
GUI – LXPanel has a nearly full featured GUI and very little editing of the config files is needed. For the end user, this has to be a good thing. The GUI in Fbpanel is somewhat underdeveloped.
Transparency – LXPanel supports transparency throughout all plugins. In Fbpanel, transparency doesn’t work in the taskbar and text clock plugins.
Menu – LXPanel reads the XDG applications.menu file and then updates the menu according to the .desktop files on the system. This causes a problem in Unity as it uses the Mandriva applications.menu specification which has annoying nested menus that I can’t stand (especially the ‘more’ menus), so I am going to have to edit the menu file. Fbpanel also reads the .desktop file but then creates a menu according to freedesktop.org standards, so ignoring the applications.menu file – this results in a much more sensible menu layout.
However, neither panel has an applications menu editor. You are down to editing .desktop files if you want to change the submenu or hide an entry. There are a lot of .desktop files that I didn’t want in my menu, so I had to add NoDisplay=True to each .desktop file and save in ~/.local/share/applications.
Both panels theoretically support menu names eg the Gnome style “Applications”, “Places” and “System”, but I couldn’t get names to show in the most recent release of Fbpanel.
Both panels support custom menus and menu entries.
Launchers – difficult one this as both panels support application launchers on the panel. In Fbpanel, the launcher can be a combination of any icon, any command and any tooltip. However, it must be done by editing the config file. In Lxpanel, the launcher has to be a .desktop file. This is great for the end user to add a launcher using the GUI, but only as long as the application is in the menu. If you want a custom launcher for a custom command, then you need to create additional .desktop files.
Plugins – LXPanel probably wins this as all the plugins support transparency and are better developed eg there is a volume slider plugin. However, there is one great plugin for Fbpanel which hasn’t been ported to LXPanel and that is the Genmon plugin. Genmon displays the output of any bash command on the panel.
Profiles – both panels support profiles. In LXPanel the profile name comes from the directory name within which config files for each panel required are kept. In Fbpanel you can call up any combination of panels from individual config file names. The Fbpanel way is slightly more flexible, but there’s not a lot in it.
In a way I feel a bit sorry for the Fbpanel developer. For a long while it was one of the best standalone panels around, but the LXDE project have taken it and added more weight behind it. Rather than improve upstream, they’ve forked the panel and created a slightly different syntax, as such profiles from one, won’t work in the other. So thanks for everything Fbpanel, but the future lies with LXpanel, at least for this project.