This was really hacky as it had no idea when the keyboard had events and the blocking was just one millisecond sleeps :D Now keyboard device checks if current tty is receiving input and if so it forwards the events to the TTY.