func (kb *Keyboard) Run(event CaptureFunc) error {
	return kb.Captor.Run(event, func(captured []KeyEvent) error {
		err := kb.Mapper.Maps(captured, kb.Handler.Handle)
		if err != nil {
			return err
		}
		return nil
	})
}
Run starts a capture loop,
package chkb
import (
	"fmt"
	log "github.com/sirupsen/logrus"
)
type Keyboard struct {
	Captor *Captor
	Mapper *Mapper
	*Handler
	Config
}
func NewKeyboard(config Config, initialLayer string) *Keyboard {
	kb := &Keyboard{
		Captor:  NewCaptor(&config),
		Mapper:  NewMapper(),
		Handler: NewHandler(),
		Config:  config,
	}
	kb.AddDeliverer(kb)
	kb.PushLayer(initialLayer)
	return kb
}