Category Archives: LXPanel

LXPanel 0.8.0 released.

As already was announced, the time to release next LXPanel has came. The release goals for 0.8 were:

  • complete multi-monitor support
  • improve and further simplify plugins API

It also happen to have better performance than before, that was a side effect of optimizations. The release 0.8.0 comes fully translated to 17 languages: Chinese (China), Dutch, Finnish, French, Galician, Ganda, German, Greek, Icelandic, Indonesian, Italian, Portuguese, Russian, Spanish, Swedish, Turkish, Ukrainian. As usual, a lot of bugs were fixed, and you are welcome to report any bugs you happen to find yet. Work on LXPanel features will be continued shortly, stay in touch, it will become yet more convenient later. :)
New release tarball download link:
lxpanel-0.8.0.tar.xz – SHA1: c0b2d9edfd0d95ee142db7cd0e55763a785daa0a

Changes since previous release 0.7.2 (see git log for details):

  • Added workaround for crash in gtk-run with old libmenu-cache.
  • Core functions are separated into a private library to allow reliable linking of modules using -Wl,-z,defs.
  • Added macro LXPANEL_CHECK_VERSION() for third party pluguns API check.
  • Added CONF_TYPE_EXTERNAL support for lxpanel_generic_config_dlg().
  • Implemented property “aspect-width” for PanelIconGrid to allow using non-square tray sockets.
  • Added support for monitors “All” to span panel over all monitors (i.e. to allow pre-0.6.0 behavior).
  • Implemented monitors hotplug support.
  • Fixed popups positioning in multi-monitor environment.
  • Fixed updating panel size if appropriate monitor changed its size or position.
  • Implemented disabling for “Reserve space” button if another monitor lies beyond the edge so reservation will cover it. Also reservation will not be applied in such cases even if set in config manually.
  • Some edge and monitors selections in panel configuration dialog may be insensitive now if appropriate edge and monitor combination is not available, to avoid panels stacking one over another.
  • Fixed bug with hidden panel disappearing after resolution change.
  • Add lxpanel_image_new_for_icon() API to replace another (obsolete) API _gtk_image_new_from_file_scaled().
  • Added API panel_config_hotkey_button_new() to use as CONF_TYPE_EXTERNAL widget to allow configure global hotkeys for plugins functions.
  • Added API lxpanel_apply_hotkey() as a convenient libkeybinder interface to use in modules that also use panel_config_hotkey_button_new(). Now LXPanel requires libkeybinder too.
  • Added API panel_config_click_button_new() to configure mouse gestures and panel_config_click_parse() to parse its output.
  • Added “icon-size-changed” signal to LXPanel which is emitted when icons size in configuration dialog was changed.
  • Improved lxpanel_image_new_for_icon() API to follow panel icons size changes, not only theme changes. This way calls on lxpanel_image_* APIs on theme or panel changes may be eliminated, i.e. code becomes simpler.
  • Added new lxpanel_image_change_icon() API for simplification reasons so other lxpanel_image_* APIs can be replaced completely.
  • APIs lxpanel_button_set_icon() lxpanel_button_update_icon() now don’t require setting icon size since created button already follows size from panel settings. Also it doesn’t require refresh after the panel configuration change.
  • Optionally scaling up small icons in the taskbar may be disabled: scaled up icons may look bad due to pixelization (patch from Anton Lobashev).
  • When adding new panel, now correctly edges of monitor where popup was are tried before any other monitors.
  • Correctly open ‘netstat’ plugin own menu on left-click since right-click should open panel context menu instead.
  • System critical temperature level in ‘thermal’ plugin now is properly ignored if manual levels are active.
  • Fixed click on ‘menu’ plugin, only image was clickable, not whole area.
  • Added API panel_config_int_button_new() for generic plugin config spin button with custom range, not just generic 0…1000.
  • Fixed wrong behavior with PanelIconGrid constrained width after child was removed: size wasn’t always renegotiated correctly.
  • Fixed range of space reservation in multi-monitor setup (reservation might cover another monitor).
  • Numeric-only string will be saved now double-quoted to distinguish it from number in config.
  • Implemented flashing on task with urgency in grouped task list menu.
  • Disabled flashing on urgency hint if window has focus, most of window managers do the same on window decorations.
  • Fixed border of ‘batt’ plugin, it should correctly use panel settings.
    Also Size setting on it doesn’t include border width anymore.
  • Allowed default alarmCommand on ‘batt’ plugin be translated.
  • Implemented sorting plugins in Add plugin window in alphabetic order.
  • Fixed font in the weather plugin to use panel settings.
  • Added new API lxpanel_button_compose() for future usage by plugins.
  • Added optional ‘volumealsa’ plugin volume mapping from alsamixer (patch from Peter).
  • Added new API lxpanel_button_set_label() to change label of button that was created using some lxpanel_button_*() API.
  • Added “panel-font-changed” signal to LXPanel to be able follow settings change in font configuration of panel using lxpanel_button_*() API.
  • Fixed nasty bug with autohidden panel after unhide appeared for short time somewhere at the screen.
  • Fixed calendar and configuration windows blinking on their appearance.
  • Fixed panel update when background image changed in configuration.
  • Changed to use persistent background image for panel and Cairo. This way updating background should be faster, and also fixed background of plugins when image is used, both placement and alpha color.
  • Urgent window is now always visible on the taskbar irrelevant of the desktop number on which it appears, because urgent window requires user attention (patch from Andy Balaam).
  • Moved bit of code that is used out from src/bg.c and discarded src/bg.c from code used.
  • Dropped setting members of Panel structure: workarea, wa_len, bg.
  • Replaced GtkComboBoxEntry in ‘netstatus’ plugin window with GtkComboBox.
  • Simplified plugins background setting – they should never use any own background but either use one from panel or from theme (depending on panel configuration). This should improve performance.
  • Don’t update a whole panel background anymore after some plugin was resized, only update the plugin itself to improve performance.

