This is a new pull request for enhancing the keyboard class

I don't know how to solve the conflict in git.
This is to make a clean branch of long_press_v2