Friday, September 26, 2008

A few clarifications

I realize that my last post didn't make things clear enough for everyone to understand so let me address some questions about QuickSand.

What exactly is QuickSand?
It is simply an alternative to the spinning squares in the default KRunner interface. At its core, it is still powered by the infrastructure of KRunner.

Where can I get it?
If you read the latest commit digest, you'll see I committed it to playground. It's in trunk/playground/base/plasma/quicksand. But before you checkout the sources, let me address a related question.

Can I run QuickSand in KDE 4.1 and lower?
No. Actually, you can't even compile it using the code in trunk. Multiple action support requires two things: 1) a patched libplasma that supports multiple actions, and 2) runners that actually use multiple actions. To fix #1, there's a patch included in the directory. The patch is against trunk/KDE/kdebase/workspace. #2 is not really an issue but runners that have multiple actions can be found in playground (mediaplayer and windows directories).

Won't you release a KDE 4.1 version?
The interface itself can be run in KDE 4.1.x. Initial development occured on my stable 4.1.1 installation. I still have a KDE 4.1 branch locally. However, multiple action support requires the use of a patch which is against trunk. If enough people clamor for a 4.1.x version I could release a QuickSand version without multiple action support. (Please do not send me e-mail asking for one, a comment here would suffice.)

Are we aping GNOME Do?
No. Similarities between GNOME Do and QuickSand are due to the fact that they are both inspired by Quicksilver. If anything, QuickSand is more related to Katapult than the relatively new GNOME Do. GNOME Do and Katapult mimicked the Bezel interface. QuickSand emulates the default interface (Primer) but I think most of you will agree it looks way better.

The primary inspiration for making KRunner multithreaded was my experience getting multithreading to work properly with Katapult. Anyone remember Katapult-Fast Track? One of the comments for Katapult-Fast Track encouraged me to work on KRunner. Well, guess what... I did. :)

Recall the feature list of improvements in Katapult-Fast Track: real transparency, multiple matches per search, multiple actions per match, and multiple threads. These have all been implemented (or at the very least are in the process of being implemented) in KRunner (and thus QuickSand). All that's really left is adaptive search. Oh yeah, would have loved to do all of this for GSoC. :)

Can't you just get rid of the popup box?
The design isn't _all_ about eyecandy. Sure only having scrolling icons may look nice, but in practice it may be difficult to work with. Take the following picture as an example.


Can anyone tell me which is the match for result.h without scrolling through all items? Thought so.

I don't want to _have_ to scroll through all the items to find one particular match. Having the popup completion box makes it easy to distinguish between items with similar icons and select the desired match immediately. The popup completion box also enables interaction with the mouse. Scrolling through the items and selecting matches when the popup box is not shown can currently only be done using the keyboard.

Don't want to see the popup box? Just press escape or click elsewhere. Never want to see it? I'll add an option to hide it in the config dialog sometime soon.

Miscellaneous stuff:

A picture of text mode which I forgot to include.

And just a minor plug, I like where the Raptor menu is going. :)

Monday, September 22, 2008

Alt+Space

Didn't get the following to Danny on time. Anyway here it is :)

Introducing QuickSand

QuickSand is an alternative interface heavily inspired by the Primer interface of Quicksilver in Mac OS X.


QuickSand differs from the current KRunner interface in several ways. QuickSand has 3 different display modes: Icon Parade, Selected Item, and Text mode. The default display mode is "Icon Parade". Instead of displaying a line-edit, QuickSand presents the user with a match pane asking the user to type something to be searched. Upon typing, the search string is displayed on the upper left corner of the match pane. If matches are found, the number of matches is displayed on the upper right corner of the match pane. The icons are of the matches are lined up horizontally in the match pane and a popup completion box is shown to guide the user in selecting the appropriate match. The user can scroll through the available matches by pressing the up and down keys (when the popup box is shown) or the left and right keys.


Hitting enter will select the match and display only the selected item. Clicking on the arrow on the upper right corner of the match pane will toggle between Icon Parade and Selected Item modes.


If the user would rather see a line edit, pressing the period (.) key will change the display to text mode. A line edit will replace the scrolling icons in the match pane.

One of the primary reasons for writing QuickSand was to provide support for multiple actions. For example a match for an open application window can have several actions associated with it. The window can be minimized, set on all desktops, etc. QuickSand supports multiple actions in the same manner as matches for a search. If a particular match has several actions associated with it, an action pane appears below the match pane with the first action selected. Pressing tab will switch to the action pane and the user can select from the various available actions in the same manner as matches.


Hopefully, QuickSand will be provided as an option in KRunner allowing users to select between the default interface and QuickSand.

Another future development would be support for actions that require objects/targets. For example given a match for a file "sshot.jpg" and an action of "e-mail to...", a possible object would be "johndoe@commit-digest.org". Support for objects would be as simple as placing an object pane below the action pane and displaying it whenever the currently selected action requires an object.

Wednesday, September 10, 2008

Some people fall in love and touch the sky

Some people fall in love and find QuickSand


(Coming soon. :) )