Yeganesh

This is a small wrapper around dmenu. Like dmenu, it accepts input on stdin and writes the chosen result on stdout. Unlike dmenu, it mangles the input before presents its choices.

In particular, it displays commonly-chosen options before uncommon ones. Here's a partial screenshot after about 30s of use today:

example: firefox gimp pidgin xchat 822-date [ a2dismod a2dissite a2enmod...

As you can see, I've used Firefox several times already, as well as the Gimp, some chat programs, and my music player. The rest of the programs in my PATH follow, as usual for dmenu.

Download the source or a binary for version 2.5 (released 21 April, 2012; changelog) today! New releases will be cross-posted to the Haskell and xmonad mailing lists. You can

An important note about dmenu-4.4

If both of the following apply to you:

then you probably have duplicate entries in your profiles. Any affected profile can be fixed with the new executable provided by the yeganesh package, yeganesh-strip. It accepts exactly the same command-line arguments as yeganesh itself, ignoring all but the --profile option. Running yeganesh-strip is safe, even if the profile is from a newer version of yeganesh or does not have duplicates.


Details

Yeganesh is written in Haskell, so it is technically cross-platform, but it probably doesn't make sense outside of the *nix world. Installation should be second nature for those of you familiar with Cabal. For everybody else, and assuming GHC >= 6.8:

You should now be able to use yeganesh! Try running "yeganesh -x" a few times. The first time might be a bit unspectacular; however, on the second run, you should see all your executables listed. The third time, whichever program you chose on the second run should be promoted to the front of the list.

The scope of yeganesh is pretty small. The number of command-line options is correspondingly small. The typical usage is yeganesh [-p profile] [-f] [-x] [[--] DMENU_OPTIONS]:

Bugs and feature requests should go to the tracker. Log in with user name "guest" and password "secret" to see the current bugs and feature requests; log back out to submit a new bug or feature request.

And, oh yeah, the name! "Yeganeh" (یگانه) is a Farsi word meaning "unique." This refers to the fact that each command occurs at most once. And "Ganesh" (sometimes "Ganesha") is the Hindi god of beginnings -- perfect for a launcher.