DOKK / manpages / debian 12 / shellex / shellex.1.en
SHELLEX(1) shellex Manual SHELLEX(1)

shellex - shell-based launcher

shellex [...]

All command-line parameters (together with some shellex-specific) are passed on to urxvt. This means, you can you e.g. -bg grey20 for a lighter background. Using it for more than just customizing the appearance (for example adding own extensions) might stop shellex from working, so be careful.

See urxvt(1) for a full list of options.

shellex is a shell-based launcher with a lot more features and a lot simpler design. It launches a shell (currently zsh(1)) and shows it in a small terminal (currently urxvt(1)), wrapping every command with a little bit of extra magic (redirecting stdout, stderr, disowning and closing the shell) to get more typical launcher-behaviour.

This gives you a simple launcher with tab-completion and other shell-features, configurable in shell.

shellex uses two X-Resources at the moment, to manipulate its behaviour:

shellex.pos

If pointer, shellex shows the window on the window, the mousepointer is on. If focus, it uses the output, where most of the currently focused window is. Defaults to focus.

shellex.edge

On what screen edge to show the launcher (top or bottom). Defaults to top.

Additionally all resources defined by urxvt (with class shellex instead of urxvt) can be used to customize the appearance or behaviour of the used terminal window.

shellex configuration snippets can be found in /usr/lib/shellex/.

On start, shellex assembles a list of snippet basenames by looking at all of the paths listed below. For each snippet basename, shellex loads the first file it finds when looking through the paths in order:

1.$XDG_CONFIG_HOME/.shellex. Typically unset, defaulting to $HOME/.config/shellex.

2.$HOME/.shellex

3./etc/shellex (shellex defaults, symlinks to /usr/lib/shellex/conf/)

To customize shellex, you can do the following things in $XDG_CONFIG_HOME/.shellex or $HOME/.shellex/:

1.Overwrite a default by creating a new snippet of the same name

2.Not include a default by creating a symlink to /dev/null of the same same

3.Include an example-snippet not used by default, by creating a symlink to /usr/lib/shellex/snippet

4.Write you own snippets with a currently unused name

To avoid naming-conflicts in the future, you should add a common suffix to all your own snippets. Snippets are run in ascending order. By choosing a number which sorts between/after the existing snippet(s) you can ensure it runs at the desired time. E.g. if your snippet beeps on errors, name it 15-errorbeep so that it sorts before 20-nobeep.

Axel Wagner <mail@merovius.de> and contributors

12/11/2018 shellex 0.3