Ivan Čukić

Nothing is easy

With a title of a great Jethro Tull song, and a teaser screenshot, I’m ending this post.

Nothing Is Easy

Project: Chiffonier

Shelf ex Lancelot Part, has became ex Shelf and got a rather fancy new name – Chiffonier. It will remain only until it becomes mature enough to become a drop-in replacement of the current version.

The searching works without issues, and in that area there are no differences between the C++ implementation and the new one.

The things yet to come are:

  • In-applet configuration, not a QWidget-based dialog like it currently is.
  • Automatic sizing of the popup applet… will be tricky.
  • Setting the icon, drag and drop, multiple models in one shell…

Well, this is it for now… just wanted to make the name known :)

Shelf applet in QML [Lancelot]

I have realized I haven’t had a Lancelot-tagged post in a really long time. This just has to change.

After the release of Plasma Active 2, I decided to take a few days off, and do something else. After Martin’s port of Kickoff to QML, I got the idea that I could finally start porting Lancelot to QML. I have entertained this idea in the past, but I was unsure about how backwards compatible QML2 will be and whether I’ll have to rewrite large parts of Lancelot for the fifth time due to changes in Qt.

With all those doubts still present, I decided to bite the bullet.

I’ll try to keep things on the /safe side/ by keeping the Lancelot-specific hacks to a minimum. This means I’ll try to use Plasma Components and standard Qt Quick as much as possible instead of writing my own like before (at the time, there were no pre-made UI components for QGraphicsView).

Data models

The first to port were the data models – instead of a custom ActionListModel class, I’m now using the standard QAbstractListModel, and all the models are exported as QML components in the namespace of org.kde.lancelot.components.data.

This means that any KDE/QML application, plasma applet or something else, will be able to use these models by doing a simple import.


After the models were converted, it was the time to test them, and what better way than to re-implement the Shelf applet. As you can see in the screenshot, even the KRunner-based search works.


There will be regressions in this process. Some intentional (aka permanent feature removals), some not. At first, there will be no click-free activation, no drag-and-drop, no …

I don’t plan on releasing Lancelot 2 until most of the current features are reimplemented, but this is not the case for the Shelf. It will go into KDE Plasma 4.9 regardless of state it will be in. It is almost usable now, more than a half a year before 4.9 is released to the wild.

Lancelot 1.x

There will be no major changes in the current branch of Lancelot, unless someone steps up to do the work. I’ll try to find the time to fix openSuse-specific (I don’t use oS, so can’t reproduce) crashes that have been flooding bugs.kde.org recently, but that might be after 4.8 is released.

The Shelf Applet Screencast (KDE Plasma 4.6)

I thought making a screencast would take less time than writing a manual for the Userbase. Oh, boy, was I wrong… constant chat popups, notifications, /home partition full errors etc.

So after a few attempts, I succeeded making it with only one error message and no nortifications.

The video demonstrates two basic methods of creating the Shelf widget

  1. Adding via the widget exporer and then configuring its contents and
  2. Dragging items from the Lancelot menu widget

It also demonstrates the different ways it can be used – as a list or iconified, on a desktop or on a panel.

KDE Plasma Shelf

KDE Plasma Shelf
Ivan Čukić

Original file (1440x900px 26M)

The music in the background is a mix of a few awesome songs composed by the legendary guitarist Brian May for the Furia motion picture.


To Plasma/Lancelot theme creators

Just a small reminder – in KDE SC 4.5, Lancelot shows Plasma’s widgets/viewitem.svgz as a background for the items in the lists. So, you should remove the files that match lancelot/action-list-view-* except action-list-view-headers.svgz from your themes.

If you don’t, the list items will have two backgrounds and will look *ugly*.

The reason why I didn’t disable the old backgrounds directly in the code is that someone could possibly want to have the two backgrounds (an example where it looks OK are the list headers).

I'm going to Akademy 2010

Lancelot and KMail in 4.5

Every once in a while I write a post related to relations between lancelot and kmail or kopete.

This time it is only to notify you that until KMail2 arrives*, the ‘unread mail’ section in Lancelot will not work since L in SC 4.5 switched to Akonadi.

