On Sun, May 11, 2014 at 4:29 AM, Xinhao Yuan <xinhaoy...@gmail.com> wrote: > I would like to announce dlauncher, a dmenu based launcher I wrote to > replace synapse(https://launchpad.net/synapse-project) which is no > longer in development. dlauncher reuses the minimalist dmenu UI and > supports plugins that provide dynamic content.
I've just quickly tried it and it seems quite nice. I especially like the fact that it runs as a daemon, thus it could be snappier (via caching of options) than launching it every time. I also like the fact that it adds the plugins feature, thus switching from one to another changes the context of the available options; plus the fact that the selected plugin changes based on the available options (i.e. if only SSH hosts remain, SSH plugin is automatically selected). Regarding the available plugins see my comments below. However there are a few things I don't like (although some of my positions are counter to the "suckless" philosophy): * it is monolithic in regards to the addition of plugins; keeping with the KISS / UNIX principles I would have expected that each plugin is implemented as a separate executable that provides the available options, thus dlauncher acts as a multiplexer; (however such an approach I propose would have some overhead...) * displaying too many plugins changes the available width for the options, thus moving the place where the eye must look for the options (at least in `-l` mode); (personally I find it disturbing, and some time ago I've written a patch to dmenu which displays the caption on-top (instead on the left) when using the `-l` (lines) mode;) Some bugs I've found: * typing an option that doesn't exist (such as `does-not-exist`), while in another context than `cmd`, crashes the daemon; (maybe a good solution for stability would be to fork `dlauncher` on the user signal, and ignore other signals until the child terminates, to achieve a kind of locking;) > highlighted plugin: > > * history - conveniently recalls your command history Maybe a nice enhancement would be to look also inside the user's chosen shell history. (Or maybe this would become a separate plugin?) > * ssh - takes hostname and open ssh session in a terminal emulator There is a small problem in parsing the `Host` lines from SSH configuration: it is allowed to list multiple aliases on the same `Host` line; however stop the parsing after the first one. Moreover SSH also allows specifying wildcards (`*`) in hostnames (within the `Host` lines), to specify defaults for a category of hosts; thus these shouldn't appear in the auto-completion as they are not valid hostnames. The `dir` plugin, should (somehow) allow the option to open the directory in `dlauncher` and allow me to choose a sub-directory (and so on). There could also be a `file` plugin (maybe mixed with `dir`) which uses some tool to open it based on MIME type / extension. Good work, Ciprian. P.S.: I'm looking forward to see a fork of `dmenu`, similar to `dlauncher`, but one which exposes a look-and-feel of a Cisco-like console: select a category, press enter, select some sub-category / sub-command, press enter, and so on... (It is on my to-do list for some years...)