Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
dmenu based launcher
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
# 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.