dmenu based launcher
C C++ Shell CMake Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
external summary May 26, 2014
plugins hist option May 30, 2014
.gitignore deferred update, cmake May 7, 2014
CMakeLists.txt summary May 26, 2014
LICENSE first commit May 1, 2014
Makefile structure changed May 16, 2014
README typo Feb 20, 2017
README.dmenu first commit May 1, 2014
defaults.h shift for running command in a terminal emulator May 10, 2014
dlauncher minor change May 26, 2014
dlauncher.c remove trailing spaces Apr 8, 2017
dot_dlauncher_example Update dot_dlauncher_example May 26, 2014
draw.c
draw.h Xft patch applied May 7, 2014
exec.c get rid of C++ in main component May 12, 2014
exec.h get rid of C++ in main component May 12, 2014
hist.h zsh completion plugin May 9, 2014
plugin-interface
plugin.c API cleanup Dec 25, 2016
plugin.h API cleanup Dec 25, 2016

README

# Intro

DLauncher is a modified dmenu that provide flexible launcher
functions, including but not limited to:

 - Dynamic content
 - Plugin (native and external)
 - Summary
 - History
 - Persistent daemon (wake up by signal)

# Plugins

 - cmd: open executable in $PATH
 - ssh: open ssh terminal to host alias
 - dir: open terminal in a given directory
 - shell: run input in a shell
 - calc(external): send input to bc
 - zsh(external): complete line using zsh engine (check dot_dlauncher_example to see how to activate this)

FYI: zsh plugin may not work on FreeBSD due to a bug on ``zpty''

# TODO

 - more plugins

Feel free to hack it.

# Keybindings

Most of keybindings are the same as in dmenu, excepting some new:

 Mod1 + Tab: switch between available plugins
 Mod1 + a: same as Up
 Mod1 + d: same as Down
 Mod1 + w, Mod1 + Up: prev history
 Mod1 + s, Mod1 + Down: next history
 Mod1 + r: same as Return. This allows one-hand operating
 
It's easy to change them in the source code.

# Build & Install

DLauncher uses CMake to compile the project.
Makefile provides shortcuts for compiling/installing.

# Usage

dot_dlauncher_example is a sample dlauncher configuration file (~/.dlauncher)

dlauncher start - start the dlauncher deamon
dlauncher exit  - kill the dlauncher deamon
dlauncher open  - activate the dlauncher ui

## Extra options for dlauncher.bin besides of dmenu options

   -args [config-file]

   provide extra arguments in the file, one argument per line. Spaces
   on left will be trimed. Empty lines and lines start with `#' will
   be skipped.

   -pl "[name]:[entry][:options]"

   specify extra plugin with name [name]. Depends on the type, the
   entry are interpreted in different ways. For example, for exec
   plugins:

   -pl "[name]:[command line]:TYPE=EXEC[:other options]"

   For plugins using unix sockets:

   -pl "[name]:[socket path]:TYPE=UNIXSOCK[:other options]"

   other options supported are:

     PRIORITY=[priority]      - the plugin priority
     RETRY_CMD=[command line] - command line to be executed when plugin connection failed
     RETRY_DELAY=[seconds]    - do not retry for number of seconds since last retry
     ASYNC=[any non-empty string] - async mode(experimental)

# External Plugin Protocol

There is no documents yet. One can refer to the ``plugin.c'' to figure
out the protocol ;P

Also, check out external/calc.zsh to see how a minimized external
plugin is written.