Automatic keyboard detection

[endlessm/eos-shell#3425]
Recommend checking for `id != NULL` and `name != NULL` here, since it's conceivable a client might want the gboolean result without the actual id/name