Minido

Minido is a minimalistic launcher à la gnome do for a gtk-based desktop. It is licensed under GPL3. Check the sourceforge project page for the release files, etc.

Warning: initial release. E.g., ctrl+space is a hard-coded hotkey :)

Features

Minido is

Light
Minido is written in C/C++ using the Gtk3 framework,
Smart
Minido adapts to your search habits in a simple yet helpful way (see Selection Rule below),
Themeable
Minido adheres to the Gtk3 design. Its look is governed by the active theme and it is further customizable via css (see Customization below),
Extendable
Minido has a plugin interface. (Not yet implemented.)

Roadmap

As time affords, I plan to implement the following features.

Fast Search
The current search routine is fast for some 1000 records. Extra optimization can bring that limit up to a 100,000 or so.
Native (C++) Plugin Infrastructure
Python Plugin Infrastructure
"Files" Plugin
"System Commands" Plugin

Selection Rule

An item is a match if the search string is a subsequence of item's name. Among all the matches, Minido selects as follows.

  1. First, the preference is given to the match, which has the longest common substring with the search string. If there are several such matches, then the same rule is applied using the second longest common substring, et cetera.
  2. Next, the preference is given to the match, for which the search string used to invoke it most recently is similar to the current search string (similar means one is a subsequence of the other). Consider an example. I use "Thunar File Manager" and "Thunderbird". After I have once invoked them by "thunar" and "bird", respectively, I can just use "t" and "b" (given no other similar recent invocations, of course).
  3. Next, the preference is given to the match, which has been invoked most recently.
  4. Next, the preference is given to the match, which has the earliest common character with the search string.
  5. Next, the preference goes to the match with the shortest name.
  6. Finally, if several matches still remain, an arbitrary match is selected.

Minido considers it is more polite to call a program by name, albeit a fast-pronounced one, rather than to point a finger at it. Minido enforces its conservative cultural view by not featuring a drop down box with all the matches. The author concurs.

Customization

The look of minido is governed by minido.css (/usr/share/minido/minido.css). To customize, copy the relevant sections to you local gtk.css (~/.confing/gtk-3.0/gtk.css) and adjust to your liking. E.g, to make selected text bold and underlined, as is common in other launchers, add the following section to gtk.css:

#minido-input selected {
  background: rgba(0,0,0,1); /* set transparent background */
  font-weight: bold;
  -pango-underline: single;
}

See GtkCssProvider for the Gtk CSS specification.