LXPanel 0.8.0 pre release testing.

After some development, it’s time to release next feature version of LXPanel. The release goals for 0.8 were:

  • complete multi-monitor support
  • improve and further simplify plugins API

Now that it was done, and numerous bugs fixed along with that, LXPanel has come to release time, which is scheduled in about 2 weeks. We would appreciate all the testing and feedback on it. The fresh sources are in GIT repository, as usual. The changelog since version 0.7.2 is big enough, you can find it in the sources or read online.

I also would like to ask all our translators to come into Pootle and translate it. I would ask to read the Wiki if you didn’t do that lately. Thank you in advance, everyone.

LXPanel 0.7.2 released.

Another month has gone and next bugs fixing release of this major component happened. Few annoying bugs were fixed and we really hope it is better than before. Very possible it is last release in 0.7 line since there are a lot of improvements coming, and there is no room for any improvements in 0.7, you should wait 0.8.0 for new features.
New release tarball download link:
lxpanel-0.7.2.tar.xz – SHA1: 956851d4d465b2443c1253ceb0399386fd15bb82

Changes since previous release 0.7.1 (see git log for details):

  • Fixed unhiding panel if it becomes empty and height_when_hidden is 0.
  • Fixed invalid X protocol word size: despite of stating it 32 bit, the X server uses unsigned long which is 64 bit on 64-bit architectures.
  • Adapted to use libmenu-cache >= 1.0.0 – it could show empty folders in the desktop menu.
  • Fixed crash in taskbar after visible task changed name then gone.
  • Ensured panel background update after some plugin was resized.
  • FileManager statement from old config should never be scanned again.
  • Fixed positioning of new created panel, the edge was not saved.
  • Eliminated hardcoded “xterm” in ‘volumealsa’ plugin – LibFM has enough means to call terminal when needed.
  • Fixed crash if ‘volumealsa’ plugin initialization failed.

