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

From: Ciprian Dorin Craciun <ciprian.craciun_AT_gmail.com>
Date: Sun, 11 May 2014 10:50:07 +0300

On Sun, May 11, 2014 at 4:29 AM, Xinhao Yuan <xinhaoyuan_AT_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...)
Received on Sun May 11 2014 - 09:50:07 CEST

This archive was generated by hypermail 2.3.0 : Sun May 11 2014 - 10:00:08 CEST