Skip to main content

LeechCraft 0.5.98 is released

Posted in

LeechCraft 0.5.98 "Homecoming" is released today.

Again, it is a purely bugfix release, only incorporating fixes from the master development branch. The following things were fixed:

  • Core: show unassociated dock widgets before showing dock widgets corresponding to the current tab.
  • Core: fixed some segfaults on tab closes.
  • Core: fixed reusing IDs for jobs, fixing a few rare bugs in plugins like CSTP.
  • Aggregator: always save provider for delegated jobs.
  • Aggregator: download the rest of the feeds after killing a stall.
  • AN: moved "Update" button to a saner place.
  • AN: check if current rule is modified & suggest saving.
  • AN: fixed overlay text drawing on notification icons.
  • Azoth: fixed several rare segfaults.
  • Azoth: don't send "Paused" typing state after sending a message.
  • Azoth: take user-entered groups into account on roster item exchange.
  • Azoth: show JIDs in all users list.
  • Azoth: show contact JID in chat tab entry info line.
  • Azoth: activate first item in users list by default.
  • Azoth: don't try sending contact ID to another on Drag-n-Drop.
  • Azoth: change tab name after entry renaming.
  • Azoth MetaContacts: don't suggest unifying with MUC entries.
  • Azoth Xoox: properly handle server errors on form fetching.
  • Azoth Xoox: fetch versions for variant-less items as well (fixes fetching versions of MUC participants).
  • Kinotify: fixed leaking state machine on each notification.
  • LMP: fixed broken synchronization symbol fixing.
  • LMP: temporary files are always removed after sync.
  • LMP: metadata is now mapped properly from the source.
  • Monocle: only render those pages that are actually visible.
  • Monocle: don't set negative scales.
  • Monocle: immediate scrolling to current page on load.
  • Monocle: menu is shown only if mouse moved with a button pressed.
  • Monocle Seen: safeguard against rendering a bunch of small images leading to memory exhaustion.
  • TSM: fixed occasional segfaults on tab closes.
  • Vrooby: proper partition naming in UDisks2 backend.

LeechCraft 0.5.97 is released

Posted in

Another bugfix version is released: LeechCraft 0.5.97 "Wormholes".

The following bugs were fixed:

  • Core: fixed colors for QML buttons (mucn neater now).
  • Core: properly handle META key in shortcuts dialog.
  • Core: properly set default string codec, fixes debug messages encoding.
  • Util: fixed memory leak with QML and ColorThemeProxy.
  • Util: fixed rectangle fitting algorithm.
  • Azoth: fixed chat entry destruction on chat tab close.
  • HotSensors: take text color from the QML theme.
  • LackMan: fixed a typo in SQL query.
  • Launchy: extended known category aliases for Multimedia.
  • Monocle: keep page position on resize.
  • NSM: fixed icons for tab context menu actions.
  • TPI: update job name as well.
  • TPI: don't show internal tasks.
  • Vrooby: close the device popup on hoverout.

LeechCraft 0.5.96 is released

Posted in

LeechCraft 0.5.96 "Quittance" is released.

This release is the first one after the 0.5.95 feature freeze, thus it incorporates only bug fixes:

  • Core: keep tab icon along tab moves between windows.
  • Core: fixed toolbar handling on tab moves between windows.
  • Core: fixed file locking threading issues.
  • Core: fixed network disk cache expiration handling.
  • Core: proper handling of forcefully closed unassociated dock widgets.
  • Core: don't show actions with empty text in popup menus.
  • Azoth: fixed autoscrolling.
  • Azoth: application-wide users list shortcut.
  • Azoth: case-insensitive users list filtering.
  • Azoth: use proper icon for voice calls.
  • Azoth Acetamide: made the channels list dialog non-modal.
  • Azoth Acetamide: allow joining to channels while the list is fetched.
  • Azoth VB: don't own conversation by the buddy, fixes multiple segfaults.
  • Blogique: fixed progress indicator.
  • Blogique Hestia: fixed autoupdating entries in local blog.
  • Monocle Postrus: fixed FindLibSpectre.cmake for upcoming CMake.
  • LMP: fix rare segfaults on queue clearing.
  • LMP: clear last song data on player clearing.
  • LMP: support drags from filesystem browser.
  • LMP: replace queue on playlist activation.
  • LMP: properly restore play mode check state.
  • Popishu: fixed caret line background color.

