We are sorry that news come to you late but that’s how it is. Yet in very beginning of this autumn next feature release of library that supports cached access to XDG-compliant desktop menus happened.
New release tarball download link:
menu-cache-0.7.0.tar.xz – SHA1: da29b2dabad0c5fff4d0a9771dff3425038166fa
Changes since previous release 0.6.1 (see git log for details):
- Added bit of support for multiple supported cache file versions, using CACHE_GEN_VERSION environment variable to the generator. This may be useful in future when 1.2 cache file version will be implemented.
- The menu-cache-gen libexec binary is rewritten from scratch. No that Red Hat / GNOME code anymore. New menu-cache-gen uses libfm-extra XML manipulation functions therefore it is required now for build.
- Added a parameter for menu-cached to specify socket path instead of calculating one, that is definitely more safe.
- Libmenu-cache handles menu-cached failure more gracefully now, don’t tries to restart it so fast that it clones many times.
- Fixed menu-cached crash after menu-cache-gen failure.
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.
Hard at work and huge changes were served. Below you’ll find the NEWS files for PCManFM and libfm, usually we post the git log and link the commit IDs to the log but that is not possible this time, the NEWS files combined are 4800 words!
pcmanfm-1.2.0.tar.xz, sha1: d2a72a25d1f5a9fd6a245bfe5a8723969fa27e9a
libfm-1.2.0.tar.xz, sha1: f4da9f73111364291501bfc752c50d43a17f17cf
PCManFM – full git log
- Implemented accessibility for the desktop managed by pcmanfm.
- Added missing accessibility relations between main window parts.
- Added tooltips for desktop items. Tooltips contain full file names, while desktop text shows them truncated in case of long names.
- For LibFM version 1.2.0 (and newer) show version of LibFM in the About window as well, not just PCManFM version.
- Added support for configuration options of LibFM 1.1.0 and 1.2.0 into Preferences dialog.
- Adopted new LibFM APIs and disabled all the deprecated calls.
- Implemented separated desktop configuration for each monitor. The Desktop Preferences dialog will be applied only to current monitor.
If no setup was ever done for secondary monitor then setup will be copied from primary one. Configuration will be converted into new style
from old one on the first start of PCManFM desktop manager. The new configuration will be not known to old version of PCManFM so if you
start old one again, it will gain default configuration for the desktop instead.
- Changed representing of sort mode in config file: instead of numerics ‘sort_type’ and ‘sort_by’ it’s saved as ‘sort=’ text setting. Thus it is possible to save extended modes such as ‘case’ or ‘mingle’ and save sort by extended columns (see LibFM new APIs).
- Implemented saving of columns (works for Detailed List View mode). The list of columns is represented as [:<width]. This feature will work with LibFM 1.0.2 or newer. The LibFM 1.1.x will get some
benefit only, the PCManFM can load that list from config. The possibility to catch columns change is available since LibFM 1.2.0 so this feature will work in full only with LibFM 1.2.0 or newer.
- Changed strings to follow common Human Interface Guidelines for strings capitalization.
- New tab with Search Results now opened in Detailed List View mode with columns: Name, Description, Location, Size, Modified. Since Search Results is a special folder, its layout should be other than default.
- The ‘Tools’->’Open Current Folder as Root’ menu item is removed along with ‘su_cmd’ configuration option. That mode is too much dangerous and appropriate functionality can be achieved using DES-EMA extension for context menu, no need to hardcode it into PCManFM.
- Added support for extended sort modes into main menu.
- If used with LibFM 1.2.0 or newer then list of view modes in the main menu will be not hardcoded but list of supported view modes retrieved from FmStandardView widget.
- Added support for per-folder configurations: sort mode, show_hidden, and view mode. The settings will be loaded from the file .directory if it exists, the file ~/.config/pcmanfm//dir-settings.conf will be used otherwise (and if linked with LibFM 1.2.0 or newer then the file
~/.config/libfm/dir-settings.conf will be used instead by the LibFM). Those settings will be saved not for each of the visited folders but only if ‘View’->’Save for This Folder’ checkbox in the main menu is checked, and will be forgotten after it’s unchecked.
- Changed representing of view mode in config file: instead of numeric ‘view_mode’ it is saved in portable way as string defined by widget FmStandardView.
- Changed representing of side pane mode in config file: instead of numeric ‘side_pane_mode’ it is saved now in portable way as string defined by widget FmSidePane.
- Implemented Dual Pane mode which can be toggled on anytime. If there is some tab next to current then it will be used for inactive pane, and if there is only one
tab present in the window then new tab will be created (for the same directory as current view). When tab that is shown in inactive pane is closed then Dual Pane mode
is terminated and may be toggled on again by user if needed. The Dual Pane mode can be toggled either via the main menu or by pressing a key ‘F3′.
- Added icon size manipulations (increase, decrease, normalize size) into View menu. New size will be remembered in config for the appropriate type of icons.
- Added configuration for toolbar: it can be now hidden, and elements on it (New Tab, navigations, Home) can be hidden individually as well.
- Added menu option ‘Go’->’Connect to Server…”. If selected it opens a dialog window to select type of remote folder and few parameters (host, port, path, login) for the connection. If not cancelled then selected remote folder will be opened in new tab.
- Implemented new config option ‘media_in_new_tab’, defaulted to false. If set then automounted folder will be opened in new tab instead of new window.
- Implemented new config option ‘desktop_folder_new_win’, defaulted to false. If set then folder from desktop will be opened in new window instead of new tab.
- Context menu options to open folder in new window / tab / terminal now available also for side pane items’ context menu if used with LibFM 1.2.0 or newer.
- If used with libfm 1.2.0 or newer then option ‘mingle’ will be included into default sort modes for the Desktop. This is expected by most of users – we add something to Desktop, then we see it after all already added items, not after other folders.
- Implemented handling for extra items on the desktop:
- Trash Can
- “Documents” folder
- external media
Those items have not be in the Desktop folder, they will be added to the view by desktop manager internally. Corresponding config options are ‘show_trash’, ‘show_documents’, ‘show_mounts’ – those are set in
the desktop config for each monitor. Default is true for ‘show_trash’ and false for other items. Note that all those items are not links of any kind but folders itself so weird operations with them may lead to weird results. This feature will work only if linked against libfm 1.2.0 or newer.
- Folder view modes moved to separate submenu to make View menu shorter.
- Reordered View, Bookmarks, and Go menus placement in menu bar to follow common order used by other applications and file managers.
- The menu items ‘Go’->’Applications’ and ‘Tools’->’Find Files…’ should become insensitive now if appropriate modules were not loaded.
- Added new section ‘autorun’ into config where last choices made by user for some kind of inserted media is remembered. Added a checkbutton
‘Always perform this action on this media type’ into the dialog where user selects an action so user can remember the choice and never ask again
for that kind of media. The button is not available for unknown or mixed media types. The ‘do nothing’ kind of choice is allowed to remember as well
if user selects not ask again and press the ‘Cancel’ button in the dialog. The choice ‘not ask’ is saved in config file as asterisk (*) prepended to application ID. The choice of view in the PCManFM itself is saved as pseudo-ID “pcmanfm”.
- The menu option ‘Edit’->’Delete’ is split to two: ‘Move to Trash’ and ‘Delete’ because some users with disabilities may not be able to use keybinding Shift+Del therefore should be a possibility to do exact action by mouse only.
- Added new menu option ‘File’->’Folder Properties’ which duplicates the folder context menu option for those who cannot use the context menu.
- Added new menu option ‘Edit’->’Properties’ from the selection context menu for those who cannot use the context menu.
- Added new menu option ‘Edit’->’Open’ to launch selection for those who can use neither keyboard nor selection context menu.
- Added new config option ‘show_statusbar’ with default to true which defines should status bar be shown or hidden. It’s controllable via menu ‘View’->’Show Status Bar’.
- Added new menu option ‘File’->’Create Link…’ to create link(s) on the selected file(s) into some directory.
- Implemented a runtime option to open Find Files dialog window. It will not replace any other options, i.e. if used alone and no other window nor desktop manager is active, it will open new default window.
It will not open any additional window if used when an other window or desktop manager is active though.
- When wallpaper mode is color-only, the file chooser for wallpaper image is not clickable anymore because it has no reasons to be clickable.
- Implemented the interactive search for desktop contents. It is similar to that in GtkTreeView and ExoIconView, activated by just typing or pressing Ctrl+F. This small search entry window is
opened at the top right corner of workspace. It supports the same shortcuts as those GtkTreeView – Ctrl+G for “find next” or “Shift+Ctrl+G for backward, scroll gestures also possible.
- Added new menu option ‘View’->’Filter…’ which allows to apply shell pattern to files currently shown in the view. The pattern is case insensitive.
- After creation of new tab using keyboard Ctrl+T (or main menu option) the Location Bar of new created tab will be focused to allow easy change path. Any other created new tabs will have the focus as usual.
- Added new config option ‘change_tab_on_drop’, defaulted to true to keep old behavior: when you drag file(s) on tab label then tab will be
unfolded so you can drop files into folder view. If set to false (new behavior) then the tab will be not unfolded but you can drop files directly on tab label using any wanted gestures and files will end up in the folder that tab label points to.
- Added new menu option ‘Edit’->’Copy Path(s)’ to copy text paths for the selection into clipboard.
- Added new config option ‘home_path’ (unset by default) which defines the file path or URI string to open when ‘Home Folder’ is activated in side pane, toolbar, or menu. Available only with LibFM 1.2.0 or newer.
- Added new config option ‘focus_previous’ defaulted to false (preserving old behavior) which allows select and focus the folder where we came from when we go into parent directory. It’s available only with LibFM 1.2.0 or newer.
- Added new config option ‘close_on_unmount’ defaulted to true. If set to true then tab containing a folder that is vanished (that happens if the folder either
was deleted or was renamed or was unmounted) will be closed. If set to false then such tab will go to the ‘Home Folder’ instead (with respect to ‘home_path’ config option).
- Implemented possibility to set custom folder to display on desktop. It is saved in monitor config option ‘folder’. If that config
option is unset that implies default desktop folder. If that config option is set to empty string then desktop icons support and drag&drop support will be disabled for that monitor. Otherwise mentioned path will be used to display on the desktop instead of Desktop Folder.
- Changed saving option ‘wallpaper_mode’ into desktop config, it will be saved as text instead of number to allow further improvements.
- Added new wallpaper mode ‘crop’ that will scale image proportionally to match the monitor size fut in difference to the ‘fit’ mode the scaled image will fill whole monitor area and will be cropped if it’s bigger than the monitor.
- Added new wallpaper mode ‘screen’ that will scale image to fill the entire screen size and display appropriate part on the monitor it is configured for.
This mode is useful when people have an appropriate wallpaper and want their screen composed of two monitors to show the whole image – a part on first monitor and other part on second.
- Added alternative to Location Bar – implemented FmPathBar support with switching via menu ‘View’->’Path Bar’->… radio buttons. The path bar mode is applied to windows opened after change, the same way as the side bar change is applied.
- Added optional ‘New Window’ button to the toolbar left to ‘New Tab’ one to those who don’t like tabbed view.
- The statusbar can show total size of selected files if some conditions are met. Conditions are:
- number of selected files should be less than 1000;
- selection should contain no directories.
Those limitations are due to lightweight nature of the file manager and otherwise counting will take too much resources.
- Added API to create third-party plugins that may append own text to the statusbar text for selected files. The plugins should be installed into $(libdir)/pcmanfm folder and use “#include” directive in the code.
- Added new menu option ‘Tools’->’Run a Command in Current Folder’ to run an arbitrary command line from the folder opened in current tab. This option works only with LibFM 1.2.0 or newer.
- A whole lot of bugfixes.
libfm – full git log
And not every day the release and log sync works as expected. The early testing did not reveal that we had a horrible bug in the settings dialog. This is the only real change since 0.5.4.
lxappearance-0.5.5.tar.xz, sha1sum: 5497886d84bfdac0c18709e076b4acd96caba912
Changelog (except translations)
58b13aa – Fix crash: button id ‘enable_antialising’ not found in UI.
Welcome to an important bugfix release of LXAppearance. There was a missing newline in the theme file created by the application and that file was then unusable. Another minor thing is that we’ve switched to xz as default compressions (for all components).
lxappearance-0.5.4.tar.xz, sha1sum: e9b5f4704f2947aac5cec2bfbaeb376b548148ea
Changelog (except translations)
cc57437 – Correct spelling for “antialiasing”.
f63c857 – Fix ~/.icons/default/index.theme saving file – it wasn’t correct keyfile.
53c66db – Distribute tarballs in XZ format instead of GZIP by default.
The look and feel configuration tool LXAppearance was just released. Mostly internal fixes for build systems. The more externally interesting changes are support for non-lxsession environments, compile with –enable-dbus to use this.
lxappearance-0.5.3.tar.gz, sha1sum: d0342072512107bfcbe0465e27678e71a34c6733
Changelog (except translation changes)
8f02080 – Correct xml_purge_SOURCES in src/Makefile.am to contain relative path.
af8a1e4 – Lower autoconf version required – it works with 2.64 just fine.
caa1029 – debian: run autogen.sh to generate the automake files
5a2b99d – debian: fix the build to avoid empty packages.
1cbf9c8 – Change in configure.ac for compatibility with automake 1.14
0e89eec – debian: remove libmenu-cache1-dev from build dependencies, it isn’t needed.
a50b8ed – Fix support for non-lxsession environnement when compiled with –enable-dbus
b4389f7 – debian: resync with Debian
6a425f6 – Update build system
3aa02c9 – debian : Add also the build-depends on dbus-glib.
819549f – debian: Add –enable-dbus to make it work with new lxsession
6235bf2 – Fix NotShowIn (#3537354) and categories for consistency
The image viewer application GpicView have been updated; GTK3, minor refactoring and some updates to the infrastructure for building.
gpicview-0.2.4.tar.gz, sha1: 423143c850390db9784ad9812b9f929c18dd51ea
5e5b7ae – Modernize autotools
3204817 – Remove gtk-doc stuff in autogen
2c7cec9 – Fix autogen with new versions of automake
2ca2926 – Install the icon in the hicolor directory, and use a themed icon when available.
f06a367 – Update .gitignore
404abde – Update .pot file
45dc7d2 – Show images from current directory when run with no arguments.
5f02823 – Show/hide toolbar. Handle case “gpicview path/to/some/directory/”.
3c2f1a2 – do not reset zoom mode on prev/next actions
840219a – Some refactoring of zoom and scale switching code. Also fixes glitches of “Fit Image” button state.
c09b934 – fix “Fit Image” with Gtk3
88e76ee – fix scrolling when scale == 1
83a5589 – fix displaying images with gtk3
71574c7 – Fix compilation with GTK3 for image-view.c. Ok, the program builds succussfully with GTK3 (but does not show any images, however), it is time to do something useful.
b6074e6 – Fix compilation with GTK3 for main-win.c
987e384 – allow automake 1.12
No rest in the PCManFM camp. Another update is here, not just one but several. A new PCManFM version and two bugfix releaes to libfm gives us a strange version bump for once.
pcmanfm-1.1.2.tar.gz, sha1: d6f42f0957abe25bb79b24b57bf1026eabe3d820
libfm-22.214.171.124.tar.gz, sha1: 21fc7600f6996a826106f40c4ff0c3ac5f094d47
Changelog for PCManFM
* 0a9dfa8 – [#3614867]“Daemon mode” not always works correctly.
* 3d6f154 – Add missing #include “gseal-gtk-compat.h” into src/tab-page.c
* 8eb3856 – Remove xml-purge to allow smooth cross-compilation, replace it with sed.
* 2e2d530 – Add data sources to dist tarball, the make check needs them.
Changelog for libfm
* fa819be – Release v126.96.36.199.
* 0de4df2 – Increase ABI revision to 5 before release (now ABI code is 4:5:1)
* da08c6c – [#3614500]Add weak notify on Places view to detach it from context menu.
* 74116b0 – Call GtkWidget’s handler button_release_event() before we unmount.
* 77c6a62 – Make ‘make check’ work (the docs/Makefile.am contains incorrect statement).
* 727334c – Release v188.8.131.52.
* 03f5ea8 – Fix over 8b67cc484583f2d9413ffb30e670fd7602f0a931, it was incorrect.
* d7df28a – [#3614837]Check file name before id when launch GDesktopAppInfo.
* 8b67cc4 – Fix crash with no terminal defined in config file.
* 90c5b6e – Release v1.1.2.
* 1d0055b – Increase ABI revision to 3 before release (now ABI code is 4:3:1)
* 18131ed – [#3614629]text/uri-list in DnD should be ended with \r\n not just \n
* bc51ca2 – [#3614837]Fix incorrect terminal config statement parsing.
Just days since the last release and here I am again prodding about menu-cache. Release early, release often in real life =)
All changes was there but one file was missing in the generated tar file we distribute. Sorry.
No real changes are available in this relase if you pull and use git, but the old tar file linked in the old post is just botched.
menu-cache-0.4.1.tar.gz, sha1sum: ca79049f9cab6d5099a8ab03584dc44bdc35a7c4
The backend library to read freedesktop.org application menu files has been released updating important aspects.
- The libmenu-cache is made thread-safe. Thread-unsafe APIs are marked as deprecated now and should be never used in any multithreaded application.
- Added creation of HTML developers documentation. It is triggered by configure script option –enable-gtk-doc.
- The libmenu-cache is made more responsible by moving some time-critical operations into thread. Also it preloads saved cache file if it exists so it is available near instantly after menu_cache_lookup(). Caller still will get updates by adding notifier to the cache.
- Added automatic shutdown of menu-cached server after some inactivity timeout (i.e. all clients were unregistered).
- Fixed few memory problems (referencing errors and memory leaks).
- Fix for bug #3501347: use g_get_tmp_dir() instead of hardcoded “/tmp”.
- The libmenu-cache ABI bumped to 2.
menu-cache-0.4.0.tar.gz, sha1sum: f853d195cde1209873cc1f11bc401cce2cbef2f6
UPDATE: The release tar file is missing a file! Do not use it, grab 0.4.1 instead (or rather use the git repository).
df0e231 – Update for NEWS file.
bf741d1 – ABI bump 1 -> 2.
89aa5d8 – Source documentation: enums for MenuCacheItem.
2823f05 – [#3501347]g_get_tmp_dir() should be used instead of hardcoded “/tmp”.
35c4abe – Fix: memory leak in menu_cache_unref().
8b046bf – New thread-safe API menu_cache_dir_list_children().
3899a74 – Always do cache reload in default main loop.
9e5f0e1 – Fix: –enable-debug doesn’t affect libmenu-cache compilation.
9ccbff2 – Don’t recreate cache if nobody listen for reloads.
d134e6c – Fix on server starter in libmenu-cache: it may get ENOENT.
a7002ac – Fix on test for separator in cache file parser.
d3089bd – Fix for compilation with DISABLE_DAEMONIZE.
fab90d5 – Corrections on GIOChannel handling.
e528621 – Test g_source_is_destroyed() in timeout handler is very welcomed.
c423cfe – Cosmetic changes (indentation, source text formatting).
b9c2816 – Changed cache referencing completely.
8edebe4 – Use GCancellable in connection process too.
a630e77 – Addicg GMutex to avoid parallel connect from different threads.
44ed600 – Use GCancellable on cache file read operations.
b03ac65 – Load cached file first if available.
2dd8924 – Loading cache better be started in thread.
b839830 – Avoid launch of duplicate menu-cached in case of errors.
08a0127 – A little optimization on casts MENU_CACHE_DIR(dir) in _dup_ APIs.
b3f7561 – Change for lock since parent member of MenuCacheItem isn’t protected by reference.
fa16c31 – Change for lock since items in hash aren’t protected by reference.
6192475 – Fixes for all compilation warnings.
d60060e – Fix for memory leak on cache loading error.
f647b41 – Adding documentation in sources for gtk-doc processing.
380c917 – Adding missed ‘static’ keyword for few definitions.
063a9d9 – Add gtk-doc documentation handling into source tree.
02901b0 – reload_notify should be called always on idle to be thread-safe.
2bbec57 – Notifier should use not gpointer but some specific data.
0fd928d – Added three thread-safe API replacements for thread-unsafe APIs.
908a1ee – Added a common lock for thread safety.
0adf7a8 – Eliminated all compiler warnings in libmenu-cache.
9ac8975 – Removed redundant parameters from ADDITIONAL_FLAGS.
fbead80 – Non void function should return something