code: func (k *KeyLogger) Read() chan InputEvent {
  	event := make(chan InputEvent)
  	go func(event chan InputEvent) {
  		for {
  			e, err := k.read()
  			if err != nil {
  				logrus.Error(err)
  				close(event)
  				break
  			}
  
  			if e != nil {
  				event <- *e
  			}
  		}
  	}(event)
  	return event
  }
docs: // Read from file descriptor
  // Blocking call, returns channel
  // Make sure to close channel when finish