## Stroke plugin

### Gestures

The stroke plugin uses libstroke to recognize mouse gestures. By the default menu config gestures are recognized while the right mouse button is pressed and the mouse is moved. If no movement happened between press and release or the gesture is not recognized, the context menu is open.

What gestures are recognized and what actions are executed for them are all configured in stroke.conf. The default configuration coming with the plugin defines the gestures listed in the table below. Please note: it is important to start the gesture at the specific point relative to the subsequent coordinates of the gesture; for example the rotation gestures always need to start at the bottom.

gesture drawing | action taken
--- | ---
| switch to line drawing mode
| switch to arrow mode
| stop drawing a line, polygon contour or polygon hole
| switch to via placing mode
| rotate the object under the cursor 90 degrees clock-wise
| rotate the object under the cursor 90 degrees counter-clock-wise
| undo an operation
| redo an operation
| zoom to extent (all-board view)
| zoom in to the area between the endpoints of the gesture

### Configuration

The stroke plugin is compiled only if (the development package of) libstroke is installed. Any gesture recognition takes place only if editor/enable_stroke is set to true (e.g. "1").

The gestures are configured as an ordered list of dial-pad-sequence={pcb-rnd-actions} under plugins/stroke/gestures. Only the first match is executed; this allows the user to override default gestures from user or project or design config.