Re: [dev] [ANNOUNCE] dlauncher - dmenu based launcher

From: Xinhao Yuan <>
Date: Sun, 11 May 2014 13:40:37 -0400

Thanks for advice! I've fixed the crash bug and ssh_config parsing
issue you mentioned. I didn't test much on -l mode, so there may be
bugs hidden.

For `dir' plugin, the current way to enter a directory is to append
'/' at the end of the directory name. For example, input `dir_` you
will get completion of `dir_*`, and input `dir_/' you will get
completion of `dir_/*'

For the layout problem in -l mode, I changed the area of options to be
aligned with the menu edge. I guess this is anyhow better than the
previous layout.

About the monolithic design, I would prefer it because currently the
plugin interface may still be subject to change and it takes less pain
to change them in a monolithic code base. Its possible to create
`receiver' plugins that talk with external executables and let
dlauncher multiplex the result. The `zsh' plugin works in this way.


On Sun, May 11, 2014 at 3:50 AM, Ciprian Dorin Craciun
<> wrote:
> On Sun, May 11, 2014 at 4:29 AM, Xinhao Yuan <> wrote:
>> I would like to announce dlauncher, a dmenu based launcher I wrote to
>> replace synapse( 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...)
Received on Sun May 11 2014 - 19:40:37 CEST

This archive was generated by hypermail 2.3.0 : Sun May 11 2014 - 19:48:07 CEST