LeechCraft 0.5.95 is released

Posted in

LeechCraft 0.5.95 "Hate Creation" is finally released!

It took us more than four months and more than 1400 commits to make this release happen, but it is worth it: we've implemented quite a few new tasty features, some of them being requested for quite a long time, and we've also fixed a whole bunch of things, from small annoying artifacts to nasty crashes. Moreover, this is the first release under the new Boost Software License.

Global changes

First of all, we've finally added multiple windows support to LeechCraft, so now you can have all your IM chats in one window and web pages in another one. LeechCraft has an option to open each tab class in its own window automatically, so it will throw private chats in one window, conferences in another one and, say, documents opened in Monocle into third one. Moreover, this feature is very useful for those having multiple monitors: one can put a long article to read or documentation pages on one monitor and leave primary LeechCraft window on another one:

Plugins also support this new multiple windows feature. For example, SB2 will keep different settings like panel placement and quarks list for each window.

The multiple windows feature is still very experimental and may lead to segfaults. Please report any problems with it!

Dock widgets management was improved considerably. Now only one dock can be visible at a time on each side of each LeechCraft window, and the dock windows are toggled via the corresponding toolbars or SB2 if it is available.

Plugins with the most improvements are, as always, Azoth, the IM client, LMP, the media player, Monocle, the document reader, and SB2, the next-generation sidebar plugin.


Azoth IM client became more keyboard-friendly with shortcuts for showing quick navigation list with current MUC participants or contacts from the whole roster, or for opening last detected link in a chat. It also saves whether formatted messages are enabled for separate contacts now, so you can have formatting disabled Azoth-wide and enabled for separate contacts only, so next time chat tabs with those contacts are opened, Azoth will automatically enable formatted messages. It is much faster and stable now as well.

Azoth' subplugins were also improved. For example, Acetamide, the IRC protocol plugin, now supports querying the list of channels on a server. AdiumStyles was optimized a lot. ChatHistory module loads history way faster now. Modnok, the LaTeX renderer, supports settings custom background colors and disabling antialiasing. Xoox, the XMPP support plugin, got most fixes: it now supports properly changing account password, forwards XHTML-IM message body in Ad-Hoc commands and exposes TLS settings. It also has an option for turning off requests for VCards and versions in MUCs, considerably reducing traffic usage and server load in conferences.

And good news for some users of protocols currently not supported by Azoth: work on a new plugin, VelvetBird, has been started. VelvetBird is basically a wrapper around libpurple adding support for protocols supported by it to Azoth. It is in its very early stages now, some vitally important features are still missing (working with authorization/subscription, for instance, is still somewhat experimental), but some LeechCraft users already use it as well and are generally happy with it.


LMP, the audio player for LeechCraft, has been improved a lot as well. It now has a proper album art manager, supports showing artist browser from a bunch of various places, supports previewing whole albums from sites like VKontakte (if discography if available via plugins like LastFMScrobble and MusicZombie).

LMP also has got a new subplugin, LMP Graffiti, which allows one to tag audio files, split CUE files into separate tracks and obtain tags for files from services like MusicBrainz via audio fingerprinting (if corresponding plugins are installed):


Monocle document reader now supports a bunch of new things:

  • page thumbnails (with visually highlighting the currently displaying area);
  • bookmarks;
  • forms for PDF files;
  • text searching.

Monocle also allows searching for selected text via text searchers like Pogooglue or SeekThru OpenSearch client.

A lot of behavior issues (mostly keeping state between Monocle launches) were fixed as well. Monocle FXB, the fb2 format plugin, has been optimized two-fold on a typical fb2 book.


SB2 now supports placing the panel in any window side, not only left one. It also supports removing and reordering quarks now, and the quarks can have settings as well:

Panel placement preferences, as well as quark list, order and quark settings can be different for different windows.

Other plugins

Blogique, the blog client, now supports such features as autosaving, tab unclosing and session management with the TabSessManager plugin or showing recent comments and inbox messages. It also supports keeping a local blog now.

