[Haskell] ANN: yeganesh-2.5

wagnerdm at seas.upenn.edu wagnerdm at seas.upenn.edu
Sat Apr 21 21:27:31 CEST 2012

Today heralds the release of version 2.5 of the venerable yeganesh[1] menu.

The suckless team produces a small program named dmenu[2] which acts like a
normal Unix pipe program, accepting input on stdin and producing output on
stdout, with the one caveat that it sticks the user in between. It launches a
very small menu, presenting the user with each of the lines of stdin as
choices, and prints the chosen text as a single line to stdout. This is very
convenient for lightweight, GUI-less programs and scripts that need some
minimal interaction; however, it is completely memoryless.

Yeganesh wraps dmenu to add some memory: it records which choices the user has
made in the past, and promotes popular choices to the front of the menu on
future runs. See the website[1] for screenshots.

New in this release:

* Switching away from Read as the cache file parser reduced startup time by a
   factor of eight. (Caches in the old format will be transparently upgraded.)
* When running in --executables mode, broken symlinks no longer sabotage their
   siblings in the filesystem tree.
* Minor change to command-line parsing to preserve consistency with GNU-style
   command lines. (Any command line that used to work will still work, and will
   behave the same; however, some lines that were rejected before are now
   accepted and passed on to dmenu.)

To try it out:

1. Install dmenu via your package manager, or from source (it's quite small!).
         wget http://dl.suckless.org/tools/dmenu-4.5.tar.gz
         tar xf dmenu-4.5.tar.gz
         cd dmenu-4.5
         make install
2. Install yeganesh from Hackage.
         cabal install yeganesh
3. Run yeganesh; for example, to choose a file in your current directory, then
    see that file float to the top of your choices, try
         ls | yeganesh
         ls | yeganesh


* One common use case for choosing an executable from your $PATH to launch;
   yeganesh will scan your $PATH for you when launched in the --executables
* Multiple popularity profiles allow separate dmenu consumers to have separate
   memories. (For example, I have separate profiles for launching GUI and shell
* Sometimes you say something embarassing; use the --filter mode to forget it.


[1] http://dmwit.com/yeganesh
[2] http://tools.suckless.org/dmenu/

More information about the Haskell mailing list