change to push a key per a send and release the key if any key was unpushed

this specification is from linux