GActs, the module for supporting global shortcuts, now bundles a patched copy of required Qxt files with it. The patches add support for assigning media keys to global shortcuts, a thing that upstream Qxt misses (and seems to not accept the proposed patch for several years already). GActs still supports building with system Qxt instead of bundled one, but in this case one misses this media keys feature.

Launchy module now supports favorites category where applications and LeechCraft tabs can be added. Favorites will be shown in quick launch area in SB2, if the corresponding quark is enabled:

Launchy now also supports keyboard navigation as well as filtering the list of applications by name, description or name of the executable.

NetStoreManager module (responsible for cloud storages support) was reworked quite a bit. For example, there were several stability improvements and older tree-based interface was replaced by a more Total Commander-like thing.

Among other changes:

  • Aggregator module got a major speedup.
  • LHTR visual editor plugin now supports tables and some other features.
  • GMail Notifier module now supports showing a quark with the list of mail in the mailbox.
  • Liznoo power manager has extended support for Mac OS now, with things like querying battery voltage or temperature.
  • A new module has been added which provides a quark with temperatures readings from libsensors: HotSensors. It is experimental for now and is known to crash sometimes during heavy system load in Qt internals.
  • Poshuku history widget has been fixed, supporting filtering by URL and eliminating duplicates in the same section.
  • Vrooby module now supports UDisks2 and supports building with several backends at once, trying them in order at run time.

Several old and unsupported plugins were removed, among them:

  • EiskaltDC++, the DirectConnect-client.
  • LCFTP, the FTP client.
  • TransparentArch, stub for easy access to archives contents.
  • VFSCore, virtual file system implementation. This module had to be removed because the functionality it relied on is unavailable in Qt 5 and there are no alternatives.
  • Tab++, being replaced by TabsList and SB2.

These plugins were extracted into separate repositories, keeping all the revisions that relate to them in case someone would take them over.

And now we are even closer to having a working LeechCraft installation on Windows. For that, we had to migrate to the MinGW toolchain, since MSVS' support for C++11 standard is pretty crappy yet.

Source tarball is already available, so is Mac OS X build. Packages for various Linux distros will be available later.

This is the last feature release in the 0.6 series, all other releases until 0.6.0 will have no new features, only bug fixes. In fact, there will be a separate branch for 0.6, and while the main development with all new tasty things will happen in master, only bugfixes will be ported to the 0.6 branch.

And now it's time for a couple of words about future plans. First of all, we won't support Qt 5 until at least Qt 5.1 is released: Qt is still to buggy, and it is insane to try to port quite a big and complex codebase like LeechCraft to such thing for now. Then, we have some awesome ideas for the upcoming 0.7 series after the feature freeze, ranging from new plugins like finance manager and data sources concept to full-blown desktop environment based on LeechCraft running out of the box and without aid of things like KDE and friends. Stay tuned!

Moving to Boost Software License

Posted in

LeechCraft is now licensed under Boost Software License. It is a lax license based on the MIT license with several improvements.

Boost Software License is fully GPL-compatible, though it doesn't really matter in LeechCraft case since it doesn't use GPL libraries at all, with the only exception for now being libsensors for the HotSensors module.

We've thought about relicensing and moving from a copyleft license GPL for quite a long time already, and there are several reasons for it:

  • Freedom as in lax licenses is closer to our own understanding of freedom. We would have used WTFPL is it were more strict from the formal language point of view.
  • Having such a license allows us to borrow parts of our code into our other closed-source projects that we do for living, some of them being proprietary. And this way we don't have to deal with things like double-licensing.
  • Such license also in theory would allow companies who wish to use LeechCraft in their proprietary stuff to again not deal with double-licensing or GPL obligations.

The last point maybe requires a bit more explanation. LeechCraft codebase is big and complicated enough for companies who wish to use it in their products to hire LeechCraft developers instead of working on it on their own. A non-copyleft license is typically preferred by organizations, since it doesn't place a burden to open proprietary products' sources, while the original LeechCraft version can stay open and enjoy the enhancements done on organizations' funding.

Either way, it's a win-win for the community, getting more enhancements, and for developers, who can get paid for their work on LeechCraft.