[dev] [Announce] Desktop Entry Launcher

From: Eric Pruitt <eric.pruitt_AT_gmail.com>
Date: Mon, 6 Feb 2017 23:10:36 -0800

I use dmenu to run programs, but I did not like that dmenu_run included
every single program included those without GUIs. I maintained a list of
programs manually, then I wrote a script to generate the list based on
whether or not a binary linked to GUI libraries. Recently, I wrote a C
program that uses nftw(3) to find [desktop entry files][1], parses them
and adds them to a list saved at ~/.del by default. The source is here:
https://github.com/ericpruitt/edge/blob/master/utilities/del.c . I
believe it is POSIX compliant, and I was able to compile it on Linux,
OpenBSD and FreeBSD.

  [1]: https://specifications.freedesktop.org/desktop-entry-spec/latest/

Here's the usage information:

DEL searches for Freedesktop Desktop Entries, generates a list of graphical
commands and uses dmenu as a front-end so the user can select a command to
execute.

Exit statuses:
  1 Fatal error encountered.
  2 Non-fatal error encountered.
> 128 The dmenu subprocess was killed by a signal.

Options:
  -h Show this text and exit.
  -f PATH Use specified file as the command list. When this is
           unspecified, it defaults to ~/.del
  -r Search for desktop entries to refresh the command list.
           Trailing command line parameters are interpreted as
           folders to be searched. Folders on different devices
           must be explicitly enumerated because the search will
           not automatically cross filesystem boundaries; in terms
           of find(1), the search is equivalent to the following:
           find $ARGUMENTS -xdev -name '*.desktop'
           When no paths are given, "/" is searched by default.
           A newline-separated list of programs can be fed to del
           via stdin to include programs that do not have desktop
           entries in the generated launcher list. The programs
           must exist in $PATH or they will be silently ignored.

When "-r" is not specified, dmenu is launched with the command list feed
into standard input. Trailing command line arguments can be used to pass
flags to dmenu or use a different menu altogether:

  Set the background color of selected text to red:
  $ del -- -sb "#ff0000"

  Use rofi in dmenu mode instead of dmenu:
  $ del rofi -dmenu

Please let me know what you think.

Thanks,
Eric
Received on Tue Feb 07 2017 - 08:10:36 CET

This archive was generated by hypermail 2.3.0 : Tue Feb 07 2017 - 08:12:14 CET