code: func NewDriver() *Driver {
  	k := &Driver{
  		name: gobot.DefaultName("Keyboard"),
  		connect: func(k *Driver) (err error) {
  			if err := configure(); err != nil {
  				return err
  			}
  
  			k.stdin = os.Stdin
  			return
  		},
  		listen: func(k *Driver) {
  			ctrlc := bytes{3}
  
  			for {
  				var keybuf bytes
  				k.stdin.Read(keybuf[0:3])
  
  				if keybuf == ctrlc {
  					proc, err := os.FindProcess(os.Getpid())
  					if err != nil {
  						log.Fatal(err)
  					}
  
  					proc.Signal(os.Interrupt)
  					break
  				}
  
  				k.Publish(Key, Parse(keybuf))
  
  			}
  		},
  		Eventer: gobot.NewEventer(),
  	}
  
  	k.AddEvent(Key)
  
  	return k
  }
docs: // NewDriver returns a new keyboard Driver.
  //