A user has hard time doing touch typing with a software keyboard. As these senses highly contribute to allow a user to recognize the layout of the keyboard, a user often feels disoriented to cause more mistypes once the user loses the senses with a software keyboard. We think that an appropriate key is typed in touch typing with a hardware keyboard. A user approximates layout of the keyboard through feeling of the finger tips, and relative distances between fingers. But hardware keyboard has a problem. This problem is a user can’t approximate layout of the keyboard. A current software keyboard provides no straight forward solution. One more fact to be discussed here is that the size of the keyboard matters for the better touch typing. This paper proposes “flexible keyboard for everyone” to tackle this problem. “Flexible keyboard for everyone” is a tailored software keyboard for every single user. “Flexible keyboard for everyone” learns a user’s habit with two major strategies and tries to help the user the better touch typing. This method allocates wider area for a weak key to pick up unintentional mistypes and increase the rate of appropriate types of the weak key to accomplish the better touch typing.