by TrilbyWhite

TrilbyWhite / interrobang

A tiny launcher menu packing a big bang (syntax)

128 Stars 5 Forks Last release: Not found GNU General Public License v3.0 143 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


Interrobang - A tiny launcher menu packing a big bang syntax

Author: Jesse McClure, Copyright 2013 License: GPLv3


interrobang [-h] [-v] [-o config-string] [-] [hushbang]


Interrobang is a scriptable launcher menu with a customizable shortcut syntax and completion options.


Print help and exit
Print version information and exit
-o config-string
Override a setting from the runtime configuration with a full line in quotes with a syntax matching that described below for configuration files
Read configuration file from the standard input
Specify a bang syntax (see below) to use by default


Runtime configuration is read from the following files, in order, stopping at the first file found: stdin if - is specified on the command line,


A template configuration file is distributed as


Each non-empty non-comment line in a configuration file must start with set, bang, or tab. Lines starting with a

are ignored as comments.


set parameter = setting

The following parameters can be set:

Select a font as either an XLFD font string, or a string that would be matched by font-config (fc-match)
One of `top`, `bottom`, or a geometry string as `WxH+X+Y`. If X or Y are -1 the bar will be centered in that direction.
Provide six `#RRGGBB` color strings for foreground and background for each of normal text, option listings, and selected options.
Select a border width in pixels and an #RRGGBB color for the boarder as `Npx #RRGGBB`
Specify the "bang" character. ! is the default, : is a common alternative.
A format string into which the selected command will be placed before running. This can be used to store a history of commands. This string should contain one %s which will be replaced by the selected command.
Whether commands should be autocompleted. Select 0 for no autocompletion, or a positive number of characters as the minimum number required from the user before completion options are provided.
Completion options displayed in bar: true or false.
Last "word" only in completion options: true or false.
Number of pixels for the margin between the displayed completion options and the end of the entered text. Positive values will left-align the options at this margin, while negative values will right-align the options in the window and use this value as the minimum space between entered text and the first option.
Specify an alternative shell for launching commands
Specify alternative flags to the shell. The default -c can be replaced with -ic for an interactive shell which will allow for the use of shell rc-defined aliases.


bang keyword = command-string

Bangs - inspired by the duckduckgo search engine - are customizable commands which allow the user to extend interrobang's functionality in creative ways. If the first character entered in interrobang matches the bangchar (! by default), the word immediately following the bangchar is read as the bang. This bang is looked up in the configuration, and the remainder of the entry takes the place of the

in the command-string.

See the default configuration for examples of how bangs can be customized.


tab keyword = command-string

For each defined bang, there can be a separate tab-completion mechanism. Various examples can be found in the default configuration file. The special keyword "default" is used for tab-completion for regular entries. Two default options are provided for either bash's built in completion with compgen, or with the percontation tool which is distributed with interrobang.

command-string must be a format string with two

entries. The first
with all but the last "word" in the current entry, while the second will contain this last (potentially partial) "word". This allows for completion on the entire line, or based just on the word being typed.

See the default configuration for examples of how tab completion can be customized.


Copyright ©2013 Jesse McClure

License GPLv3: GNU GPL version 3:

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

Submit bug reports via github:

I would like your feedback. If you enjoy Interrobang see the bottom of the site below for details on submitting comments:

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.