#+TITLE: Prodigy layer

#+TAGS: layer|tool

[[file:img/prodigy.png]]

* Table of Contents                     :TOC_5_gh:noexport:
- [[#description][Description]]
  - [[#features][Features:]]
- [[#install][Install]]
- [[#key-bindings][Key bindings]]
  - [[#spawn-prodigy][Spawn prodigy]]
  - [[#navigate-through-it][Navigate through it]]

* Description
This layer adds support for the [[https://github.com/rejeep/prodigy.el][prodigy]] package to manage external services from
within Emacs, check the package's documentation for more details.

It is recommended to put your prodigy services in the =dotspacemacs/user-config=
part of your =~/.spacemacs= file.

** Features:
- Managing of pre-declared services from within Emacs
- Showing of process output in special buffers
- Filtering of processes for tags or names

* Install
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
add =prodigy= to the existing =dotspacemacs-configuration-layers= list in this
file.

* Key bindings
** Spawn prodigy
You start prodigy with this:

| Key binding | Description             |
|-------------+-------------------------|
| ~SPC a t p~ | Open the prodigy buffer |

** Navigate through it

| Key binding | Description                     |
|-------------+---------------------------------|
| ~c~         | Clear buffer                    |
| ~h~         | First service                   |
| ~j~         | Next service                    |
| ~k~         | Previous service                |
| ~l~         | Last service                    |
| ~H~         | Display current process         |
| ~J~         | Next service with status        |
| ~K~         | Previous service with status    |
| ~L~         | Start prodigy                   |
| ~S~         | Stop prodigy                    |
| ~r~         | restart prodigy                 |
| ~R~         | revert buffer (refresh list)    |
| ~d~         | Jump to the dired of service    |
| ~g~         | Jump to magit-status of service |
| ~Y~         | Copy prodigy command            |
| ~o~         | Browse the service              |
| ~f t~       | Add tag filter                  |
| ~f n~       | Add name filter                 |
| ~F~         | Clear filters                   |
