Separating out from #1 @sebirdman, feel free to edit this to elaborate exactly what the lib needs to do for keyboard detection.