Here are some release notes for the next round of lxpanel checkins. These are ready to go as soon
as we agree on a release plan.
Normally this might go in on a branch, but I consider it in code freeze rather than still in development.
It is stable to the extent I can test it. I have been running most of it for over a week. I know it
might impact some users who are used to building from SVN but I think I would suggest checking it in
on trunk and having an intensive effort to test and stabilize and then put out a beta tarball.
As we already know, the highest risk is a segfault that causes the panel to restart.
Your feedback on the best way to get this done is welcomed.
Icon grid layout manager
A new layout manager for the Keyboard LED, Launchbar, Pager, and System Tray plugins adapts to the size of the panel and
repacks icons to use space most efficiently.
New handling of "stretch"
Now only the Space and Taskbar plugins will honor "stretch" or offer it in the configuration dialog. For the Taskbar plugin,
it is defaulted on to avoid having a new user encounter the behavior that the taskbar grows beyond its allocation.
Honoring font color
Font color is now honored in every plugin. Font color changes immediately in all plugins as it should.
Desktop Number plugin
Shows desktop names if available from window manager.
Launchbar plugin
Changed the handling of an empty launchbar. I was troubled by how it initially configured pcmanfm and firefox,
which may not be installed and we would display the broken image icon. Now the plugin puts up an "Add"
button when the launchbar is empty that takes the user to the configuration dialog.
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.
The launchbar configuration dialog now displays the application icons.
Menu
Non-square icons now work.
Fixed the handling when a menu plugin was created so that the broken image icon is not displayed.
Pager
Each desktop now has a tooltip with the desktop name as reported by the window manager.
Removed the hardcoded limitation of 20 desktops.
It is still a known issue that some Compiz features are unsupported. This is the next item to be worked on.
Taskbar
Removed the confusing options Accept SkipPager, Show Iconified, Show Mapped.
Added an option to combine multiple windows from the same application into one button ("Grouping").
This should alleviate most issues with taskbar overcrowding.
Significant internal reworking of the implementation.
Tray
Implemented so-called "balloon messages", small amounts of text that a tray application can display.
Significant internal reworking of the implementation.
Window Command
Removed the "toggle" behavior. Now the plugin unconditionally iconifies or shades all windows on a left or middle click.
Lxpanel 0.5.0 release
-
- Posts: 381
- Joined: Mon Mar 23, 2009 5:14 am
Re: Lxpanel 0.5.0 release
I should have mentioned two other items.
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. I personally run with a vertical panel 150 pixels autohide.
The minimum GTK version will be 2.14.
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. I personally run with a vertical panel 150 pixels autohide.
The minimum GTK version will be 2.14.
-
- Posts: 381
- Joined: Mon Mar 23, 2009 5:14 am
Re: Lxpanel 0.5.0 release
Here are some notes that would be of interest to plugin developers. I post them here in the event we have anyone who doesn't follow the mailing list and who has developed or modified their own plugin.
Vertical panels are now assumed to be fairly wide, and text is always drawn upright. I personally run with a vertical panel 150 pixels autohide.
The plugin versioning proposal is implemented. External plugins will not load unless PLUGINCLASS_VERSIONING is called in the PluginClass initializer (and matches the version of the panel).
Several plugins were found to call the destructor in the error path of the constructor. This is wrong and will cause a segfault later when the plugin manager calls it again.
Plugins should not consider an unrecognized parameter a fatal error. This reduces the possibility that a user can fall back to an earlier release if trouble is encountered on an upgrade.
The "panel_configuration_changed" callback is used whenever any style change is made that might require a full redraw, such as an orientation change or a text color change. The plugin should do a full redraw. This has been renamed from "orientation".
Plugins should not destroy p->pwid in the destructor. This is done in the plugin manager.
All text drawing should flow through the central routine panel_draw_label_{text,integer}. This centralizes the handling of font color.
All right-click handling should flow through the central routine plugin_button_press_event. Plugins should declare this as the button-press-event handler if they do not have any other handling of button press.
Plugins need to be careful to constrain the height of their top level widget, so they work properly in wide vertical panels.
Test with both horizontal and vertical panels. Test with all background options. Test that your plugin works properly when it is removed from the panel. Run the panel from a terminal and make sure your plugin does not generate GTK assertions or X errors.
Vertical panels are now assumed to be fairly wide, and text is always drawn upright. I personally run with a vertical panel 150 pixels autohide.
The plugin versioning proposal is implemented. External plugins will not load unless PLUGINCLASS_VERSIONING is called in the PluginClass initializer (and matches the version of the panel).
Several plugins were found to call the destructor in the error path of the constructor. This is wrong and will cause a segfault later when the plugin manager calls it again.
Plugins should not consider an unrecognized parameter a fatal error. This reduces the possibility that a user can fall back to an earlier release if trouble is encountered on an upgrade.
The "panel_configuration_changed" callback is used whenever any style change is made that might require a full redraw, such as an orientation change or a text color change. The plugin should do a full redraw. This has been renamed from "orientation".
Plugins should not destroy p->pwid in the destructor. This is done in the plugin manager.
All text drawing should flow through the central routine panel_draw_label_{text,integer}. This centralizes the handling of font color.
All right-click handling should flow through the central routine plugin_button_press_event. Plugins should declare this as the button-press-event handler if they do not have any other handling of button press.
Plugins need to be careful to constrain the height of their top level widget, so they work properly in wide vertical panels.
Test with both horizontal and vertical panels. Test with all background options. Test that your plugin works properly when it is removed from the panel. Run the panel from a terminal and make sure your plugin does not generate GTK assertions or X errors.
-
- Posts: 381
- Joined: Mon Mar 23, 2009 5:14 am
Re: Lxpanel 0.5.0 release
Additional release notes for 0.5.0. All of the items mentioned are currently available in SVN.
General
The minimum GTK version remains at 2.12. The code that would have required 2.14 was not serviceable and was replaced.
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.
Digital Clock plugin
The clock format string may now contain \n to introduce a line break.
Keyboard Layout plugin
The keyboard layout plugin now builds by default. It has been thoroughly checked out.
Launchbar plugin
Recall that the launchbar now only offers applications that are present in the menu. 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.
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.
System tray plugin
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.
Taskbar plugin
The icon grid layout manager now applies to the Taskbar.
By user request, the Close option of the right-click popup menu was moved adjacent to the cursor.
General
The minimum GTK version remains at 2.12. The code that would have required 2.14 was not serviceable and was replaced.
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.
Digital Clock plugin
The clock format string may now contain \n to introduce a line break.
Keyboard Layout plugin
The keyboard layout plugin now builds by default. It has been thoroughly checked out.
Launchbar plugin
Recall that the launchbar now only offers applications that are present in the menu. 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.
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.
System tray plugin
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.
Taskbar plugin
The icon grid layout manager now applies to the Taskbar.
By user request, the Close option of the right-click popup menu was moved adjacent to the cursor.