LXPanel 0.7.1 released.

After just a month after 0.7.0 version was released, the time came to release an update, simply because bugs were found. So it happens again. No new features this time, and only last number was changed. Next update is in slow preparation, don’t forget to report bug if you find one!
New release tarball download link:
lxpanel-0.7.1.tar.xz – SHA1: 2e5ee9c17c32d2f1a7c0d51e84816613ede09a1f

Changes since previous release (see git log for details):

  • Fixed search for the gtkrc file.
  • Fixed search path for configuration – it should be not compilation time path but paths using $XDG_CONFIG_DIRS.
  • Fixed incorrect flag for ‘launchbar’ plugin which marks him expandable.
  • Fixed dragging of task buttons.
  • Corrected using $XDG_MENU_PREFIX to work the same way as libfm does.
  • Fixed using font description, font in gtkrc file was ignored.
  • Improved search for hw sensors in /sys/class/hwmon/ hierarchy.
  • Improved check for critical temperatures in ‘termal’ plugin, now each individual hardware setting (if available) is also taken into
    consideration.
  • Fixed parsing alias name in ‘weather’ plugin settings.
  • Got rid of all individual plugins/*/Makefile – those rules more easily can be contained in the plugins/Makefile.am. Adding a simple plugin basically would mean to add two or three lines into that file instead of writing whole Makefile.am.
  • Fixed invalid system config path search (“lxpanel” part was missing).
  • Fixed incorrect requirements in the lxpanel.pc file.
  • Fixed memory leak in the ‘volumealsa’ plugin.
  • Now ‘volumealsa’ checks for ‘MixerCommand’ setting in the configuration before guessing it.
  • Fixed color saving in the configuration.
  • Fixed incomplete resources deallocation in ‘volumealsa’ plugin.
  • Fixed make uninstall (it left plugins installed).
  • Fixed monitor number set from GUI.
  • Fixed hang on netstatus icon in auto-hidden panel.
  • Fixed icon grid compilation with GTK+ < 2.20.
  • Fixed compilation without menu-cache.
  • Now man pages are included in the GIT and tarball, not just xml files.
  • Fixed incorrect printf arguments in ‘netstatus’ plugin.

LXPanel 0.7.0 released

A huge update to the GTK+ panel was released. See the list below for some changes. Full log of changes can be fund in git.

lxpanel-0.7.0.tar.xz, sha1sum: deccc11a05d4c23f10b0cefddf4fca4eaea7206b

  •  New plugin ‘launchtaskbar’ with combined functionality from ‘launchbar’ and ‘taskbar’. For easy support codebase is merged instead of doing duplicates but appearance is still the same in dependency from mode chosen.
  • Integrated with LibFM, all launching and application selection in the launchbar settings is done by LibFM now.
  • New simpler plugins API implementation, using LibFM plugins loader. In new API some callbacks were simplified and some removed, see all the detailed descriptions in the file plugin.h.
  • New plugins are GtkWidgets now, therefore there is no explicit destroy for them or their data, all will be handled implicitly.
  • Changed config access with simple API similar to libconfig one.
  • Using icon caching from LibFM.
  • Applications properties in the menu are managed by LibFM API, no more calls to lxshortcut application.
  • Setting for file manager is not handled on its own but XDG setting is used now, i.e. default choice for “inode/directory” MIME type.
  • Setting for terminal is handled by LibFM, therefore it is the same as in PCManFM now, no own setting anymore.
  • Replaced configure option –enable-cast-checks with –enable-debug.
  • Replaced ‘pager’ plugin with former ‘wnckpager’ one. The ‘wnckpager’ name is still supported for compatibility but it is the same plugin.
  • Added new plugin ‘weather’, written by Piotr Sipika.
  • Using drag & drop handling from LibFM in launchbar. It is possible now to use any kind of files as launchbuttons, and folders can receive drops as well.
  • Allowed drag applications from system menu plugin so they now can be dropped somewhere. The obvious example is drop on the desktop.
  • Using human readable sensor names if available (like ‘Core 0′, etc.).
  • Panel is allowed to hide completely (setting width when hidden to 0).
  • The IconGrid converted into GtkContainer derived class PanelIconGrid.
  • Allowed to use <USER_CONFIG_DIR>/lxpanel//gtkrc for the panel custom style setup.
  • The panel itself in not a struct now but a GtkWindow derived class so no special API to destroy it is required.
  • Improved the layout of icons in panel, they will not align to the edge of screen but appropriately to panel height. Some of them did that already but some were aligned to the screen edge without any gap.
  • The button to configure plugin in panel plugins configuration tab is renamed from ‘Edit’ to ‘Properties’.
  • All logging is unified. The option –log is deprecated and isn’t used anymore. User can change logs appearance using G_MESSAGES_DEBUG and G_MESSAGES_PREFIXED environment variables (see GLib docs).
  • Old APIs are in place still for backward compatibility with third party plugins but will be dropped later, supposedly on next feature release point. Old APIs are not present in public headers, compatibility is on binary level only.

LXPanel 0.5.10 released!

Some weeks ago we gave you 0.5.9, this time some changes has been made to the plugins distributed with LXPanel and thus we put a new version for your feets. Given the translation status in this release a new version is very probably coming out soon as most languages did not get their strings to 100% done.

lxpanel-0.5.10.tar.gz, sha1: 867c1beec136d932e4ef15679691ac4bf50d3b29

Changelog
4d1a2cf – gtk-run: reload menu cache
6bd86e3 – monitors: fix potentially truncated message in translated tooltip
b957082 – fix enabling dynamic width and autohide results in 1 pixel panel
ad987a0 – volumealsa: fix unloading and add restart logic
61910ad – AUTHORS: credit SuxPanel
d40b660 – fix a few compilation warnings
7a08372 – monitors: gettext’ize tooltips
7e6a8c4 – monitors: clean tooltip, and also print memory in MB
c247a33 – monitors: count ‘mem_buffers’ towards ‘mem_free’
e0eb2f8 – volumealsa: fix detection of ALSA error
58e8805 – plugins: fix “Invalid read of size 8″
c95393d – configurator: fix file chooser action
206ad65 – monitors: make redraw_pixmap() readable
13d82f2 – plugins: change monitors, thermal, and batt timeouts to my liking :)
e25a253 – plugins: Use g_timeout_add_seconds() when possible
ab602c7 – menu,taskbar: minor cleanup
1093a9d – thermal: Use lxpanel error and log facilities
bdecea0 – thermal: Show all sensors in tooltip
b90ba1d – thermal: Use highest temperature when using automatic sensor location
6877b46 – thermal: prepare for multiple sensors
b7c830a – monitors: Open application when clicked, lxtask by default
7349314 – Update debian directory with current Debian one, without the patches which should be discussed

LXPanel 0.5.9 released!

A month ago we released the 0.5.9 version of LXPanel fixing a bunch of bugs since the last version and as always bringing some translation updates and additions.

lxpanel-0.5.9.tar.gz, sha1: c607bf93b7941d21f9b29e6d6429b48fe2f7e388

Changelog
815f98f – thermal: use automatic levels by default
93bfb7e – batt: Read absolute current_now, power_now
05599a4 – Corrected grammatical error in volumealsa.
00a3ef3 – Added data/two_panels/panels/{bottom,top} to .gitignore.
003c094 – Added ap_info_node definition to APLIST typedef
fcb3555 – Cleaned up compilation warnings. Added wireless-tools-devel check (iwlib.h) to configure.ac
e1d11c0 – monitors: Fix deallocated memory access when changing colors
7748d13 – batt: Fix computation of percentage when battery uses charge_now
2122fc3 – netstat: fix possible creation of thread zombies
9e5bf3c – netstat: fix some memory leaks in lxnm_client.c
4276792 – netstat: fix uninitialized value and potential segfault
a048055 – netstat: fix many compile warnings
9a82da9 – Use *-panel icons when available in the theme for volumealsa plugin.
ea70b4b – Fix LxPanel Launch Bar Dialog – ID: 3487238 – Thanks Axel FILMORE
59ba11f – Add also .ui files in POTFILES
169abdf – Really remove glade file
6537f28 – Remove gnome-netstatus.glade, it’s not used or installed
65efa14 – Complete previous commit for make distcheck fixes
54fed98 – Some fixes for make distcheck
0c1fb08 – taskbar: Fix infinite loop
37f5734 – Fix launchpad bug #889414 – Run dialog opens up in the background.
71f5bda – Add new lang in LINGUAS
e41dd2d – Merge missing pieces from original indicator applet. Commenting appmenu support since it crashs on start.
359de8b – monitors: fix compile warnings
c763b20 – thermal: Don’t print useless info on startup, fix compile warning
cffb026 – monitors: cached memory should be counted as ‘free’
ce6d9cc – monitors: Fix segfault in *_tooltip_update() functions
9dda825 – Add indicator applet, turn off by default
552475e – Add a way to launch external configuration program when using volume applet
0aa9911 – Remove default configuration patch in debian/, not needed in an upstream git
b4118b4 – Add more items to .gitignore
9acb4d2 – Remove 1 debian patch
176a000 – thermal: use applyConfig() in the constructor
15992b6 – thermal: be more careful in case th->sensor is NULL
83af5ca – thermal: fix using custom or automatic warning levels, and set the get_functions
f990fee – thermal: Automatic sensor location also works for sysfs interface
80d2a31 – batt: Fix segmentation fault on resume from suspend-to-ram
ab2b8cb – Fix type unsafety while opening plugin configuration dialogs
ef3cf14 – wnckpager: fix plugin_class version
2ae466a – Make wnckpager a dynamic plugin.
c4ff9fd – Add pager2 plugins, compatible with compiz (apply patch from ID 2802191)
9770479 – Add monitors plugin (apply patch from ID 3026608)
3aa5cb1 – Prevent clipping button for taskbar (apply patch v2 from ID 2968307)
a374356 – Add plugin by double-click (apply patch from ID 3029596)
266c072 – plugins/thermal: support both /proc and sysfs interfaces
1869ef9 – Added font size setting to Appearance preferences.
907deaa – Center text in dClock (Apply patch from ID 3102621)
4896be7 – Apply patch from ID 3103192
b37f46a – batt: Fix low battery check
eef7d6f – batt.c: Consistently indent ‘update_display()’
c34ca91 – batt.c: Don’t modify battery struct outside of the batt_sys
7f9ba86 – batt.c: Check NULL-pointer-derefernce before using it
ee3eb0c – batt_sys.c: Round percentage properly
bb13068 – batt_sys.c: Always set all values when reading from sysfs
ce09d36 – battery plugin: Name variables the same as the sysfs files
553ac7a – batt.c: Don’t call ‘battery_update()’ redundantly on startup
edd0944 – batt_sys.c: Fix ‘battery_print()’
5a333b8 – batt_sys.c: Also try reading “power_now” from sysfs
aaedb01 – batt_sys.c: Remove ‘acpi_sys_get_battery_from_dir()’
f41fec0 – batt_sys.c: Replace ‘get_unit_value()’ with ‘atoi()’
46781b9 – Revert “Apply patch from Debian to fix battery plugin display”
239fe47 – update TODO
0a03867 – .gitignore for data/ui/*.ui
56807b4 – add TODO list
dcb50c6 – Fix sizeof on 64 bits, thanks Richard Hirst for the fix
d3ee730 – Fix position of the menu, and add the same fix to pager.
afc7bfa – Add libmenu-cache to the packages modules in configure.ac, needed by launchbar.c
bf2b243 – enable configure to use gtk3

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.
Changes:

  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!