* if PIM devs don’t miss the initial plan, it will be for 4.5.1

User documentation

It is a well known fact that devs hate writing the user documentation (we are not even fond of writing devel documentation), so it was the same case for me and Lancelot‘s manual.

But from time to time our conscience tells us that we should do something about it. In this case, the role of my conscience was played by annma :)

In preparation for KDE SC 4.5, I’ve updated the main userbase page for Lancelot and added two more detailed articles – one to contain the basic instructions and one that compares Lancelot to other launchers.

The comparison is most probably biased (although I tried hard for it not to be), so any help in that department is appreciated. (any help in any department is more than appreciated)

Now, the article that is yet left to be written is the introduction to the Shelf applet (ex Lancelot Part) and I’ll be able to rest on my laurels with the shiny new Lancelot that will be published with the KDE SC 4.5. :)

4.5 updates so far

I’m not going to make a detailed post, just a screen-shot based overview of the new features you can expect in KDE 4.5.

Cascading popups

There was a lot of talk in the beginning about why Kickoff and Lancelot are not like the classic menu – and don’t have popups. Although I still don’t consider cascading popups to be good, liblancelot supports them. After a large amount of polishing, the feature is ready to be exposed in the menu itself. It is considered experimental, but it works quite well.

How to activate: Configure Lancelot Menu > Applications > Open popups for subcategories

This feature is not yet enabled for the Shelf applet (ex Lancelot Parts) but it still may find its way into it for 4.5.

Smaller section buttons.


How to activate: Right-click any of the section buttons and choose “Make buttons narrower”

Search history

Lancelot now remembers what you have typed in the search box, and auto-completes your query.

How to activate: Start typing – the closest match will already be in the search box, grayed out a bit. To use the whole completion, press End key. For completing smaller parts, press right arrow key.

Search engines (runners) configuration

Now, you can choose which runners to enable and which ones to disable. You can disable the slow or crashy ones, …

How to activate: Configure Lancelot Menu > Search

Other stuff

  • Nice animations and better Plasma-feel.
  • New icon
  • Akonadi based unread messages
  • Disk usage pie-charts
  • Reduced memory footprint
  • A lot of fixes…

That’s all for now…

Tokamak 4: Lancelot Mobile

Lancelot (the menu) was not really designed to run on mobile devices (although it could be used on such devices as a full screen application quite well), but the Lancelot Part applet proved to be a rather good fit.

I wasn’t involved in any mobile-related developments at Tokamak 4 (I had too much to work on krunner and activities) but I found some time to test the KDE/Plasma enabled Jax 10 devices.

Placing a Lancelot Part inside the newspaper activity that showed favourite applications and a search box was a breeze and it worked quite well. Marco did a really good job of adapting the plasma-netbook edition to mobile (touch screen) devices so the Parts applet required no changes at all to fit in the new environment.

Here is an obligatory blurred screenshot:

I’m planning to make a screencast about using Lancelot in Plasma Netbook, but I’m not finding the time. I hope I’ll be able to make it soon.


Mmm, more pies!

A small visual update of Lancelot‘s pies:

Concerning bars instead of pies:

  1. Bars below the text (like in dolphin) will not be implemented:

    I’m trying to keep everything in Lancelot generic enough with a complete model-view separation, so introducing a widget just for a specific model is not an option.
    Comment by Ivan Čukić — 7 February 2010

  2. Bars as a part of the icon
  3. This one would be allowed when concerning the above statement. But I don’t really see the point in doing it.

    When the usability is concerned, bars are more desired when comparing multiple statistical variables (national growth per year), while when percentages are concerned, pies are the way to go (and to increase the usability even more – these are color coded – from blue, through yellow to red).

    Introducing a new feature just for the sake of it is not something I’m willing to do. If you can convince me that bars* are better** than pies, I’m ready to listen.

    * bars that can fit into the icon itself like the current pies do.
    ** better as in “should replace the pies” – having a configuration option for something this insignificant would be a waste of space.

I’m going to Tokamak 4