use keyboard__codes

closes #408